LED Traffic Light

Traffic lights are all around us, and they seem simple enough but are they really? Real traffic lights can be a very complicated system because it requires sophisticated control and coordination for smooth and safe traffic. The traffic light I made is much simpler. My sister works in a kindergarten where kids needed a simple traffic light for when they are riding their bikes on the playground. The traffic light uses some cheap LEDs from China, a step-up converter and an Atmel attiny841 microcontroller to change the light from red to green at a programmed interval. Read more →

Temperature alarm for boiling milk

Anyone who has ever boiled milk on the stove knows, that it has a nasty habit of overflowing. That is why I created the temperature alarm for boiling milk to be used my mother. It continuously measures the temperature of the milk and sounds an alarm when the temperature is over the preset alarm value. Temperature alarm uses an Atmel attiny841 microcontroller, DS18B20 high temperature waterproof temperature sensor from adafruit, 2x16 HD44780 LCD and a buzzer to do its job. Read more →

Project nativity scene 2014

The nativity scene is a several years project, that I upgrade every year. This year I decided they are complex enough to describe on my website. First a few pictures of the scene, followed by the description of electronics that run the thing. Control The system is controlled by Raspberry Pi. It provides a web interface for the system. The RPi communicates with all parts of the system via an I2C bus. Read more →

GSoC 2014: Raspberry Pi Dashboard final report

This summer I was developing a web dashboard on Monkey HTTP server for Raspberry Pi. Monkey is a lightweight and powerful web server and development stack for GNU/Linux. It has been designed to be very scalable with low memory and CPU consumption, the perfect solution for embedded devices. Made for ARM, x86 and x64. I worked on this project as part of GSoC. Google Summer of Code is a global program that offers students stipends to write code for open source projects. Read more →

GSoC 2014 Update: Raspberry Pi Dashboard - Week 13

This week I implemented WebSocket support in the dashboard. WebSockets are now used for GPIO updating and serial port receive. If Websocket is unavailable or does not connect, polling is used as fallback. I’ve also improved GPIO dashboard page a bit and written documentation for WebSocket. Pencils down is tomorrow. I have released version 0.2.0 of my dashboard today. It contains all the features that I’ve planned to implement in my proposal. Read more →

GSoC 2014 Update: Raspberry Pi Dashboard - Week 12

This week I first tried implementing WebSockets with RaspberryPi GPIO interrupts. I’ve written some code, but it seems duda’s websockets implementation has some bugs in it, so I did not finish this. The code I’ve written is now under websocket branch in github. Instead of using websockets I’ve written GPIO updating and serial interface in the dashboard using polling the REST api every second. I’ve also imporoved several things in dashboard including making the main page modular. Read more →

GSoC 2014 Update: Raspberry Pi Dashboard - Week 11

This week I added interfaces for GPIO (input, output, PWM and tone), I2C, SPI and shift in/out to the Dashboard. Additionally I have also researched WebSockets that I will use for serial and GPIO updating. Next week I will try to use WebSockets for serial and GPIO implementations. There are also a few smaller things that need to be fixed/updated. Code is on github. Read more →

GSoC 2014 Update: Raspberry Pi Dashboard - Week 10

This week I developed REST api interface for GPIO (input, output, PWM, square wave and shift in/out), I2C (read/write general, 8-bit and 16-bit registers), SPI (duplex send/receive) and serial (send and read input buffer). I’ve used wiringPi library I’ve tested last week. I’ve written full documentation for those modules and added a POST method to jQuery RPiJS plugin. Next week I will integrate those modules in the Dashboard and try using WebSockets for GPIO and serial connection. Read more →

GSoC 2014 Update: Raspberry Pi Dashboard - Week 9

This week I tried 2 different libraries for GPIO on Raspberry Pi: bcm2835 and WiringPi. I’ve decided to use WiringPi, because it allows consistent pin numbers across different RPi versions, i2c, SPI, serial, software PWM, tone and several extensions. I’ve installed the library, spent some time testing it out and figured out how it is going to fit in the REST api. Next week I will integrate the GPIO, i2c, SPI and serial in the REST api and the Dashboard. Read more →

GSoC 2014 Update: Raspberry Pi Dashboard - Week 8

This week I updated the documentation, wrote installation instructions for Raspbian, Pidora and Arch Linux, updated the Dashboard a bit and fixed two memory leaks using valgrind. Besides programming I also created a website for the project that contains project description, full documentation, screenshots and link to a demo version of the Dashboard. I wrote a post about the Dashboard on the official Raspberry Pi forum and got some positive feedback. Read more →