Computing stuff tied to the physical world

iDwarf

In AVR, Hardware on Nov 30, 2008 at 01:06

The iDwarf system is a wireless 2.4 GHz radio module with an ATmega168 inside. The starter kit comes with two sensor nodes with built-in battery holder and one “hub” which interfaces to (and runs off) USB:

FF9594F6-CC35-447F-B154-1DA8EA2E60D2.jpg

The daughterboards showing on top are the actual modules, the rest is part of the starter kit, i.e. sensor node and hub interface boards.

Several software examples were included, with hex files ready to try. It took me a while to figure out that I had to also set up the fuse bits – as delivered, the 168 is completely empty:

5155AE0B-173E-4E88-BB6C-A065628E2F7F.jpg

And just changing some ’s to /‘s in the source was all it took to re-compile these examples from source on MacOSX (the actual radio driver code is linked in from a library, no source, though).

Having a fully programmable chip to customize, with over half of its memory free makes this a more flexible option than XBee’s, at about the same price.

First trials indicate that the range of these little modules is a bit limited. They didn’t maintain a connection across three layers of stone & concrete (floors / walls) – a hefty requirement, but all within a single home. Still, it’s impressive what a pair of tiny on-board antennas can accomplish.

  1. Hi! I am using the idwarf for a project and really would like your assistance. My project has a CMUCam connected to an iDwarf168 and a mobile robot which has to get the coordinates from the CMUCam via the wireless network. Of course the vehicle has an idwarf168 on it. All i want to ask is how can i program the idwarf168 in order to receive these coordinates and transmit other data to the Cmucam. Thank you very much for any help at all, even a simple answer shall be very helpful to me, since i have no idea at the moment!

  2. You need an ISP programmer (I used a USBtinyISP) to program the fuse bits and the firmware into each unit. I only tried the demo so far, which makes a led light up when a button is pushed on another unit – there are pre-compiled HEX files with the proper firmware, but to make changes you’ll need to get a gcc-based setup going (I use MacAVR, but WinAVR ought to work too). I suggest getting the demo working from the HEX files, then trying the same demo with your own compiler, after that you could make changes to the demo to implement the functionality you need.

Comments are closed.