Advanced, XL Family

Optimization

CDR XL family radios are general-purpose modules and can be used in many different types of applications. To get the best results, you really need to set the radio up to work in a manner that is consistent with how you intend to use it.

Please read over the following application notes before setting up your system:

Master/Slave

In a master/slave environment, you have one radio device that acts as a master and one or more devices that act as slaves. When the master device wants to instruct the slave to do something (or return some data), it sends a request to that the slave, and the slave sends a response. This sort of setup is also called "polling."

There are two great things about polling:

  • No transmission collisions. Only one slave will respond to a request and slaves never "volunteer" data without being asked.

  • Predictable data sources. You never have to worry about a long message from one source being interrupted by a transmission from another source.

Since you shouldn't encounter collisions in a master/slave environment, it generally safe to use normal delivery mode. CDR XL family radios can achieve signifigantly higher throughput rates if they do not have to stop and wait for acknowledgements after every transmission.

Another nice thing about master/slave environments is that you can keep slave radios in transparent mode. Simply configure each slave radio so that the default target is set to the master's location code. After all, slaves have no need to talk to each other, so you might as well use transparent mode over the more complex mixed-on mode. This can greatly simplify any code running on your slave devices.

Whether your master radio operates in transparent or mixed-on mode depends on other factors. If your application-level protocol includes addressing, then you can configure every device (master and slaves) to the same location code and keep your master radio in transparent mode as well. This makes all requests and responses broadcasts, and relies on the protocol to filter out messages intended for other units.

If your application-level protocol does not include any form of address, then you will need to assign unique location codes to each radio and specify the slave radio's location code when transmitting requests. You can do this in one of two ways:

  • Toggling between transparent mode (for sending requests and receiving responses) and command mode (for changing the default target in RAM) with DTR#. Since there will be no asynchronous transmissions in master/slave environments, you don't have to worry about missing a transmission while in command mode.

  • Stay in mixed-on mode. AckData and NoAckData packets include the target location in the packet's header.