XBee network as a TCP/IP abstraction in Linux

Hello all,

We have a customer who wants to use XBee device integrated into a BACNet or MODBUS application network, with intention to be able to carry “any” application protocols, not only the BACNet or MODBUS.

The target OS is Linux running on an embedded (not much powerful) computer.

Apparently, we have to somehow abstract the XBee device as a new MAC layer to the Linux network stack, so the upper layer application would address the Xbee devices in the mesh using the known socket interface.

Is there anybody who had such experience, or just can share their thoughts?

As far as I understand, what we want to achieve in Linux kernel is similar to what is implemented by Digi in their Python extension in userland, but unfortunately we cannot use this solution - our target is an embedded device with not much power to afford the Python usage.

I’ve found two related works in Linux kernel:
https://github.com/robbles/xbee-driver
The project seems abandoned and in unknown state.

http://sourceforge.net/apps/trac/linux-zigbee/
This is the page of the “official” Linux 2.6 kernel “net/ieee802154” and “drivers/ieee802154” developers.
They claim implementing the IEEE 802.15.4 / ZigBee / WirelessHART / 6LoWPAN protocol stacks in Linux kernel, so user application would use the well-known socket API.
This seems what is we are looking for, but in the list of supported devices XBee is not present.
I asked a question in their ML, no reply yet.
Does anybody know will it work for us?

Thanks in advance,
Sergei

My guess is the may not be possible, the last I heard, the Zigbee kernel project was halted due to Zigbee Alliance copyright concerns.

I don’t see why you couldn’t treat the 64 bit ID as a MAC and go from there. Of course, you’d have to implement all the layers yourself, and you’d probably be doing a lot of broadcasting (especially for ARP), but it should work. Maybe more work than you’d care to do, though.

Hello,

As I learned further, this is not possible currently. The problem is that the MTU size in ZigBee protocol doesn’t allow to fit a UDP/IP packet there.

The whole story of 6LoWPAN is about it - how to squeeze UDP/IP headers into 802.15.4 payload.

See here http://freaklabs.org/index.php/Blog/Zigbee/zigbee-alliance-aiming-at-IP6-support.html

Besides, the copyright issue is really a problem.

Thanks,
Sergei