He guys, i bought atmega1284pu and i tried to boot bootloader but it didnt work. i was following these tutorials: http://maniacbug.wordpress.com/2011/11/27/arduino-on-atmega1284p-4/ http://wiki.wiring.co/wiki/Creating_your_own_Wiring_board_with_a_DIP_atmega1284p_using_Duemilanove I used arduino uno as isp but i get this error: avrdude: Device signature = 0x1e9706 avrdude: Expected signature for ATMEGA1284P is 1E 97 05 Double check chip, or use -F to override this check. Do you think the problem is that i have atmega1284pu and not atmega1284p? thanks for your answers :).
If I understand correctly, PU means "plastic DIP package" and P means "pico-power". The non-Pico-Power chip should be compatible with the Pico-Power version so all you should have to do is change the chip type in the boards.txt file to remove the 'p'. Then avrdude will be happy with the signature.
i understand what you mean but i dont know what to change.
1284-PU has signature bytes 0x1E 0x97 0x06 1284P-PU has signature bytes 0x1E 0x97 0x05
Find your copy of avrdude.conf, and copy the '1284P section, excerpted here:
#------------------------------------------------------------ # ATmega1284P #------------------------------------------------------------ # similar to ATmega164p part id = "m1284p"; desc = "ATMEGA1284P"; has_jtag = yes; stk500_devcode = 0x82; # no STK500v1 support, use the ATmega16 one avr910_devcode = 0x74; signature = 0x1e 0x97 0x05; pagel = 0xd7; bs2 = 0xa0; chip_erase_delay = 9000;
and edit it to take out the P from 1284P and change the signature bytes.
Then, do the same in boards.txt for 1284 vs 1284P.
thanks, i tried but when i changed avrdude.conf i get this error on arduino IDE:
syntax error at H:\Saved Documents\Mirko\arduino\arduino-1.0\hardware/tools/avr/etc/avrdude.conf:16934
i get this error when i change it and even when i dont. can anyone help?
could you send me changed avrdude.conf ,please. thanks
You are not able to copy the Entire 1284P section, add it to the bottom of the file, and change these few lines?
If this doesn’t work, then perhaps my approach is incorrect.
#------------------------------------------------------------ # ATmega1284P <<< ATmega1284 #------------------------------------------------------------ # similar to ATmega164p part id = "m1284p"; <<<< "m1284"; desc = "ATMEGA1284P"; <<<<"ATMEGA1284"; has_jtag = yes; stk500_devcode = 0x82; # no STK500v1 support, use the ATmega16 one avr910_devcode = 0x74; signature = 0x1e 0x97 0x05; <<<< 0x1e 0x97 0x06; : : // and copy the rest down to the start of the next section ...
everytime i change avrdude.conf i get error. the same as i show previosly. what abouth changing atmegaBOOT_1284p file. i tried it with .c file and nothing however there is still .hex file. Can anyone help, please. i spent all my money for 2 of these microcontrollers =( and now i cant control them. If they are gonna work i will make really cool robot(check out picture) 8).
I've been using the atmega1284 without issue (you like I did got the atmega1284-PU, not the atmega1284P-PU - Note that the PU specifies a DIP package and is nothing to do with the device).
All I had to do is to find the definition for ATmega1284P (just using CTRL-F), and change the signature to:
signature = 0x1e 0x97 0x06;
Then I used the IDE to burn a version of optiboot bootloader compiled for the mega1284p
Then once the bootloader was burned I changed the signature back to: signature = 0x1e 0x97 0x05;
It works a treat for me.
If you let me know what clock frequency you plan to use, I will compile an optiboot hex file for you. Note that the version I modified uses UART1 for programming.
I should mention that I used the standard Arduino core, but modified wiring_analog.c to support the 1284p (It still works fine with all the other arduino’s).
I have also attached the Pins_arduino.h file I have been using which shows in it a pin map for the DIP package - this is the pins_arduino file from here: GitHub - stevemarple/Calunium: Arduino clone based on the ATmega644P/ATmega1284P
To speed things up, I have also attached two versions of Optiboot - one compiled for 16MHz, the other for 20MHz (I have an 8MHz version as well if you prefer). These run at 115200 Baud using UART1, and PD7 for the status LED (Digital pin 23, or IC pin 21).
wiring_analog.c (7.38 KB)
pins_arduino.h (6.25 KB)
optiboot_atmega1284_16.hex (1.38 KB)
optiboot_atmega1284_20.hex (1.38 KB)
im so excited but i go sleep i will write tommorow. thank you XD :sweat_smile: :)
i replaced wiring_anolg.c and pins_arduino.h but i dont know where i have to change signature, what file?
The signature is changed in:
If you are using Windows, I think it is located at:
(if it is not there, just search for the file name)
For Mac it is located at:
(Click the desktop, then:) Go->“Go To Folder…”
Done burning bootloader. best sentsnce ever :D. thanks man but i cannot upload program i tried both uarts and nothing. i also changed baud rate to 115200. didnt help. BTW there is original atmega1284p on 16mhz bootloader. any solution?
Could you post the lines you added to the boards.txt file?
i just chaged the number. but that is not problem because i tried it also with original baud rate and it didnt work either.
I meant the whole entry.
Here is mine for comparison:
cube1284p_16.name=Cube 1284/1284P (PCB, 16MHz) cube1284p_16.upload.protocol=arduino cube1284p_16.upload.maximum_size=130560 cube1284p_16.upload.speed=115200 cube1284p_16.bootloader.low_fuses=0xFF cube1284p_16.bootloader.high_fuses=0xDE cube1284p_16.bootloader.extended_fuses=0xFD cube1284p_16.bootloader.path=optiboot cube1284p_16.bootloader.file=optiboot_atmega1284_16.hex cube1284p_16.bootloader.unlock_bits=0x3F cube1284p_16.bootloader.lock_bits=0x0F cube1284p_16.build.f_cpu=16000000L cube1284p_16.build.core=arduino cube1284p_16.build.variant=Cube #Note that the MCU is given as atmega1284p even though you are using the atmega1284 cube1284p_16.build.mcu=atmega1284p
but it didnt work even when it wasnt changed.
mighty.name=Original Mighty 1284p 16MHz mighty.upload.protocol=stk500v1 mighty.upload.maximum_size=129024 mighty.upload.speed=115200 mighty.bootloader.low_fuses=0xff mighty.bootloader.high_fuses=0xdc mighty.bootloader.extended_fuses=0xfd mighty.bootloader.path=standard mighty.bootloader.file=ATmegaBOOT_1284P.hex mighty.bootloader.unlock_bits=0x3F mighty.bootloader.lock_bits=0x0F mighty.build.mcu=atmega1284p mighty.build.f_cpu=16000000L #mighty.build.core=arduino:arduino mighty.build.core=standard mighty.build.variant=standard
Have a look at these three lines, and compare them to mine.
mighty.bootloader.file=ATmegaBOOT_1284P.hex mighty.upload.protocol=stk500v1 mighty.bootloader.path=standard #This one as well, but actually it isn't that important (my setting saves you 1.5kB of program space) mighty.bootloader.extended_fuses=0xfd
everything is the same. here is record while uploading program i got.
Binary sketch size: 1,196 bytes (of a 129,024 byte maximum) E:\Downloads\arduino-1.0.1-windows\arduino-1.0.1\hardware/tools/avr/bin/avrdude -CE:\Downloads\arduino-1.0.1-windows\arduino-1.0.1\hardware/tools/avr/etc/avrdude.conf -v -v -v -v -patmega1284p -cstk500v1 -P\\.\COM5 -b115200 -D -Uflash:w:C:\Users\Miso\AppData\Local\Temp\build8097499639146430213.tmp\Blink.cpp.hex:i avrdude: Version 5.11, compiled on Sep 2 2011 at 19:38:36 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright (c) 2007-2009 Joerg Wunsch System wide configuration file is "E:\Downloads\arduino-1.0.1-windows\arduino-1.0.1\hardware/tools/avr/etc/avrdude.conf" Using Port : \\.\COM5 Using Programmer : stk500v1 Overriding Baud Rate : 115200 avrdude: Send: 0   avrdude: Send: 0   avrdude: Send: 0   avrdude: Recv: avrdude: stk500_getsync(): not in sync: resp=0x00 avrdude done. Thank you.