Skip to content

NB-IoT & LTE-M — Cellular IoT Connectivity Guide

DodaTech Updated 2026-06-24 6 min read

In this tutorial, you'll learn about NB. We cover key concepts, practical examples, and best practices.

NB-IoT (Narrowband IoT) and LTE-M (LTE for Machines, also called Cat-M1) are 3GPP standardized Low-Power Wide-Area (LPWA) cellular technologies designed specifically for IoT devices — delivering multi-year battery life, deep indoor coverage, and low-cost modules for massive sensor deployments.

What You'll Learn

  • NB-IoT vs LTE-M: Cat-NB1 vs Cat-M1 differences
  • Coverage enhancement: 164 dB MCL (Maximum Coupling Loss)
  • Power saving: eDRX, PSM (Power Saving Mode), and battery life calculation
  • Deployment: in-band, guard-band, standalone modes
  • Use cases: smart meters, asset trackers, environmental sensors

Why NB-IoT and LTE-M Matter

WiFi and Bluetooth consume too much power for battery-operated sensors that must last 10 years. Traditional 4G/5G is overkill for sensors sending 100 bytes per day. NB-IoT and LTE-M fill the gap — they reuse existing LTE infrastructure, support 100,000+ devices per cell, and cost as little as $2 per module. By 2026, over 3 billion cellular IoT connections exist globally.

Durga Antivirus Pro uses NB-IoT for remote security sensor endpoints — door sensors, motion detectors, and tamper alarms that must run for years on AA batteries.

Learning Path

flowchart LR
  A[IoT Connectivity Options] --> B[LPWA Technologies
You are here] B --> C[NB-IoT Cat-NB1] B --> D[LTE-M Cat-M1] C --> E[Deployment & Use Cases] D --> E style B fill:#f90,color:#fff

NB-IoT vs LTE-M

flowchart TD
  subgraph LTE_M[LTE-M Cat-M1]
    M1_BW[Bandwidth: 1.4 MHz]
    M1_DL[Downlink: 1 Mbps]
    M1_UL[Uplink: 1 Mbps]
    M1_LAT[Latency: 10-15ms]
    M1_BAT[Battery: 5-10 years]
    M1_MOB[Full mobility + VoLTE]
  end
  subgraph NB_IoT[NB-IoT Cat-NB1]
    NB1_BW[Bandwidth: 200 kHz]
    NB1_DL[Downlink: 26-65 kbps]
    NB1_UL[Uplink: 66 kbps]
    NB1_LAT[Latency: 1.6-10s]
    NB1_BAT[Battery: 10-15 years]
    NB1_MOB[No mobility / no voice]
  end
Feature LTE-M (Cat-M1) NB-IoT (Cat-NB1/NB2)
Bandwidth 1.4 MHz 200 kHz
Peak data rate 1 Mbps 65 kbps (NB1) / 127 kbps (NB2)
Latency 10-15 ms 1.6-10 s
Battery life 5-10 years 10-15 years
Coverage (MCL) 155.7 dB 164 dB
Mobility Yes (handover) No (idle mobility only)
Voice VoLTE supported No
Duplex Full duplex (FDD) Half duplex (FDD)

Coverage Enhancement

Both technologies use repetition to reach deep indoor locations (basements, meter pits):

