Nice blog, and thanks for sharing your mod. I will check it out later.

A quick update: I should take back what I said earlier about the Arduino SD library: I discovered just yesterday that the Arduino SD library works perfectly fine for OpenSprinkler, no RAM overuse etc. What happened previously was that I copied the tinyFAT library files to the OpenSprinkler folder, and when I was experimenting with Arduino SD, I didn’t remove those tinyFAT files. Well, I thought a file shouldn’t get compiled if I am not using it (or specifically, any class defined in the file). But this is not how Arduino IDE works — it compiles everything in the folder. As a result, the code consumes almost twice as much RAM as necessary. So I mistakenly concluded that the Arduino SD library is too loated.

Anyways, once I discovered this, I immediately switched to use Arduino SD, because it provides much better support, including large SD cards, sub-directories, and support for both FAT16/FAT32. Lately I’ve started using the SdFat library, which is what Arduino SD is based on but offers more flexiblity and leads to smaller code size. So that’s what gets wrapped into firmware 2.0.7, which I just announced in this thread:

With this, the SD card limitations are gone: you can now use SD card of any capacity, formatted to either FAT16 or FAT32.

Regarding ATmega1284p: yup, it’s a drop-in replacement for ATmega644p, and that’s one of the main reasons I picked 644: it still has through-hole packaging (DIY friendly), and when needed you can easily upgrade to 1284 that doubles the flash memory space, and quadruples the RAM size! For now, I think 644 is still fine for a lot of the upcoming planned features. Beyond that, I will probably have to upgrade to 1284 🙂