Innovate Motorsports OT-2 SDK User Manual

Page 64

Advertising
background image

64

Tablet’, via serial plug-and-play. This requires fiddling with the Windows device
manager to rectify. Perhaps one of the most frustrating problems is that Windows can
accumulate vast numbers of non existent serial ports and, although there is no obvious
way to delete them, having COM ports over 256 can cause unpredictable behavior when
the ports are later opened.

On top of everything else, there was a question of performance. Serial ports have extra
driver overhead on the Windows side, and this overall approach still limits the device to
serial port speeds at the hardware end. This difference is glaring in something more data
intensive, like firmware update. The original OT-1 takes about 10 times longer to
perform a firmware update over USB than an LM-2, even though the later has about 6
times as much flash memory to fill.

These support problems, combined with the nominal performance, are why, starting with
the LM-2, we went to native USB support on the device and our own USB drivers for
Windows. Based on the dramatically lower USB related support incidents with that
produce, we elected to update the OT-1 (OT-1b), and the new OT-2 to all utilize native
USB, and our common USB driver, as well.

Technical Details

• The OT-1b, OT-2, and LM-2 are all native, USB 1.1, full speed devices
• Each product reports a unique product ID via USB
• But all use an identical USB interface, namely, the MTS protocol over one ‘bulk

endpoint’

• We currently only provide device drivers for the Windows platforms
• All Innovate devices use the same USB Driver
• The driver is used to access the bulk pipe via ‘Device IO Control’ calls

IMS USB under Windows


The recommended method for accessing Innovate hardware via our USB driver under
Windows is to utilize a dynamic link library called “imsusb.dll”, included with the source
samples of this SDK.

To use the library from C/C++ you will need to:

• Include the header file imsusb.h in your source
• Link the library file imsusb.lib into your project


Note: The DLL entry points are declared “extern C” and use the standard Windows API
call stacks, so it should be accessible from most other programming languages for the
platform. However, Visual C++ is the only development environment that we have
tested.

Advertising