openchronos-ng and the swap wireless stack

Hello everybody,

The openchronos-ng team has the pleasure to announce that the development efforts to replace simpliciTI with another wireless stack have already started. The new stack, called swap.

What is swap?
The Simple Wireless Abstract protocol is a simple protocol that enables mesh-like wireless functionality using a very low firmware footprint. The current implementation of the swap stack in openchronos-ng takes only a fraction of the simpliciTI size on the firmware. Swap was developed by Daniel Berenguer, the guy behind the panstamps.

Daniel already had a implementation of the swap stack for the ez430-chronos which was later fine-tuned by Paolo Di Prodi. We are in the process of integrating the wireless stack into openchronos-ng. For more details, have a look to the swap git branch.

In a nutshell, the new wireless stack will take considerably less space in the firmware, the code is cleaner and easier to read, the stack will also be protocol compatible with the panstamps and many other commercially available devices. My favorite will probably be the ability to enumerate device properties remotely, in other words, you will be able to enumerate all ez430-chronos properties (time, accelerometer data, etc..) in your computer using a user interface that is common to all other swap enabled devices.

For more information about swap on the ez430 chronos, have a look here

However there are three important drawbacks
1) The swap stack will not work in the 433Mhz ez430-chronos versions.
Unfortunately this doesn't have a solution.

2) The access point bundled with the ez430-chronos will not be able to communicate with a swap-enabled version of the ez430-chronos. Currently, the openchronos-ng team is using a panstick+panstamp (offered by the panstamp team - thank you!) to make computer <-> chronos communication. People willing to help development or just test the swap enabled openchronos-ng will have to buy a panstick. However, it is not our objective to force openchronos-ng developers and users to buy panstamps. For that reason, we are going to develop a new firmware for the ez430-chronos access point, that supports the swap stack; allowing communication between the swap enabled ez430-chronos and access point again. The good news is that we already managed to find the source code for the access point dongle (it is publicity available), which will make our task considerably easier. More news on this will come in the future.

3) The swap stack does not support wireless updates.
In fact, neither did simpliciTI. The wireless update is a binary blob made available by BMi which is flashed into the BSL memory of the ez430-chronos. Regular flashing of the ez430-chronos with openchronos does not touch this memory region. On openchronos, the wireless update is executed by simply jumping into the BSL memory address.
The ez430-chronos access point firmware then supports simpliciTI and the wireless update mode (which is also a binary blob in the AP source code), using the corresponding wireless stack if the AP is in sync or flash (rfbsl) mode.
We will need to evaluate if either:
a) it is feasible to add support for our own wireless update routine into the swap stack.
b) we keep using the binary blob in the BSL memory of the ez430-chronos and we reflash the ez430-chronos access point with swap+rfbsl support.

Leave your ideas and questions in our mailing list.

Angelo Arrifano and Paolo Di Prodi on behalf of the openchronos-ng team.

Posted by miknix 2012-09-05 Labels: swap