XBee Wifi S6B topic

Introduction

Digi's wifi XBee is implemented as a DigiXBeeWifi object - a subclass of DigiXBee and loggerModem. The S6B is run in Digi's "transparent" mode. The maxiumum power draw is ~300mA.

Manufacturer Documentation

The Digi product page for the S6B wifi module is here: https://www.digi.com/products/embedded-systems/rf-modules/2-4-ghz-modules/xbee-wi-fi

Modem Constructor

DigiXBeeWifi::DigiXBeeWifi(Stream* modemStream, int8_t powerPin, int8_t statusPin, bool useCTSStatus, int8_t modemResetPin, int8_t modemSleepRqPin, const char* ssid, const char* pwd, bool maintainAssociation = false)

Construct a new Digi XBee Wifi object.

Parameters
modemStream The Arduino stream instance for serial communication.
powerPin The digital pin number of the mcu pin controlling power to the modem (active HIGH).
statusPin The digital pin number of the mcu pin connected to the modem status output pin.
useCTSStatus True to use the CTS_N/DIO7 pin of the XBee as a status indicator rather than the true status (ON/SLEEP_N/DIO9) pin. This inverts the loggerModem::_statusLevel.
modemResetPin The digital pin number of the pin on the mcu attached the the hard or panic reset pin of the modem.
modemSleepRqPin The digital pin number of a pin on the mcu used to request the modem enter its lowest possible power state.
ssid The wifi network ID.
pwd The wifi network password, assuming WPA2.
maintainAssociation Whether to maintain association with the access point during sleep. Maitaining the association during sleep draws more current (+10mA?), but also allows a faster reconnection on the next wake.

The constuctor initializes all of the provided member variables, constructs a loggerModem parent class with the appropriate timing for the module, calls the constructor for a TinyGSM modem on the provided modemStream, and creates a TinyGSM Client linked to the modem.

Should be set to a negative number if the modem should be continuously powered or the power cannot be controlled by the MCU. Should be set to a negative number if the modem status pin cannot be read. This can be either the pin named ON/SLEEP_N/DIO9 or CTS_N/DIO7 pin in Digi's hardware reference. Should be set to a negative number if the modem reset pin is not connected to the MCU. This shold be the pin called RESET_N in Digi's hardware reference. Should be set to a negative number if there is no pin usable for deep sleep modes or it is not accessible to the MCU. This shold be the pin called DTR_N/SLEEP_RQ/DIO8 in Digi's hardware reference.



Example Code

The digi_cellular is used in the menu a la carte example.

1// For the u-blox SARA R410M based Digi LTE-M XBee3
2// NOTE: According to the manual, this should be less stable than transparent
3// mode, but my experience is the complete reverse.
4#include <modems/DigiXBeeLTEBypass.h>
5
6// NOTE: Extra hardware and software serial ports are created in the "Settings
7// for Additional Serial Ports" section
8const int32_t modemBaud = 9600; // All XBee's use 9600 by default
9
10// Modem Pins - Describe the physical pin connection of your modem to your board
11// NOTE: Use -1 for pins that do not apply
12// The pin numbers here are for a Digi XBee with a Mayfly 0.x and LTE adapter
13const int8_t modemVccPin = A5; // MCU pin controlling modem power
14const int8_t modemStatusPin = 19; // MCU pin used to read modem status
15// NOTE: If possible, use the `STATUS/SLEEP_not` (XBee pin 13) for status, but
16// the CTS pin can also be used if necessary
17const bool useCTSforStatus = false; // Flag to use the CTS pin for status
18const int8_t modemResetPin = 20; // MCU pin connected to modem reset pin
19const int8_t modemSleepRqPin = 23; // MCU pin for modem sleep/wake request
20const int8_t modemLEDPin = redLED; // MCU pin connected an LED to show modem
21 // status
22
23// Network connection information
24const char* apn = "xxxxx"; // APN for GPRS connection
25
26// Create the modem object
27DigiXBeeLTEBypass modemXBLTEB(&modemSerial, modemVccPin, modemStatusPin,
28 useCTSforStatus, modemResetPin, modemSleepRqPin,
29 apn);
30// Create an extra reference to the modem by a generic name
31DigiXBeeLTEBypass modem = modemXBLTEB;

Classes

class DigiXBeeWifi
The class for the Digi XBee S6B wifi module operating in Digi's "transparent" mode.

Configuration Defines

Defines to configure if and when to reset the WiFi XBee

#define XBEE_RESET_THRESHOLD = 4
This causes the WiFi XBee to reset after this number of transmission attempts.

Define documentation

#define XBEE_RESET_THRESHOLD = 4

This causes the WiFi XBee to reset after this number of transmission attempts.