3 NB-IoT Fundamentals
Complete Guide to Narrowband IoT Technology
3.1 Learning Objectives
By the end of this chapter, you will be able to:
- Contrast NB-IoT with other LPWAN technologies: Differentiate how NB-IoT diverges from traditional cellular and other LPWAN technologies in terms of bandwidth, power consumption, and coverage depth
- Classify deployment modes: Distinguish between standalone, guard-band, and in-band NB-IoT deployments and justify which mode best fits a given spectrum scenario
- Evaluate NB-IoT suitability: Determine when NB-IoT is the right choice versus LTE-M, LoRaWAN, or Sigfox for a given IoT application by analyzing mobility, throughput, and coverage requirements
- Map NB-IoT architecture components: Diagram the relationships between eNodeB, MME, SCEF, and the Control Plane / User Plane optimization paths within the CIoT architecture
- Calculate power budgets using PSM and eDRX: Compute battery life projections by configuring T3324 and T3412 timer parameters for specific deployment scenarios
- NB-IoT is a licensed-spectrum LPWAN: It operates within existing LTE infrastructure using just 180 kHz of bandwidth (one LTE resource block), delivering carrier-grade reliability with SLAs, deep indoor coverage (+20 dB over GSM), and 10+ year battery life through PSM and eDRX power-saving modes.
- Three deployment modes maximize spectrum reuse: Standalone (dedicated carrier, e.g., re-farmed GSM), guard-band (unused LTE guard bands), and in-band (within an active LTE carrier) – each trading off coverage, capacity, and interference differently.
- Choose NB-IoT for stationary, low-throughput, carrier-managed deployments: It excels at smart metering, asset tracking, and environmental monitoring where devices send small payloads (< 1,600 bytes) infrequently, but is not suited for mobility, real-time streaming, or scenarios requiring private network control.
Lila the Light Sensor was frustrated. She had been placed in a basement parking garage to monitor lighting levels, but her Wi-Fi signal could not reach the router upstairs. “I can measure the light just fine,” she sighed, “but I cannot send my readings to anyone!”
Max the Motion Sensor had the same problem in the underground water tunnel. “I can detect when water is flowing, but my LoRa signal bounces off all this concrete!”
Then Bella the Barometric Sensor introduced them to Narrow-Band Norma, a special NB-IoT radio module. “I use the same cell towers as your phone,” Norma explained, “but I speak in a very narrow whisper – just 180 kHz wide. That is like whispering through a keyhole instead of shouting across a field.”
“But how does whispering help?” asked Lila.
“Because I focus ALL my energy into that tiny whisper, it can travel through walls, floors, and even underground! I have 20 decibels more penetration than regular cellular – that is like having a voice 100 times more powerful at getting through obstacles.”
“And the best part,” Norma added, “I sleep most of the time. I wake up, send my tiny message, and go right back to sleep. That is how I can run on a single battery for over 10 years!”
What the Squad learned: NB-IoT is like a postal service that uses existing mail routes (cell towers) but specializes in delivering tiny postcards (small data) to hard-to-reach places (basements, underground) while using barely any energy (long battery life). It is not fast, but it is incredibly reliable and can reach places other technologies cannot.
NB-IoT in plain language: Imagine your city’s water meters are buried in basements or underground vaults. Someone needs to read them, but sending a person to each meter every month is expensive. What if the meter could “phone home” by itself?
That is exactly what NB-IoT does. It is a cellular technology (it uses the same cell towers as your phone) but redesigned from the ground up for IoT sensors:
- Narrow bandwidth: Instead of using wide frequency bands like your smartphone, NB-IoT uses a very narrow 180 kHz slice. Think of it like a highway: your phone uses all 8 lanes, while an NB-IoT sensor only needs a bicycle path. This makes it simple and cheap.
- Deep coverage: By concentrating energy into that narrow band, signals can penetrate deep into buildings – reaching basements, parking garages, and underground utility vaults where Wi-Fi and even regular cellular signals fail.
- Ultra-low power: NB-IoT devices spend 99.9% of their time in deep sleep. They wake up briefly to send a small data packet, then go back to sleep. This lets them run on a single AA-size battery for 10+ years.
- Licensed spectrum: Unlike LoRaWAN or Sigfox which use unlicensed bands, NB-IoT uses licensed cellular spectrum. This means guaranteed quality of service and no interference from other devices.
The trade-off: NB-IoT is slow (peak ~250 kbps downlink) and cannot handle large data transfers or real-time streaming. It is designed for sensors that send small updates (temperature readings, meter values, location pings) a few times per day.
3.2 Overview
Narrowband IoT (NB-IoT) is a 3GPP-standardized cellular technology designed specifically for the Internet of Things. Unlike traditional cellular networks built for smartphones, NB-IoT is optimized for low-power devices that send small amounts of data infrequently while achieving 10+ year battery life and deep indoor coverage.
This comprehensive guide is organized into focused chapters covering everything from beginner concepts to hands-on implementation.
3.3 NB-IoT vs Other LPWAN Technologies
Understanding where NB-IoT fits within the broader LPWAN landscape helps clarify when to choose it over alternatives.
3.4 NB-IoT Deployment Modes
NB-IoT can be deployed in three distinct modes within existing LTE spectrum, each with unique advantages:
3.5 NB-IoT Power-Saving Mechanisms
One of NB-IoT’s most important features is its ability to achieve 10+ year battery life through two complementary power-saving mechanisms:
3.6 Chapter Guide
3.6.1 Getting Started
| Chapter | Description | Difficulty |
|---|---|---|
| NB-IoT Introduction | Beginner-friendly overview, key concepts, real-world examples, and FAQ | Beginner |
| NB-IoT Technical Specifications | Core specifications, deployment modes (standalone, guard-band, in-band), data rates | Intermediate |
3.6.2 Architecture and Design
| Chapter | Description | Difficulty |
|---|---|---|
| NB-IoT Architecture | CIoT network components (eNodeB, MME, SCEF), Control Plane vs User Plane optimization | Intermediate |
| NB-IoT Power Optimization | PSM and eDRX deep dive, timer configuration, battery life engineering | Intermediate |
3.6.3 Applications and Practice
| Chapter | Description | Difficulty |
|---|---|---|
| NB-IoT Applications | Smart metering, asset tracking, smart city use cases with worked examples | Intermediate |
| NB-IoT Practical Guide | Common mistakes, deployment pitfalls, real-world scenarios | Intermediate |
| NB-IoT Lab Simulation | Hands-on ESP32 Wokwi simulation with PSM state machine | Advanced |
3.6.4 Assessment and Review
| Chapter | Description | Difficulty |
|---|---|---|
| NB-IoT Comprehensive Review | Quiz bank with 50+ questions covering all NB-IoT topics | All Levels |
3.7 Learning Paths
Quick Start (1-2 hours): Introduction –> Technical Specifications –> Applications
Complete Understanding (4-6 hours): Introduction –> Technical Specifications –> Architecture –> Power Optimization –> Applications –> Practical Guide
Hands-On Implementation (6-8 hours): Complete path above + Lab Simulation + Comprehensive Review
3.8 Worked Example: Smart Water Metering Deployment
A municipal water utility wants to replace manual meter reading with automated NB-IoT-based smart meters deployed across a mid-sized city. Meters are located in basements, underground vaults, and behind walls.
Step 1: Requirements Analysis
| Requirement | Value | Rationale |
|---|---|---|
| Number of devices | 50,000 meters | City-wide deployment |
| Reporting frequency | Every 6 hours (4x daily) | Hourly resolution unnecessary for billing |
| Payload size | 64 bytes per report | Meter reading + timestamp + status flags |
| Battery life target | 10 years | Avoids costly truck rolls for battery replacement |
| Coverage | Deep indoor + underground | Meters in basements and utility vaults |
| Reliability | 99.9% delivery | Billing-grade data accuracy required |
Step 2: Technology Selection – Why NB-IoT?
- Deep indoor coverage: +20 dB link budget over GSM handles basements and vaults (164 dB MCL)
- Licensed spectrum: Carrier SLAs guarantee 99.9% reliability – critical for billing data
- Existing infrastructure: No gateway deployment needed; uses existing LTE cell towers
- LoRaWAN rejected: Unlicensed spectrum does not provide the billing-grade SLAs required; would need gateway infrastructure deployment across the city
- LTE-M rejected: Higher power consumption and cost per module; mobility support is unnecessary for stationary meters
Step 3: Power Budget Calculation
Battery capacity: 6,000 mAh (D-cell lithium thionyl chloride)
Per transmission cycle (every 6 hours):
- Wake from PSM: 50 ms x 10 mA = 0.50 mAs
- Attach + sync: 500 ms x 50 mA = 25.0 mAs
- Transmit 64 bytes: 200 ms x 220 mA = 44.0 mAs
- Wait for ACK: 500 ms x 50 mA = 25.0 mAs
- Return to PSM: 100 ms x 10 mA = 1.0 mAs
-----------------------------------------
Total per cycle: = 95.5 mAs
Daily consumption:
4 cycles/day x 95.5 mAs = 382 mAs/day = 0.106 mAh/day
PSM sleep current (remaining ~23.99 hours):
3 uA x 23.99 h = 0.072 mAh/day
Total daily: 0.106 + 0.072 = 0.178 mAh/day
Battery life: 6,000 mAh / 0.178 mAh/day = 33,708 days = ~92 years (theoretical)
With 50% battery derating (temperature, aging, self-discharge):
Practical battery life: ~15 years (exceeds 10-year target)
Step 4: Deployment Mode Selection
The utility’s carrier partner has retired GSM in this region, freeing 200 kHz of spectrum:
- Selected: Standalone mode – Best coverage for underground meters, no interference from LTE
- Guard-band rejected: Coverage slightly lower than standalone
- In-band rejected: Power management complexity unnecessary when standalone spectrum is available
Step 5: Expected Costs
| Cost Item | Per Device | Total (50,000) |
|---|---|---|
| NB-IoT module | $7 | $350,000 |
| SIM / connectivity (annual) | $1/year | $50,000/year |
| Battery (10-year D-cell) | $5 | $250,000 |
| Installation labor | $20 | $1,000,000 |
| Year 1 Total | $33 | $1,650,000 |
| Annual recurring | $1 | $50,000/year |
Compared to manual reading at $5/meter/month = $3M/year, the system pays for itself in under 7 months.
The battery life calculation demonstrates PSM’s power-saving effectiveness:
Daily energy consumption: \[ E_{\text{daily}} = 4 \times (95.5 \text{ mAs per cycle}) + (3 \text{ µA} \times 86{,}400 \text{ s}) = 382 + 259 = 641 \text{ mAs} = 0.178 \text{ mAh} \]
Battery life projection: \[ \text{Life} = \frac{6{,}000 \text{ mAh}}{0.178 \text{ mAh/day}} = 33{,}708 \text{ days} \approx 92 \text{ years (theoretical)} \]
With 50% derating for temperature and aging: \[ \text{Life}_{\text{practical}} = 92 \times 0.5 = 46 \text{ years} \]
But retransmissions in basements add overhead. With 1.5× average retransmissions: \[ E_{\text{TX, adjusted}} = 44 \text{ mAs} \times 1.5 = 66 \text{ mAs per cycle} \] \[ E_{\text{daily, adjusted}} = 0.178 + (4 \times 0.022) = 0.266 \text{ mAh/day} \] \[ \text{Life}_{\text{realistic}} = \frac{3{,}000 \text{ mAh (50\% derated)}}{0.266} = 11{,}278 \text{ days} \approx 15 \text{ years} \]
This exceeds the 10-year requirement with comfortable margin.
Mistakes engineers frequently make when working with NB-IoT:
Assuming NB-IoT supports mobility: NB-IoT does not support handover between cells. If your device moves (e.g., vehicle tracking), use LTE-M instead. NB-IoT devices that move between cells will experience connection drops and re-attach delays of 5-10 seconds.
Ignoring deployment mode impact on coverage: In-band deployment can lose 3-6 dB of coverage compared to standalone because NB-IoT must share power with LTE. For deep-indoor deployments, this difference can mean the difference between reaching a basement meter or not.
Oversizing payloads: NB-IoT transport block size maxes out at ~1,600 bytes. Engineers accustomed to TCP/HTTP often try to send JSON payloads or verbose protocols. Use compact binary encoding (CBOR, protobuf) to keep payloads under 512 bytes for optimal battery life.
Forgetting PSM timer configuration: Devices that do not explicitly request PSM from the network will remain in Idle state, consuming ~10 mA instead of ~3 uA. This 3,000x difference turns a 10-year battery into a 10-day battery. Always configure T3324 (Active Timer) and T3412 (TAU Timer) during network attach.
Expecting real-time downlink: When a device is in PSM, the network cannot reach it until it wakes up. If your application needs to send commands to devices within minutes, configure eDRX with shorter cycles (5-10 seconds) instead of relying solely on PSM. This trade-off costs battery life but enables near-real-time reachability.
Choosing NB-IoT for firmware OTA updates: With peak throughput of ~250 kbps (downlink) and typical throughput closer to 30-60 kbps, a 100 KB firmware update takes 15-30 seconds of active radio time. For frequent or large OTA updates, LTE-M’s 1 Mbps throughput is significantly more battery-efficient.
3.9 AT Command Sequences for NB-IoT
Most NB-IoT modules (Quectel BC95/BC66, u-blox SARA-N, Sierra HL7800) are controlled via AT commands over UART. Here are the essential sequences:
3.9.1 Module Initialization and Network Attach
# 1. Check module is alive
AT
OK
# 2. Query module identity
AT+CGMI # Manufacturer: "Quectel"
AT+CGMM # Model: "BC95-G"
AT+CGSN=1 # IMEI: +CGSN:862107040xxxxxx
# 3. Check SIM status
AT+CPIN?
+CPIN: READY # SIM detected and unlocked
# 4. Set APN (varies by carrier)
AT+CGDCONT=1,"IP","iot.1nce.net" # 1NCE IoT SIM
AT+CGDCONT=1,"IP","iot.t-mobile.nl" # T-Mobile IoT
# 5. Select NB-IoT band (example: Band 8 for 900 MHz)
AT+NBAND=8
# Common bands: 8 (900MHz EU), 20 (800MHz EU), 28 (700MHz APAC)
# 6. Enable network registration notifications
AT+CEREG=2 # Enable with location info
# 7. Trigger network attach
AT+COPS=1,2,"26201" # Manual: MCC=262 (Germany), MNC=01 (Telekom)
# OR
AT+COPS=0 # Automatic: module scans for NB-IoT network
# 8. Wait for registration (can take 10-60 seconds)
+CEREG: 1,"0001","01A2D001",9 # Registered, home network, NB-IoT
# Status codes: 0=not registered, 1=home, 2=searching, 5=roaming
# 9. Verify signal quality
AT+CSQ
+CSQ: 20,99 # RSSI=20 (-73 dBm), BER=99 (unknown)
# RSSI to dBm: dBm = -113 + (2 x CSQ) -> CSQ 20 = -73 dBm (good)
# 10. Check IP address assigned
AT+CGPADDR=1
+CGPADDR: 1,"10.0.0.42"
3.9.2 Configure PSM (Power Saving Mode)
# CRITICAL: Without PSM, battery dies in days instead of years
# Request PSM with specific timers
AT+CPSMS=1,,,"01000011","00000101"
# ^ ^ ^
# | | Active Timer (T3324)
# | TAU Timer (T3412)
# Enable PSM
# T3412 (TAU Timer) = "01000011" = Binary decoding:
# Bits 5-7: timer unit (010 = 1 minute)
# Bits 0-4: value (00011 = 3)
# Result: 3 x 1 minute = 3 minutes between TAU updates
# T3324 (Active Timer) = "00000101" = Binary decoding:
# Bits 5-7: timer unit (000 = 2 seconds)
# Bits 0-4: value (00101 = 5)
# Result: 5 x 2 seconds = 10 seconds active after TX
# Verify PSM is active
AT+CPSMS?
+CPSMS: 1,,,"01000011","00000101"
# Power consumption timeline after sending data:
# 0-10 sec: Active (reachable by network) = ~10 mA
# 10 sec+: PSM deep sleep = ~3 uA
# 3 min: Brief wake for TAU update = ~50 mA for 500ms
# 3 min+: Back to PSM = ~3 uA
3.9.3 Send Data via UDP
# Open UDP socket to IoT platform
AT+NSOCR="DGRAM",17,0,1 # Create UDP socket, returns socket ID
0 # Socket ID = 0
# Send 64-byte payload to server at 185.23.100.1:5683
# Data must be hex-encoded (each byte = 2 hex chars)
AT+NSOST=0,"185.23.100.1",5683,12,"48656C6C6F576F726C6421"
# ^ ^ ^ ^ ^
# | Server IP Port Len "HelloWorld!" in hex
# Socket ID
0,12 # OK: socket 0, sent 12 bytes
# Receive response (if server replies within Active Timer window)
+NSONMI: 0,24 # Notification: 24 bytes available on socket 0
AT+NSORF=0,24 # Read from socket 0, up to 24 bytes
0,"185.23.100.1",5683,24,"526573706F6E7365..." # Response data
3.9.4 ESP32 MicroPython Example
# ESP32 with Quectel BC95 NB-IoT module connected via UART
from machine import UART, Pin
import time
# UART2: TX=GPIO17, RX=GPIO16 (connect to BC95 RX/TX)
uart = UART(2, baudrate=9600, tx=17, rx=16)
def send_at(cmd, timeout=5):
"""Send AT command and wait for response."""
uart.write(f'{cmd}\r\n')
time.sleep(0.1)
end = time.time() + timeout
response = b''
while time.time() < end:
if uart.any():
response += uart.read()
time.sleep(0.05)
return response.decode()
# Initialize NB-IoT module
print(send_at('AT')) # Check alive
print(send_at('AT+CGDCONT=1,"IP","iot.1nce.net"')) # Set APN
print(send_at('AT+COPS=0', timeout=60)) # Auto-attach
print(send_at('AT+CPSMS=1,,,"01000011","00000101"')) # Enable PSM
# Send sensor reading
temp = 23.5
payload = f'{{"temp":{temp},"ts":{int(time.time())}}}'
hex_payload = payload.encode().hex()
cmd = f'AT+NSOST=0,"185.23.100.1",5683,{len(payload)},"{hex_payload}"'
print(send_at(cmd))
# What to observe:
# - First attach takes 10-60 seconds (scanning for network)
# - Subsequent wakes from PSM re-attach in 1-3 seconds
# - If +CEREG shows 0 (not registered): check antenna, SIM, APN
# - If send fails: verify socket is open, server is reachable3.10 Knowledge Check
Test your understanding of NB-IoT fundamentals:
3.11 Key Takeaways
3.12 Summary
NB-IoT uses licensed cellular spectrum to deliver reliable, deep-indoor coverage with carrier-grade SLAs and 10+ year battery life for IoT applications.
Core technical characteristics:
- Bandwidth: 180 kHz (one LTE PRB) – enables simple, low-cost module design
- Coverage: 164 dB Maximum Coupling Loss – 20 dB better than GSM, reaches underground
- Power: PSM (3 uA) and eDRX enable 10+ year battery life with proper configuration
- Data rates: ~226 kbps DL / ~250 kbps UL peak (multi-tone, Release 14); practical throughput 30-60 kbps
- Latency: 1.5-10 seconds (not suitable for real-time applications)
- Deployment: Three modes (standalone, guard-band, in-band) within existing LTE infrastructure
When to choose NB-IoT:
- Need carrier-grade reliability with SLAs
- Deep indoor penetration required (basements, underground)
- Existing cellular infrastructure available
- Stationary or slow-moving devices
- Small, infrequent data transmissions (< 1 MB/month)
When to consider alternatives:
- LTE-M: Mobile applications (vehicles), voice capability needed, larger OTA updates
- LoRaWAN: Private network control, no carrier dependency, lower per-device cost
- Sigfox: Ultra-low cost, minimal infrastructure investment, very small payloads (12 bytes)
Key decision factors summarized:
| Factor | NB-IoT | LTE-M | LoRaWAN | Sigfox |
|---|---|---|---|---|
| Spectrum | Licensed | Licensed | Unlicensed | Unlicensed |
| Mobility | No handover | Full handover | Limited | No |
| Coverage (MCL) | 164 dB | 156 dB | 157 dB | 160 dB |
| Peak DL Rate | 250 kbps | 1 Mbps | 50 kbps | 600 bps |
| Voice | No | Yes (VoLTE) | No | No |
| Network control | Carrier-managed | Carrier-managed | Private/public | Operator-managed |
3.13 Concept Relationships
This fundamentals chapter provides the foundation for understanding NB-IoT as a system:
- Narrowband design (180 kHz bandwidth) enables simple, low-cost modules while concentrating power for deep coverage - this architectural choice ripples through every other design decision
- Licensed spectrum operation provides interference protection and carrier-grade reliability, but creates dependence on carrier deployment unlike unlicensed LPWAN alternatives
- Deployment modes (standalone, guard-band, in-band) allow flexible spectrum reuse, with each mode trading off coverage depth, capacity, and interference differently
- Power-saving mechanisms (PSM, eDRX) achieve 10+ year battery life by recognizing that IoT devices are idle 99.9% of the time - a fundamentally different usage pattern than smartphones
- Technology selection (NB-IoT vs LTE-M vs LoRaWAN) depends on understanding the interaction between mobility requirements, data throughput, coverage needs, and network ownership preferences
The key insight is that NB-IoT sacrifices speed and mobility to optimize for three specific use cases: stationary sensors, infrequent small messages, and deep indoor penetration.
3.14 See Also
Next Steps in Learning:
- NB-IoT Introduction - Beginner-friendly walkthrough of core concepts
- NB-IoT Power and Channel - Deep dive into PSM/eDRX and channel structure
- NB-IoT Labs and Implementation - Hands-on module configuration
Technology Comparisons:
- LTE-M Fundamentals - Alternative cellular IoT for mobile applications
- LoRaWAN Overview - Unlicensed LPWAN comparison
- Cellular IoT Fundamentals - Broader 3GPP IoT context
Application Context:
- NB-IoT Applications - Real-world deployment scenarios
- Cellular IoT Applications - Cross-technology case studies
3.15 What’s Next
| Next Topic | Description |
|---|---|
| NB-IoT Introduction | Beginner-friendly walkthrough of core NB-IoT concepts with real-world analogies |
| NB-IoT Technical Specifications | Detailed bandwidth, data rates, deployment modes, and protocol specifications |
| NB-IoT Architecture | CIoT network components (eNodeB, MME, SCEF) and Control/User Plane optimization |
| NB-IoT Power Optimization | Deep dive into PSM and eDRX timer configuration for maximum battery life |
| NB-IoT Lab Simulation | Hands-on ESP32 Wokwi simulation with PSM state machine implementation |