The LTEm1 cellular modem is a power communications platform for your remote and possibly mobile IoT devices. It has a two LTE options for communications and a fallback to EGPRS (2G), a GPS receiver, and direct support for numerous application protocols like HTTP, TCP/UDP and MQTT. Along with LooUQ Circuit River UXplor line of development boards your project can advance as fast as your ideas.

Everyone Starts Somewhere

For this guide, we are going to start at the beginning with the LTEm1, the UXplor-Feather development board and the LTEm1c device driver. All of the concepts covered here apply in some fashion to using the LTEm1 with the UXplor-Breakout or UXplor-RPi. Throughout the guide I will point out differences between the tasks for Feather, Raspberry-PI and the Breakout UXplor development adapters.

Throughout this guide, when I say "UXplor" I am referring to the UXplor-Feather. If I am talking about the differences with the UXplor-RPi or UXplor-Breakout, I will simply say RPi or Breakout. 

Before the LTEm1 can do anything productive, we have to power it up and wire up some connections.


The LTEm1 requires a 3.7 volt power source. Most of the time, the LTEm1 draws around 25-40 mA. But, at startup and occasionally it will draw in excess of a 100 mA. To cover these occasional power needs, the UXplor requires a LiPo battery be connected to the Feather. The size of the LiPo is not important, but the battery is required no matter the power source.

LooUQ has tested the LTEm1/UXplor with LiPo as small as 105mAh and as large as 4000mAh. Whatever size battery your project needs will work. If your project doesn't need a battery because it is powered off of the grid or a big machine with power of its own, the LTEm1 is happy if you give it a small 100-300 mAh battery for reserve power.

To explain this, the LTEm1's VIn is connected to the Feather's VBAT pin. The Feather's voltage regulator/battery charger keeps the battery happy and the battery keeps the LTEm1 powered on.

Wiring it up

There are several connections between the LTEm1 and its host. The UXplor takes care of wiring these connections up and the snippet below from the LTEm1c driver shows (from platform_pins.h) shows what goes where. These are all digital pins assignments on the Feather. 

ltem1PinConfig_t ltem1_pinConfig =
  spiCsPin : 13,
  irqPin : 12,
  statusPin : 6,
  powerkeyPin : 11,
  resetPin : 10,
  ringUrcPin : 0,
  wakePin : 0

Most of the signals are required for operation of the LTEm1, the ones with a "0" pin number are not required.

To get the modem to just power on only 2 pins are required. 

  • The Reset pin must be maintained LOW (pulsed to reset the modem).
  • The PowerKey must be LOW and pulsed HIGH for atleast  500mS to power the unit on.
  • The Status pin will report back HIGH if the modem is powered on.

The sketch below is the minimum Feather instructions (aka Arduino setup()) to power on the modem. Once the modem is powered on you can talk to it via the USB port on the left-side of the modem.

    digitalWrite(10, LOW);    // write LOW to pins before setting to output
    digitalWrite(11, LOW);
    pinMode(10, OUTPUT);
    pinMode(11, OUTPUT);
    pinMode(6, INPUT);

    // turn modem on: pulse powerKey HIGH for 500mS
    digitalWrite(11, HIGH);
    digitalWrite(11, LOW);

    // wait for LTEm1 to power on
    do {
    } while (!digitalRead(6))
    Serial.println("LTEm1 is powered on.");


There are 2 USB connections in the UXplor configuration above. 

  • The LTEm1 modem has a USB attached on its underside. This USB talks directly to the LTEm1 and has 3 virtual serial ports. 
    • AT command/data
    • Diagnostics/firmware update
    • NMEA sentence output
  • The Feather has a USB connection that support communications between the Feather and the workstation's IDE environment. This USB also supplies 5v power source to the UXplor, Feather and the LTEm1.

Power can be supplied by either the Feather's USB/battery or via an optional UXplor PWR module that plugs vertically to the pin-connectors shown above to the right of the LTEm1 modem. There are 2 PWR modules available: PWR-630 accepts 6-30 volt input AC or DC, the PWR-SOL allows for solar powering your project from a standard 6v solar panel.

There are 2 antenna connectors on the LTEm1. The LTE cellular connection and the GPS/GNSS connection. Both use U.FL/IPEX connectors. You can use a U.FL to SMA cable to attach to antenna with the SMA threaded connector. The LTEm1 support both passive and active GNSS antennas. The 3-5v power requirement for active GNSS antenna is available from the UXplor and can be injected into the GNSS antenna signal via the 2 pin headers (unpopulated) shown near the GNSS antenna.

Status signal from the LTEm1 are made available along the top of the UXplor board. There is also a micro push-button switch to allow for you to power up/down the modem.

The unused I/O ports on the Feather are also exposed on the UXplor. These include the RX/TX UART pins, the SPI bus, and the I2C (both as header pads and a Qwiic connector).


Stay tuned, work on this is continuing on...