Vitalmonitor Gerätefirmware
Über den Kunden
Die Urban GmbH & Co. KG ist seit Jahrzehnten Innovationstreiber im Agritechbereich. Eines ihrer Produkte ist das preisgekrönte "Vitalcontrol", ein handgeführtes Gerät zur digitalen Gesundheitserfassung.

Die Herausforderung
Im Laufe der Zeit hatte der Kunde die Kontrolle über die Firmwareentwicklung verloren. Dies wurde dann sichtbar, als der Versuch unternommen wurde neue Funktionen hinzuzufügen, dies aber nicht mehr gelang. Eine Beurteilung der Firmware ergab unter anderem architektonische Mängel. Wir wurden an Bord geholt, um die Firmware zu sanieren.
Der Mehrwert
Wir haben ein modernes Buildsystem, frei von Chiphersteller-spezifischen Tools, erstellt und eine modulare Softwarearchitektur mit klaren Zuständigkeiten und Abhängigkeiten eingeführt. So haben wir den Kunden wieder in die Lage versetzt gestalterisch tätig zu werden. Wie immer haben wir geeignete Abstraktionen eingesetzt, um Implementierungsdetails von Business-Logik zu trennen. Das macht alle zukünftigen Entwicklungsbemühungen einfacher.
Das Produkt
STM Projekt portiert auf ein modernes GNU und CMake basiertes Buildsystem, ohne Einsatz von Chiphersteller-spezifischen Werkzeugen — Maßgeschneidertes Linker Skript, um externen RAM und Flash anzubinden — Überarbeitung von Design und Implementierung der Legacy Firmware mit besonderem Fokus auf Modularität and Anpassbarkeit — Dienstbasierte multithreading Architektur basierend auf FreeRTOS, mit schwachen Abhängigkeiten zwischen den Diensten — Arena Allokation aus Speicherpools basierend auf Polymorphen Allokatoren — Maßgeschneiderte Gerätetreiber für PMIC, LCD Bildschirm, Vibrationsmotor, Ladestandsanzeige, adressierbare LEDs, RTC, ADC, NTC Thermistor, RFID Leser, SD-Kartenleser, Barcodeleser, Beschleunigungssensor, EEPROMs und WLAN Modul, FatFS Integration, USB-Gerätetreiber, CDC/HID-Komposit-USB-Hosttreiber, CDC basiertes JSON Backend mit Verbesserung der Laufzeitperformanz durch Einsatz von Kompilierzeit-Programmiertechniken — Serialisierung und Deserialisierung der SD-Kartendaten — maßgeschneiderte Model-View-Controller-artige interaktion mit den SD-Kartendaten, für Lesen, Schreiben, Filtern etc.
- Embedded C++23
- STM32
- ARM Cortex-M
- FreeRTOS
- CMake
- UART
- I2C
- SPI
- USB
- WiFi
- BLE
- RFID
- Accelerometer
- Multithreading