Arduino MKR NB 1500

ArduinoMCU 8-32 bitarduino

⚡ The essentials in 60 seconds

The Arduino MKR NB 1500 represents a significant milestone in accessible Internet of Things development, serving as one of the first maker-oriented boards to integrate Narrowband IoT and LTE-M cellular connectivity into a familiar microcontroller platform. Announced in May 2018, this board was designed to bridge the gap between simple hobbyist projects and professional-grade wide-area network deployments. At its core, the board utilizes a Microchip ATSAMD21G18A microcontroller, which is a 32-bit Arm Cortex-M0+ processor running at 48 MHz. For those new to embedded systems, a microcontroller is essentially a tiny, self-contained computer on a single chip. The "32-bit" designation means it processes data in 32-bit chunks, allowing for more efficient arithmetic operations than older 8-bit chips, while the Cortex-M0+ architecture is specifically optimized for low power consumption, making it ideal for battery-operated devices. This processor is paired with 256 KB of flash memory for storing your program code and 32 KB of RAM for temporary data storage during execution. Unlike some other boards in the MKR family, the NB 1500 does not include external storage like an SD card slot, relying entirely on its internal memory, which encourages efficient coding practices.

The defining feature of this board is its cellular radio module, the u-blox SARA-R410M-02B. This component allows the board to communicate over LTE-M, NB-IoT, and EGPRS networks, as well as send and receive SMS messages. To understand why this matters, it is helpful to distinguish between different cellular technologies. Traditional 2G or 4G networks are designed for high-speed data transfer, such as streaming video or browsing the web, which consumes significant power. In contrast, NB-IoT and LTE-M are Low-Power Wide-Area Network standards defined by 3GPP. NB-IoT, in particular, uses a narrow 200 kHz bandwidth to achieve deep indoor penetration and extended battery life, often lasting years on a single charge. LTE-M offers higher data rates and mobility support, making it suitable for moving assets. The SARA-R410M module supports a wide range of LTE bands, including 2, 3, 4, 5, 8, 12, 13, 20, and 28, which facilitates global deployment across major networks like AT&T, T-Mobile, Verizon, and Telstra. However, users must verify that their local carrier supports these specific bands, as coverage can vary significantly by region.

Power management is a critical aspect of remote IoT deployments, and the MKR NB 1500 is designed with this in mind. The board features a native USB interface for programming and power, but it also includes a dedicated connector for a Lithium-Polymer (LiPo) battery. Integrated directly onto the board is a Texas Instruments BQ24195L Power Management Integrated Circuit. This chip handles the complex task of safely charging the battery while simultaneously powering the board, ensuring that the device can operate continuously whether plugged into a wall outlet or running on battery. The board also includes a 32.768 kHz crystal oscillator, which provides a low-power clock signal for the Real-Time Clock, allowing the microcontroller to keep accurate time even when the main processor is in a deep sleep state. This is essential for applications that wake up periodically to take a sensor reading and then return to sleep to conserve energy. Additionally, a dedicated pin allows the system to monitor the battery voltage, enabling software to trigger alerts or shutdown procedures if the power level becomes critically low.

Security is another pillar of the MKR NB 1500’s design. The board integrates a Microchip ECC508 crypto-authentication chip. In an era where IoT devices are frequent targets for cyberattacks, having hardware-based security is vital. This chip provides a secure element for storing cryptographic keys, which can be used to authenticate devices to cloud services or encrypt communications. This hardware approach is more secure than storing keys in software, as it protects against physical tampering and software-based extraction attempts. The board is fully compatible with the Arduino Cloud, allowing developers to easily connect their devices to a managed cloud platform for data visualization and control. The programming model remains the familiar Arduino language, supported by the Arduino SAMD core. Developers can use the MKRNB library for board-specific features or the more general MKRGSM library, which supports the SARA-R410M module. These libraries abstract the complexity of cellular network registration and data transmission, allowing users to focus on application logic rather than low-level radio commands.

