The Wyolum machine
(these are the people who generously offered $3000 in innovation grants, with no strings attached
) is forging ahead with a new and improved version of I2SD
I just received their v3 prototype and it looks impressive. I must say it is the most feature-rich data logger / SD card backpack (here is the list
of the competing products that I compared with).
Like its predecessor, I2SD v3
is a software-compatible Arduino (ATmega328/16MHz) with extras. It has on-board microSD card, DS3231
extremely accurate real-time-clock with backup battery, infrared receiver and 2 LED indicators for errors or status.
comes assembled (all SMD), with the bootloader burnt in. Sketches can be uploaded through the FTDI connector.
The board can be plugged directly into Arduino, using one row of headers (A0-A4-GND-RST), hence the name "buckler
" (like a "semi-shield", got it?)I2SDv3
also offers header access to D4-D7 (v2 lacked that; my complaint was heard :), and it is compatible with the ChronoDot
To test it, I decided to try the OpenLog
library, by Nathan Seidle of Sparkfun
. Surprisingly, it worked without a glitch from the first try. Well, kind of, I had to read the documentation :), and to change HardwareSerial.cpp
, a "system file" (function SIGNAL(USART_RX_vect)
is redefined in OpenLog.pde
To emulate the OpenLog board closer, I changed the code to use D2 for the status LED, as shown:
#define STAT1 5 //On PORTDint statled1 = 5; //This is the normal status LED
#define STAT1 2 //On PORTD
int statled1 = 2; // status LED on I2SDv3;
Note: The second LED of OpenLog board is connected to SCK (D13), so it blinks when the SD card is active (while reading or writing). The second LED on I2SDv3, being on D3, cannot be easily re-purposed.
Following OpenLog documentation, I connected to I2SDv3 using CoolTerm, typed in some text, pressed CtrlZ three times and voila!: file LOG0001.TXT got created and it contained the characters I typed in. Cool indeed.
Note: OpenLog won't compile with Arduino 1.0 IDE without some minor changes, as follows:
1. "WProgram.h" replaced everywhere with "Arduino.h"
2. function SdFile::write(uint8_t) must return size_t now (since it is virtual function defined in Stream.h); both SdFile.cpp and SdFat.h will need to be updated to reflect that.
Reminder: The OpenLog library should work with FAT32-formatted SD cards as well as FAT16. I will test it as soon as I get a 4GB microSD card.