Does anyone have the variant files for the new IDE 1.0.1 for the 44 pin Mega644?
Try here
and also see one of my recent TQFP cards here
http://www.crossroadsfencing.com/BobuinoRev17/
644P is 1284P with 1/2 the memory
but higher cost! Go figure
Thanks. That looks like an almost match for what I need.
The bootloader expects to see a 1284 and I have a lot of 644 hardware. So I'll need to alter the boot code.
Can you tell me how to recompile the boot code on a Windows PC?
Not sure how to go about it.
What you need to is look at what maniacbug did for the 1284
The difference between the two is the signature bytes, and the smaller memory of the 644.
Make a new boards.txt file with the 644 details.
I would have said update avrdude.conf with the signature bytes, looking at my copy I see Atmega644 & 644P in there already.
c:\Arduino-1.0\hardware\tools\avr\etc
Not sure if I did that or if 1.0 alreay had it.
Here's the start of the sections in avrdude.conf:
#------------------------------------------------------------
# ATmega644
#------------------------------------------------------------
# similar to ATmega164
part
id = "m644";
desc = "ATMEGA644";
has_jtag = yes;
stk500_devcode = 0x82; # no STK500v1 support, use the ATmega16 one
avr910_devcode = 0x74;
signature = 0x1e 0x96 0x09;
pagel = 0xd7;
bs2 = 0xa0;
chip_erase_delay = 9000;
#------------------------------------------------------------
# ATmega644P
#------------------------------------------------------------
# similar to ATmega164p
part
id = "m644p";
desc = "ATMEGA644P";
has_jtag = yes;
stk500_devcode = 0x82; # no STK500v1 support, use the ATmega16 one
avr910_devcode = 0x74;
signature = 0x1e 0x96 0x0a;
pagel = 0xd7;
bs2 = 0xa0;
chip_erase_delay = 9000;
Thanks for that.
What I don't know how to do is compile it. How do I execute the makefile?
I don't think my PC is set up to just type in make from the bootloader folder. What needs to be set up for make to work?
Is make the best choice? I have heard of cmake?
I think you may be overthinking this.
As I said, a lot of stuff exists already.
Install maniabug's Mighty1284 files:
Add this to the boards.txt file:
mega644.name=Mega644
mega644.upload.protocol=arduino
mega644.upload.maximum_size=64512
mega644.upload.speed=115200
mega644.bootloader.low_fuses=0xff
mega644.bootloader.high_fuses=0xde
mega644.bootloader.extended_fuses=0xfd
mega644.bootloader.path=optiboot
mega644.bootloader.file=optiboot_atmega1284p.hex
mega644.bootloader.unlock_bits=0x3F
mega644.bootloader.lock_bits=0x0F
mega644.build.mcu=atmega644
mega644.build.f_cpu=16000000L
#mega644.build.core=arduino:arduino
mega644.build.core=standard
mega644.build.variant=bobuino
##############################################################
Restart the IDE, and Mega644P will show up under Tools:Board.
Select that, compile your sketch, download.
I don't have any 644's to try this with, but it compiled ok for me.
If you need 644P instead, then make similar change with the P added.
The pinout comes from Bobuino/pins_arduino.h
You can use 'standard' or 'avr-developers' instead.
Look at the different pins_arduino.h to see the differences.
So, what do I do about a boot loader? I have tried an omniboot version for the 644 and it doesn't work. The bootl loader that comes with the maniac guy's code doesn't like the 644's signature bytes.
I feel that one way to solve this problem is to have control over the boot code, and that means compiling it myself.
I wrote a boot loader that works well with Arduino021, but it doesn't talk to Arduino1.0.1 either. That was two years ago and I forgot how I did it. I need a memory jog here.
So what'do I do? I keep asking for help on how to set up an environment for compiling a boot loader until I find one.
I see that this thread has moved from asking for variant files to this, so maybe I should start a new thread?
Apparently, I am asking for something that this forum is not allowed to provide.
http://arduino.cc/forum/index.php/topic,53319.0.html
Oh, the forum can definitely provide it. Just haven't reached the right eyes yet.
I thought for sure what I had suggested would work as both ATMega644 and ATMega644P are defined in avrdude.conf, and that's where the signature bytes are.
Have you tried adjusting the communication speed? Maybe that is all that is needed.
I have not made a bootloader myself.
Have you looked at Nick Gammon's bootloader page?
Have you tried using the Sanguino bootloader?
http://sanguino.cc/start