Wireless compost monitoring

Biolan composting unit in our backyard.

Every family produces some waste that is suitable for composting. Our family uses a Biolan fast composting unit to convert that stuff eventually to soil. This is very easy to do during summertime, but in winter when the temperature drops below -15 °C it becomes a much harder job. Too many times have I found myself witnessing the unit in condition where inside temperature is near zero or even below it. After that it is very hard to get it working again before warm spring days come to fix the situation.

To provide some tools to avoid this I figured that it might be a good idea to put a temperature monitoring device into the composting unit. Ideally this would be a small device with radio, batteries and temperature sensor in waterproof box that I could throw into unit. Based on these requirements, Texas Instruments MSP430 CPU seemed like an obvious choice.

I really didn’t have much knowledge about MSP430 before this project so I ordered ez430-RF2500 development kit, which contains two MSP430F2270 boards with 2.4Ghz radio and internal temperature sensor. I used these boards to develop a port of Pico]OS for MSP430 and to test Simpliciti (a Texas Instruments radio stack). Creating Pico]OS port for the cpu was remarkably easy as the architecture is not at all too complex. Simpliciti stack required some work, because I had chosen a free mspgcc (Gnu GCC port for this cpu) as my compiler. Luckily there were some patches floating around in the net for this. Continue reading “Wireless compost monitoring”

Temperature monitoring

This is actually on an old project I wrote back in 2006 using uIP v0.9. It uses a DS1820 sensor to measure my storage room temperature and send it in UDP packet to my database server. Database server then has software to alert me if temperature gets too low during winter.

Project has now been rewritten to use my picoos-net library, which allowed me to add a simple web server to system quite easily. I still use original hardware, which is either Olimex LPC-E2129 or Embedded Artists Ethernet Quickstart board (this is not available any more I think). To simplify testing, it is also possible to compile project for native unix program.

Main task of system sets up networking and initializes OneWire bus. After that it periodically scans the bus for sensors, reads temperatures from those and sends a UDP packet to database server. Main loop calculates also hourly average from temperatures and maintains history of those averaged values for one day. Continue reading “Temperature monitoring”

uIP-based network layer for Pico]OS

uIP is a very small TCP/IP stack initially developed by Adam Dunkels. It is targeted to microcontroller environments and has very modest resource requirements. uIP itself doesn’t seem to be very active project nowadays, but it is available as part of Contiki OS.

This library started when I tried to adapt uIP to my arm microcontroller project. Initial work resulted in patches which took care about some alignment problems that code had in arm environment. As I later discovered that uIP source code actually now lives inside Contiki OS, I took the latest version of uIP from there and adapted my patches to it. Continue reading “uIP-based network layer for Pico]OS”