I have (5) of the series 1 XBee OEM modules setup in a point to multipoint configuration. Four of the devices are sampling their AD ports and sending this data back to the coordinator. This works great.
Now I would like to be able to set 1 or 2 of the DIO pins (configured as digital outputs) on the remote endpoint devices from the coordinator.
Is this possible? If so how exactly?
It seems possible from the digi docs but to gain this I lose the ADC data collection.
I believe that remote commands can only be sent through a device that is running in API command mode. That means that the coordinator needs to have firmware that supports API.
You have series 1 modules so I assume they are running 802.15.4 protocol so referencing document 90000982.
Thank you guys for such a good topic, im having trouble understanding and applying it though, can you please explain more? im trying to use one single Xbee to control the digital outputs on several other Xbees each having a different function.
wouldn’t it be simply to set DH:DL to address to a given XBee, the configuration command, such as alter a DIO pin? To send the same command to all in-range, set the destination address to the broadcast address. But beware: broadcast packets have no error correction mechanism for each recipient. So if that’s important, send a non-broadcast (unicast) message to each intended recipient.
I’m only familiar with the 802.15.4 mode of Series 1’s though.
And I use them in peer-to-peer no coordinator mode. So any node can transmit to any node, RF conditions permitting.
Thanks stevech, but that is not what im saying, maybe i should’ve explained more, im trying to control the digital outputs on 3 Xbees, but they are not all the same, each one controls a different circuit, with different desired digital outputs. So, i need to control each one of them individually and uniquely using the same “Base” Xbee.
for example, at certain times i want to make D0 and D1 of Xbee “1” low and D2 high
then at other times, i want to make D0 of Xbee “2” low and D1 , D2 and D3 high
and so on,
can i use line passing? or should i use API mode? please include an example for the code…
I would use API mode on the XBee connected to the central controller. This way the central controller can keep track of what remote output functions are on or off.
Suleiman:
Thanks stevech, but that is not what im saying, maybe i should’ve explained more, im trying to control the digital outputs on 3 Xbees, but they are not all the same, each one controls a different circuit, with different desired digital outputs. So, i need to control each one of them individually and uniquely using the same “Base” Xbee.
for example, at certain times i want to make D0 and D1 of Xbee “1” low and D2 high
then at other times, i want to make D0 of Xbee “2” low and D1 , D2 and D3 high
and so on,
can i use line passing? or should i use API mode? please include an example for the code…
Line passing without the API mode has a pairing of XBees. A master and a slave, if you will. If you talk to the XBee's serial port, you can change the pairing on the fly by changing DH:DL, with AT commands. The API mode is more flexible but your program talking on the serial port gets much more complex, unless you find/use a standard library implementing Digi's API. I think one person has done so and donated it somehere here.