Burning a Bootloader onto my Ender 3 Pro using a cheap UNO clone

Hi

In the last two days I tried to get a bootloader onto my Ender 3 Pro. I run into many problems, solved many, but can’t seem to succeed. I’m rather new ino electronics/programming so I followed the steps outlined in tutorials rather blindly.

The turorial I used
The one I mostly relied on was this one:
Tutorial

Which Arduino do I use
I use a WAVGATE Arduino from Aliexpress. I didn’t notice it’s a knock-off similar of a UNO R3. I set it up and it works now. I did the blinking sketch and I can upload the ArduinoISP sketch onto it.

How do I upload to Bootloader onto the UNO
I select the WAVGATE R3 board and the corresponding port. Upload works.

So where is the problem?
I cannot flash the bootloader onto the Ender 3 Pro. This error message shows up:

Arduino: 1.8.5 (Mac OS X), Board: “Sanguino, ATmega1284 or ATmega1284P (16 MHz)”

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.

Fehler beim Brennen des Bootloaders.

Did you dissable the auto-reset?
Yes, after a while I tried that. I put in a 10uF between GND and RST (long leg to GND). The error message got shorter.

avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.

How did you connect the wires?

Ender 3 (Melzi) -----> UNO clone

MISO ----------------> MISO
5V -------------------> 5V
SCK -----------------> SCK
MOSI ---------------> MOSI
GND ----------------> GND
RESET --------------> Digital Pin 10

I tripple-checked and even exchanged all wires. The blue lamp is lighting up on the ender. I attached a photo of the wireing.

What seetings were you using to burn the bootloader?

I connected the Melzi board and the UNO with an USB-Cable to my Mac. I tried the following steps with or without the 10uF cap.

In “Tools/Board” I’ve chose “Sanguino”, selected processor “ATmega1284 or ATmega1284p (16MHz)” and appropriate com port of the Arduino clone. Next, I selected programmer option “Arduino as ISP” and clicked on “Burn Bootloader”.

Any suggestions on how to proceed? :confused:
Thank you already for your help!

Try enabling verbose upload in the IDE settings and post the entire avrdude log. Lots of information is hidden by default.

BTW the Sanguino source code is very outdated. Not sure why you would use that when you can use MightyCore with the Sanguino pinout selected.

I used Sanguino as they use it in the tutorial - I will read into it now. Those are the full logs I get.

  1. Without cap 10uF
Arduino: 1.8.5 (Mac OS X), Board: "Sanguino, ATmega1284 or ATmega1284P (16 MHz)"

/Applications/Arduino.app/Contents/Java/hardware/tools/avr/bin/avrdude -C/Applications/Arduino.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf -v -patmega1284p -cstk500v1 -P/dev/cu.wchusbserial1420 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0xFD:m -Uhfuse:w:0xDE:m -Ulfuse:w:0xFF:m 

avrdude: Version 6.3, compiled on Jan 17 2017 at 12:01:35
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "/Applications/Arduino.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf"
         User configuration file is "/Users/tomlee/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/cu.wchusbserial1420
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
         AVR Part                      : ATmega1284P
         Chip Erase delay              : 55000 us
         PAGEL                         : PD7
         BS2                           : PA0
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    10   128    0 no       4096    8      0  9000  9000 0xff 0xff
           flash         65    10   256    0 yes    131072  256    512  4500  4500 0xff 0xff
           lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00

         Programmer Type : STK500
         Description     : Atmel STK500 Version 1.x firmware
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.08s

avrdude: Device signature = 0xffffff (probably .reduced_core_tiny) (retrying)

Reading | ################################################## | 100% 0.08s

avrdude: Device signature = 0xffffff (probably .reduced_core_tiny) (retrying)

Reading | ################################################## | 100% 0.08s

avrdude: Device signature = 0xffffff (probably .reduced_core_tiny)
avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.

Error while burning bootloader.
  1. With a cap 10uF while burning (even necessary?)
Arduino: 1.8.5 (Mac OS X), Board: "Sanguino, ATmega1284 or ATmega1284P (16 MHz)"

/Applications/Arduino.app/Contents/Java/hardware/tools/avr/bin/avrdude -C/Applications/Arduino.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf -v -patmega1284p -cstk500v1 -P/dev/cu.wchusbserial1420 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0xFD:m -Uhfuse:w:0xDE:m -Ulfuse:w:0xFF:m 

avrdude: Version 6.3, compiled on Jan 17 2017 at 12:01:35
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "/Applications/Arduino.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf"
         User configuration file is "/Users/tomlee/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/cu.wchusbserial1420
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
         AVR Part                      : ATmega1284P
         Chip Erase delay              : 55000 us
         PAGEL                         : PD7
         BS2                           : PA0
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    10   128    0 no       4096    8      0  9000  9000 0xff 0xff
           flash         65    10   256    0 yes    131072  256    512  4500  4500 0xff 0xff
           lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00

         Programmer Type : STK500
         Description     : Atmel STK500 Version 1.x firmware
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.08s

avrdude: Device signature = 0xffffff (probably .reduced_core_tiny) (retrying)

Reading | ################################################## | 100% 0.08s

avrdude: Device signature = 0xffffff (probably .reduced_core_tiny) (retrying)

Reading | ################################################## | 100% 0.08s

avrdude: Device signature = 0xffffff (probably .reduced_core_tiny)
avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.

Error while burning bootloader.
  1. I tried it with Mightycore and Sanguino pinout:
