LoRaWAN Classes A, B and C: Which Device Class Do I Need?
LoRaWAN is one of the leading wireless technologies for the Internet of Things. A central concept that determines energy consumption, response time and the capabilities of a device are the device classes A, B and C. They define when and how often an end device is ready to receive data from the network – and that's exactly what determines whether your sensor runs for 10 years on a battery or needs a fixed power supply.
In this article, we explain the three classes in detail, compare them directly and help you choose the right class for your use case.
Table of Contents
- What Are LoRaWAN Device Classes?
- Class A – The Battery Champion
- Class B – The Compromise
- Class C – Always-On
- Comparison: Class A vs. B vs. C
- Class Switching at Runtime
- Which Class Should I Choose?
- Conclusion
What Are LoRaWAN Device Classes?
The LoRaWAN specification by the LoRa Alliance defines three device classes: A, B and C. Each class describes a specific communication behavior – more precisely, when an end device opens receive windows to accept data from the network server.
The central difference lies in downlink behavior: How and when can the server send a message to the device?
Importantly: Class A is the foundation. Every LoRaWAN device must support Class A. Classes B and C are extensions that provide additional receive opportunities – at the cost of energy consumption.
This also means that a Class B device can do everything Class A can – plus the additional ping slots. And a Class C device also builds on Class A but keeps its receive window open almost permanently.
Let's look at the three classes in detail.
Class A – The Battery Champion
Class A is the default and is used by the vast majority of all LoRaWAN devices. The principle is simple: The device determines when communication happens.
How Class A Works
- The end device sends an uplink (e.g., a measurement)
- After exactly 1 second, the first receive window opens (RX1)
- After 2 seconds, the second receive window opens (RX2)
- Then the device returns to sleep mode
Uplink ──► [1s pause] ──► RX1 ──► [1s pause] ──► RX2 ──► Sleep ────────────►
◄─ Window 1 ─► ◄─ Window 2 ─► ◄── No reception ──
The server can only respond to the device directly after an uplink. If a sensor transmits every 15 minutes, there's also only a downlink opportunity every 15 minutes.
Advantages
- Minimal energy consumption – the device sleeps most of the time
- Longest battery lifetime – 5 to 10 years are realistic
- Simplest implementation – every LoRaWAN device supports Class A
- Lowest network load – no additional synchronization messages required
Disadvantages
- High downlink latency – commands only reach the device at the next uplink
- No time-critical downlink possible – if the sensor sends every 15 min, a command may wait up to 15 min
Typical Applications
- Temperature sensors, humidity sensors
- Water level and flood monitors
- Fill level measurement (waste bins, silos, tanks)
- Soil moisture and weather stations
- Door/window contacts, motion detectors
- Meter reading transmission (electricity, gas, water)
In practice, Class A is the right choice for around 95% of all LoRaWAN deployments. Whenever a device is battery-powered and doesn't need time-critical downlinks, Class A is the standard.
Class B – The Compromise
Class B extends Class A with schedulable receive windows – so-called ping slots. This significantly reduces downlink latency without keeping the device permanently ready to receive.
How Class B Works
In addition to the two receive windows after each uplink (as with Class A), a Class B device opens additional receive windows at regular intervals:
- The gateway periodically sends beacons – time signals that allow end devices to synchronize
- Between two beacons, the device opens ping slots at defined times
- The network server knows when these slots occur and can schedule downlinks accordingly
Beacon ──► ... ──► Ping Slot ──► ... ──► Ping Slot ──► ... ──► Beacon
◄── RX ──► ◄── RX ──►
The number of ping slots per beacon interval (default 128 seconds) is configurable. More slots mean lower latency but higher energy consumption.
Advantages
- Schedulable downlinks – the server can respond within seconds to minutes
- Significantly lower latency than Class A
- Acceptable power consumption – still battery-capable, depending on ping interval
Disadvantages
- More complex implementation – beacon synchronization required
- Gateway must support beacons – not every gateway can do this
- Higher energy consumption than Class A – due to the additional receive windows
- If beacon is lost, the device falls back to Class A
Typical Applications
- Smart meter reading on demand
- Actuator control with tolerable delay (seconds to minutes)
- Asset tracking with configuration changes
- Devices that occasionally need timely commands
In practice, Class B is a niche. Many use cases that need a schedulable downlink are solved today either with Class C and fixed power supply, or simply with more frequent uplinks in Class A.
Class C – Always-On
Class C is the opposite of Class A in terms of energy consumption and response time. The receive window is permanently open – the device is essentially always listening.
How Class C Works
- The device keeps its receive window permanently open
- Only during its own transmission (uplink) is reception briefly interrupted
- Immediately afterwards, the window opens again
◄──────── RX open ────────► Uplink ◄──────── RX open ────────►
The network server can send a downlink to a Class C device at any time – latency is typically under one second.
Advantages
- Immediate downlink – minimal latency
- Ideal for actuators – commands are executed immediately
- Simple implementation – no beacon synchronization needed (unlike Class B)
Disadvantages
- Highest energy consumption – the receiver is permanently active
- Battery operation practically impossible – a fixed power supply is required
- Higher network load – the server must be able to send downlinks at any time
Typical Applications
- Street lighting (dimming, on/off)
- Valve and relay control (irrigation, heating)
- Sirens and alarm systems
- Smart plugs and switchable sockets
- Door locks and access controls
Class C is the right choice whenever a device needs to receive commands at any time and a fixed power supply is available.
Comparison: Class A vs. B vs. C
| Property | Class A | Class B | Class C |
|---|---|---|---|
| Energy consumption | Minimal | Medium | High |
| Downlink latency | Minutes to hours | Seconds to minutes | Under 1 second |
| Power supply | Battery | Battery (limited) | Mains powered |
| Implementation | Simple | Complex (beacon) | Simple |
| Downlink behavior | Only after uplink | Scheduled ping slots | Anytime |
| Typical devices | Sensors | Smart meters | Actuators |
| Prevalence | ~95% | ~1% | ~4% |
Class Switching at Runtime
An often overlooked feature of LoRaWAN: devices can switch between classes at runtime. Since every device must support at least Class A, the starting point is always A.
Typical Scenario: Firmware Update
- Device runs in normal operation as Class A (conserve battery)
- Firmware update is pending → device temporarily switches to Class C
- The server can now transmit large amounts of data via downlink (FUOTA – Firmware Update Over The Air)
- After the update, the device switches back to Class A
Configuration in ChirpStack
In ChirpStack, the supported device class is set in the Device Profile. The Device Profile defines whether a device supports Class B or C. Class A is always active.
{
"deviceProfile": {
"name": "Temperature-Sensor-Class-A",
"macVersion": "1.0.3",
"supportsClassB": false,
"supportsClassC": false,
"classBTimeout": 0,
"classCTimeout": 0
}
}
For a device with Class C support, set supportsClassC to true. ChirpStack will then send downlinks without waiting for an uplink.
Which Class Should I Choose?
The decision is simpler than you might think in most cases:
Battery-powered with no time-critical downlinks? → Class A. This is the default and covers 95% of all cases.
Battery-powered, but downlinks needed within minutes? → Class B can be an option. But check whether more frequent uplinks in Class A aren't simpler.
Fixed power supply and immediate control needed? → Class C. Ideal for actuators and devices that need to receive commands at any time.
Not sure? → Go with Class A. You can always switch later. And most use cases don't actually need time-critical downlinks.
Also consider: even with Class A, there's room for optimization. If you send every 5 minutes instead of every 15, you have three times as many downlink opportunities – albeit at the cost of battery lifetime.
Conclusion
The three LoRaWAN device classes offer the right communication behavior for every use case:
- Class A is the standard for battery-powered sensors and covers the vast majority of IoT scenarios
- Class C is the choice for mains-powered actuators that need to receive commands at any time
- Class B is a compromise that is rarely used in practice
The right class ultimately depends on two questions: Do I need time-critical downlinks? And: Do I have a fixed power supply?
If you're looking to build or expand a LoRaWAN network, we can help you design the architecture and choose the right devices and classes. With our ChirpStack Managed Hosting, we handle the operation of your LoRaWAN network server – including device configuration and class management.
Frequently Asked Questions
What is the difference between LoRaWAN Class A, B and C?▼
Which LoRaWAN class consumes the least energy?▼
Can a LoRaWAN device switch between classes?▼
Which LoRaWAN class is best for actuators and downlinks?▼
Why do 95% of all LoRaWAN devices use Class A?▼
How do I configure the device class in ChirpStack?▼
Written by
Timo Wevelsiep
Co-Founder & CEO
Co-Founder of merkaio. Building IoT infrastructure and managed operations for companies worldwide. Focused on LoRaWAN, open-source IoT platforms and scalable sensor deployments.
LinkedInReady to build your IoT project?
From idea to production - we guide your IoT journey.