Welcome to the uracoli Blog

µracoli stands for microcontroller radio communications library and is intended to be a package that demonstrates capabilities and usage of Atmel's IEEE-802.15.4 radio transceivers AT86RF{230,231,212} in combination with AVR 8 bit microcontrollers (e.g. ATmega16, ATmega1281, ATmega128RFA1, ...).

Mittwoch, 31. Dezember 2014

"Biomeiler" data logging

Since there are a lot of leave trees in my garden, every year in autumn it is a busy time to remove the leaves from the ways and meadows. I was thinking what else can be done with this amount bio mass, then simply let it rot. Depending on the sort leaves it may rot slowly and it can take several years until a leave becomes soil.
Once a day I stumbled across the concepts of Jean Pain, a french lumberjack and inventor. He did setup huge piles of shreddered branches and observed that inside this piles high temperatures are achieved. Within such a pile water can be heated up to 70°C,  this can be read on the internet.  The reason is, that the shreddered bio mass rots aerob, e.g. in the presence of oxygen. In the logical consequence Pain added a heat exchanger in the pile and so he could use the energy generated by the bacteria to heat his house and he also could produce methane - natural gas - to drive cooking stoves, cars and agricultural machines. Pain's work is documented in the book The methods of Jean Pain or another Kind of Garden (or as online version). B.t.w. the german word "Biomeiler" can be translated with "heating compost".

Samstag, 22. März 2014

Chemnitz Linux Days 2014

With a fine tradition we went on  the second march weekend to Chemnitz to join the get-together of the open source community. This years topic was "Confidence is ...?" - so the focus was clearly on computer and internet security, but not only. The talks and workshops did cover many different areas, and therefore our presentation of the new Jenkins based test system was not completely off topic.

As guests we participated in the Django workshop by Andreas Hug and Markus Zapke-Gründemann. This workshop brought new insights, how easy it is today, to setup a powerfull web application. Three years ago in our presentation we handcrafted a lot, which can be achieved currently much easier and much more secure.

At the perfectly organized get-together-party on saturday evening we enjoyed to talk face to face with other developpers and the organizers of the event, while having a good beer and a tasty buffet.

All in all we enjoyed the stay as every year and even if the preparation phase is always a busy time, our oppinion is "See you again next year in Chemnitz".

Montag, 29. Juli 2013

RaspBee - An IEEE-802.15.4-Module for RasperryPi


The µracoli team recently got one of the new RaspBee modules from dresden elektronik (DE) for evaluation. The RaspBee is a addon module for the popular Raspberry Pi computer and is equipped with an Atmega256RFR2. Due to its huge amount of RAM and FLASH and the integrated transceiver, this MCU is a smart choice for building ZigBee or IEEE 802.15.4 gateways.

The very popular Raspberry Pi needs probably no extra introduction. The credit card size ARM computer runs Linux (e.g. Raspbian) and it has USB and Ethernet interfaces, which makes it perfect for DIY projects.

Esentially the RaspBee consists of a radio module deRFmega256-23M12, is equipped with a ceramic chip antenna, the footprint for an U.FL coaxial connector, two LEDs and a (not populated) JTAG connector. The 12 pin header connects the RaspBee with the Raspberry Pi over the expansion connector. This connector provides power supply and serial port as well as one digital GPIO and the Reset pin.

The RaspBee is preprogrammed with a proprietary serial bootloader. For this bootloader, DE provides the tool GCFFlasher. It runs on the Raspberry Pi and provides a convenient and safe way to upgrade RaspBees firmware.

Caution: If you want to programm the RaspBee via the JTAG interface, the original DE bootloader firmware will be destroyed and because the flash protect fuses are set, there is no way to do backup in advance. The bootloader firmware makes the difference between the basic version (capable to handle 5 ZigBee nodes) and premium version (handles up to 200 ZigBee nodes). However upgrading the firmware with GCFFlasher is safe. You can always restore the firmware image from the DE download page.

Basic Setup

Before you can run your own firmware on the Raspberry Pi / RaspBee hardware, some prerequisite steps are required. For detailed information refer to the RaspBee User Manual.

Sonntag, 9. Juni 2013

IPSO challenge 2013

