Digispark/pro micro support?

Hi folks, so I haven’t programed a Digispark for ages, and have run into problems!
Followed all the known workarounds that I can find, including here, which is the furthest I have got before getting an error. Tried to install teh ATtinymodern core but still no luck.
Plugging the digispark in starts the uploading process but then it just times out.

Also tried the Pro Micro 2 boards for the first time and whilst I get them into debug, IDE tells me COM3 is tied up. Well yes, by the pic micro 2 LOL… (I did the trick where you plug in and quickly change to com3 withing the 8 seconds as most sources suggest!

I just need a controller that has keyboard emulation right now and it’s doing my head in :-(

Hi @mil24.

I'm not sure whether it will help, but you can try using the libusbK driver with the Digispark. That is the driver I use and I have no problems uploading to my Digispark board.

  1. Download the Zadig driver installation tool from this website:
    http://zadig.akeo.ie/
  2. Connect the Digispark to the computer with a USB cable.
  3. Run the downloaded file to start Zadig.
    The "Zadig" window will open.
  4. Open the menu in the Zadig window.
  5. Look for an item in the menu for the USB device produced by the Digispark. If you don't see an item in the menu, then select Options > List all devices from the Zadig menus and check again.
  6. Select the item in the menu for the Digispark.
  7. Verify that the "USB ID" field in the Zadig window shows 16D0:0753.
    This is done to ensure you selected the correct item from the menu.
  8. Select "libusbK" from the driver menu in the Zadig window.
  9. Click the "Install Driver" button.
  10. Wait for the installation to finish.
  11. Unplug the USB cable from the Digispark.
  12. Connect the Digispark to the computer with a USB cable.

Now try uploading again, just as you did before when you encountered the timeout problem. Hopefully it will be successful this time.

Are you saying the name of the board is "Pro Micro 2"? I've never heard of a board of that name. Please provide a link to the product listing for the board.

I'm going to ask you to provide the full verbose output from an upload attempt.


:red_exclamation_mark: This procedure is not intended to solve the problem. The purpose is to gather more information.


Please do this:

  1. Select File > New Sketch from the Arduino IDE menus.
    This is done to get a known good sketch to use for the upload.
  2. Select File > Preferences... (or Arduino IDE > Settings... for macOS users) from the Arduino IDE menus.
    The "Preferences" dialog will open.
  3. Uncheck the box next to Show verbose output during: compile in the "Preferences" dialog.
  4. Check the box next to Show verbose output during: ☐ upload.
  5. Click the "OK" button.
    The "Preferences" dialog will close.
  6. Connect the "Pro Micro 2" board to your computer with a USB cable.
  7. Select the appropriate board from Arduino IDE's Tools > Board menu.
  8. Select the port of the "Pro Micro 2" board from Arduino IDE's Tools > Port menu.
  9. Attempt an upload, as you did before.
  10. Wait for the upload to fail.
  11. You will see an "Upload error: ..." notification at the bottom right corner of the Arduino IDE window. Click the "COPY ERROR MESSAGES" button on that notification.
  12. Open a reply here on this forum topic by clicking the "Reply" button.
  13. Click the <CODE/> icon on the post composer toolbar.
    This will add the forum's code block markup (```) to your reply to make sure the error messages are correctly formatted.
  14. Press the Ctrl+V keyboard shortcut (Command+V for macOS users).
    This will paste the error output from the upload into the code block.
  15. Move the cursor outside of the code block markup before you add any additional text to your reply.
  16. Click the "Reply" button to publish the post.

Apologies, it’s a 32u4 micro on a small dev board :-)

Hi, here is your request. It’s weird, I have managed to program at work but not at home!

So I have tried changing the port assignment in Device Manager, to a free port, and this has made no difference!

FQBN: SparkFun:avr:promicro:cpu=16MHzatmega32U4
Using board 'promicro' from platform in folder: C:\Users\olly-\AppData\Local\Arduino15\packages\SparkFun\hardware\avr\1.1.13
Using core 'arduino' from platform in folder: C:\Users\olly-\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.7

Detecting libraries used...
C:\Users\olly-\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega32u4 -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_PROMICRO -DARDUINO_ARCH_AVR -DUSB_VID=0x1b4f -DUSB_PID=0x9206 -DUSB_MANUFACTURER="Unknown" -DUSB_PRODUCT="SparkFun Pro Micro" -IC:\Users\olly-\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.7\cores\arduino -IC:\Users\olly-\AppData\Local\Arduino15\packages\SparkFun\hardware\avr\1.1.13\variants\promicro C:\Users\olly-\AppData\Local\arduino\sketches\926BD569CDCB85816424C2B580666019\sketch\sketch_feb28a.ino.cpp -o nul
Generating function prototypes...
C:\Users\olly-\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega32u4 -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_PROMICRO -DARDUINO_ARCH_AVR -DUSB_VID=0x1b4f -DUSB_PID=0x9206 -DUSB_MANUFACTURER="Unknown" -DUSB_PRODUCT="SparkFun Pro Micro" -IC:\Users\olly-\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.7\cores\arduino -IC:\Users\olly-\AppData\Local\Arduino15\packages\SparkFun\hardware\avr\1.1.13\variants\promicro C:\Users\olly-\AppData\Local\arduino\sketches\926BD569CDCB85816424C2B580666019\sketch\sketch_feb28a.ino.cpp -o C:\Users\olly-\AppData\Local\Temp\101540743\sketch_merged.cpp
C:\Users\olly-\AppData\Local\Arduino15\packages\builtin\tools\ctags\5.8-arduino11/ctags -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives C:\Users\olly-\AppData\Local\Temp\101540743\sketch_merged.cpp

Compiling sketch...
"C:\Users\olly-\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega32u4 -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_PROMICRO -DARDUINO_ARCH_AVR -DUSB_VID=0x1b4f -DUSB_PID=0x9206 "-DUSB_MANUFACTURER="Unknown"" "-DUSB_PRODUCT="SparkFun Pro Micro"" "-IC:\Users\olly-\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.7\cores\arduino" "-IC:\Users\olly-\AppData\Local\Arduino15\packages\SparkFun\hardware\avr\1.1.13\variants\promicro" "C:\Users\olly-\AppData\Local\arduino\sketches\926BD569CDCB85816424C2B580666019\sketch\sketch_feb28a.ino.cpp" -o "C:\Users\olly-\AppData\Local\arduino\sketches\926BD569CDCB85816424C2B580666019\sketch\sketch_feb28a.ino.cpp.o"
Compiling libraries...
Compiling core...
Using precompiled core: C:\Users\olly-\AppData\Local\arduino\cores\SparkFun_avr_promicro_cpu_16MHzatmega32U4_12eea0885d7c00b4ca4847097ef3c415\core.a
Linking everything together...
"C:\Users\olly-\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-gcc" -w -Os -g -flto -fuse-linker-plugin -Wl,--gc-sections -mmcu=atmega32u4 -o "C:\Users\olly-\AppData\Local\arduino\sketches\926BD569CDCB85816424C2B580666019/sketch_feb28a.ino.elf" "C:\Users\olly-\AppData\Local\arduino\sketches\926BD569CDCB85816424C2B580666019\sketch\sketch_feb28a.ino.cpp.o" "C:\Users\olly-\AppData\Local\arduino\sketches\926BD569CDCB85816424C2B580666019/..\..\cores\SparkFun_avr_promicro_cpu_16MHzatmega32U4_12eea0885d7c00b4ca4847097ef3c415\core.a" "-LC:\Users\olly-\AppData\Local\arduino\sketches\926BD569CDCB85816424C2B580666019" -lm
"C:\Users\olly-\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-objcopy" -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 "C:\Users\olly-\AppData\Local\arduino\sketches\926BD569CDCB85816424C2B580666019/sketch_feb28a.ino.elf" "C:\Users\olly-\AppData\Local\arduino\sketches\926BD569CDCB85816424C2B580666019/sketch_feb28a.ino.eep"
"C:\Users\olly-\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-objcopy" -O ihex -R .eeprom "C:\Users\olly-\AppData\Local\arduino\sketches\926BD569CDCB85816424C2B580666019/sketch_feb28a.ino.elf" "C:\Users\olly-\AppData\Local\arduino\sketches\926BD569CDCB85816424C2B580666019/sketch_feb28a.ino.hex"
"C:\Users\olly-\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-size" -A "C:\Users\olly-\AppData\Local\arduino\sketches\926BD569CDCB85816424C2B580666019/sketch_feb28a.ino.elf"
Sketch uses 3460 bytes (12%) of program storage space. Maximum is 28672 bytes.
Global variables use 149 bytes (5%) of dynamic memory, leaving 2411 bytes for local variables. Maximum is 2560 bytes.
Error: cannot open port \.\COM3: Access is denied.

Error: unable to open port COM3 for programmer avr109
Failed uploading: uploading error: exit status 1```

You can see in the screenshot, com3 in bootloader mode and com7 in ordinary running mode.
Only difference is my work PC might have shown the device as Micronucleus where as I cannot see this in the list of USB devices :-/ I used Zadig to install drivers…

This error can occur when the port is open in another application. Only one application can have a serial port open at a time so Arduino IDE can't perform an upload under these conditions.

Check to see whether you have any applications running on your computer that might use the port. If they are, close them and then try the upload again.

If there aren't any other applications using the port, add a reply here on this forum topic to let us know and we'll suggestion for other possible resolutions.

Definitely no other ports in conflict no! I tried upgrading IDE to 238 and the error has changed again, so Might try rolling back a couple of cores maybe?

Error: cannot open port \.\COM3: The system cannot find the file specified.

Error: unable to open port COM3 for programmer avr109
Failed uploading: uploading error: exit status 1

I suppose the alternative is to use my works pickit 4 to program the micro, would just rather do this through IDE as I have more choices between home and work…