Context

This was my first project back in 2015!

I joined during a task-force and the project was struggling with Firmware Update Over The Air, bugs in the Bootloader and an algorithm that was not working at all.

The project was part of a bigger one centrally managed to create “The mobility of the future”.

My contribution

Bootloader
  • Review the Bootloader code and created a list of major bugs it contained
  • Prepared a draft design for the new bootloader
  • Supported the refactoring activities
Firmware Update Over The Air (FOTA or FUOTA)
  • Implemented the FOTA with OMA LWM2M over LoRa
  • Took the initiative to refactor / redesign how a FOTA should be
  • Defined and implemented the first milestones as cross-cutting concept (more commonly named cross-cutting concerns) that will be used cross the company later on
  • Review and assure that the full system (GW (yocto based) and Web application) was working together
Algorithm
  • Created the sensor-logging mechanism to stream sensor values out of the node
  • Inspired by the strategy pattern, I created an interface within the source code to integrate, compile and test different algorithms
  • Major contribution to the algorithm that managed to reach 97% detection accuracy on the field (I believe it is still the best in its category)
    • Created several module used in the algorithm
    • Supported the creation of an interface that allowed to import the C code within a matlab simulation environment
    • Trained the algorithm based on the date collected via the sensor-logger (generative based training? Survival of the fittest)

Results

  • The project was cancelled because we did not fulfil the unrealistic algorithm expectation of 99.9%
  • Customers pushed it and the project was restarted several years ago (We had the best detection rate on the market!)
  • It was stripped down from features like FOTA because the LoRa Alliance was not officially supporting them
  • The device can now be bought on the market, e.g., here.

Additional remarks

  • Please note that in 2015, LoRa did not had the features that are now supported. FUOTA concept was introduced in 2019 by the LoRa Alliance. One of the core limitation with LoRa is the bandwidth, and a firmware update can take several hours per device. The multicast feature was released in 2020 with LoRa 1.0.4.
  • In addition to the above point, the LoRa embedded stack was not as stable as today, the gateway stack was buggy and the web-services were not scaling. The TheThingsNetwork was also not existing!