librenard - Sigfox Protocol Library
librenard is a portable library written in the C programming language that implements Sigfox uplink and downlink frame encoding and decoding. It aims to be an open source replacement for Sigfox's proprietary device library. It can be used in conjuction with the CLI frontend
renard and the SDR physical layer
renard-phy or be embedded in your custom IoT application on any microcontroller platform. For instance,
renard-phy-s2lp can be used to build a completely open-source Sigfox device based on
librenard and STMicroelectronics' S2-LP ultra-low power transceiver chip.
It has been tested on many platforms including Linux, macOS, Android (x86 and ARM), STM32L0 and ESP32 and should also be portable to other operating systems and various microcontroller platforms.
Installation and Compilation
- Clone this repository:
git clone https://github.com/Jeija/librenard
librenardhas no dependencies other than a working compiler and
make. Compile using:
cd librenard make
- This generates the static library file
librenard.awhich can be linked to your application or the
librenard is designed to be statically linked with your own application, so that it can be embedded into microcontroller code or into other tools.
librenard you will have to tell your compiler about the path to the
librenard.a static library file and about the path to the header includes.
Most compilers (shown here:
gcc) use the following options to specify library and header locations:
gcc -I librenard/src <your_C_sources> librenard/librenard.a -o out
renard for an example of how to incorporate
librenard into your application and build system.
Please refer to the documentation for information on how to include the
librenard headers in your source code and for information on how to use the
Up-to-date documentation is always available online at Read the Docs.
You can build the documentation yourself by following these steps:
- Clone the
librenardif you have not already (see Installation and Compilation)
librenarduses sphinx, doxygen and breathe for documentation. You will need to install these dependencies.
- Generate HTML documentation files:
cd librenard/doc make html
doc/_build/html/index.htmlin a web browser
- Implement empty Uplink frames (currently only supports 1-bit uplinks at minimum)
- Implement encrypted mode
- Implement support for OOB frames
- Implement support for multiple RC Zones (...or only do that on PHY layer?)
- Add Monarch support?
- Implement support for repeater-like applications (evalute and expose repeater flag)
- Once the satellite is up and running, implement Admiral LEO