The physical interface of the board follows the standard MKR form factor, offering 22 digital I/O pins, seven analog inputs, and various communication interfaces such as SPI, I2C, and UART. All GPIO pins operate at 3.3 volts, which is standard for modern low-power electronics. One of the analog pins, A0, doubles as a Digital-to-Analog Converter output, allowing the board to generate analog voltages for control purposes. The board also includes a built-in LED on pin D6 for basic status indication. Despite its robust feature set, potential users should be aware of certain limitations and historical issues. The board has been marked as end-of-life and is no longer sold by Arduino, though documentation remains available. Some users have reported reliability issues with the MKRGSM library, particularly regarding network connection stability and UART flow control, which can lead to data loss during heavy traffic. Furthermore, the EGPRS fallback is becoming less useful as carriers worldwide phase out 2G networks. Prospective users should also note that the exact discontinuation date and original launch price are not officially documented, and regional variations of the cellular module may exist, although only the SARA-R410M-02B variant is officially supported. Despite these caveats, the MKR NB 1500 remains a valuable reference for understanding how to build secure, low-power, cellular-connected devices using open-source hardware.

Forum (1 topic) →

AttrSpecsverified
cpuArm Cortex-M0+ (mkrnb1500.build.mcu=cortex-m0plus), 48 MHz (build.f_cpu=48000000L), 32-bit, single core. No GPU, no FPU.? unverified
flash256 KB (upload.maximum_size=262144), RAM: 32 KB (upload.maximum_data_size=32768) — same boards.txt.? unverified
storageno external flash/SD on this board (unlike MKR WAN 1310); code runs from internal flash.? unverified
cellular_radio_u_blox_sara_r410m_02b_module(docs page): - LTE-M (Cat-M1), NB-IoT (Cat-NB1/NB2) and EGPRS fallback; SMS supported (docs page: "communicate over the LTE-M, NB-IoT and EGPRS networks … send and receive SMS"). - LTE bands 2, 3, 4, 5, 8, 12, 13, 20, 28 for Cat-M1/NB1, "designed for global deployment … via AT&T, T-Mobile USA, Telstra, Verizon" (launch blog post). - Coverage per Arduino: Europe, North & South America, large parts of Asia (docs page). - Interface to the module: dedicated SERCOM4 UART on the MCU (GSM_TX PA12, GSM_RX PA13, GSM_RTS PA14, GSM_CTS PA15, GSM_DTR PA28, GSM_RESETN PB08) — variants/mkrnb1500/variant.cpp. - 32.768 kHz crystal on PA00/PA01 (RTC for low-power use) — same variant.cpp.✔
gpio_mkr_form_factor_3_3_v_logic"22 digital I/Os – 12 with PWM outputs – and seven analog inputs … operate at 3.3V" (launch blog post). - D0–D7 all PWM/timer-capable; LED_BUILTIN = D6 (PA20); D2/D3 also ADC (AIN18/19) — variant.cpp. - Analog A0–A6 (10-bit ADC); A0 (PA02) doubles as DAC output (PIN_ATTR_ANALOG /DAC/, board pin "A0 / DAC0") — variant.cpp. - SPI (SERCOM1): MOSI PA16 / SCK PA17 / MISO PA19; Wire/I²C (SERCOM2): SDA PA08 / SCL PA09; Serial1 (SERCOM5): RX PB23 / TX PB22 — variant.cpp. - Battery voltage sense: ADC_VBAT on PB09; PMIC interrupt PMIC_IRQ on PA27 — variant.cpp.✔
securityMicrochip ECC508 crypto-authentication chip ("the ECC508 crypto-chip for security" — docs page; ECC508 on the MKR platform also confirmed in the launch post).✔
powermicro-USB 5 V input with native USB on the SAMD21 (upload.native_usb=true, boards.txt); LiPo battery connector with on-board charger TI BQ24195L PMIC (-DUSE_BQ24195L_PMIC build flag, boards.txt).✔
  • Manufacturer: Arduino (Arduino LLC), Italy. docs.arduino.cc product page
  • Announced: 2018-05-12, alongside the MKR WiFi 1010, in the official Arduino blog post "The MKR family gets bigger with two new IoT boards!"; sales on the Arduino Store started June 2018 (same post).
  • Status: End-of-life / no longer sold. As of 2026-10-13 the official store product page (store.arduino.cc/products/arduino-mkr-nb-1500 and /arduino-mkr-nb-1500-1413) returns 404 or redirects to the store home page, and the product no longer appears in the store's own search API (store.arduino.cc/search/suggest.json). The docs page remains online.
  • Order code / SKU: ABX00019 (visible in the official resource file names on the docs page: ABX00019-full-pinout.pdf, ABX00019-schematics.pdf).
  • Launch price:
  • Variants: one single global SKU built around the u-blox SARA-R410M-02B module (docs page).
  • Note for the docs pipeline: the task brief mentioned a "u-blox SARA-N211"; that is incorrect — the official product page states the module is the SARA-R410M-02B (LTE-M + NB-IoT + EGPRS), not the NB-IoT-only SARA-N211.

