One of the interesting things about the 9500i is the USB port, which will be used in the future when Escort releases software for it....
But in the mean time my curiosity got the best of me, and I just couldn't resist trying to get it to do SOMETHING. So just for fun, I decided to see how far I could get with it.
First off, although I've written several applications for RS-232 both in my day job and as a hobbyist, I'm no USB programmer. Prior to this have never attempted to develop anything for USB before. So I did some research which amounted to a crash-course in USB software development under Windows to see what I could do with the 9500i.
Since the port on the 9500i is a standard mini-USB port, I plugged in a cable I had for a camera. I powered the 9500i from a DC power source, and the computer detected and installed the 9500i as a Human Interface Device (or HID). From what I read, one advantage to making a device HID compliant is so that it doesn't need special device driver, and can use the windows HID driver which be present on all modern PCs.
So, I began my quest for a software interface for communicating with it...
Enumerating the USB devices yielded the vendor & product ID's: Vendor ID: 10C4, Product ID: 82D8. The Vendor ID is for Silicon Labs, they offer several products. I haven't yet disassembled my 9500i, but from the FCC photos the "USB chip" appears to have 7 pins per side or 28 total pins. So as for the actual part, a guess might be Silicon Labs' C8051F321, C8051F327, or C8051F326.
Here's a screenshot of the test software I wrote to try and communicate with the 9500i:
Here's what it does:
It should automatically detect if the 9500i is connected, and also when you plug or unlug it. (For those programming types who might be reading this, I subclass the window to detect WM_DEVICECHANGE messages)
The software reads the manufacturer, product, and serial number from the 9500i when you click the "Display Device Information" button. As for the "serial number" it reads, I'm not sure what it might be used for. I also don't know if this number is different on individual 9500i's, or the same for all of them, would be interesting to find out. I can tell you this much: the serial number which was read out of my 9500i does not match the serial number on the bottom of the case.
The software allows you to send and receive raw data to/from the 9500i, although this doesn't really do anything for you. I've never been able to read any data from it: all of my read attempts time out. My guess is that it needs to be sent specific byte command sequences first, in order to actually read any data from it. I've tried sending several different blocks of data to it, but of course not every possible combination of the 45 byte buffer As for writing: the API doesn't report any errors, so I assume the data is being sent to the 9500i (not that the 9500i seems to care). One interesting thing I noticed here was that it only accepted "Report ID's" of 1 and 2. I tried briefly on an old Windows 98 PC, and using a report ID of 0 worked on those? Not sure why. As someone mentioned on here, holding down MRK and BRT while plugging in the 9500i brings it up into a "USB Mode" of sorts. No luck reading in this mode either.
There's also some buttons to test many of the raw Windows API calls for communicating with a USB device, which are available when you go to View > API Test Buttons. These won't mean much to most people.
If anyone wants to mess around with the software, you can download it from HERE. I would only recommend for advanced users. Be sure to read the disclaimer! You'll need a 12V DC power supply for the 9500i, a mini USB cable to connect the 9500i to your PC, and of course a 9500i. To get started, connect the USB cable from your 9500i to your PC. Then, power up the 9500i. The PC should detect the 9500i and install it as a HID device. If it does not, then my software will not work. Once it is detected and installed, the software should see it.
Jim
Bookmarks