DemUinoDuo - computer with USB keyboard & SD FAT support

The DemUino concept revolves around a controller-based-computer and in particular AVR 8 bit beasts using Arduino libraries. In an effort to keep the project up to date I had to adapt it to use USB keyboards and modern storage media – SD or microSD with adapters – supporting plain text PC files (FAT).

The major problem with this “upgrade” is the huge resource sacrifice both in flash code and RAM demand either static or dynamic. However, the use of a dual processor system alleviates the pain from the horrid loss and provides a sort of worth-the-effort feeling when the project reaches a tangible useable result. The system can be built with both processors being atmega328s, something that reproduces all functionality of DemUino version 1.66 but with only a little over 700 bytes of RAM free. The use of an atmega644 as the main processor handling the SD card and the delegation of USB, I2C master and RS232 (PC data) to an atmega328 builds a better more capable system with over 1300 bytes free for DemUinoDuo version 1.0 including SD FAT functionality. The display is a standard 4x20 text LCD (parallel mode) driven by the GPOUT port of the maxim controller on the USB host shield.

The USB host shield is made by the good folks at and I need to thank Kristian Lauszus at Lauszus (Kristian Sloth Lauszus) · GitHub for kindly responding to my questions and also for the serial opti-bootloader of the atmega644.

The hardware as it stands offers very good development possibilities, definitely better that what I presently address with version 1.0 of the released code. Apart from the required optimization to save flash and RAM space (without altering the voracious SD library) there is the untamed potential of the supporting atmega328 as a GPIO module by itself and of course the employment of the external EEPROM as a data repository.