While the ATMega328 is “mega” for a microcontroller, it’s still a fairly limited platform. It has plenty of I/O and working memory for most tasks, but this Battleship game that [thorlancaster328] has put together really stretches the capabilities of this tiny chip. Normally a Battleship game wouldn’t be that complicated, but this one has audio, an LED display, and can also play a fine rendition of Nyan Cat to boot, which really puts the Atmel chip through its paces.
The audio is played through a 512-byte buffer and an interrupt triggers the microcontroller when to fill the buffer while it works on the other processes. The 12×12 LED display is also fed through a shift register triggered by the same interrupt as the audio, and since the build uses so many shift registers the microcontroller can actually output four separate displays (two players, each with a dispaly for shots and one for ships). It will also eventually support a player-vs-computer mode for the battleship game, and also has a mode where it plays Nyan cat just to demonstrate its own capabilities.
We’re pretty impressed with the amount of work this small microcontroller is doing, largely thanks to code optimization from its creator [thorlancaster328]. If there’s enough interest he also says he will provide the source code too. Until then, be sure to check out this other way of pushing a small microcontroller to its limits.
Thanks to [Thinkerer] for the tip!





For many projects that require control of air pressure, the usual option is to hook up a pump, maybe with a motor controller to turn it on and off, and work with that. If one’s requirements can’t be filled by that level of equipment and control, then it’s time to look at commercial regulators. [Craig Watson] did exactly that, but found the results as disappointing as they were expensive. He found that commercial offerings — especially at low pressures — tended to leak air, occasionally reported incorrect pressures, and in general just weren’t very precise. Out of a sense of necessity he set out to design his own 



