Linux can’t tolerate a spewing USB device

I’ve been spending a lot of time with TI MSP430 chips using the incredibly inexpensive LaunchPad eval board. This board ships with an MSP430 chip pre-programmed with a temperature measurement demo program that immediately spews temperature readings out its UART pins, which by default are routed through the USB interface to the PC. This causes my Linux system extreme indigestion. It appears that Linux can’t properly identify and set up to interact with a USB device that mindlessly sends data at it right from the get go. I’d gotten over the severe disappointment of the incredibly powerful TI Eclipse-based Code Composer Studio IDE for the MSP430 not supporting the LaunchPad board on Linux (a classic big-corporation screwup: Good luck getting core Arduino-lovers interested in MSP430, TI!). I thought I was being clever to run CCStudio on Windows within a VirtualBox VM session on my Linux system, but I could not get joy. I eventually found a clue about why the LaunchPad wouldn’t work and temporarily disconnected the serial port path from the chip, brought up the board, and put a tweaked version of the program into the chip that paused a few seconds before its spewage.

Coincidentally, a somewhat similar bug manifested in the Arduino Duo IDE when I had an application that output serial data in an uncoordinated fashion. In this case, the Java-based IDE crashed with an unkillable JVM process that hung the Linux USB device connected to the Arduino, forcing me to reboot my Linux system. I even had a case where the X11 session hung with a frozen mouse pointer and stopped keystroke echoes. Apart from a misbehaving NVidia graphics driver and power failures in the past (and a maddening keyboard “autorepeat” bug that I’ll be writing about later), my Linux system never goes down, and I never have to reboot for updates or package installs. So having to reboot Linux every few minutes while trying to figure out how to hold my face with the Arduino board and its IDE became obnoxious in short order. The two bugs below describe similar issues registered with the IDE’s developer bug database. I wish I could say anybody is doing anything about these bugs, even so far as explaining what’s really happening, how to work around them ,etc. Unfortunately these bugs are unloved, and my mail to the developer’s list pleading for more information was ignored.

Relevant Arduino IDE bug reports 1 and 2.

Leave a Reply

Your email address will not be published. Required fields are marked *