Tag Archives: ZigBee

The waspmote

For those of you that take an interest in M2M and/or embedded things. You should look at the Waspmote.

This is a generic hardware that can be customized to fit any need.

  • Communication : GPRS / Wifi / ZigBee / USB
  • Location : GPS
  • Power usage : Low consuption, battery or solar as power input
  • Storage : SD Card (2GB), no other storage memory
  • Sensors : Everything you might need (really impressive set of sensors)

I looked at the API and it’s in C (pretty low level, you have to free everything) but everything seems to be handled at a high level. It’s sometimes better to have a smart C API rather than a dumb Java API. Look at the examples, they are really easy to read, you don’t need to be a skilled C developer to understand everything.

If the API seems great, the IDE doesn’t. But still I have just downloaded and tested it very quickly. It made me feel I was back on an AMSTRAD except that I didn’t have to put line numbers.

It seems the WaspMote is sold $100 for each card when bought in a package of 5.

Note : I know this look like some stupid buzz syndrome or planned viral advertisement but it’s not. It’s just a product that I’ve been interested in for years. This is the perfect product if you’re an M2M company. What ever you or your client wants, you can do it with this product.

Microchip Zena Analyser – Zena .zna file format

I recently thought that it could be interesting to automatically get everything I needed about a MiWi network using a program reading the .zna capture files. I wanted to check every data sent on the 802.15.4 layer at a higher layer than Zena.

But the project has been cancelled, so I won’t make this program. But still, I decided to give the format of the file for those who would have the same needs.

everything is Little Endian

1
2
3
4
5
6
7
[ 4 ] - Frame Number (starting at 0) : 00 00 00 00 is frame 1, 01 00 00 00 is frame 2
[ 4 ] - Time 
[ 1 ] - Length of the frame (remember it counts the 2 last mandatory bytes) 
[ 2 ] - Mac Frame Control
[ 0-125 ] - Frame content
[ 1 ] - RSSI
[ 1 ] - Corr + CRC

MSB of this last byte describes if the CRC is OK.

In .Net, making this program is pretty easy. You just have to read the first 9 bytes. You will then read the next X (given by the 9th byte) + 3 bytes. Converting these bytes into a readeable message is easy :

1
2
3
4
5
6
7
8
9
10
var frameHeader = new Byte[] { 
    0, 0, 0, 0, 
    0, 0, 0, 0,
    4
};
var rawFrameNumber = new Byte[4];
Array.Copy(frameHeader, 0, rawFrameNumber, 0, rawFrameNumber.Length); 
if (!BitConverter.IsLittleEndian) // .Net isn't x86 specific
    Array.Reverse(rawFrameNumber, 0, rawFrameNumber.Length);
var frameNumber = BitConverter.ToUInt32(rawFrameNumber, 0);