I can't upload to my Arduino UNO

I tried uploading some code to my Arduino UNO and I get this error message:

Sketch uses 5130 bytes (15%) of program storage space. Maximum is 32384 bytes.
Global variables use 267 bytes (13%) of dynamic memory, leaving 1781 bytes for local variables. Maximum is 2048 bytes.
Warning: programmer is not responding
Error: bootloader might be optiboot 4.4? Please use -x bootsize=

Error: unable to read signature data for part ATmega328P (rc = -1)
Error: unable to read signature data (rc = -1)
use -F to override this check
Error: protocol expects sync byte 0x14 but got 0xe0
Failed uploading: uploading error: exit status 1

It hasn't done this before when I uploaded code to it, what should I do?

Hi @Noaptea_Dansatoare. 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 > Preferences... (or Arduino IDE > Settings... for macOS users) from the Arduino IDE menus.
    The "Preferences" dialog will open.
  2. Uncheck the box next to Show verbose output during: compile in the "Preferences" dialog.
  3. Check the box next to Show verbose output during: ☐ upload.
  4. Click the "OK" button.
    The "Preferences" dialog will close.
  5. Attempt an upload, as you did before.
  6. Wait for the upload to fail.
  7. 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.
  8. Open a reply here on this forum topic by clicking the "Reply" button.
  9. 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.
  10. Press the Ctrl+V keyboard shortcut (Command+V for macOS users).
    This will paste the error output from the upload into the code block.
  11. Move the cursor outside of the code block markup before you add any additional text to your reply.
  12. Click the "Reply" button to publish the post.
Sketch uses 5130 bytes (15%) of program storage space. Maximum is 32384 bytes.
Global variables use 267 bytes (13%) of dynamic memory, leaving 1781 bytes for local variables. Maximum is 2048 bytes.
"C:\Users\nptdns\AppData\Local\Arduino15\packages\MiniCore\tools\avrdude\8.0-arduino.1/bin/avrdude" "-CC:\Users\nptdns\AppData\Local\Arduino15\packages\MiniCore\tools\avrdude\8.0-arduino.1/etc/avrdude.conf" -v -V -patmega328p -curclock -PCOM3 -b115200 -D -xnometadata "-Ueeprom:w:C:\Users\nptdns\AppData\Local\arduino\sketches\D94BAE26C110680506C024430865388A/Program_ingrijitor_de_floare.ino.eep:i" "-Uflash:w:C:\Users\nptdns\AppData\Local\arduino\sketches\D94BAE26C110680506C024430865388A/Program_ingrijitor_de_floare.ino.hex:i"
Avrdude version 8.0-arduino.1
Copyright see https://github.com/avrdudes/avrdude/blob/main/AUTHORS

System wide configuration file is C:\Users\nptdns\AppData\Local\Arduino15\packages\MiniCore\tools\avrdude\8.0-arduino.1\etc\avrdude.conf

Using port            : COM3
Using programmer      : urclock
Setting baud rate     : 115200
AVR part              : ATmega328P
Programming modes     : SPM, ISP, HVPP, debugWIRE
Programmer type       : Urclock
Description           : Urboot bootloaders using urprotocol
Protocol              : STK500v1 skeleton

AVR device initialized and ready to accept instructions
Device signature = 1E 95 0F (ATmega328P, ATA6614Q, LGT8F328P)

Processing -U eeprom:w:C:\Users\nptdns\AppData\Local\arduino\sketches\D94BAE26C110680506C024430865388A/Program_ingrijitor_de_floare.ino.eep:i
Warning: no eeprom data found in Intel Hex file C:\Users\nptdns\AppData\Local\arduino\sketches\D94BAE26C110680506C024430865388A/Program_ingrijitor_de_floare.ino.eep
Reading 0 bytes for eeprom from input file Program_ingrijitor_de_floare.ino.eep
in 0 sections of [0, -1]: 0 pages and 0 pad bytes
Writing 0 bytes to eeprom
Writing | ################################################## | 100% 0.00s
0 bytes of eeprom written

Processing -U flash:w:C:\Users\nptdns\AppData\Local\arduino\sketches\D94BAE26C110680506C024430865388A/Program_ingrijitor_de_floare.ino.hex:i
Reading 5130 bytes for flash from input file Program_ingrijitor_de_floare.ino.hex
in 1 section [0, 0x1409]: 41 pages and 118 pad bytes
Error: protocol expects OK byte 0x10 but got 0x00 in ur_readEF()
Preparing flash input for device bootloader
5376 bytes in 2 sections of [0, 0x7dff]: 42 pages and 0 pad bytes
Writing 5376 bytes to flash
Writing | -------------------------------------------------- | 0% 0.00s
Error: protocol expects sync byte 0x14 but got 0x00 in urclock_load_baddr()
Error: bootloader does not implement bytewise write to flash 
 *** failed
Error: unable to write flash (rc = -1)
Error: protocol expects sync byte 0x14 but got 0x00

Avrdude done.  Thank you.
Failed uploading: uploading error: exit status 1
````Use code tags to format code for the forum`

I tried again and now I've got a different error message:

Sketch uses 5130 bytes (15%) of program storage space. Maximum is 32384 bytes.
Global variables use 267 bytes (13%) of dynamic memory, leaving 1781 bytes for local variables. Maximum is 2048 bytes.
"C:\Users\nptdns\AppData\Local\Arduino15\packages\MiniCore\tools\avrdude\8.0-arduino.1/bin/avrdude" "-CC:\Users\nptdns\AppData\Local\Arduino15\packages\MiniCore\tools\avrdude\8.0-arduino.1/etc/avrdude.conf" -v -V -patmega328p -curclock -PCOM3 -b115200 -D -xnometadata "-Ueeprom:w:C:\Users\nptdns\AppData\Local\arduino\sketches\D94BAE26C110680506C024430865388A/Program_ingrijitor_de_floare.ino.eep:i" "-Uflash:w:C:\Users\nptdns\AppData\Local\arduino\sketches\D94BAE26C110680506C024430865388A/Program_ingrijitor_de_floare.ino.hex:i"
Avrdude version 8.0-arduino.1
Copyright see https://github.com/avrdudes/avrdude/blob/main/AUTHORS

System wide configuration file is C:\Users\nptdns\AppData\Local\Arduino15\packages\MiniCore\tools\avrdude\8.0-arduino.1\etc\avrdude.conf

Using port            : COM3
Using programmer      : urclock
Setting baud rate     : 115200
AVR part              : ATmega328P
Programming modes     : SPM, ISP, HVPP, debugWIRE
Programmer type       : Urclock
Description           : Urboot bootloaders using urprotocol
Protocol              : STK500v1 skeleton

AVR device initialized and ready to accept instructions
Error: protocol expects OK byte 0x10 but got 0x00 in ur_readEF()
Error: bootloader might be optiboot 4.4? Please use -x bootsize=<num>

Error: unable to read signature data for part ATmega328P (rc = -1)
Error: unable to read signature data (rc = -1)
use -F to override this check
Error: protocol expects sync byte 0x14 but got 0x00

Avrdude done.  Thank you.
Failed uploading: uploading error: exit status 1

Search on the "Error:..." lines. Many have no solution, some do.

It's not immediately obvious to me why you'd want to use the MiniCore platform for an Uno (presumably R3). Could you explain why you have chosen this over the usual Arduino AVR Boards -> Arduino Uno? Have you replaced the usual Optiboot bootloader with a URBoot version?

1 Like