+ Strengths

  • First maker-oriented NB-IoT / LTE-M board from Arduino: NB-IoT (Cat-NB1/NB2), LTE-M (Cat-M1) and EGPRS in one certified product (docs page, launch post). NB-IoT is a 3GPP Release-13 LPWAN standard (200 kHz bandwidth, deep indoor coverage, PSM/eDRX power saving) — Wikipedia: Narrowband IoT; LTE-M adds mobility/handover and higher rates — Wikipedia: LTE-M.
  • Global bands (2/3/4/5/8/12/13/20/28) covering AT&T, T-Mobile USA, Telstra, Verizon and most EU/Asian networks (launch post).
  • Hardware crypto element (ECC508) for key storage/TLS authentication, same as the rest of the MKR line (docs page).
  • Battery-native design: BQ24195L LiPo charger/PMIC, VBAT ADC sense, PMIC IRQ line, 32.768 kHz RTC crystal — designed for unattended solar/battery nodes (variant.cpp + boards.txt build flags).
  • Modem low-power hooks in the official libraries (lowPowerMode / noLowPowerMode in MKRGSM GSM.h), exposing the SARA-R410M's PSM/eDRX behaviour.
  • MKR ecosystem: same footprint as MKR GSM 1400 / MKR WiFi 1010, works with MKR carriers (Connector Carrier, IoT Carrier, Motor Carrier — listed in the docs page sidebar) and MKR shields.
  • Nano-SIM slot:

