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?

\$\endgroup\$
2
  • 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
    Commented Jan 11, 2019 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\$ Commented Jan 11, 2019 at 17:01

1 Answer 1

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\$
6
  • \$\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\$ Commented Jan 11, 2019 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\$ Commented Jan 12, 2019 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\$ Commented Jan 13, 2019 at 13:35
  • \$\begingroup\$ I did end up purchasing both devices. The USB protocol analyzer was able to show that the enumeration sequence was not happening. The hub does not appear to signal to the host that there are devices connected. \$\endgroup\$ Commented Jan 22, 2019 at 15:57
  • \$\begingroup\$ @ChrisMiller, interesting. But when you undock and dock the tablet (over inaccessible pogo pins), does the tablet see the hub and runs enumeration of it? I guess you need to enable proper level of verbosity in kernel logs and see what's happening. Does the dock maintain VBUS on downstream ports when undocked? \$\endgroup\$ Commented Jan 22, 2019 at 16:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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