Device Signature 0x000000 Bootloader Atmega 1284P

Go To Last Post
8 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi,

First of all, I am quite a newbie with handling/programming AVR chips, so have some mercy if some questions or comments of mine seem stupid.

 

I tried to flash a new firmware onto my 3D printer controller board (Sanguino clone-based, Atmega 1284p), but I could get any sync via USB (avrdude: stk500_getsync(): not in sync). So I checked a bit around and figured that most likely the bootloader is somehow corrupted.

So I tried to flash a new bootloader. It did something, but apparently not the right thing. It ended up with a "content mismatch" error at the end.

I tried it again, but now I am stuck. Everytime I try to burn the bootloader, I get the error "Device signature 0x000000". I tried the board to be powered externally and not. I am using an ISP programmer ("mySmartUSB light").

 

Anybody got some ideas/suggestions for me?

 

PS: Here is the full log. Ah, and yes, since I was lazy, I used the Arduino IDE in order to try to burn the bootloader.

Arduino: 1.8.5 (Linux), Board: "Anet V1.0 (Optiboot)"

<<path>>/avrdude -C<<path>>/avrdude.conf -v -patmega1284p -cstk500v2 -P/dev/ttyUSB0 -e -Ulock:w:0x3F:m -Uefuse:w:0xFD:m -Uhfuse:w:0xDE:m -Ulfuse:w:0xD6:m 

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

         System wide configuration file is <<path>>/avrdude.conf"
         User configuration file is "<<path>>/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/ttyUSB0
         Using Programmer              : stk500v2
         Setting bit clk period        : 16.0
         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 : STK500V2
         Description     : Atmel STK500 Version 2.x firmware
         Programmer Model: STK500
         Hardware Version: 3
         Firmware Version Master : 2.10
         Topcard         : Unknown
         Vtarget         : 5.0 V
         SCK period      : 17.4 us
         Varef           : 0.0 V
         Oscillator      : Off

avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 1.00s

avrdude: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 1.00s

avrdude: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 1.00s

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.
avrdude: Device signature = 0x000000 (retrying)
Device signature = 0x000000
Device signature = 0x000000
Device signature = 0x000000
Device signature = 0x000000
avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
Device signature = 0x000000
avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

This problem sometimes happens because of an incorrect clock configuration.

 

Your lfuse setting is 0xD6 (full swing oscillator) while the default for Arduino is 0xFF (ext. crystal oscillator), IDK if this makes any difference, or if it is a characteristic of the Sanguino.

 

If for some reason the clock is not oscillating, you won't be able to program the chip.

 

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

but you may be able to use your Arduino to create a clock and inject it into the xtal1 pin to recover!

 

See tutorial on recovering the AVR that has lost its clock.

 

Jim

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Thank you for your answer. Well, I am not sure that this actually went through. Reading the lfuse, I get the following:

avrdude: reading lfuse memory:

Reading | ################################################## | 100% 0.33s

avrdude: writing output file "<stdout>"
:0100000000FF
:00000001FF

avrdude: safemode: hfuse reads as 0
avrdude: safemode: efuse reads as 0
avrdude: safemode: Fuses OK (E:00, H:00, L:00)

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

perhaps this may put some light on the issue:

https://github.com/SkyNet3D/anet-board

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I tried to flash a new firmware onto my 3D printer controller board (Sanguino clone-based, Atmega 1284p), but I could get any sync via USB (avrdude: stk500_getsync(): not in sync).

What was the command you issued which resulted in that message?

"Experience is what enables you to recognise a mistake the second time you make it."

"Good judgement comes from experience.  Experience comes from bad judgement."

"When you hear hoofbeats, think horses, not unicorns."

"Fast.  Cheap.  Good.  Pick two."

"Read a lot.  Write a lot."

"We see a lot of arses on handlebars around here." - [J Ekdahl]

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

joeymorin wrote:

I tried to flash a new firmware onto my 3D printer controller board (Sanguino clone-based, Atmega 1284p), but I could get any sync via USB (avrdude: stk500_getsync(): not in sync).

What was the command you issued which resulted in that message?

I basically just hit the "Upload" Button in the Arduino IDE.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

It ended up with a "content mismatch" error at the end.

What was the command you issued which resulted in that message?  What was the precise message?

 

Reading the lfuse, I get the following:

Show the command you used to get that output, and show the >>full<< output.

"Experience is what enables you to recognise a mistake the second time you make it."

"Good judgement comes from experience.  Experience comes from bad judgement."

"When you hear hoofbeats, think horses, not unicorns."

"Fast.  Cheap.  Good.  Pick two."

"Read a lot.  Write a lot."

"We see a lot of arses on handlebars around here." - [J Ekdahl]