Some news on the latest Cosa updates:
1. Restored support for Arduino IDE 1.0.X
The Arduino 1.0.X IDE support was deprecated but has been restored after some requests.
2. Ethernet Shield example sketch robustness
The SD and W5100 device on the Ethernet Shield may interfere each other if not correctly disabled. The Ethernet example sketches have been updated to avoid the interference and improve robustness.
3. More program memory free space on Leonard/Micro/Lilypad-USB (ATmega32U4)
The USB/CDC functionality is only added when needed. This allows larger sketches on ATmega32U4 devices. Compiling an empty sketch with Arduino/Wiring (1.5.6) gives:
Sketch uses 3,976 bytes (13%) of program storage space. Maximum is 28,672 bytes.
Global variables use 158 bytes (6%) of dynamic memory, leaving 2,402 bytes for local variables. Maximum is 2,560 bytes.
The latest Cosa update gives:
Sketch uses 290 bytes (1%) of program storage space. Maximum is 28,672 bytes.
Global variables use 0 bytes (0%) of dynamic memory, leaving 2,560 bytes for local variables. Maximum is 2,560 bytes.
4. LCD IO Adapter abstraction for PCD8544 and ST7565
The HD78440 LCD (1602/2004) IO Adapter abstraction is now implemented for the PCD8544 and ST7565. The two adapters are 1) serial output pin (Serial3W) and 2) SPI output (SPI3W).
Interface (LCD::IO): https://github.com/mikaelpatel/Cosa/blob/master/cores/cosa/Cosa/LCD.hh#L184
5. Pin Benchmarks
The Cosa Pin classes have been further optimized and there are a set of new benchmark run files.
a. Arduino 1.0.5/1.5.6-r2 toolchainhttps://github.com/mikaelpatel/Cosa/blob/master/examples/Benchmarks/CosaBenchmarkPins/arduino-1.0.5.run
b. Arduino Nightly build with new AVR toolchain (GCC 4.8.1)https://github.com/mikaelpatel/Cosa/blob/master/examples/Benchmarks/CosaBenchmarkPins/arduino-avr-toolchain-nightly-gcc-4.8.1.run
c. Arduino Nightly build with new AVR toolchain (GCC 4.8.1) with link-time-optimizationhttps://github.com/mikaelpatel/Cosa/blob/master/examples/Benchmarks/CosaBenchmarkPins/arduino-avr-toolchain-nightly-gcc-4.8.1-lto.run
6. Improved HTTP::Server response io-stream handling
The support for writing simple HTTP servers has been improved with IOStream binding and parsing path, query and request type.
7. Completed support for Teensy 2.0/Teensy++ 2.0