The winners of the IPSO challenge 2013 was announed last week here. Colorado Micro Devices, you may know this guys already from the RadioBlock modules, participated in the challenge, came among the top 10 semi finalists and finally made it to the second place. How is that related to µracoli? Simply by the fact that we reused parts of this years Chemnitz Linux Days project. Especially this was  Icinga, that  was installed on a Raspberry-Pi and on a Cloud server. In difference to the Linux Days project we used MQTT instead of SNMP. MQTT makes it easier to operate from behind a firewall, since the local Rasperry-PI needs no official IP address, in order to be reached from the server, instead it publishes the sensor data to the cloud server actively. Thanks to the open source MQTT implementation from the Mosqitto project, we could quickly change from SNMP to the new protocoll, that fits perfectly as transport layer for sensor data.

Another quite wet sunday - after the flood 2013.

As you may know from the news, the southern and eastern parts of germany are suffered from  a flood, that is comparable to the desaster that happened in 2002. The maximum water level this time was about 10m, the historical old town of Meissen including the theatre was flooded completely. However the water recedes now but very slow. At some places where the water disappeared and  the people in my neighborhood started today with cleaning their houses. (I live a few kilometers away from the river and was not suffered).

So I called somebody and asked if there is some help needed and after clearifying the details I put the Kärcher and the rubber boots in the car and went to his place.  We had water from below and above, since it started to rain, so the power cables for the pumps and the pressure washers needed to kept dry and it gets a bit scary when a thunderstorm came up - so we had to interrupt the work for a while - this was a good time for a having a break and talkig about the last days.

At the end of the day it can be summarized that it is amazing to experience the solidarity among the people. This feeling is somehow comparable to open source development. Everybody pulls trough and it is amazing to see, how step by step the chaos disappears.

Donnerstag, 23. Mai 2013

Dogorians wireless light fixtures run uracoli

The show Dogorians (http://www.dogora.com), a musical now (May 2013) playing at the Theatre du Soleil in France, needed some compact remote wireless light fixtures.

So, in conjunction with Daniel and Axel, we created some DMX driven remote nodes. This has been made in no time: 3 weeks from first draft to product delivery. We both created the software and hardware, for both the remote nodes and the gateway.

The on-field setup was easy: set the dip switch addresses, hook the gateway on the DMX light board, over !

DMX having a rather high transfer rate (250kbps), we had to use some low-level tricks such has writing straight from UART to TRX buffer (call it poor man's DMA :)).

We have future projects to make a full commercial product out of this first version.

At the moment, the code is not opened but feel free to ask for advice/snippets !

The boards ready to ship !

 The DMX to wireless gateway:

 Enclosures for the lights:

Close-up of a board:

Close-up of a boards, with JTAG programming wires:

Donnerstag, 4. April 2013

STK500 + Mega16L + RZ600 Radio Board = Sniffer

Recently on AVR-Freaks there was a discussion how to sniff frames with a RZ600 radio board, that is eventually available. After a look in the data sheets, I figured out that the stone old µracoli-target stkm16 can be easily modified to do this job.

STK500 with RZ600 Radio Board - the JTAG-ICE in the background was used for debugging and is normally not needed, a simple 6pin ISP cable would be sufficient to flash the ATmega16L

Here is the recipe:
  • take a STK500 
  • an ATmega16L (because of 3.3V) in DIP (or better a Mega64)
  • 3 x double wires
  • a RZ600 board (I used the one with AT86RF230)
  • a power supply
  • a RS232 cable
Assemble the above components:
  • double check if only the mega16L plugs in the STK500
  • wire PD0/1 to RXD/TXD of RS232 spare
  • wire PA4 ... PA7 with LED0...3 (if you like blinking LEDs)
  • plug RZ600 on PORTB
  • set he STK500 jumpers :  
    • VTARGET, AREF, RESET, XTAL1, BSEL2 connected,
    • OSCSEL connected 1-2 (SW clock from STK500)
Next compile the target stkm16 (will come with version 0.4.0 soon, meanwhile
pull the repository and use rel_0.4.0 branch)  and configure the STK500.
  • connect the serial interface to RS232-CTRL
  • avrdude -P /dev/ttyS0 -p m16 -c stk500v2 -tF
  • type  fosc 3.6864
  • type  vtarg 3.4
This ensures that RZ600 radio board operates at a valid voltage level
and the SW clock with a baudrate friendly frequency is used

Now flash the firmware sniffer_stkm16.hex and set the fuses to lf = 0xfe, hf = 0x91.

Next run the script sniffer.py from uracoli-sniffer-.zip
 python sniffer.py -p /dev/ttyS0:115200 -c 17 | wireshark -ki -
and voila - we can sniff.

Wireshark and Sniffer Frontend - for those who look at details they will see it is an older screenshot :-)

However there are some limitations. Because there is just 1K of RAM in the Mega16, you can't  buffer much data and so you will loose some frames if a large traffic peak occurs in your network.