Skip to content

Maduino Zero NB-IoT


Our Maduino zero NB-IoT is equipped with the SIM7080G module, based on controller ATSAMD21G18, which is Arduino Zero compatible, it has strong extension capability with rich interfaces including I2C/SPI/UART/18*GPIO etc. The Maduino zero NB-IoT is suitable for IoT applications that need low latency and low throughput data communication in various radio propagation conditions, such as smart-home, metering, asset tracking, remote monitoring, E-health etc.

This board support NB-IoT (NarrowBand-Internet of Things), Cat-M (aka eMTC, enhanced Machine Type Communication), and GNSS (Global Navigation Satellite System) modules, it can be used with standard Arduino IDE, It supports multiple NB-IoT frequency band and supports communication protocols like HTTP/MQTT/LWM2M/COAP, etc.


Communications Specifications

Band NB-IoT: B1/B2/B3/B4/B5/B8/B12/B13/B18/B19/B20/B25/B26/B28/B66/B71/B85 CAT-M:B1/B2/B3/B4/B5/B8/B12/B13/B14/B18/B19/B20/B25/B26 /B27/B28/B66/B85
Emitting power Class 5 (0.125W@LTE) Class 5 (0.125W@LTE)
Data rate Uplink≤150kbps / Downlink≤136kbps Uplink≤1119Kbps / Downlink≤589Kbps
Supported SIM Card NB-IoT card (1.8V SIM card ONLY) CAT-M card (1.8V SIM card ONLY)
Applicable region Global Global

You can find Frequency bands here: wiki

Here is a referenced LTE band list: List of LTE networks


  • ATSAMD21G18, 32-Bit ARM Cortex M0+
  • Interface: I2C/SPI/UART/18*GPIO
  • Onboard USB interface, to test AT Commands, get GPS positioning data, and so on
  • Supports communication protocols such as TCP/UDP/HTTP/HTTPS/TLS/DTLS/PING/LWM2M/COAP/MQTT.
  • Onboard USB interface, to test AT Commands, get GPS positioning data, and so on.
  • USB supply voltage range: 4.8~5.5V, 5.0V Typically
  • Battery supply voltage range: 3.4~4.2V, 3.7V Typically
  • Arduino Zero platform, Arduino IDE compatible
  • SD card socket
  • Windows and Raspberry Pi support
  • Operating temperature: -40°C ~ 85°C

Special Note: SIM7080G GNSS and network cannot be used simultaneously


Transferring data to Thingspeak


  • Plug the SIM card into the board.

  • Plug the 4G-GSM antennas into the LTE interface.

  • Connect Maduino Zero NB-IoT and DHT11.



ThingSpeak Is The Open IoT Platform With MATLAB Analytics.

  • Register and log in to your account image.png

  • Define the parameter you want in the Channel page and save it image.png image.png

  • On the API keys page you can find out the API key used to write the data, and you can see an example of an API request on the right. image.png

  • By accessing the URL of the write channel, you can modify the parameters image.png image.png

Arduino IDE

  • Install the Arduino IDE V1.8.10/V1.8.19

  • Use Type-C USB cable to connect the board and PC, note plug the cable to USB-MCU interface.

  • Open thingspeak_demo.ino

  • Define pins and configure DHT11

#define DEBUG true
#define LTE_RESET_PIN -1
#define LTE_PWRKEY_PIN 5

#define DHTPIN 7      // Digital pin connected to the DHT sensor
#define DHTTYPE DHT11 // DHT 11
  • Initialize devices so that they work properly

digitalWrite(LTE_RESET_PIN, LOW);
digitalWrite(LTE_RESET_PIN, LOW);
digitalWrite(LTE_PWRKEY_PIN, HIGH);
digitalWrite(LTE_PWRKEY_PIN, LOW);
  • AT commands sent to the module and information returned by the module can be checked through the serial port.
void loop()
    while (Serial1.available() > 0)
    while (SerialUSB.available() > 0)

  • Using the HTTP Get function of SIM7080G
    sendData("AT", 1000, DEBUG);
    sendData("AT+CPIN?", 1000, DEBUG);
    sendData("AT+CCID", 1000, DEBUG);
    sendData("AT+CSQ", 1000, DEBUG);
    sendData("AT+COPS?", 1000, DEBUG);
    sendData("AT+CGATT?", 1000, DEBUG);
    sendData("AT+CNACT=0,1", 1000, DEBUG);
    sendData("AT+CNACT?", 1000, DEBUG);

    sendData("AT+SHCONF=\"URL\",\"\"", 1000, DEBUG);
    sendData("AT+SHCONF=\"BODYLEN\",1024", 1000, DEBUG);
    sendData("AT+SHCONF=\"HEADERLEN\",350", 1000, DEBUG);
    sendData("AT+SHCONN", 5000, DEBUG);
    // delay(5000);
    sendData("AT+SHSTATE?", 1000, DEBUG);
    sendData("AT+SHCHEAD", 1000, DEBUG);
    sendData("AT+SHAHEAD=\"User-Agent\",\"curl/7.47.0\"", 1000, DEBUG);
    sendData("AT+SHAHEAD=\"Cache-control\",\"no-cache\"", 1000, DEBUG);
    sendData("AT+SHAHEAD=\"Connection\",\"keep-alive\"", 1000, DEBUG);
    sendData("AT+SHAHEAD=\"Accept\",\"*/*\"", 1000, DEBUG);
    // sendData("AT+SHREQ=\"/update?api_key=5WOQ0JZURMWBTRF4&field1=123\",1", 1000, DEBUG);
    sendData(msg, 1000, DEBUG);
    sendData("AT+SHREAD=0,386", 1000, DEBUG);
    sendData("AT+SHDISC", 1000, DEBUG);
    sendData("AT+CNACT=0,0", 1000, DEBUG);

More detail you can check SIM7070_SIM7080_SIM7090_Series_HTTP(S)_Application_Note_V1.02.pdf

  • Replace this with your own API key image.png

  • Select "Tool --> Board --> Arduino Zero(Native USB Port)" and the port image.png

Note: Different computers may have different port numbers when connecting to a development board. Please select the correct port number based on the development board you are connecting to.

  • Verify the code and upload.

  • When the module returns 200,1, it means that the URL was accessed successfully. image.png

  • In the Private View screen of Thingspeak you can see the parameter change. image.png


You can list your question here or contact for technology support. Detailed descriptions of your question will be helped to solve your question.