In this tutorial we will go through basic concepts of firmware for BigClown ecosystem. We are going to learn how to install and to work with tools which allow us to work with the firmware. With the help of practical examples we will take a look at how to make various peripherals to work together with API from BigClown SDK
Firmware is implemented in pure C language, which is industrially accepted language for embedded and low-power devices. There are the main reasons for choosing this technology:
- effective use of hardware resources
- stability and long time available development environment
- simple and understandable syntax
You can choose from wide variety of systems and tools. Windows, macOS a Ubuntu (and other Debian derivatives) are supported. For information how to install required tools, please see Toolchain setup. You can find more information on how to use them in Toolchain guide.
Introducing BigClown SDK
Basic pillar of every BigClown (software) project is an ecosystem of libraries, drivers and header files, so called SDK (which stands for https://en.wikipedia.org/wiki/Software_development_kit )
SDK can be found in this repository:
Header files includes documentation, that can be generated by Doxygen. You can find the most recent version of generated documentation here:
We try to stick to these principles when developing SDK:
consistent and clear API design
modular and object oriented approach
we prefer asynchronous, event-driven programming
well-named functions, data types, variables, etc.
simple way of access to low level hardware
SDK integration to your project
To your project, SDK is integrated as a Git Submodule. This has one advantage - your firmware can be "linked and locked" to specific version of SDK. This makes sure that it will be possible to compile your firmware at any time in the future. But if you need to, SDK can be updated to most recent version by simple git pull command.