So I'm trying to build an Arduino Micro using a bread-board and through-hole components. I'm leaving out the voltage regulator and voltage selector (see schematic at the bottom for reference). I'm powering off of USB, so the +5V
line is connected to VUSB
.
I checked over the circuit many times, so I think it's okay. Below is a picture of me trying to use an Arduino Micro to load the bootloader on to the Atmega32U4:
Arduino Micro circuit
I looked here and here as references for trying to load the bootloader, but every time I try it gives me an error. It seems like the MCU is not being recognized. Has anyone tried this before, and successfully done it? I'd like some pointers as to how to achieve this.
EDIT: I've moved the crystal (and 22 pF cap's) closer to pins 16 and 17. The steps I take are:
- Upload "ArduinoISP" sketch to Arduino Micro (the "programmer").
- Select "Arduino Micro" as the board to be programmed.
- Select "Arduino as ISP (Atmega32U4)" as the programmer.
- Burn bootloader.
Here is the verbose output (compilation and upload):
Arduino: 1.6.12 (Windows 7), Board: "Arduino/Genuino Micro"
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega32u4 -carduino -PCOM5 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0xcb:m -Uhfuse:w:0xd8:m -Ulfuse:w:0xff:m
avrdude: Version 6.3, compiled on Sep 12 2016 at 17:24:16
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch
System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"
Using Port : COM5
Using Programmer : arduino
Overriding Baud Rate : 19200
AVR Part : ATmega32U4
Chip Erase delay : 9000 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 20 4 0 no 1024 4 0 9000 9000 0x00 0x00
flash 65 6 128 0 yes 32768 128 256 4500 4500 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
lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
signature 0 0 0 0 no 3 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.00s
avrdude: Device signature = 0xffffff (probably .reduced_core_tiny) (retrying)
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0xffffff (probably .reduced_core_tiny) (retrying)
Error while burning bootloader.
Reading | ################################################## | 100% 0.00s
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.
Arduino Micro schematic
-
3Are you sure you aren't trying to build a radio receiver?Ignacio Vazquez-Abrams– Ignacio Vazquez-Abrams10/29/2016 23:35:09Commented Oct 29, 2016 at 23:35
-
1My page about uploading bootloaders may help you.Nick Gammon– Nick Gammon ♦10/29/2016 23:41:55Commented Oct 29, 2016 at 23:41
-
21. Where is "here and here" ? 2. Edit question and show what commands or sequence you used for bootloader transfer. 3. What do you get when you try to read the fuses?James Waldby - jwpat7– James Waldby - jwpat710/29/2016 23:50:58Commented Oct 29, 2016 at 23:50
-
2Loading the "ArduinoISP" program on to the programmer (the Arduino Micro on the left side of my picture) works without errors. I then unplug it from my computer and hook it up as shown in the second link. I select "Arduino/Genuino Micro" as the Board. I select the port that the programmer (Arduino Micro) is connected to. I select "ArduinoISP" as the programmer. I press "Burn Bootloader". I get the following: avrdude: Error: Could not find USBtiny device (0x2341/0x49) Error while burning bootaloader.Max Jacob– Max Jacob10/30/2016 00:09:43Commented Oct 30, 2016 at 0:09
-
3Regardless if related to your present problem or not, you should put the crystal and its capacitors right at the relevant pins. The same goes for anything intended as a bypass capacitor.Chris Stratton– Chris Stratton10/30/2016 02:48:38Commented Oct 30, 2016 at 2:48
1 Answer 1
I select "ArduinoISP" as the programmer. I press "Burn Bootloader". I get the following: avrdude: Error: Could not find USBtiny device (0x2341/0x49) Error while burning bootaloader.
You need to select Arduino as ISP from the Tools> Programmer menu. ArduinoISP is a dedicated in system programmer made by Arduino, confusing because the name of the sketch used with Arduino as ISP is ArduinoISP.
If you're using Windows you'll also likely encounter the issue that ATmega32U4 based boards can't be used for Arduino as ISP. The cause of this is explained at https://petervanhoyweghen.wordpress.com/2012/09/16/arduinoisp-on-the-leonardo as well as a solution. Unfortunately the solution described in that blog post no longer works as-is with recent versions of the Arduino IDE. I have updated the solution to work with recent Arduino IDE versions and added support for installation via Boards Manager here: https://github.com/per1234/ATmega32U4asISP
-
I got the following message when trying the steps on the github page: Arduino: 1.6.12 (Windows 7), Board: "Arduino/Genuino Micro" avrdude: Yikes! Invalid device signature. Double check connections and try again, or use -F to override this check. Error while burning bootloader. This report would have more information with "Show verbose output during compilation" option enabled in File -> Preferences.Max Jacob– Max Jacob10/30/2016 01:44:45Commented Oct 30, 2016 at 1:44
-
@MaxJacob, I'm imagining the Arduino Micro auto-resets when you start a download to it. If that is the case you need to disable the auto-reset after you download ArduinoISP to the Micro. The Micro should remain connected to your host computer (that runs Arduino IDE) when you click Tools, Burn Bootloader to copy the bootloader to your target system. The IDE will send the Bootloader to the Micro, and the Micro will send it on to your target system. Note, if you have other working Arduinos, use one to practice download/bootload process, in case your target system is just not working.James Waldby - jwpat7– James Waldby - jwpat710/30/2016 02:11:34Commented Oct 30, 2016 at 2:11
-
@jwpat7 I disabled auto-reset (placed 120 Ohm resistor between
5V
andReset
) after uploading the Sketch, but I still get the same error when try to burn the bootloader. Sadly, I do not have any extra Arduinos around.Max Jacob– Max Jacob10/30/2016 02:43:22Commented Oct 30, 2016 at 2:43 -
I want to zone in on why I'm having these issues. What is the simplest circuit necessary to burn the bootloader to the ATmega32U4 using an Arduino Micro (using "Arduino as ISP") as the programmer?Max Jacob– Max Jacob10/30/2016 21:38:50Commented Oct 30, 2016 at 21:38
-
If you have the correct board selected then usually the "invalid device signature" error indicates a wiring problem. If you have verbose output during upload enabled in File > Preferences you can see the actual signature that was read. What was it? It's probably helpful if you would edit your question to add the steps you used to do the Burn Bootloader and full verbose output from the console to your question so that all the information is located in one place instead of spread out over multiple comment threads. I agree with Chris Stratton about the crystal being too far away.per1234– per123410/31/2016 00:20:37Commented Oct 31, 2016 at 0:20
Explore related questions
See similar questions with these tags.