Pro Micro Ubuntu errors

Hi. I have a project involvin a cheap chinese pro micro. using a clean ubuntu 19.04 with vscode.

Uploading the code onto an arduino uno (also clone) works.

But if i try uploading it onto a pro micro i get an upload error.
short version without duplicates: https://pastebin.com/D8hTD3C1

After adding the following to mz udev rules
SUBSYSTEMS==“usb”, ATTRS{idVendor}==“1b4f”, ATTRS{idProduct}==“9206”, MODE:=“0666”
SUBSYSTEMS==“usb”, ATTRS{idVendor}==“1b4f”, ATTRS{idProduct}==“9205”, MODE:=“0666”

i still get errors: > Executing task in folder rc-esc: platformio run --target upload <Processin - Pastebin.com

help appreciated

  • full platfromio.ini?
  • are you sure you have the 5V 16MHz version of the pro micro (check pin voltage and text on the crystal)
  • does uploading work with the Arduino IDE? What exact upload and compile settings are used there?
1 Like

Also https://www.reddit.com/r/olkb/comments/bv22kj/unable_to_flash_pro_micro/ and [Solved] Sketch upload problem under manjaro linux! - #10 by Electro-l.i.b - Help & Information - Arduboy suggest that killing the modem manager might help.

2 Likes

First point of call with Arduino Micro on linux errors should be the ModemManager… it’s an ugly beast. Doing …

sudo systemctl stop ModemManager.service

… will temporarily put at stop to it until you next reboot or restart the service… and will tell you quickly enough if it’s the culprit. If so, you can either disable the service, as you don’t need it unless you basically don’t need it unless you use a plug in modem, or you can add

ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"

to that udev rule. I would also question the VID:PID pair used… as if it’s a Pro Micro clone… unless yours is different, it may be using the Arduino 2341 vendor ID (I know mine did).

i.e. this udev rule provided with platformio (modified to include the MM_IGNORES) should apply to all arduino boards…

# Arduino boards
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="[08][02]*", MODE:="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2a03", ATTRS{idProduct}=="[08][02]*", MODE:="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"

But if yours actually use the sparkfun 0x1B4F VID… this should apply their products.

# Sparkfun 3v3 and 5v Pro Micros
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1B4F", ATTRS{idProduct}=="920[3456]", MODE:="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
# Sparkfun Fio V3
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1B4F", ATTRS{idProduct}=="F10[01]", MODE:="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"

1 Like

Thank you soooo much. I had this problem so often using different linux distros and nearly gave up on booting into linux for platformio!!!
:smiley:

1 Like