Atmega644P running Arduino IDE
Here is an Atmega644P board you can get. It can be used as a Sanguino.
I found the arduino compatible board below which additionally has the possibility of having a 40 pin compatible microprocessor socket. This is ideal to be able to use the ATMega644P or the Sanguino processor.
Additionally it has a 10 pin connector which can be used to increase the amount of I/O that the board uses. Now I could design a standard arduino shield and get the extra I/O on top.
I had expected some difficulties such as pin compatibility etc but actually this was rather OK. I connected a right angled box connector to the 10 pin connector and used it to connect to a speaker and a 4*20 LCD display.
On the main arduino board there are several jumpers. I shorted all of them which has the effect of connecting the arduino pin numbered 10, 11, 12 and 13 to ATMega644P pin number 5, 6, 7, and 8.
It is somewhat unfortunate that the ATMega644P is not fully compatible with the arduino. For example ATMega644P pin 17 is connected to arduino digital pin3 and should have PWM but in actual fact does not. This means there has to be some fiddling of the pin numbers to get the hardware to function properly.
Because of this carefull attention was given to the pins used for the PWM function. In this case the pins 4&5 match the arduino PWM function of 5&6 both being triggered by the OC1A and OC1B timers respectively. This is unfortunate as the hardware shield must be jumpered and can not simply rely on software alone.
There is also a difference in the way the analog ports have been connected. Arduino pin numbers 0,1,2,3,4,5 are connected to ATMega644P analog pins 7,6,5,4,3,2 respectively. This again gives some fiddling on the configuration but really is not a problem.
To make the arduino IDE suitable for this micro go to the sanguino.cc site and download the latest version of the firmware. I installed sanguino 0023r4 version.
Then go to the repetier site and download the mods that are needed to the 0023r4 software. This means adding Arduino.h and wiringt.c to the <Installpath>/hardware/Sanguino/cores/arduino directory.
You also need to mod the boards.txt file. Just append it with the boards.txt file found on the above link.
The fuse settings are mentioned in the boards.txt file but are low fuses=0xFF, high fuses=0xDC, extended fuses=0xFD
Below you can see the pin mapping of the 40pin Atmega644p that you can place into this socket.
If you are looking for other arduino projects look here.