MultiTech Dragonfly Nano

The MultiConnect® Dragonfly Nano offers developers an FCC and carrier certified solution that makes connecting sensors and other edge-of-network devices quick and easy.


The MultiConnect® Dragonfly™ Nano cellular SoMs are complete, ready-to-integrate processing and communications devices that offer developers the functionality of a SoM with the convenience of an onboard cellular radio all in one compact design. With its integrated Cortex M4 processor, developers can host their application and have access to a full suite of interfaces for connecting sensors or other remote assets.

Key Benefits

  • End device certified by leading carriers
  • Low power modes extend life of battery powered devices
  • Extended coverage means assets deep inside buildings are now reachable
  • Long solution lifecycle reduces redesign time and cost
  • LTE, Cat M1


  • 3GPP Release 13 Extended Discontinuous Reception (eDRX)
  • 3GPP Release 13 Extended Coverage
  • 3GPP Release 12 Power Saving Mode (PSM)
  • Arm® Mbed™ OS enabled
  • Multiple I/O interfaces for connecting almost any “Thing”

Offline Development Options

It is possible to develop offline for the Dragonfly Nano using mbed-cli and the Eclipse IDE. See our wiki page for more information.

Developer Kit Required

To program and use the Dragonfly Nano, you will need a UDK2 Developer Kit.


  • By default, UDK development boards identify target devices as MTS_DRAGONFLY_F411RE. To run Mbed OS automated tests or perform debug, you need to either mock or change the device ID to MTS_DRAGONFLY_L471QG.

To change the default device ID in the UDK

Download the application STSW-LINK007 from here:
Once you have installed it, run 
'st-LinkUpgrade.exe -force_prog -board -0312' to program the interface chip on the UDK2 as MTS_DRAGONFLY_L471QG.

Mock the device ID with this command on the command line

mbedls --mock 0310:MTS_DRAGONFLY_L471QG

Dragonfly Nano Pinout Diagram


The pinout diagrams above shows the commonly used interfaces and their locations. In addition to their stated functions, all GPIO pins (PA_*, PB_*, PC_*, PG_*) can also be used as DigitalIn and DigitalOut interfaces.

InterruptIn Limitations

Due to the processor's architecture, only one pin of the same number (e.g. PA_1 & PB_1) may be configured as an InterruptIn. If multiple pins of the same number are configured as InterruptIn, only the last pin configured will actually trigger an interrupt in the processor. The rest will be ignored.

PwmOut Limitations

PwmOut objects using different channels of the same timer must use the same prescaler value. Each timer has a single prescaler which applies to all channels in the timer.

For STM32L471 devices, two possible prescaler values are allowed:

  • 1us which allows for a period/pulse from 1us to 65535us
  • 500us which allows for a period/pulse from 500us to 32.76s

5V Tolerant IO Limitations

If the external voltage on a GPIO is greater than VDD + 0.3V, use of the internal pullup or pulldown resistors could damage the Dragonfly Nano. External pullup or pulldown resistors should be used instead.

For more information see the notes below section 6.3.1 of the STM32L471QG Data Sheet.

Dragonfly Nano Features

  • STM32L471QG Processor
    • Ultra Low Power ARM® Cortex™-M4 Core
    • 80 MHz,128 KB SRAM, 1MB Flash
    • SPI (2)
    • I2C (2)
    • UART(1)
    • PWM (12)
    • ADC (9)
    • GPIO (29)
  • Ublox Cellular Radio
    • Connected to Processor via UART
    • TCP & UDP Sockets
    • SMS messaging
  • Micron M25P16 Flash Memory
    • 16Mb serial flash

Cellular Example Program

Here is cellular example code that can be used to quickly get up and running with Dragonfly Nano. Please read through the documentation included with the example application.


Along with the settings you need to configure in the mbed_app.json file, be aware that you may need to adjust the PDP type that mbed accepts for this platform. In the file mbed-os/features/cellular/framework/targets/MultiTech/DragonflyNano/PPP/SARA4_PPP.cpp, there are settings for PROPERTY_IPVx_STACK. In our testing, we have found that enabling only IPV4V6 works for all the SIM cards we have tested. If you have experiencing connectivity problems, you may want to enable IPV4 or IPV6.


You can enable log messages in the mbed_app.json file with "trace-level" and "mbed-trace.enable".

Factory Firmware

The Dragonfly Nano ships from the factory pre-loaded with AT Passthrough Firmware. This firmware implements serial passthrough and provides direct access to the cellular radio via the UDK 2.0 developer board. The binary is available here.


If you would like to use a bootloader with your application, there is one available for the Dragonfly Nano found here. The bootloader stores the new image for upgrade and the old image as a back up in the on board flash memory during firmware upgrade. The on board flash memory is 2MB. The STM32L471 flash space is 1MB. So the back up file consumes half the flash space. The flash file system used on the flash part consumes several hundred KB of space. So the new image is limited to the remaining flash space. If other files are placed in flash, there will be even less space available.

Getting Started with mbed

1. Connect your microcontroller to a PC

Use the USB lead to connect your mbed to a PC. The status light will come on, indicating it has power. After a few seconds of activity, the PC will recognize the mbed Microcontroller as a standard USB drive.

Note that the drive name will be MULTITECH.

Windows 10 exampleMac OS X example

Go to the new USB Drive, and click MBED.HTM to open it in a web browser.

If you do not have an mbed account, choose "Signup", and create your mbed Account. Otherwise, log in with your normal username and password.

This will give you access to the website, tools, libraries and documentation.

PC Configuration

Your Mbed Microcontroller can appear on your computer as a serial port. On Mac and Linux, this will happen by default. For Windows, you need to install a driver:


See Windows-serial-configuration for full details about setting up Windows for serial communication with your Mbed Microcontroller

From a host PC to communicate with Mbed you will need a terminal application. This allows the Mbed Microcontroller to print to your PC screen, and for you to send characters back to your Mbed.

  • Terminals - Using Terminal applications to communicate between the Host PC and the Mbed Micrcontroller

Some terminal programs (e.g. TeraTerm) list the available serial ports by name. However, if you do need to know the identity of the serial port so that you can attach a terminal or an application to it:

Find the identity of the COM port by opening ''Device Manager''. To do this navigate ''Start -> Control Panel -> System -> Hardware -> Device Manager''.To find the device name under Mac OS X, use the command ''ls /dev/tty.usbmodem*''To find the device name under Linux, use the command ''ls /dev/ttyACM*''

Downloading A program

1. Save a program binary (.bin) to the Platform

Download the appropriate "Hello World!" binary:

Note: the source code for this program will be seen in the next section.

Save the program binary file to your Mbed Microcontroller Disk, just like you would with a normal USB disk. The Status LED will flash as the PC writes the file to the Microcontroller disk. The file is now consumed. Status LED is on the top edge of the board as pictured below.


2. Press the Reset Button

When the Reset Button, on the developer board, is pressed, the microcontroller will be reset and the last programmed application will begin to run.

3. Hello World!

The Microcontroller is now running the program; flashing the LED labeled D3 on the developer board forever! If you reset the Microcontroller, or disconnect and reconnect the power, the program will simply restart.

Hello World!

[Repository '/teams/mbed-os-examples/code/mbed-os-example-blinky/' not found]

Where Next

Follow the guide to creating your own programs using the online compiler

Technical Reference


Data Sheets and Product Info

Interface Firmware

  • The UDK2 uses the same ST-Link interface firmware as many of the ST Nucleo boards. The latest interface firmware and instructions for upgrading can be found here.