1115  Sigfox Message Flow and Communication

1115.1 Introduction

⏱️ ~12 min | ⭐⭐ Intermediate | 📋 P09.C11.U02

Understanding Sigfox’s message flow is crucial for designing efficient IoT applications. This chapter covers the uplink and downlink communication patterns, power consumption implications, and common pitfalls that developers encounter.

NoteLearning Objectives

By the end of this chapter, you will be able to:

  • Explain the Sigfox uplink and downlink message flow
  • Calculate power consumption for different messaging patterns
  • Avoid common pitfalls in payload design and message budgeting
  • Design applications that work within Sigfox’s constraints

1115.2 Prerequisites

Before this chapter, ensure you’ve completed:


1115.3 Sigfox Message Flow: Uplink and Downlink

The Sigfox communication protocol follows a carefully orchestrated sequence for uplink (device-to-cloud) and optional downlink (cloud-to-device) messaging:

%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#2C3E50', 'primaryTextColor': '#fff', 'primaryBorderColor': '#16A085', 'lineColor': '#16A085', 'secondaryColor': '#E67E22', 'tertiaryColor': '#7F8C8D'}}}%%
sequenceDiagram
    participant D as Device
    participant BS as Base Station
    participant Cloud as Sigfox Cloud
    participant App as Customer App

    Note over D: Prepare 12-byte message
    D->>BS: Transmit (100 bps, ~6 sec)
    Note over D: TX: 40 mA × 6 sec = 0.067 mAh
    BS->>Cloud: Forward + metadata (RSSI, SNR)
    Cloud->>Cloud: Deduplication<br/>Geolocation
    Cloud->>App: HTTPS callback

    Note over D,App: Optional Downlink (4 max/day)

    alt Downlink requested
        D->>BS: Uplink with downlink flag
        BS->>Cloud: Message received
        Cloud->>BS: Downlink data (8 bytes, 600 bps)
        Note over D: Open RX window (20-25 sec)
        Note over D: RX: 50 mA × 25 sec = 1.25 mAh
        BS->>D: Send downlink
        Note over D: Power cost: 17× uplink!
    else No downlink
        Note over D: Return to sleep immediately
        Note over D: Sleep: 1 µA
    end

Figure 1115.1: Sigfox uplink and downlink message flow with power consumption

{fig-alt=“Sigfox message flow sequence diagram illustrating the complete uplink and optional downlink communication protocol with power consumption analysis.”}

1115.3.3 Energy Impact Comparison

Operation Duration Current Energy Impact
Sleep 23h 59m 1 µA 0.024 mAh/day Minimal
Uplink only 6 sec 40 mA 0.067 mAh 1x (baseline)
Uplink + Downlink RX 26 sec 45 mA 0.325 mAh 5x more
Daily operations 24 msg/day Mixed 1.6 mAh/day 7.4 year battery
With 4 downlinks 24 up + 4 down Mixed 2.9 mAh/day 2.4 year battery

Design recommendation: Use downlink sparingly (monthly configuration updates) rather than frequently (daily commands) to preserve battery life.


1115.4 Common Pitfalls and Solutions

1115.4.2 Pitfall 2: Message Size Constraint

WarningCommon Pitfall: Sigfox Message Size Constraint

The mistake: Designing payload formats without considering Sigfox’s strict 12-byte uplink limit, leading to either data truncation or message fragmentation across multiple transmissions.

Symptoms:

  • Critical sensor data is dropped or rounded excessively to fit payload
  • Multi-message sequences arrive out of order or with gaps (lost messages)
  • Application logic becomes complex trying to reassemble fragmented payloads
  • Message quota exhausted mid-day due to payload fragmentation

Why it happens: Sigfox enforces a hard 12-byte payload limit for uplink messages. Developers accustomed to MQTT (256MB), HTTP (unlimited), or even LoRaWAN (243 bytes) often design payloads that exceed this:

  • GPS coordinates: 8-12 bytes (latitude + longitude as floats)
  • Timestamp: 4-8 bytes (Unix epoch or ISO format)
  • Device ID: 4-8 bytes (UUID or serial number)
  • Sensor readings: 2-8 bytes per sensor

A “simple” GPS tracker with timestamp and battery level easily reaches 16-20 bytes in naive encoding.

The fix:

  1. Compact binary encoding: Replace floats with scaled integers (GPS: 4 bytes for lat/lon combined at 10m resolution)

  2. Eliminate redundant data: Device ID is already in Sigfox frame header; don’t repeat in payload

  3. Relative timestamps: Send seconds-since-last-message (2 bytes) instead of full epoch (4 bytes)

  4. Data prioritization: Send critical values every message, less critical values in rotation

  5. Payload design template:

    Bytes 0-1: Primary sensor (scaled integer)
    Bytes 2-3: Secondary sensor (scaled integer)
    Bytes 4-5: Battery/status flags (packed bits)
    Bytes 6-11: GPS or additional data (compressed)

