Tuesday, July 18, 2017

A tale of two projects, some travel and USB serial interfaces

Morning all,

Back in the mood for squirting some text into a blog post after a while away focusing on other things. Amateur radio may be a life style for some, alas as a hobby it doesn't get the time it deserves at the moment =)

Yesterday I resolved a problem that had been plaguing me for months. If you remember some time back there was an issue with FTDI that release a driver that would "brick" non-authentic devices. Well, yes it is those authentic devices that I have been working with. Yes the expensive authentic ones.

I have an embedded SoC device that is based around an wireless access point, that has been encapsulated on a PCB with all the peripherals broken out. There is a D25 port with many of the GPIO pins, power, serial console and other pins for this particular application.

I had some issues with the FTDI USB to serial devices, they connect fine at 115200 baud. They run fine for a while when connected to the embedded machine. After a minute, sometimes as long as five minutes the USB to serial device has some corruption, then ceases to function.

I spent several weeks trying to determine if this is the embedded device failing. How was it failing? Why was it failing? Why was nothing in the logs? Etc, etc, etc.

So I moved focus. What happens when I plug in my VT220? Surprisingly I get the same behavior, what ever the speed, after a while there is corruption, then something fails to pass data across the serial link.

I spent some time looking at the connections, looking at "veroboard" and making sure all the solder joints were good, testing for dry solder joints, then soldering up new serial port cable hardware. The issue persisted. I would get a clear 60 seconds after the first serial stream corruption before the USB serial cable ceased to operate.

This is an important work project, but it was burning time that I didn't have.

I put it all aside and focused on other projects while work became very busy. The other project is radio focused and did not require a USB serial interface, thankfully. Well, I might have picked up this problem sooner if this were not the case. At the end of the busy work period there was some travel, many many hours in a car delivering things around the country, VK5 -> VK2 -> VK3 -> VK5. Adding another 3,000km to the little white car. The following week and another 2,000km of car travel to and from a conference. Weekends absorbed by driving and a bit of thinking about the USB serial problem.

At the conference I describe the problem to a few folks there were working on various embedded systems. A few suggestions were offered, a few experiences shared. However the only common experience was "don't use authentic FTDI cables". This wasn't very helpful as I had a bunch. They all behaved this way.

So, inspired by talks and projects from the conference, I ordered a few Raspberry Pis and some new FTDI USB serial cables. Weeks flew by. Eventually they arrived. I gingerly tested one. No corruption, no lockups. The embedded machine ran on the bench over night with no issues, passing packets across Ethernet ports. Been running for days now. The configuration on the device is now well under way. I am aiming to publish more on that soon.

I packed it all up, took it work work and explained to the guys in the lab the experience. I was offered a pair of scissors to "fix" the authentic FTDI USB serial cable. It was an unfortunate waste of time using these expensive FTDI USB cables. I have put them in a labeled box; "test before use". I have on order more of the cheap Chinese ones, because they work. Why? I do not know. Maybe it is a driver issue? I hope to look into this in the future.

In other news my 2 meter sniffers arrived from Bryan VK3YNG for radio direction finding! Been a long time coming. Guess what I'm up to this weekend?

73, Kim VK5FJ