IoT Modem Modules: Practical Selection Guide
Practical IoT Modem Module Selection
Choosing the right cellular modem module is crucial for successful IoT deployments. This guide provides specific, practical recommendations based on real-world applications, with current pricing and availability information for New Zealand and Australia.
Whether you're building environmental sensors, asset trackers, or industrial monitoring systems, this guide will help you select the most appropriate cellular connectivity solution for your specific needs.
Focus on Practicality: All recommendations include specific part numbers, pricing estimates, and supplier information. Links to development kits and evaluation boards are provided where available.
Cellular IoT Technologies Overview
Understanding the different cellular technologies is essential for making the right choice:
| Technology | Data Rate | Coverage | Power | Best For |
|---|---|---|---|---|
| NB-IoT | ~250 kbps | Excellent | Ultra-low | Sensors, meters, stationary devices |
| LTE-M | ~1 Mbps | Good | Low | Mobile devices, tracking |
| LTE Cat 1 | ~10 Mbps | Good | Medium | Industrial, gateway applications |
| LTE Cat 4 | ~150 Mbps | Standard | High | Video, high-bandwidth applications |
Low-Power Sensor Networks
Ideal for environmental monitoring, agriculture, and stationary sensor applications requiring 10+ year battery life.
| Module | Connectivity | Key Features | Est. Price (USD) | Dev Kit Price |
|---|---|---|---|---|
| Quectel BG95-M3 | NB-IoT/LTE-M/2G | Ultra-low power, GNSS, global bands | $15-20 | $90 |
| SIMCom SIM7070G | NB-IoT/LTE-M | Low power, multi-region | $12-18 | $85 |
| u-blox SARA-R410M | NB-IoT/LTE-M | Low power, secure boot | $18-25 | $199 |
| Nordic Thingy:91 | NB-IoT/LTE-M | Complete device with sensors | $120 | All-in-one |
Integration Notes:
- These modules typically require only 5μA in power-saving mode
- Transmit current: 15-20mA for short bursts
- Perfect for battery-powered applications requiring years of operation
- Consider antenna placement for optimal signal reception
Asset Tracking and Fleet Management
For mobile applications requiring GPS integration and reliable connectivity while moving.
| Module | Connectivity | Key Features | Est. Price (USD) | Dev Kit Price |
|---|---|---|---|---|
| Quectel LC76G | LTE-M + GNSS | Integrated multi-GNSS, mobility | $20-25 | $100 |
| SIMCom SIM7600G | LTE Cat 4 + GNSS | High speed, global bands | $30-35 | $110 |
| Telit ME910C1 | LTE-M/NB-IoT + GNSS | Automotive-grade | $25-30 | $250 |
| u-blox LARA-R211 | LTE Cat 1 + GNSS | Integrated GNSS, voice | $30-35 | $180 |
Integration Notes:
- For tracking applications, antenna positioning is critical for both cellular and GNSS
- Current draw: typically 150-200mA during active transmission
- Consider handover performance for mobile applications
- GPS acquisition time varies significantly with antenna design
Smart Metering Applications
For electricity, water, and gas meters requiring ultra-long battery life and deep coverage.
| Module | Connectivity | Key Features | Est. Price (USD) | Dev Kit Price |
|---|---|---|---|---|
| Quectel BC95-G | NB-IoT | Ultra-low power, 10+ year battery | $8-12 | $80 |
| SIMCom SIM7020G | NB-IoT | Deep coverage, low power | $10-15 | $75 |
| u-blox SARA-N410 | NB-IoT | Deep coverage, long range | $12-18 | $189 |
| Fibocom MA510 | NB-IoT/2G | Deep coverage, fallback | $12-16 | $95 |
Integration Notes:
- Designed for ultra-low power consumption (<5μA in sleep mode)
- Ideal for battery-powered meters operating 10+ years
- NB-IoT provides excellent deep coverage for basement installations
- Consider fallback to 2G in areas without NB-IoT coverage
Industrial IoT and Factory Automation
For industrial environments requiring reliable, high-speed connectivity and extended temperature ranges.
| Module | Connectivity | Key Features | Est. Price (USD) | Dev Kit Price |
|---|---|---|---|---|
| Quectel EC21-A | LTE Cat 1 | Industrial-grade, reliable | $25-30 | $95 |
| SIMCom SIM7600G-H | LTE Cat 4 | High speed, industrial temp | $30-40 | $110 |
| Fibocom L610 | LTE Cat 1 | Industrial-grade, global | $20-25 | $100 |
| Sierra Wireless EM7411 | LTE Cat 4 | Enterprise-grade, robust | $45-60 | $299 |
Integration Notes:
- Industrial modules operate in extreme temperature ranges (-40°C to +85°C)
- Include additional interfaces like RS232/RS485 alongside standard UART
- Higher reliability and longer lifecycle support
- Consider EMI/EMC certification requirements for industrial environments
Where to Purchase in New Zealand/Australia
Reliable suppliers for IoT modem modules with local support and reasonable shipping times.
Global Distributors with NZ/AU Presence
- Digi-Key Electronics - Comprehensive stock, fast shipping
- Mouser Electronics - Good development kit selection
- RS Components - Local AU/NZ presence
- Element14/Farnell - Local support, good for prototyping
Regional Distributors
- Braemac - New Zealand specialist
- Embedded Logic Solutions - NZ local support
- Glyn - Technical support available
- JA Resellers - Competitive pricing
Development Tips and Best Practices
Essential advice for successful IoT modem integration projects.
Start with Evaluation Boards
Evaluation boards (EVBs) include the module, antenna, power supply, and interface connectors. They're essential for:
- Testing cellular coverage in your deployment area
- Validating power consumption characteristics
- Prototyping software integration
- Understanding antenna requirements
Developer SIM Cards
New Zealand operators offer IoT developer SIMs:
- Spark NZ: IoT SIM cards with developer-friendly pricing
- One NZ (formerly Vodafone): IoT connectivity solutions
- 2degrees: Machine-to-machine SIM services
- Consider data pooling and global roaming for multi-region deployments
Prototype Carefully
- Power Management: Design for peak current requirements (up to 2A for some LTE modules)
- Antenna Design: Critical for both cellular and GNSS performance
- PCB Layout: Follow manufacturer guidelines for RF sections
- Testing: Validate in actual deployment environments, not just lab conditions
Module Compatibility
Consider future-proofing your design:
- Some manufacturers maintain pin compatibility between generations
- Plan for firmware updates and certification requirements
- Consider module lifecycle and end-of-life policies
- Design with multiple supplier options when possible
Basic Integration Example
A simple Arduino-compatible example for connecting to a cellular network using AT commands.
// Basic IoT Modem Connection Example // Compatible with most Quectel, SIMCom modules #include// Create a SoftwareSerial object for modem communication SoftwareSerial modem(7, 8); // RX, TX pins // Configuration const char* apn = "iot.1nz.co.nz"; // Replace with your carrier's IoT APN const int timeout = 10000; // Command timeout in milliseconds void setup() { Serial.begin(9600); modem.begin(9600); Serial.println("IoT Modem Setup Starting..."); delay(3000); // Allow modem to initialize // Test modem communication if (sendATCommand("AT", "OK", 5000)) { Serial.println("Modem communication established"); } else { Serial.println("ERROR: Cannot communicate with modem"); return; } // Check signal quality sendATCommand("AT+CSQ", "OK", 5000); // Set APN String apnCommand = "AT+CGDCONT=1,\"IP\",\"" + String(apn) + "\""; sendATCommand(apnCommand.c_str(), "OK", 5000); // Attach to network sendATCommand("AT+CGATT=1", "OK", 30000); // Activate PDP context sendATCommand("AT+CGACT=1,1", "OK", 30000); Serial.println("Modem setup complete!"); } void loop() { // Example: Send HTTP GET request if (sendHTTPRequest()) { Serial.println("Data sent successfully"); } else { Serial.println("Failed to send data"); } delay(60000); // Wait 1 minute before next transmission } bool sendATCommand(const char* command, const char* expectedResponse, unsigned long timeout) { Serial.print("Sending: "); Serial.println(command); modem.println(command); String response = ""; unsigned long startTime = millis(); while (millis() - startTime < timeout) { if (modem.available()) { char c = modem.read(); response += c; if (response.indexOf(expectedResponse) != -1) { Serial.print("Response: "); Serial.println(response); return true; } if (response.indexOf("ERROR") != -1) { Serial.print("Error Response: "); Serial.println(response); return false; } } } Serial.println("Command timeout"); return false; } bool sendHTTPRequest() { // Initialize HTTP service if (!sendATCommand("AT+HTTPINIT", "OK", 5000)) return false; // Set HTTP parameters if (!sendATCommand("AT+HTTPPARA=\"CID\",1", "OK", 5000)) return false; if (!sendATCommand("AT+HTTPPARA=\"URL\",\"http://httpbin.org/get\"", "OK", 5000)) return false; // Send GET request if (!sendATCommand("AT+HTTPACTION=0", "OK", 30000)) { sendATCommand("AT+HTTPTERM", "OK", 5000); return false; } // Read response sendATCommand("AT+HTTPREAD", "OK", 5000); // Terminate HTTP service sendATCommand("AT+HTTPTERM", "OK", 5000); return true; }
Integration Notes:
- Replace the APN with your carrier's IoT APN (Spark: "iot.spark.co.nz", One NZ: "iot.1nz.co.nz")
- Adjust pin numbers based on your hardware connection
- Consider using hardware serial for better reliability
- Add error handling and retry logic for production applications