The Sigfox Library is an abstraction layer. It connects your application software to the radio chipset, whether it is embedded in a Sigfox Ready module or it is in your own modem design.
The Sigfox Library performs the usual features of a communication protocol:
- packet formatting,
- local functions (esp. authentication, crypto and error check)
- and communication procedures
The Sigfox Library's core API is composed of base and optional features. The base features take care of the frame building and scheduling (in time and frequency). The optional features deal with Radio Configuration support, Downlink support, Secure Element support, etc.
To make the link between the Sigfox Library and the hardware components, there is a set of drivers, that performs 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 of each microcontroller)
- AES encryption feature, which performs authentication and/or encryption functions with or without support from an 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 Library and the radio, MCU chipsets and other hardware elements, whatever the communication channel is. They are developed and provided by the chipset vendor.
The Sigfox State Machine implements several procedures of the Sigfox radio protocol. It is embedded in the Sigfox 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!
If your device uses a Sigfox Verified Module or a Reference Design, the Sigfox 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 Library. Among other things, you will get:
- the header files describing the function prototypes,
- the binary file compiled for the specific microcontroller target.
In addition to the Sigfox Library, Sigfox may provide device makers with additional software codes called Addons. For example, the Sigfox Verified Addon is an application which contains test modes. It has to be flashed into your device along with the Sigfox library for the Sigfox Verified Certification.