Arduino: 1.8.5 (Mac OS X), Board: "ATmega1284, Sanguino, 1284P, 2.7v, Disabled (default), 16 MHz external"

/Users/tomlee/Library/Arduino15/packages/arduino/tools/avrdude/6.3.0-arduino14/bin/avrdude -C/Users/tomlee/Library/Arduino15/packages/MightyCore/hardware/avr/2.0.1/avrdude.conf -v -patmega1284p -cstk500v1 -P/dev/cu.wchusbserial1420 -b19200 -e -Ulock:w:0x3f:m -Uefuse:w:0xfd:m -Uhfuse:w:0xd6:m -Ulfuse:w:0xf7:m 

avrdude: Version 6.3-20171130
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "/Users/tomlee/Library/Arduino15/packages/MightyCore/hardware/avr/2.0.1/avrdude.conf"
         User configuration file is "/Users/tomlee/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/cu.wchusbserial1420
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
         AVR Part                      : ATmega1284P
         Chip Erase delay              : 55000 us
         PAGEL                         : PD7
         BS2                           : PA0
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    10   128    0 no       4096    8      0  9000  9000 0xff 0xff
           flash         65    10   256    0 yes    131072  256    512  4500  4500 0xff 0xff
           lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00

         Programmer Type : STK500
         Description     : Atmel STK500 Version 1.x firmware
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.08s

avrdude: Device signature = 0xffffff (retrying)

Reading | ################################################## | 100% 0.08s

avrdude: Device signature = 0xffffff (retrying)

Reading | ################################################## | 100% 0.08s

avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.

Error while burning bootloader.

On my Arduino UNO i have to use a 10uF capacitor between RST and GND. However I definitely recommend you to get a dedicated programmer such as USBasp or USBtinyISP. Much less trouble with these compared to Arduino as ISP.

As you can see in the log the device signature is 0xffffff. This means the slave device (ATmega1284p) does not respond at all. It may be your wiring, but it may also be the external oscillator. If you have an oscilloscope you can check the oscillator by measuring the signal on the XTAL1 pin. It should be a steady 16 MHz sine wave.

The picture you posted doesn't really show how you wired the UNO to the target.

Thank you as well for your answer. Unfortunatly I don’t have a oscilloscope. I barely need any of this equiptment before.

I attached the picture of the wiring - do I have to turn on the power supply of the ender 3?

If the wiring is correct, the WAVGAT board should be supplying power to the Ender board. The only reason other than bad wiring that wouldn't work is if the Ender was drawing more current than the USB port on your computer can supply. However, I'd expect that to result in a different error message so I don't think that's an issue.

pert:
If the wiring is correct, the WAVGAT board should be supplying power to the Ender board. The only reason other than bad wiring that wouldn't work is if the Ender was drawing more current than the USB port on your computer can supply. However, I'd expect that to result in a different error message so I don't think that's an issue.

I also tried to power the WAVGAT directly, while still being connected via USB. Nothing seems to help..

I try it tomorrow again with shorter wires...they are 30cm at the moment

I actually fell in this kind of problem many times. but i found a way that works for me every time . At first you should do the connections . After connecting (without connecting Capacitor), upload the ArduinoISP code to uno. Then at programmer select - arduino as isp. then add the capacitor. cap[+] --RESET and cap[-] – GND. then burn bootloader…

alimranbd10:
I actually fell in this kind of problem many times. but i found a way that works for me every time . At first you should do the connections . After connecting (without connecting Capacitor), upload the ArduinoISP code to uno. Then at programmer select - arduino as isp. then add the capacitor. cap[+] --RESET and cap[-] -- GND. then burn bootloader....

Unfortunatly it didnt work as well. I orderd now a USBasp. Doesn't matter much as they are cheap but I still wonder what went wrong

Did you find a way to fix the problem ? I think i have the same.

I'm not able to load a bootloader on my ender, with USBasp or arduino, it 's the same. the ender3 is never recognize.

C:\Users\Chris\Desktop\TH3D_UFW_U1.R2.11\Windows Arduino\hardware\tools\avr/bin/avrdude -CC:\Users\Chris\Desktop\TH3D_UFW_U1.R2.11\Windows Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega1284p -carduino -PCOM21 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0xFD:m -Uhfuse:w:0xDE:m -Ulfuse:w:0xFF:m

avrdude: Version 6.3-20171130
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch

System wide configuration file is "C:\Users\Chris\Desktop\TH3D_UFW_U1.R2.11\Windows Arduino\hardware\tools\avr/etc/avrdude.conf"

Using Port : COM21
Using Programmer : arduino
Overriding Baud Rate : 19200
AVR Part : ATmega1284P
Chip Erase delay : 55000 us
PAGEL : PD7
BS2 : PA0
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :

Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack


eeprom 65 10 128 0 no 4096 8 0 9000 9000 0xff 0xff
flash 65 10 256 0 yes 131072 256 512 4500 4500 0xff 0xff
lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00

Programmer Type : Arduino
Description : Arduino
Hardware Version: 2
Firmware Version: 1.18
Topcard : Unknown
Vtarget : 0.0 V
Varef : 0.0 V
Oscillator : Off
SCK period : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0xffffff (probably .avr8x_mega) (retrying)

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0xffffff (probably .avr8x_mega) (retrying)

Erreur lors de la gravure de la séquence d'initialisation.
Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0xffffff (probably .avr8x_mega)
avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.

avrdude done. Thank you.