Sigfox Protocol Library for devices (Legacy)

Why a Sigfox Protocol Library?

As a device maker, your interest is in your device and your application. You already know that Sigfox is a good communication solution for your business. What about programming the communication protocol in your device? The Sigfox Protocol Library is the answer. It avoids any burden about protocol implementation.

The Sigfox Protocol Library is an abstraction layer: it hides all the radio protocol details and exposes a set of simple functions. 

If you build your solution with a Sigfox Verified modular design, the Sigfox Protocol Library is already embedded in the module you have selected. If you choose to design customized radio functions in your device, the 'Sigfox Protocol Library Files' section below has all the information on how to obtain the files for your particular need.

Sigfox Protocol Library Architecture

The Sigfox Protocol Library is an abstraction layer. It connects your application software to the radio chipset through the manufacturer's APIs.

Figure 1: Sigfox Protocol Library architecture

 The Sigfox Protocol Library performs the usual features of a communication protocol: 

  • packet formatting, 
  • local functions (especially authentication, cryptography and error checking),
  • communication procedures.

The Sigfox Protocol Library's core API is composed of base and optional features. Base features take care of the frame building and scheduling (in time and frequency), while optional features deal with Radio Configuration support, Downlink support, Secure Element support, etc. 

To make the link between the Sigfox Protocol Library and the hardware components, a set of drivers exists. They perform the following functions:

  • BPSK modulation / GFSK demodulation, which is optimized for each radio chipset characteristics,
  • Non-volatile memory management, which stores parameters and values,
  • Memory Allocation (dependant on each microcontroller),
  • AES encryption feature, which performs authentication and/or encryption functions with or without support, from a hardware AES block,
  • Timer management,
  • Secured memory management (to store the ID, Key, and PAC credentials).

The drivers are dependent on the radio chipset. They make the communication link between the microcontroller running the Sigfox Protocol Library and the radio, MCU chipsets and other hardware elements, whatever the communication channel is. They are developed and provided by the chipset vendor.

Sigfox State Machine

The Sigfox State Machine implements several procedures of the Sigfox radio protocol. It is embedded in the Sigfox Protocol Library and consists of five states. The transitions between the five states give you a flavor of the radio protocol behavior. As you can see, it's simple, really simple!

Figure 2: the state machine embedded in the Sigfox Protocol Library

Sigfox Protocol Library APIs

If your device uses a Sigfox Verified Modular Design or a Reference Design, the Sigfox Protocol Library is already embedded in it. Usually, a wrapper is added by the module manufacturer to comply with its own company's software requirements. When you want to transmit a message over the Sigfox network, you just have to prepare the content of your message and call a function. That's it! 

If you plan to build your own design, you can contact Sigfox to get the latest Sigfox Protocol Library. 

The Sigfox Protocol Library contains:

  • the header files describing the function prototypes,
  • the binary file compiled for the specific microcontroller target.

In addition to the Sigfox Protocol Library, Sigfox may provide device makers with additional software codes called Addons. For example, the Sigfox RF & Protocol Addon is an application which contains test modes. It has to be flashed into your device along with the Sigfox Protocol Library for the execution of the Sigfox RF & Protocol Test.

Sigfox Protocol Library Files

There are three ways to get the Sigfox Protocol Library, as depicted below:

First way

The Sigfox Protocol Library is embedded in Sigfox Verified modular designs.

This solution is ‘plug and play’, since the Sigfox Protocol Library is integrated and validated with the manufacturer's API.

For all available references, check out the Sigfox Partner Network.

Second way

Most of our semiconductor partners deliver the Sigfox Protocol Library either online (included in an SDK) or directly flashed in their SoC (System on Chip).

In both cases and as in the first way above, the Sigfox Protocol Library is delivered with the manufacturer's API. However, unlike the first way, the RF and Protocol testing is mandatory when designing a device with a chip-on-board approach.

Third way
If none of the above fits your project, Sigfox proposes :
  • a 'Public Library Package' available for free ( see the section 'releases' in this page ) which contains :
    1. The complete binary and header files for the Sigfox Library compiled for most common compilers and microprocessors.
    2. NO support of integration is delivered with this package.

  • a 'Standard Library Integration Package' that you can buy on a per-product basis from your Build dashboard and with :
    1. The complete binary and header files for the Sigfox Library compiled for your specific target (custom compiler / flags )
    2. Interactive support sessions to help you integrate the Sigfox Protocol Library on your hardware.