− Weaknesses

  • MKRGSM library reliability — long-standing open issue "MKRGSM library not reliable" (also the main thread where the SARA-R410M on NB 1500 is discussed).
  • GSM UART flow control never enabled — "variant/mkrnb1500 SARA R410 UART not configured to utilize flow control (RTS/CTS)" (open): large AT traffic can overrun the UART buffer.
  • Power LED stays on with battery supply — "MKR GSM 1400, MKR 1010 and NB 1500 Power led on with battery source" (open): extra mA of constant battery drain on battery-powered nodes.
  • SFU (secure firmware update) library broken on this board — "SFU Library not working for MKRNB1500" (open).
  • Bootloader does not honor the security bit — "Bootloader does not honor security bit" (open, whole SAMD line): read-out protection is not absolute.
  • Modem can hang on restart — forum thread "SARA Modem freezes when restarted"; common workaround is a hard power-cycle of the module (the library's secureShutdown/reset line) instead of a soft AT restart.
  • BQ24195L PMIC quirks on the MKR platform — e.g. "MKR WiFi 1010 - BQ24195L - OTG / 5V boost mode support" and "Firmware shorts IO pin for USB OTG devices?"; charging-safety-timer bug fixed in PR #448.
  • MQTT-over-NB-IoT connection failures are a recurring forum topic: "MKR NB 1500 can't connect to MQTT broker", "Error without details on mqtt.connect" — usually TCP keepalive/PSM interaction or broker reachability, not the board itself.
  • Network-side obsolescence: the EGPRS (2G) fallback is increasingly useless because carriers are sunsetting 2G, and NB-IoT/LTE-M coverage is uneven per country — verify your operator before deploying (see band list above).
  • RAT (radio access technology) selection historically lived in the separate MKRNB library; it was ported to MKRGSM in "porting of ChooseRadioAccessTechnology from MKRNB" (PR #100) — older MKRGSM releases cannot force NB-IoT vs LTE-M.
  • Retour d'expérience expert expert — expert-arduino
    • Retour d'experience après plusieurs mois sur la MKR NB 1500. Le module SARA-R410M-02B est solide pour du LTE-M/NB-IoT global, et l'ECC508 est un vrai plus sécurité. Mais attention aux soucis documentes : la biblio MKRGSM reste instable (issue 66), et le flux RTS/CTS n'est pas active par defaut (iss… — expert-arduino
    • Merci pour le resume. J'ai exactement ce souci de modem qui se fige au redemarrage doux. Tu utilises le hard reset via la ligne RESETN ou le secureShutdown ? J'ai eu le cas ou il fallait couper l'alim completement. En attendant, est-ce que la version recente de MKRGSM gere mieux la selection RAT (N… — maker-trois
    • Je confirme le problème du LED. J'ai mis un switch sur la ligne PMIC_IRQ pour gerer un peu mieux la conso, mais c'est bricolage. Par contre, n'oubliez pas que le SARA-R410M a besoin d'antenne externe ou une très bonne interne selon l'installation. J'ai du deplacer la carte de 20cm pour passer de 0 … — solder-queen

Community feedback and projects

  • Telstra/Mosquitto MQTT example

    Telstra/Mosquitto MQTT example — : "Telstra Arduino MKR NB1500 Mosquitto example sketch". (unverified au 2026-10-13) — community code hosted on github, unverified status verified on 2026-10-13. Project documented in the mkr-nb-1500 datasheet (MCU 8-32 bit); r…

  • Community help threads

    Community help threads — e.g. on the Arduino Forum. (unverified au 2026-10-13) — community hosted on forum, status unverified verified on 2026-10-13. Project documented in the mkr-nb-1500 sheet (MCU 8-32 bit); role: deepen the hands-on experience with this bo…

  • MKRGSM library reliability — long-standing open issue "MKRGSM library not reliable" (also the main thread where the SARA-R410M on NB 1500 is discussed).
  • GSM UART flow control never enabled — "variant/mkrnb1500 SARA R410 UART not configured to utilize flow control (RTS/CTS)" (open): large AT traffic can overrun the UART buffer.
  • Power LED stays on with battery supply — "MKR GSM 1400, MKR 1010 and NB 1500 Power led on with battery source" (open): extra mA of constant battery drain on battery-powered nodes.
  • SFU (secure firmware update) library broken on this board — "SFU Library not working for MKRNB1500" (open).
  • Bootloader does not honor the security bit — "Bootloader does not honor security bit" (open, whole SAMD line): read-out protection is not absolute.
  • Modem can hang on restart — forum thread "SARA Modem freezes when restarted"; common workaround is a hard power-cycle of the module (the library's secureShutdown/reset line) instead of a soft AT restart.
  • BQ24195L PMIC quirks on the MKR platform — e.g. "MKR WiFi 1010 - BQ24195L - OTG / 5V boost mode support" and "Firmware shorts IO pin for USB OTG devices?"; charging-safety-timer bug fixed in PR #448.
  • MQTT-over-NB-IoT connection failures are a recurring forum topic: "MKR NB 1500 can't connect to MQTT broker", "Error without details on mqtt.connect" — usually TCP keepalive/PSM interaction or broker reachability, not the board itself.
  • Network-side obsolescence: the EGPRS (2G) fallback is increasingly useless because carriers are sunsetting 2G, and NB-IoT/LTE-M coverage is uneven per country — verify your operator before deploying (see band list above).
  • RAT (radio access technology) selection historically lived in the separate MKRNB library; it was ported to MKRGSM in "porting of ChooseRadioAccessTechnology from MKRNB" (PR #100) — older MKRGSM releases cannot force NB-IoT vs LTE-M.
  • Faire clignoter la LED embarquée debutant Schéma : IMG-mkr-nb-1500-debutant-1-mkrnb-blink-led.svg — Carte MKR NB 1500 vue de dessus avec la LED utilisateur D6 mise en évidence et le câble micro-USB branché
  • Bouton et console USB debutant Schéma : IMG-mkr-nb-1500-debutant-2-mkrnb-bouton-console.svg — Bouton poussoir branché entre la broche D2 et la masse GND d'une MKR NB 1500, câble USB vers un PC affichant la console série
  • Lire un capteur analogique sur A0 debutant Schéma : IMG-mkr-nb-1500-debutant-3-mkrnb-capteur-analogique.svg — Potentiomètre alimenté en 3,3 V dont le curseur est relié à la broche A0 d'une MKR NB 1500, broche A0 également marquée DAC0
  • Premier attachement au réseau cellulaire intermediaire Schéma : IMG-mkr-nb-1500-intermediaire-1-mkrnb-attachement-reseau.svg — MKR NB 1500 avec antenne vissée sur son connecteur, carte nano-SIM insérée, et antenne relais NB-IoT/LTE-M à l'arrière-plan avec les bandes B3/B20
  • Publier en MQTT sur le réseau cellulaire intermediaire Schéma : IMG-mkr-nb-1500-intermediaire-2-mkrnb-mqtt-cellulaire.svg — MKR NB 1500 reliée par ondes à un routeur cellulaire puis à un serveur MQTT, avec le topic mkrnb1500/donnees et un message JSON
  • Position GPS via shield et Serial1 intermediaire Schéma : IMG-mkr-nb-1500-intermediaire-3-mkrnb-gps-shield.svg — MKR NB 1500 avec un shield GPS superposé communiquant en série sur les broches TX/RX (Serial1), antenne GPS et antenne cellulaire distinctes
  • PSM/eDRX et sommeil bas courant avance Schéma : IMG-mkr-nb-1500-avance-1-mkrnb-psm-edrx-sommeil.svg — MKR NB 1500 sur batterie LiPo avec multimètre en mesure de courant, graphique des états veille active / PSM et chronologie d'éveil toutes les heures
  • Antenne et pièges RF du déploiement avance Schéma : IMG-mkr-nb-1500-avance-2-mkrnb-antenne-rf.svg — Gros plan sur le connecteur d'antenne de la MKR NB 1500 avec antenne fouet et câble pigtail, emplacement SIM à côté, boîtier métallique barré en inset
  • Diagnostic AT et qualité de signal avance Schéma : IMG-mkr-nb-1500-avance-3-mkrnb-diagnostic-at.svg — Console série affichant les réponses AT+CSQ, AT+CEREG? et AT+QENG d'une MKR NB 1500, avec échelle de conversion RSSI en dBm à droite

Code library — examples written for this board

  • attente-lte-nbiot.ino Arduino

    The MKR NB 1500 can take a while to join an LTE-M or NB-IoT network: this attach loop waits up to two minutes, prints the state at each poll, then confirms operator and signal quality. The base of an…

  • choix-bande.ino Arduino

    A LPWA module finding no network is often misconfigured: this sketch reads then forces the LTE band mask (B3/B7/B8/B20 for France) and the CAT-M1/NB1 mode of the MKR NB 1500 SARA-R4. Run once, the se…

  • publish-mqtt-minimal.ino Arduino

    Sober publishing for LPWA networks: every ten minutes the MKR NB 1500 sends battery voltage and station id to a TCP relay. The deliberately minimal pattern shows the strict essence of a publish; for …

  • economie-energie.ino Arduino

    Energy is NB-IoT's trump card: this sketch configures PSM and eDRX on the MKR NB 1500 SARA-R4 modem, then sleeps the SAMD21 between fifteen-minute readings. Well tuned, the whole thing lasts months o…

  • geoloc-cellules.ino Arduino

    Without GPS, the radio cell is often enough: the MKR NB 1500 reads its TAC, cell identity and signal level, then ships them to a cell-based geolocation service. Ideal for tracking a stationary asset …

  • test-coverage.ino Arduino

    Before deploying NB-IoT stations, measure coverage: this sketch logs network status, RSSI and operator every five seconds as CSV. A USB stick or notebook on board is enough to build the drive-test he…

  • reconnexion-rapide.ino Arduino

    On the move or underground, the cell vanishes then returns: instead of a 30-second full reboot, this sketch re-polls radio attach every two seconds and only resets the MKR NB 1500 modem as a last res…

  • batterie-nb.ino Arduino

    Voltage sag during radio transmission reveals battery health: this sketch measures VBAT before and after each publish, computing slope and transaction duration. A wear indicator far more honest than …

  • heure-serveur.ino Arduino

    LPWA networks often filter UDP NTP, so this sketch fetches the time with a plain HTTP GET on port 80, then maintains it with millis(). The higher NB-IoT latency is absorbed by an explicit wait before…

  • nb_monitor.py Python

    During an NB-IoT test campaign, keep an eye on the station: this pyserial script reads the MKR NB 1500 serial port, counts published cycles and prints every error-keyword line. A lightweight monitor …

Examples and repos found online