I have implemented an Android app which communicates with the DLP NIRscan Nano via Bluetooth LE. It is working fine, but unfortunately it takes a long time to transfer the scan results - especially if you want to do several individual scans in a row.
That's why I'm currently trying to connect the device via an USB OTG cable to the Android smartphone. I can successfully connect to the device via USB but it is unclear how to read or write data.
What I have understood so far:
-
the device provides two endpoints: one with IN direction and one with OUT direction.
-
both endpoints have interrupt type, that's why I need to communicate asynchronously (see https://developer.android.com/reference/android/hardware/usb/UsbRequest.html) by using queue() and requestWait() methods.
-
based on the documentation the device is using HID 1.1 to exchange commands. An example project would be the Missile Launcher: https://github.com/aosp-mirror/platform_development/blob/master/samples/USB/MissileLauncher/src/com/android/missilelauncher/MissileLauncherActivity.java which is using
UsbRequest#queue()
sendCommand()
which is callingmConnection.controlTransfer(0x21, 0x9, 0x200, 0, message, message.length, 0);
requestWait()
to wait until a response is available. But this is not working as well. Also changing the sendCommand toint transfer = mConnectionRead.controlTransfer(0xA1, 0x01, 0x00, 0x01, message, message.length, 0);
doesn't work (transfer = -1), see Using Android to Communicate with a USB HID Device
When I want to read e.g. the Tiva version information, I thought it will work like the code mentioned below. The specification of the device: http://www.ti.com/lit/ug/dlpu030g/dlpu030g.pdf see page 83
Why is it not working? I never get any response from the sensor.
Do I have to use controlTransfer? Is the data packet wrong? Is it possible at all to connect the scanner via USB to an Android smartphone?
Any help appreciated :-)
Thanks Ben
Looks like there is a bug in this board, because I cannot add my source code.
You can find the source code here: https://stackoverflow.com/questions/49748315/ti-dlp-nirscan-nano-connect-to-android-smartphone-via-usb