Digi XBee's module
Introduction
All of the various cellular XBee's and XBee3's are supported by this library. The wifi S6B is also supported.
Mayfly and Digi XBee Connections
Pin Numbers for connecting Digi XBee's Directly to a Mayfly v0.3-v0.5c
This applies to all Digi XBees and XBee3's when attached directly to the Mayfly's bee slot.
const int8_t modemVccPin = -1; // MCU pin controlling modem power const bool useCTSforStatus = true; // Flag to use the XBee `CTS` pin for status const int8_t modemStatusPin = 19; // MCU pin used to read modem status const int8_t modemResetPin = -1; // MCU pin connected to modem reset pin const int8_t modemSleepRqPin = 23; // MCU pin used for modem sleep/wake request const int8_t modemLEDPin = redLED; // MCU pin connected an LED to show modem status
- The Digi XBee gets power from pin 1; on a Mayfly this pin is always powered - the XBee cannot be powered down.
- NOTE: If using a cellular XBee or XBee3 directly with the Mayfly your Mayfly must be at least v0.5b, you must use SJ13 to connect the Bee directly to the LiPo, and you must always have a battery connected to provide enough power for the XBee to make a cellular connection.
- NOTE 2: If you turn off the Mayfly via its switch but leave the XBee connected as above, it will drain your battery very quickly. Disconnect the battery if you turn off the Mayfly.
- The Digi XBee reports ON/SLEEP_N on pin 13, but this is not connected to a Mayfly pin. Instead, use the XBee's
CTS
pin (pin 12) which is connected to Mayfly pin 19. - XBee pin 5 is
RESET_N
but this is not connected to any pin on the Mayfly. - XBee pin 9 is SLEEP_RQ which is connected to Mayfly pin 23.
- I like to use the red LED to show the bee wake/sleep since the Digi XBee's have no LEDs of their own.
Pin Numbers for connecting Digi LTE XBee3's to a Mayfly v0.3-v0.5c via the LTE adapter board
const int8_t modemVccPin = -1; // MCU pin controlling modem power const bool useCTSforStatus = false; // Flag to use the XBee `CTS` pin for status const int8_t modemStatusPin = 19; // MCU pin used to read modem status const int8_t modemResetPin = 20; // MCU pin connected to modem reset pin const int8_t modemSleepRqPin = 23; // MCU pin used for modem sleep/wake request const int8_t modemLEDPin = redLED; // MCU pin connected an LED to show modem status
- The power is still not controllable unless you use both SJ7 on the Mayfly and SJ1 on the adapter. Doing so, you could use pin A5 for modem Vcc.
- The LTE adapter connects ON/SLEEP_N on bee pin 13 to Mayfly pin 19 (unless you change this with adapter SJ2).
- XBee pin 5 is
RESET_N
which the adapter connects to Mayfly pin 20. - XBee pin 9 is SLEEP_RQ which is connected still to Mayfly pin 23.
- I still like to use the red LED to show the bee wake/sleep in addition to the lights on the adapter.
Modules
- module Digi XBee® Cellular 3G
- module XBee Cellular
- module Digi XBee® Cellular LTE-M/NB-IoT
- module XBee Wifi S6B
Classes
- class DigiXBee
- The parent class for all Digi XBee and XBee3 wifi and cellular modules.
Defines
- #define XBEE_STATUS_TIME_MS = 15
- The loggerModem::
_statusTime_ms. XBee status can either be measured directly with
ON/SLEEP_N/DIO9
or indirectly withCTS_N/DIO7
. The status level will depend on which is being used:- the
ON/SLEEP_N/DIO9
will beHIGH
when the XBee is awake (ie, yes, I am not sleeping) - but the
CTS_N/DIO7
will beLOW
when the board is away (ie, no it's not not clear to send).
To use the
CTS_N/DIO7
as the status indicator, set useCTSStatus to true in the constructor.The time from wake until the status pin is active is not documented.
- the
- #define XBEE_RESET_LEVEL = LOW
- The loggerModem::
_resetLevel. All Digi XBee/XBee3's are reset via a
LOW
pulse on theRESET_N
pin.- #define XBEE_RESET_PULSE_MS = 5
- The loggerModem::
_resetPulse_ms. All Digi XBee/XBee3's are reset via a
LOW
pulse on theRESET_N
pin.- #define XBEE_WAKE_LEVEL = LOW
- The loggerModem::
_wakeLevel. All XBee/XBee3 modules are woken by holding
DTR_N/SLEEP_RQ/DIO8
LOW
(not pulsed).- #define XBEE_WAKE_PULSE_MS = 0
- The loggerModem::
_wakePulse_ms. All XBee/XBee3 modules are woken by holding
DTR_N/SLEEP_RQ/DIO8
LOW
(not pulsed).- #define XBEE_WAKE_DELAY_MS = 100
- The loggerModem::
_wakeDelayTime_ms. - #define XBEE_ATRESPONSE_TIME_MS = 15000L
- The loggerModem::
_max_atresponse_time_ms. The serial response time is not documented for the XBee so we allow a long (15s) buffer. It is probably much less than this, except possibly in bypass mode.
- #define XBEE_DISCONNECT_TIME_MS = 15000L
- The loggerModem::
_disconnetTime_ms. Power down time for the XBee is dependent on the underlying cellular or wifi component. We allow 15 seconds in case it is not monitored. The u-blox SARA R4 on the LTE-M model takes nearly that long to shut down.