Even though it may have been a bit silent here in the last months, lots of work happened in the background. So I want to quickly summarize the status and planning for the future.
Firmware ported to Zephyr RTOS
For multiple reasons I was dissatisfied with Mbed, which was used as the firmware framework for the charge controllers and BMS. For that reason I started porting the firmware to Zephyr RTOS some time ago. This is now finished for the charge controllers. For the BMS ist is still in progress.
These are the main advantages of Zephyr:
- Excellent build system and customization (based on Devicetree and Kconfig from Linux kernel) that allows a clear separation between board specification and the firmware itself.
- Support of STM32G4 microcontrollers which are used in the new charge controller (this is still not the case in Mbed)
- Great community and open governance, so it’s a truly community-driven open source project.
- Strong focus on code quality and safety (aiming towards ISO 26262 and IEC 61508 certification)
As Zephyr is still quite a new RTOS, several drivers don’t have all required features yet, so that parts of the firmware still use direct register access. But that was the case in Mbed aswell.
Update of ThingSet protocol
This protocol is used to configure the charge controller (battery voltage setpoints, etc.) and monitor measurement values. It is based on JSON or CBOR and can be used via multiple communication interfaces like UART or CAN.
In order to allow easier integration with web-based protocols (especially HTTP and CoAP), the ThingSet protocol was slightly changed and v0.3 was released. A web gateway based on ESP32 with a user interface is currently in development (data manager repository).
See the ThingSet specification for full details. I hope this will stay stable now, so that a v1.0 of the specification can be released till end of the year.
Hardware progress
The 10A MPPT charge controller with USB charging port can be purchased via the Libre Solar website now. The updated version of the 20A controller is still not as far as I wished it was, as I had to work on some other projects for a living aswell. But now that most of the ToDos on firmware side are done, I will have more time for hardware again.