Prevention: Design payloads on paper before coding. Use bit-packing for boolean flags, scaled integers instead of floats, and delta encoding for slowly-changing values. Validate that typical and worst-case payloads fit in 12 bytes. If 12 bytes is insufficient even with optimization, consider LoRaWAN (243 bytes) or NB-IoT (1600 bytes per message).

1115.4.3 Pitfall 3: Exhausting Daily Message Budget

CautionPitfall: Exhausting Daily Message Budget with Retransmissions

The Mistake: Implementing aggressive retry logic that sends the same message multiple times when no acknowledgment is received, quickly consuming the 140 messages/day quota.

Why It Happens: Developers accustomed to TCP/IP or MQTT expect acknowledgments and implement retry patterns like “send up to 5 times until ACK received.” With Sigfox’s fire-and-forget model (no native ACKs) and 140 message/day limit, this approach exhausts the daily budget by mid-morning:

Scenario: Sensor sends every 15 minutes with 3 retries per reading
- Readings/day: 96 (24 hours × 4/hour)
- With 3 retries: 96 × 3 = 288 messages/day
- Sigfox limit: 140 messages/day
- Result: Device blocked by 10:30 AM, no data for rest of day

The Fix: Accept Sigfox’s inherent ~95-98% delivery rate without retries. Design your application to tolerate occasional missing messages:

  1. No application-level retries: Trust Sigfox’s built-in triple transmission (each message sent 3× on different frequencies)
  2. Backend interpolation: Fill missing readings using adjacent values
  3. Delta encoding: Send only changes from last confirmed value
  4. Critical alerts: Reserve 10-20 messages/day for burst alerts, use remaining 120-130 for scheduled readings
  5. Budget monitoring: Track daily message count in firmware, throttle non-critical messages when approaching 100

1115.5 Global Coverage Misconception

WarningCommon Misconception: “Sigfox Works Everywhere Like Cellular”

The Misconception: Many companies assume Sigfox offers global coverage similar to cellular networks (190+ countries), leading to deployment failures in 20-40% of target markets.

Reality Check with Real-World Data:

Sigfox Coverage Reality (2024):

  • Strong Coverage: 22 Western European countries (85-95% population coverage)
  • Moderate Coverage: USA, Canada, Australia (60-70% population, concentrated in major cities)
  • Limited Coverage: Latin America (Sao Paulo, Mexico City, Buenos Aires only), Eastern Europe (Poland, Czech Republic)
  • Essentially No Coverage: China, Russia, India (>3 billion people excluded), most of Africa and Middle East

Case Study: Global Fleet Management Failure

  • Company: European logistics firm with 10,000 shipping containers
  • Assumption: “Sigfox operates in 70 countries, we operate in 30 countries, we’re covered”
  • Reality: 8 out of 30 target countries had zero Sigfox coverage (China, Russia, India, Indonesia, Vietnam, Thailand, Kenya, Nigeria)
  • Impact: 2,400 deployed devices (24% of fleet) became non-functional in coverage gaps
  • Financial Loss: $24,000 hardware + $14,400/year subscriptions wasted = $86,400 over 5 years
  • Resolution: Emergency deployment of dual-mode NB-IoT devices in gap countries, additional $72,000 cost

Why This Happens:

  1. Operator-Dependent Model: Sigfox requires local Sigfox Network Operator (SNO) in each country
  2. Business Case Limitations: SNOs only deploy where IoT market size justifies infrastructure investment
  3. Competitive Landscape: In Asia, cellular IoT (NB-IoT/LTE-M) dominates; no business case for Sigfox SNOs
  4. Regulatory Barriers: Some countries restrict unlicensed LPWAN or have national security concerns

Pre-Deployment Verification Protocol:

  • Step 1: Check sigfox.com/coverage for each target country (not just “Sigfox exists”)
  • Step 2: Deploy 10-20 test devices in actual deployment locations for 30-day field trial
  • Step 3: Measure message success rate (accept only if >95% delivery)
  • Step 4: For coverage gaps, design hybrid deployment (Sigfox + NB-IoT fallback) or choose cellular IoT for true global coverage

Bottom Line: Sigfox is excellent for European regional deployments but NOT a global solution like cellular networks. Always verify operator availability AND coverage quality per country before committing to Sigfox.


1115.6 Summary

In this chapter, you learned about Sigfox’s communication patterns and constraints:

Message Flow:

  • Uplink: 6 seconds at 100 bps, 12-byte payload, 140 messages/day
  • Downlink: 8-byte payload, 4 messages/day maximum, 20-25 second RX window

Power Impact:

  • Uplink-only: 0.067 mAh per message (battery-efficient)
  • With downlink: 1.25 mAh (17x more energy)
  • Always request downlinks sparingly to preserve battery

Common Pitfalls to Avoid:

  1. Designing for bidirectional communication (use uplink-only patterns)
  2. Exceeding 12-byte payload limit (use compact binary encoding)
  3. Aggressive retries exhausting daily quota (trust triple transmission)
  4. Missing downlink RX window timing (wait full 25 seconds)
  5. Assuming global coverage like cellular (verify per-country)

1115.7 What’s Next

Continue learning about Sigfox deployment: