One of my colleagues asked me to have a look at receiver that wasn’t behaving well. It was one of the many USB receivers that are around based on the RTL 2832U and Rafael Micro R820T tuner chips. The device was very intermittent, but he wasn’t sure if it was a problem with the hardware, or with the software (and drivers) on his Windows PC. I don’t run Windows myself, so would be able to easily rule that out as a potential problem.
On connecting the device up to my Linux machine, it appeared to be behaving itself and showed up listed as a DVB-T device when I typed ‘lsusb’ into my terminal. However, when trying to actually use the device, it returned lots of errors before disappearing from the USB bus. Re-plugging it would make it come back to life again.
In my experience, complex microprocessor based things generally either work or they don’t. So to see a device that would speak happily over USB but fall over when used was a bit odd. What might cause something to misbehave in this way?
Thankfully my first hunch was correct. I swapped the rather long and thin USB cable for a short fat one. Hey presto – the device behaved perfectly and I left it running for a few hours without any issues. The resistance in the original cable, combined with the high current draw by the receiver was causing the voltages to drop, interfering with the normal operation of the device.
So, it’s always worth trying different cables when troubleshooting something, even if (as in this case) the original cable appears to be doing its job.