0
\$\begingroup\$

We have an white label manufactured Android tablet that snaps into a dock made by the same vendor. A USB port on the tablet is replicated to the dock, which has a Type A port that we plug an RFID reader into. The USB port on the dock is powered by the dock, not the tablet.

We are seeing conditions where the tablet is removed and replaced on the dock and the data connection to the dock’s port is not resumed. If we plug the reader back in, it usually reconnects.

Is there a way where I can plug some board or device (something like this VBus breakout board?) between the dock and the reader and check the lines with a voltmeter?

New contributor
Chris Miller is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct.
\$\endgroup\$
  • 2
    \$\begingroup\$ You'll need more than a voltmeter. There are certain conditions that trigger enumeration in USB, and evidently, plugging the tablet into the dock doesn't meet the requirements -- probably because of how the power is connected. Unfortunate design choice on the part of the dock maker. \$\endgroup\$ – Dave Tweed Jan 11 at 15:21
  • \$\begingroup\$ The persistent problem is more likely state maintained in software / registers than continuity, though the cause might be something like invalid sequencing of connections or power glitches. Likely you'll need to force re-enumeration somehow. It's likely you are asking more from these consumer capabilities than they are really engineered to provide, but you could try something crude like a pushbutton to interrupt the VBus to the peripheral as a manual reset, or simply keep replugging it. For a solid fixed installation you probably want a custom Android build and more robust connections. \$\endgroup\$ – Chris Stratton Jan 11 at 17:01
2
\$\begingroup\$

It could be that you have a wrongly-designed dock ("port replicator", aka "USB hub") which doesn't reset downstream ports when upstream port is disconnected. Or it doesn't power off the VBUS on the ports, hubs are required to turn if off. Or it could be a badly designed RFID device. My guess is that your device (RFID) is still powered and retain old enumeration address, and therefore not responding, but it all needs debugging.

If you want to determine what is going on and who is at fault, you can probe VBUS, or you can probe D+ with DMM using the dongle you found. Probing D+ will give you an idea if the port is being reset (D+ should toggle at least once for 50-200 ms), but a DMM might be too slow for that, and an oscilloscope would be needed.

Ideally you should use a USB protocol analyzer (like this one) for the job like this, but to visualize the bus state you can use a cheaper indicator like this one.

You also can try a known good device (like USB flash drive, or keyboard) behind your dock, to determine if they will re-connect after removing and re-connecting the tablet. If they do re-enumerate, then the problem is in RFID. If they experience the same problem, the dock is at fault.

\$\endgroup\$
  • \$\begingroup\$ We did try the flash drive and saw the same issue. So it looks like the issue is with the re-enumeration and problem is with the dock. \$\endgroup\$ – Chris Miller Jan 11 at 20:29
  • \$\begingroup\$ @ChrisMiller, what kind of connector is used between the tablet and its dock? When you re-connect the tablet, can you see any USB activity on Android? Did you try to look into kernel logs? \$\endgroup\$ – Ale..chenski Jan 12 at 0:19
  • \$\begingroup\$ The connection uses pogo pins, at connection we see that a device is connected, but not the device, and I'll have to ask the developer about the logs. \$\endgroup\$ – Chris Miller Jan 13 at 13:35

Your Answer

Chris Miller is a new contributor. Be nice, and check out our Code of Conduct.

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.