Core Module Firmware - Published

Hi guys,
it is still in very early stage but we have been receiving too many requests to publish our intermediate work…

And here it is:

If you want to test it please follow the README file in this repository to setup your development environment.

This firmware does not have radio yet but it has already properly implemented some of our components like tags. Basically I have rewritten many things from scratch to provide as much convenient API as possible. We have some basic radio driver working (Workroom project is the proof right? :slight_smile: ) but I want to polish a few things in the driver before you start hacking the stuff around…

User’s application is located in app/application.c file. Remember - the app directory is the user-land. The rest is a framework. Note that we have utilized submodules (that is why you have to clone it with --recursive option). This way I believe you will have convenient option to update BigClown libraries or stay locked on a specific know-to-work version for your application.

We love to keep things simple - so no IDE or platform lock-in. You can use your favourite editor for the firmware development. Also Makefile is simple yet powerful tool for this purpose.

Also you can launch Segger’s Ozone debugger using:

make ozone

You will need J-Link and Ozone package installed to do that…

… or do debugging via terminal gdb (I honestly really love this option) but I will come with details later. If you don’t have a J-Link debugger you can always program the firmware using DFU. You will need dfu-util package installed on your system and then you can do:

make dfu

So what can you do today with this? You can read our sensors (all but CO2 - coming later), talk on USB, blink LED, receive button events, control GPIOs, write to EEPROM, etc. All these libraries are stored in bcl directory. Of course all the APIs will be properly documented and some of them already are - using Doxygen. We did not publish generated documentation yet but you can generate it in bcl folder by running doxygen command. In the future we will publish documentation on GitHub pages and will generate them automatically on Travis CI (from master branch, of course).

Please understand that there are still many rough edges but from now on we will move all the firmware development to GitHub (internally we had been using BitBucket). Beware that I will be mostly working on develop branch and will update master at the right moment.

I hope to receive some feedback from early birds :slight_smile:

Have a great weekend - cheers!

  • Pavel
1 Like