In order to start testing our components (Hall effect sensors and coils), we needed to decide which board and which OS we will use.
Our project will not need to run any complex computation nor doing complex network communications. So almost all processors we checked could be used. We decided that it was better to take a controller little endian based on an ARM processor (because we are more familiar with arm’s instructions). We also wanted it to be low power and not too expensive. With those considerations, we went toward the STM32L475VGT6 because we already had boards at school with it. This way we will do our tests on the same controller we will use for our PCB.
So we will use the IoT-Node from STMicroelectronics.
The Operating system:
We previously worked with this board to do a bare-metal project but this time we figured an OS would be useful (no offense to SE203, last year’s best course).
We already had experience with ChibiOS with an other course and two of us had briefly uses FreeRTOS a few years back. We chose to go with this second operating system because we didn’t remembered any big difficulties to implement WiFi with it while the ethernet part of ChibiOS… let’s say it was a nice month of trying to understand it. On top of that it will be interesting to work with an OS we don’t really know.
So FreeRTOS it will be.
First steps with FreeRTOS:
The only time we previously used FreeRTOS, we already had an environment with the sources and a Makefile. And if you remember the first time you had to use FreeRTOS you probably have a smile on your face right now (and that is not very kind 😉 ).
We started by doing like for ChibiOS. We went to the website, downloaded the sources. And we found ourselves with the OS sources… but no example for the IoT Node, no board.h…
Alexis explained us that we needed to use STM32CubeMX to create the project. So we downloaded the software, found the board, generated the code and we ended up with a LOT of code. We went through a cleaning stage during which we tried to remove from the sources all the code we didn’t wanted (mainly the initialization of all the modules). And we only kept the code to configure and initialize the OS, we didn’t deleted the generated code but we removed it from the sources that are compiled to create the elf file.
To check if the OS worked correctly we added in a task a function which blinks a led.
We chose the STM32L475VGT6 to be our controller and we decided to use the IoT-node to do our tests. We also chose to use FreeRTOS for both the tests and the project. We currently have a simple script blinking a led of the board.
In the next days we will start testing our Hall effect sensors and our coins to decide which ones we will use on the final PCB and to estimate the power consumption we will have.