I don’t have a scope… but it’s definitely something I’m gonna look into getting soon. Seems to be very handy all around.
Yes, I do have the document… I’m dedicating the upcoming weekend to really grind through the API stuff and hopefully write my own Arduino implementation of it.
As a high-level programmer I’m usually spoiled with neat classes and built-in magic for all my needs…
It’s fun to dig in deeper though! This project is more about the learning than the final result anyways.
Thank you for your help!
/J
stevech:
RSSI can be obtained by using the +++ATcommand
to get the LQI register contents. LQI is part of 802.15.4 but is also one of the AT command parameters for query.
The pulse width modulated signal is, I believe, always present unless you deconfigure it. Have you looked at that with a 'scope?
As to the API - you do have Digi/Maxstream’s document on that, right? It’s very complete.
Welcome to embedded programming! See Avrfreaks.net for helpful guys. In the embedded world, you’ll see rare use of C++ and classes and stuff that takes RAM.
I suggest using the wireless UART firmware in the 802.15.4 mode, no ZigBee. With that firmware, there are a lot of Hayes modem-like AT commands to configure things like
PAN ID
Channel
coordinator vs. end device vs. router
source address
destination address or broadcast address - change this on the fly
TX power
and read all sorts of status, including LQI.
the binary API mode is packet oriented, more complex, but applicable to some projects
One tricky thing for small multi-node projects:
Every node can use a broadcast destination address. In the data payload of the message, you put a node ID. Every node gets every message and can act based on node ID in the payload.
You can build your own tree network too: just scheme-up a static routing method to forward messages. A brute force technique is to have a header in every payload that has the logical destination node ID and a hop count. You increment the hop count and retransmit every incoming message to the 802.15.4 broadcast address unless the hop count (TTL) is greater than x. Kind of a storm, but simple and effective.
ZigBee is all about self-forming meshes and is an overkill for most simple projects. 802.15.4 doesn’t need Zigbee but so far, Zigbee only exists for 802.15.4.
Alternatives to Zigbee, that can be used with 802.15.4, include 6LoPan (IETF) and ISA 100.11a (draft)