Candrian wanted to optimize home fireplace which heats water for radiators. The idea is first to heat up water inside fireplace and then open valve to let hot water to radiators. Original thermostat suppose to work that way, but in reality thermostat shuts the valve once cool return water cycles around. In order to prevent opening and closing valve frequently he designed his own thermostat which would allow to set time span when valve stays open even if water temperature drops. Some may not agree that this idea is good, because first priority would be to keep fireplace water temperature at working level to get optimal burn and prolong life-cycle due to condensation and corrosion. Anyway, everyone have their own needs and lets focus more on electronic part of thermostat,
Schematic of thermostat is pretty simple. It is built around Atmega198 microcontroller which controls couple mechanical relays. They drive electrical valves. Temperature is captured by using LM35 sensor which is attached to microcontrollers analog input. Standard LCD and rotary encoder gives simple and intuitive user interface where time delays and temperature thresholds may be selected. Some care is dedicated to enclosure. PCB is hidden inside plastic box but front panel is really nicely done by using color laser printed transparent with all user information. Project files are open and can be found on GitHub.
Sometimes when you deploy your device for permanent use it is not always convenient to connect to it in order to perform software upgrades. Necromant wanted something convenient and cheap that would allow him to connect to AVR without wires. Since he already had several nRF24L01 RF dongles he decided to build so called over-the-air bootloader. He ported Arduino based nRF24L01 library to AVR by removing Arduino dependencies along with few fixes.
One RF dongle is attached to target MCU using either hardware SPI or software SPI. Bootloader fits in to 4KB. As programmer, there is a uISP dongle used where nRF24L01 sits on top. Currently programming speed isn’t great which is probably mostly limited by V-USB. Since RF dongles can handle up to 2MBPS speeds there are plenty space for improvements. But rather sticking to AVR, Necromant plans to build another dongle which will be STM32 based USB chip.
BeagleBone is accessed by using Websocket connection to small server. Then server interprets data and sends PWM to drive servo motor. If you would like to dig deeper there is a GitHub page where you can find latest source codes and library for driving PWM.
This is not a secret that big part of embedded projects are games. They can be as simple as “Simon Says” game or complex 3D shooter. In most cases with small micros games are pretty simple but this doesn’t mean that they aren’t fun to play. But sometimes it takes quite an effort to build a convenient hardware that would be easy to hold and control. If you like to focus only on game programming we suggest you to check out a Gambuino – an Arduino gaming console.
The most of hard work is already done including custom sleek Arduino board that runs on Atmega328 microcontroller. Game action is visible on 84×84 Nokia3310 monochrome graphical display. It has four channel speaker, four direction arrow and three action buttons. Connectovity includes one micro USB, one uSD and couple of I2C interfaces. Gamepad is powered with 240mAh LiPo battery. A full library helps you to start writing games pretty fast and easy. Library takes care of graphics and game engine, it handles sound effects, menus and keys. For more advanced gaming it can be configured for multiplayer games where Gamebuino’s are daisy-chain connected using I2C ports.