Can‘t flash a Pro Micro


I hope it’s the right category.

I have problems flashing a pro micro.
Normaly my pro micros appear as ttyACM0 in Linux and I can flash them with avrdude without any problems. Now I have a pro micro that appears as hidraw1 and avrdude says that is no device.

Did anybody know what’s the problem and how to fix it?


I’m not much of a Linux guy but I have flashed some keyboards. While looking up what ttyACM0 and hidraw1 were to better understand the issue, I found some pages where some users were talking about issues with flashing / writing to devices.

This one is specifically about a keyboard arduino not showing up as ttyACM0 and has some information relating to that.

This one is mostly way over my head but is also about an arduino not showing up as ttyACM0 but it doesn’t mention keyboards - it does have more detail and a different resolution than the above, so might be worth a look. (What ended up working for that particular user is way at the bottom of the thread.)

What are you using to identify the device? Are you looking at inxi or lshw?


I just read through @Deadeye links, and the first one seems like the most likely case: basically the Arduino hasn’t been bootstrapped with the correct firmware… Without the correct firmware the system sees it as a raw device (hid = Hardware ID, raw = raw device, 01).

The second post that @Deadeye referenced, seems less likely for what you are seeing… Basically it comes down to this:

  1. Check to see if modem manager is running (ps -ef | grep modem)
  2. If you see /usr/sbin/modem-manager running, stop it using the command: service modemmanager stop

Then try again. The upshot of this is modem-manager is a service that monitors DBUS for serial devices, when it sees one it tries to initialize and manage it… Which is likely what is interfering with things.

But, given that the device name you are seeing is hidraw01, it doesn’t seem like modem-manager is the cause of this issue.

Oh, FWIW, in a former life I was an Linux administrator, and still use linux to this day… But, I have no experience with Arduino’s, so this is slightly new territory for me… But device handling is device handling. :wink:

1 Like

Ok thanks for the links I check this. Helps a lot thank you :blush:

Thank you for the explanation of this. With Linux you have never learned out :relaxed:

Edit: I just looked in /dev/ if it appears as ttyACM0 and it doesn’t. This way it always worked for me

:grinning_face_with_smiling_eyes: I also work with Linux about 15 years now and I never run in a problem like this. Damn good Linux :sweat_smile:

There have been quite a few changes to the device naming and mounting conventions over the last 20-ish years of linux… I remember back when the devices were just enumerated names like sdaXX, sdbXX, hdaXX, hdbXX, etc. Now it’s all handled by more intelligent hardware ID’s and UUID based device names. It took a while to get used to it, but it makes sense, even if it seems a little more obscure than it used to be.

Anyway, this situation makes sense since the Arduino isn’t identifying itself as an ACM device, linux can only assign it a raw device name based on it’s HID.