Difference between revisions of "Link Instruments MSO-19"

From sigrok
Jump to navigation Jump to search
Line 20: Line 20:
It's just serial-over-USB, supported by the Linux kernel through the '''[http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=drivers/usb/serial/cp210x.c;h=8d7731dbf478f9592d8dff350374dc6375649c44;hb=HEAD cp210x]''' driver, though as of Kernel 2.6.37 it needs to be patched to recognize the Link Instruments Vendor/Product ID ('''3195:f190''').
It's just serial-over-USB, supported by the Linux kernel through the '''[http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=drivers/usb/serial/cp210x.c;h=8d7731dbf478f9592d8dff350374dc6375649c44;hb=HEAD cp210x]''' driver, though as of Kernel 2.6.37 it needs to be patched to recognize the Link Instruments Vendor/Product ID ('''3195:f190''').


iSerial was exploited by Link Instruments to store device probe methods, hardware type, hardware revision, calibration quirks and the actual serial number.
iSerial was exploited by Link Instruments to store hardware type, hardware revision, calibration quirks and the actual serial number.
*for an iSerial of 4294333650260000000 we have:
**42943 336 502 6 0 000000
***vbit = 42943 / 10000
***dacoffset = 336
***offsetrange = 502
***hwmodel = 6
***hwrev = 0
***serial number = 000000


== Serial protocol ==
== Serial protocol ==

Revision as of 01:19, 8 January 2011

File:MSO-19.JPG
Link Instruments MSO-19

The Link Instruments MSO-19 is a 2GSa/s oscilloscope, 200MSa/s logic analyzer, 100MSa/s pattern generator and a TDR. It is also extremely portable and is only $249 (including probe, clips, wires and software).

See Link Instruments MSO-19/Info for more details (such as lsusb -vvv output) about the device.

Hardware

Original software

Link Instruments ships the product with its FrontPanelTM Oscilloscope software. Software is for Windows only. Written in .NET (C#), without any kind of obfuscation, which makes it a real breeze to reverse engineer.

USB protocol

It's just serial-over-USB, supported by the Linux kernel through the cp210x driver, though as of Kernel 2.6.37 it needs to be patched to recognize the Link Instruments Vendor/Product ID (3195:f190).

iSerial was exploited by Link Instruments to store hardware type, hardware revision, calibration quirks and the actual serial number.

  • for an iSerial of 4294333650260000000 we have:
    • 42943 336 502 6 0 000000
      • vbit = 42943 / 10000
      • dacoffset = 336
      • offsetrange = 502
      • hwmodel = 6
      • hwrev = 0
      • serial number = 000000

Serial protocol

  • Control message
    • Fixed header: 0x40, 0x4c, 0x44, 0x53, 0x7e
    • Variable size payload, 16bit aligned
      • Looks like each 16bits of payload are a register write operation
      • register writes are 4bits for addr, 8 bits for value, 2 unused bits and 2 bits im not sure what they are for :)
      • .?12 AAAA .?34 5678
      • Conversion is: ((v & 0x3f) | ((v & 0xc0) << 6) | ((a & 0xf) << 8) | (((v ^ 0x20) & 0x20) << 1) | (((v ^ 0x80) & 0x80) << 7))
      • Byte order is big endian
    • Fixed footer: 0x7e