Tuesday, June 19, 2012

USB- I hate you

Let me preface this may be a bit of a rant.
After a particularly grueling day where I have been running around with my head chopped off-- only to realise that it's already 5:00, my email is overloaded and I haven't even gotten to item 4 on my epic TO DO LIST-- I had the following voicemail on my mobile (I removed his name):

"Hi, This is J_______ from University of _______, I am calling because I cannot get a response out of your e2e forum. I posted a question and didn't get someone to answer it. I am having a lot of problems with the USB that is found on the TI Launchpad. The computer doesn't seem to see that there is anything attached. I reinstalled the software. Please call me back to fix the issue with your chip and development platform." -Message left at 3:41 PM CST duration 1:44 minutes

Um...Not a yelling message, but it was definitely the calm condesending tone that an older brother would take with a younger sibling that got me irritated.
Irritation is one of those things that will quickly foul up any situation for me.
I am as transparent as they come-- so in order to still be professional--I had to take a break from the situation and  get out of my head. In particular, the irritating closing, "Please call me back to fix the issue with your chip and development platform," bit.

After typing for a few minutes (I find free writing really helps me purge nasty thoughts)-- I realised my issue.

I hate USB.

I'll clarify that I don't actually hate the standard USB, but rather the perception that it creates with certain people...
On one hand-- it's vastly convienent and a standard and everyone seems to understand it-- and on the other? It's so common and prolific that people take it's operation for granted!

Where do I think this perception came from?
... the wall outlet.
The fact that people are able to plug a USB cable into a charger and charge a device, just like they used to plug in a wall adapter-- makes them think that it's the same deal when you plug into your computer.

**Side note***It's funny because other standard interface products don't deal as much with these issues. 
Perhaps not as prolific, but you don't see HDMI wall outlets today... nor people using Ethernet cables to charge their smartphones.

More often than not, problems with Development Tools before Development happens-- are often things that can be solved with a little bit of training. 

Once upon a time, my company used to put these sorts of documents out for mass consumption:
These were vastly useful. 
Before every set of datasheets on a particular product, it would step you through the reason why that particular chip's function existed. 
Perhaps that's a different issue to be talked about on a different day-- but these types of documents are only available in pdf form now. I'm lucky that I happen to work in an office where people are constantly coming by and giving them to me (perhaps my reputation as a books hoarder precedes me). 

Although the document is slightly outdated (it only covers USB 1.1),  in preparation I was able to put together a semi-explainitory email that stepped him through checking all of the steps for why his MSP430 Launchpad was not getting picked up by his computer.

An Aside** Oddly, my approach when I am helping solve technical support issues-- comes from my mother. When I was a child, my mother used to solve every issue in the house with the process of elimination. She would ask, "WHO DID xyz". To which my sister and I would respond. If both my sister and I denied the action she would then go into, "Well, If I didn't do it. And Serena (my sister) says she didn't do it... and there are only three people in the house... then I ask you again, who did xyz?" Although it wasn't always actually the third person who lived in the house--- it was effective in getting the conversation started. **

So, with a USB problem there are three players here.
There is the Device
The Host
and the user.

So before I went digging into what would possibly be wrong with the Launchpad Development Kit's USB--- I had to go through the exercise and determine who was the most likely to blame.

1.) Tell me about your launchpad? Did you just receive it? Have you ever used it before? Did it ever work before?

2.) What type of computer are you using and what Operating System? Do you know if your drivers are up to date? (Most machines this is a given for the current operating system, but every so often, it's a custom Linux machine or it's a really old computer!)

3.) This may sound silly, but can you describe how you connected your device to the computer?
Step by Step, you got the box, opened the ESD Bag, pulled out the board--- then what?

Only 1 out of the 3 is directly my company's responsibility. The best we can do for 2 and 3 is try and make it as easy as possible. Save mandating a custom connector and a PC that we control (once upon a time Texas Instruments made PC's)-- there is a lot of extra consideration that we have to afford to be able to get one of our devices running on a computer.
That's at least 3 major operating systems, with 100's of hardware systems + multitude of drivers that are available... all things that don't deal directly with our core competency of : Making Silicon Chips...
Then-- add user error into the mix... and our platforms get a lot of blame for things that may not have been part of the initial product design. 

(I will say, we've gotten a whole lot better in solving them, but the point should be made that we have now learned how to do that after years of cranky USB issues). 

So armed with my excellent USB Guide-- Combination of the TI Bus Solutions Interface Databook (SLA067A- which is not in available anymore in data book format) and one of the best websites about USB-- Here-- I called the professor back. 

I found out he was using, the brand new launchpad I had handed him at ASEE conference, a Windows 7 HP Dell Laptop... the interesting issue was #3...
He scoffed that I asked him about the process to hook up the launchpad...
"Well, I opened the launchpad and connected it using a USB cord to the PC's USB Port."
"Did you use the cord that came with the launchpad?"
"No, I just used the one I use for my phone all the time."
"Can you do me a favour and use the one that came with the launchpad?"
"I just need to know for sure that it's not the cord, USB cables sometimes are really picky..." 
I heard the computer in the background and stayed silent...
"Oh, it appears that the cable may have needed to be changed, " he drew out...
"No problem. I'm glad it's that simple... "
"I guess the phone cable I was using doesn't have the data pinned out."
"Yeah, that happens periodically, well good luck and I'm glad that the it wasn't the platform's issue!"

We ended the phone with some niceties and I sent him my preparation email anyways-- just as a reminder. If we still did databooks-- I amy have included that in my next care package to his school. 

Rant aside-- I am glad I didn't have to chase down a USB driver problem-- because that's not my area of expertise. I just wish that it wasn't so easy to blame our development kits.

No comments:

Post a Comment