I saw the OpenSprinkler Pi project. It is a nice addition to the Raspberry PI. However, it will not really work for me. I need to locate the controller in a crawlspace. That is not the kind of environment that a Raspberry PI will thrive in. Also, I do not want to have to crawl in there to reboot Linux if the Pi has a problem.
I did a disassembly of the code. The text strings seem to consume about 3K. This is not a large area, but would be some savings. I also started removing the LCD stuff, as it is not needed for an OpenSprinkler mounted where I cannot see it. This has got me about 1.5K of Flash so far.
Eventually, if the user has a PI, then the original OpenSprinkler firmware could be downsized to just an Ethernet based controller that updates the shift register controlling the triacs on demand. This would free up a good chunk of code space in the AVR for a user area. It would also be compatible the the OpenSprinkler Pi project, as it would just use a different driver to communicate with the shift registers.