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.
- Clone this repository:
git clone https://github.com/Jeija/librenard
librenard
has no dependencies other than a working compiler andmake
. Compile using:
cd librenard
make
- This generates the static library file
librenard.a
which can be linked to your application or therenard
CLI frontend.
librenard
is designed to be statically linked with your own application, so that it can be embedded into microcontroller code or into other tools.
For using 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
See 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 librenard
functions.
Up-to-date documentation is always available online at Read the Docs.
You can build the documentation yourself by following these steps:
- Clone the
librenard
if you have not already (see Installation and Compilation) librenard
uses sphinx, doxygen and breathe for documentation. You will need to install these dependencies.- Generate HTML documentation files:
cd librenard/doc
make html
- Open
doc/_build/html/index.html
in 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