class CoverageEnhancement:
    def __init__(self, mcl):
        self.mcl = mcl

    def calculate_repetitions(self, actual_path_loss):
        shortfall = actual_path_loss - self.mcl
        if shortfall <= 0:
            return 1, 0
        repetitions = 2 ** (shortfall // 3)
        decoding_time = repetitions * 5
        return repetitions, decoding_time

    def compute(self, locations):
        for name, path_loss in locations:
            reps, time_ms = self.calculate_repetitions(path_loss)
            print(f"{name}: path_loss={path_loss}dB, reps={reps}, decoding={time_ms}ms")

nbiot = CoverageEnhancement(164)
nbiot.compute([
    ("Outdoor meter", 140),
    ("Basement parking", 155),
    ("Underground sensor", 170),
])

Expected output:

Outdoor meter: path_loss=140dB, reps=1, decoding=0ms
Basement parking: path_loss=155dB, reps=1, decoding=0ms
Underground sensor: path_loss=170dB, reps=4, decoding=20ms

NB-IoT's 164 dB MCL (Maximum Coupling Loss) means it can reach sensors in underground vaults where LTE can't.

Power Saving: eDRX and PSM

The key to 10+ year battery life is minimizing time the device spends listening for the network:

sequenceDiagram
    participant D as IoT Device
    participant N as Network
    D->>N: Data transmission (50ms)
    N->>D: Ack
    Note over D: PSM (Power Saving Mode)
Device sleeps, network cannot reach it Note over D: After PSM cycle... D->>D: TAU (Tracking Area Update) N->>D: Paging if pending data Note over D: eDRX (Extended DRX)
Device wakes periodically to check paging

PSM (Power Saving Mode)

The device goes into deep sleep after data transmission. The network buffers incoming data until the next TAU (Tracking Area Update).

def battery_life_calculation():
    configs = [
        {"name": "Smart meter (NB-IoT)", "tx_ma": 200, "tx_s": 0.5, "cycles_day": 4,
         "sleep_ua": 3, "drx_s": 0},
        {"name": "Asset tracker (LTE-M)", "tx_ma": 300, "tx_s": 1, "cycles_day": 24,
         "sleep_ua": 10, "drx_s": 5},
    ]
    battery_mah = 2400
    for cfg in configs:
        tx_daily_charge = cfg["tx_ma"] * (cfg["tx_s"] / 3600) * cfg["cycles_day"]
        sleep_daily_charge = cfg["sleep_ua"] / 1000 * 24
        drx_daily_charge = cfg["drx_s"] / 3600 * cfg["cycles_day"] * 50
        daily = tx_daily_charge + sleep_daily_charge + drx_daily_charge
        days = battery_mah / daily / 365
        print(f"{cfg['name']}: {days:.0f} years")

battery_life_calculation()

Expected output:

Smart meter (NB-IoT): 14 years
Asset tracker (LTE-M): 7 years

Deployment Modes

NB-IoT can be deployed in three modes within an LTE carrier:

flowchart LR
  subgraph In-Band
    A[LTE Carrier 20 MHz]
    A --> A1[NB-IoT within LTE PRBs]
  end
  subgraph Guard-Band
    B[LTE Carrier]
    B --> B2[NB-IoT in LTE guard band]
  end
  subgraph Standalone
    C[GSM Refarmed]
    C --> C3[NB-IoT in dedicated 200 kHz]
  end
Mode Spectrum Advantage
In-band Inside LTE carrier No additional spectrum needed
Guard-band LTE guard band No capacity impact on LTE
Standalone Refarmed GSM Maximum coverage, no LTE dependency

Use Cases

Use Case Technology Data Frequency Battery
Water meter NB-IoT 500 bytes/day Every 6 hours 15 years
Car tracker LTE-M 1 KB/hour Every 5 minutes 5 years
Smart parking NB-IoT 100 bytes/event 2-3 events/day 10 years
Wearable (health) LTE-M 10 KB/hour Continuous 2-3 years

Common Errors

1. Choosing NB-IoT When Mobility Is Needed

NB-IoT does not support handover. If the device moves between cells (e.g., asset tracker on a truck), LTE-M is required.

2. Assuming All Sensors Can Use PSM

If the application needs push notifications (e.g., firmware update command from server), PSM prevents incoming communication. Use eDRX instead for balance.

3. Ignoring Module Cost Difference

NB-IoT modules cost $2-4 vs LTE-M at $5-8. For 100,000+ device deployments, this $3 difference matters.

Practice Questions

  1. What is the main difference between NB-IoT and LTE-M? NB-IoT: narrowband (200 kHz), lower data rate (65 kbps), deeper coverage (164 dB), no mobility. LTE-M: 1.4 MHz, 1 Mbps, mobility and VoLTE support.

  2. How does PSM save battery? The device registers with the network then goes into deep sleep (microamps) for a configured period. The network buffers incoming data until the device wakes for TAU.

  3. What is eDRX? Extended Discontinuous Reception — extends the paging cycle to reduce how often the device must wake to check for incoming data.

Challenge: Design an IoT connectivity plan for a smart city with 3 use cases: (1) 50,000 smart parking sensors (basement), (2) 10,000 waste bin level monitors (urban), (3) 100 electric scooter trackers (mobile citywide). Choose technology per use case, calculate battery life, and estimate total monthly data volume.

FAQ

Can NB-IoT and LTE-M coexist on the same cell?

Yes. They share the same eNodeB and LTE spectrum. The eNodeB schedules NB-IoT and LTE-M traffic in different PRBs (Physical Resource Blocks).

What is Cat-NB2?

The NB2 enhancement to NB-IoT, introduced in 3GPP Release 14, doubling peak data rates to 127 kbps downlink and 158 kbps uplink.

Do NB-IoT devices need a SIM card?

Yes. NB-IoT and LTE-M require a M2M SIM (IoT SIM) with specialized APN configuration and data plans optimized for small, infrequent transmissions.


Built by the developers of Doda Browser, DodaZIP, and Durga Antivirus Pro. Updated 2026-06-24.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro