Since the Internet of Things (IoT) has had some time to grow, companies are starting to realize a large market for slower and smaller cellular devices. A typical IoT system will wake up after a long interval just to send out a small amount of data before going back to sleep. There are cellular modules as well as very cheap plans that can support these systems. For a more detailed explanation, read IoT, Slower, Small and Lower is Better! Digi International’s XBee Cellular LTE CAT 1 is one of these modules and making it a standalone device will be the focus of this article.
Throughout this article there will be references to where the information came from. They will be located below the title of that part and will reference one of the two below guides as well as the section they were found in.
(90002219) Digi MicroPython Programming Guide
(90001525) Digi XBee Cellular Embedded Modem User Guide
Analog is 0-2.5V not 3.3V
90002219->Examples->I/O Pins->Measure voltage on the pin
The ADC inputs provide 12-bit values but will read the max value of 4095 at 2.5V which means if you have a 3.3V sensor connected to it you will need to look at offsetting the values otherwise you will see 100% feedback when it will really only be about 75%.
Sourcing and Sinking Current Restrictions
90001525->Technical Specs->Electrical Specifications
Making sure you don’t burn up the device is another problem to keep in mind. The outputs and inputs are only able to source or sink 6mA of current per pin. To power larger devices you will have to use a solid state relay since standard coil relays typically use far more than 6mA of current.
List of all the Ctrl commands
Ctrl+A: Enter raw REPL mode
Ctrl+B: Print the MicroPython banner
Ctrl+C: Regain control of the terminal
Ctrl+D: Reboot the MicroPython REPL
Ctrl+E: Enter paste mode
Ctrl+F: Upload code to flash
Ctrl+R: Run code in flash
|2||DOUT||Output||Output||UART Data Out|
DIN / CONFIG
|Input||Input||UART Data In|
|4||DIO12||Either||Disabled||Digital I/O 12|
|6||PWM0 / RSSI / DIO10||Either||Output||PWM Output 0 / RX Signal Strength Indicator / Digital I/O 10|
|7||PWM1 / DIO11||Either||Disabled||PWM Output 1 / Digital I/O 11|
|8||[reserved]||Do not connect|
DTR / SLEEP_RQ/ DIO8
|Either||Disabled||Pin Sleep Control Line or Digital I/O 8|
|11||DIO4||Either||Disabled||Digital I/O 4|
CTS / DIO7
|Either||Output||Output Clear-to-Send Flow Control or Digital I/O 7|
|Output||Output||Module Status Indicator or Digital I/O 9|
|14||VREF||-||Feature not supported on this device. Used on other XBee devices for analog voltage reference.|
|15||Associate / DIO5||Either||Output||Associated Indicator, Digital I/O 5|
RTS / DIO6
|Either||Disabled||Input Request-to-Send Flow Control, Digital I/O 6|
AD3 / DIO3
|Either||Disabled||Analog Input 3 or Digital I/O 3|
|18||AD2 / DIO2||Either||Disabled||Analog Input 2 or Digital I/O 2|
AD1 / DIO1
Analog Input 1 or Digital I/O 1
|20||AD0 / DIO0||Either||Input||Analog Input 0, Digital I/O 0|
This project will show the very basics of how to make Digi International’s XBee Cellular LTE CAT 1 module a standalone project. We will be simply controlling a 5V LED by texting the XBee as well as using a magnetic switch to have it text you when the switch goes off. With these basics you will be able to branch out to a variety of different projects.
Digi XBee Cellular LTE CAT 1 Kit: 602-1975-ND
Solid State Relay: 255-1546-5-ND
Breakout Board: 1568-1099-ND
Female Headers: 1528-1392-ND
Male Headers: 929834E-01-20-ND
3.3V Power Supply: 62-1234-ND
5V Power Supply: Q972-ND
Power Barrel to Wire (x2): 839-1148-ND
Green LED: 754-1736-ND
Magnetic Door Switch: 1528-1907-ND
Breadboard, wires, wire stripper, etc.
I recommend getting the XBee Cellular Kit mainly because it includes the development board which is requited to program it as well as the antennas. It also included 6 months of free service so you can start experimenting and testing without setting up any cellular service.
Installing the Software
Everything was programmed using Digi’s XCTU software. Instructions on how to install and connect to the board can be found on their site.
After you get the software installed and can see that board, you will need to update the firmware. Select update next to the read and write buttons.
Be sure to change it to XBC LTE Cat 1 Verizon and select the newest firmware version.
Once the newest firmware is on there, reset all the settings to their default values just to make sure everything is correct. Once that is done, you will need to change just a couple values:
IP IP Protocol = SMS 
AP API Enable = MicroPython REPL 
Open the MicroPython Terminal. If you get a blank window, try maximizing the window. This happened to me periodically.
All code must be copied and pasted into the terminal so you will need to create your code in a text file or a Python editor. You can find a list of common commands above.
The below code will work while the XBee is still on the development board. To test it out, texting On or Off will control DS4 LED which is located next to the XBee module. Since the LED is active low, the instructions are reversed so texting On will actually turn it off. The relay in the schematic is active high so this will be fixed once put into the circuit. You can also press SW2 on the development board to send yourself a text.
To make this a standalone circuit, you will need to upload the code to flash (Ctrl+F) and be sure to say yes when it asks if you want to run on start.
Here are the project files for the above schematic, the symbols for the parts, and a footprint design for the XBee Pro.