When I first started using them, I did have a little trouble uploading code to the Sparkfun Pro Micro, under Ubuntu 14.04LTS, using the Arduino IDE 1.6.8.
The Pro Micro board definitions were installed as detailed in the Sparkfun guide for linux but the board just gave the same error every time I tried to upload:
A little googling did suggest that modemmanager
might be capturing that particular serial device and while I was unhappy with the idea of just uninstalling modemmanager as a way of solving it (I’m assuming that it’s normally useful when using modems!), I did also find a suggested way of stopping modemmanager
from interfering in specific arduino devices.
Although this didn’t work directly, I did find enough information in checking if this was the problem to confirm that it was definitely modemmanager
that was at fault.
By running: tail -f /var/log/syslog
while plugging in the Pro-Micro, I could see the culprit capturing the device:
So although ModemManger
was unable to understand the device, it was still happy to hold on to it, an keep the serial port busy.
Fortunately, the syslog nicely contains the idVendor
required to tell ModemManger to ignore it, so adding the line: ATTRS{idVendor}=="1b4f", ENV{ID_MM_DEVICE_IGNORE}="1"
in the correct position in the udev rules will do that.
1b4f
is the vendor ID for Sparkfun, so this setting will apply to any USB device from them.
Run:
to append that entry to the arduino.rules
file (if it exists) and run:
to re-read the rules.
Then plugging in the Sparkfun board and watching the syslog should show nothing beyond the mtp-probe
lines, and specifically nothing from ModemManager. Job done.