Put together a full release of Sanguino that supports version 1.0.1. Actually ended up not being as difficult as I expected since most of the directory layout has stayed the same. I was hoping to use the new ‘variants’ to avoid making changes to the core files but ended up needing to do that to get some stuff working.Like I have said before the new method the Arduino team is using to guide the precompiler for different chips by using whether registers exist or not is much better and makes porting it to different hardware much easier. Unfortunately the few libraries I have has issues with did not follow this lead.
The SDcard lib which is included with the install now has pin assignments hard coded for different processors rather then referencing the core/variant. It is a quick workaround if you want to use Sanguino (with a atmega1284) with this libary. Simply change line 120 of ‘arduino-1.0.1/libraries/SD/utility/Sd2PinMap.h’ from
#elif defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644__)
to this
#elif defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644__) || defined(__AVR_ATmega1284P__)
I was able to get my DataLogger project up and running with a fresh bootloader burn and recompiled in 1.0.1. The project uses SPI, I2C, ADC, and both UARTS so I generally use it as a test case since it covers the most common features used. I did have to modify my GPX, and Producer/Consumer libraries to work with 1.0 which was fairly easy. Mostly just changing WProgram.h
to Arduino.h
in a few places as well as some string functions which changed. I’m going to clean those up and post them soon hopefully.
You can grab the new version over on Google Code: http://code.google.com/p/sanguino/downloads/detail?name=Sanguino-0101r1.zip