With this approach, the Sigfox Protocol Library comes alone. The manufacturer's API implementation remains under your responsibility.

Sigfox Protocol Library offers

Sigfox Protocol Library releases

The Sigfox Protocol Library is released and maintained by Sigfox. This section describes all the changes released in each version (improvements, new features, and bug fixes).

Since the V2.2.2 release, the library can be customized to include only the features required by the Device Makers, which makes it possible to save space in the device's flash memory. The possible combinations are defined in the table below, as well as in the release notes:

Features DL_PNS_UP_ONLY FDL FDL_UP_ONLY SE_FDL
Protocol_V1 supported supported supported supported
SwitchPublicKey supported supported supported supported
Downlink not_supported supported not_supported supported
RC1, RC3
RC5, RC6, RC7
supported supported supported supported
RC2, RC4 not_supported supported supported supported
PayloadEncryption not_supported supported supported supported
SecureElement not_supported not_supported not_supported supported

Additional table information:

  • FDL stands for FH, DC, and LBT. The 3 possible spectrum accesses, depending on the RC.
  • DL stands for DC (Duty Cycle) and LBT (Listen Before Talk).
  • PNS stands for Payload Encrypted NOT Supported. By default, this feature is present in the Sigfox Library.
  • UP_ONLY stands for Uplink Only Library. Downlink feature is not supported.
  • SE stands for SECURE ELEMENT feature.
Latest release: Version V2.11.0 (09-Mar-2022).
Download the 'Public Library Package (FDL version only)' below : with Compiler IAR, Keil and GCC for Targets Cortex M0,M0+,M3, M4, M23 and M33

you need to be logged in

Sigfox Library Releases Information :

DateVersionShort Description
09-Mar-2022V2.11.0 Compliance with Sigfox Protocol specification V1.6 ( RC3d support )
15-Oct-2020V2.10.0 Compliance with Sigfox Protocol specification V1.5 ( rollover counter modulo flexibility )
30-Apr-2020V2.8.1DL bug fix
19-Nov-2019V2.8.0RC7 ( Russia )
28-Feb-2019V2.7.0Internal feature
21-Jan-2019 V2.6.1 Bug Fix, minor issue seen on the payload encryption
14-Sep-2018 V2.6.0Extend RC5 bandwidth to 192kHz.
31-Jul-2018 V2.5.0Single Frame feature introduction
04-May-2018 V2.4.0 RC6 (India) Support.
02-Mar-2018 V2.3.1Minor bug fix on the LBT feature for RC3.
09-Feb-2018 V2.3.0 Monarch feature
23-Janv-2018 V2.2.3 Bug fix on the Frequency Hopping computation for RC2 and RC4 ( introduced since V2.0.0 )
21-Nov-2017 V2.2.2 Payload decryption algorithm change ( Only for Payload Encryption supported and Downlink device )
08-Nov-2017 V2.2.1 Bug Fix on internal state machine : Come back to READY state after a downlink timeout.
23-Oct-2017 V2.2.0Architecture optimization
19-Sep-2017 V2.1.0 Payload Encryption feature
07-Jul-2017 V2.0.0 Secure Element support
03-Jul-2017 V1.9.3 Bug fix – Binary shift operation fix with some compiler – only affect RC4.
13-Jun-2017 V1.9.2 Support the mobility for Japan/Korea – RC5
02-May-2017 V1.9.1 Bug fix in the RX frequency computation in RC4
20-Mar-2017 V1.9.0 Change frequency hopping sequence for RC2 and 4
25-Oct-2016 V1.8.9 Few bug fixes
11-Oct-2016 V1.8.8 RC3a defined at 36kHz ( possibility to extend to 192kHz )
17-Mar-2016 V1.8.7 Add new storage in NVM - only for FCC standard.
29-Jan-2016 V1.8.6 Add documention for a better library integration experience
15-Dec-2015 V1.8.5Integrate Carrier Sense parameter for ARIB standard in Manufacturer API.
07-Dec-2015 V1.8.42 Fixes regarding the ARIB standard. Other standards are not impacted. LBT support
01-Dec-2015 V1.8.3 Minor Change to support ChessDE (NXP) compiler.
30-Nov-2015 V1.8.2 Support FCC Uplink (902.2 MHz) and Downlink (905.2 MHz) Frequencies
06-May-2015 V1.6 Integrate Downlink