As indicated in the tile, the project is a clock based on an ATMEL ARM7 controller using a 128×128 OLED display. The clock face is like an analog clock face and the time values is obtained by a real time I2C based clock. A natural LED showcase is appropriate to battery-controlled applications when contrasted with an equal LCD in light of the fact that an OLED show just powers the pixels that are lit. Moreover, the display has a wide angle view then the LCD display. The controller has a dedicated SPI ports along with an A/D converter.
An RTC has been used instead of a software clock as it requires less power. Moreover, another interesting feature of this clock is that it has adaptive display which is achieved by using a light-to-voltage converter. All the components in the project have been chosen keeping in mind the power constraints. The software for the microcontroller is written almost entirely in assembly language for efficiency purposes. The entire schematic is available on the project website.
The LPC812 is an ARM Cortex M0 by NXP Semiconductor which boast of 16K of flash and 4k of Ram at 30 MHz clock rate. This project is actually a breakout board for the NXP LPC812M101JPH20 microcontroller and has on board push buttons for reset and activating the boot loader. Since the project is hosted on Github, it has all the code, necessary libraries and even the Eagle library of different components along with the PCB design available, so that you can start from scratch and get the controller to work by making the circuit all by yourself.
The board has an integrated 500mA 3.3V LDO to supply both the MCU and connected devices from the USB port. The device can be programmed while using the internal bootloader and on your computer a popularly known software called Flash Magic which is easily available to download. More over the development environment for the above mentioned microprocessor is also available to download.
If you are not familiar with eLua you should take a look at eLuaproject.net. Simply speaking eLua is an embedded program running inside microcontroller which is capable to run code written in Lua language. This is simple programming/scripting language which is fast and lightweight. It doesn’t need any operating system rather it’s a bare-metal software. So it runs fast, takes small amount of RAM.
So this is a nice candidate for embedded projects. Some time ago Karl has shown mbed platform running eLua. It proved it’s efficiency. The only annoying thing in running Lua programs, that in order to edit or create new program, they had to be loaded from PC in to SD and then run.
Eventually he started to look for faster options and decided to write a simple editor which would run in microcontroller itself. He wrote editor in same Lua language which is about 440 lines of code. Editor is capable to perform many basic operations like scroll, delete, insert, copy, cut paste and finally execute the code. Editor runs through terminal screen where programs can be edited and run on the fly.
You maybe heard about PLC (Programmable Logic Controllers). They are usually common in industry where automation of processes is needed. PLCs are expensive and probably hardly affordable to hobby level enthusiasts. They normally come with software packages where you can build control processes using building blocks like Lego. Want one? Well nobody told told that you cannot build one.
Take a look at open source PLC project that tries to make these things accessible for everyone. It is based on AT91SAM7S256 microcontroller with 256kB of Flash, 64kB of SRAM and 8kB of EEPROM. PLCs are usually pretty same microcontroller boards with “hardened” I/Os. First of all PLC is designed to be powered from 24V DC (optionally can be configured from 12V). it has 10 digital inputs with LED indicators. 8 outputs are paired with NPN transistors in open-collector configuration capable of sinking 200mA each. And four 10-bit analog inputs rated at 10V. The PLC controller is split in to several boards for better assembly and maintenance. There is a separate CPU board that carries MCU, communication interfaces like RS232, RS485, also RTC and EEPROM. Another is I/O board where you can find optically isolated inputs and outputs, power supply, USB and JTAG. And last one is status board with LEDs that is visible to user. The only difference from industrial PLCs that it doesn’t come with fancy GUI based builder, but rather with open source GCC tools. The PLC we reviewed is relatively small. If you are looking for bigger, there is another almost twice bigger PCL which is build using same idea.