Weltweiter kostenloser Versand ab 120 € Bestellwert – Zahlung mit PayPal und Stripe – Hergestellt in Finnland

Vorbereiten von Binärdateien für die Verteilung

Du hast dein Programm entwickelt, um es auf dem RuuviTag auszuführen, und möchtest es mit der Welt teilen. Allerdings hat nicht jeder Zugriff auf das Ruuvi Developer Shield, daher musst du ein DFU-Paket für Benutzer zur Installation erstellen. Außerdem möchtest du vielleicht ein „vollständiges Paket“ erstellen, das SoftDevice, Bootloader und deine Anwendung enthält.

Die Ruuvi-Komponente
Das RuuviTag DevShield ist eine einfache Möglichkeit, RuuviTag-Einheiten zu debuggen und zu flashen.

Um das vollständige Hex-Paket zu erstellen, musst du SoftDevice, Bootloader und Anwendung zu einem zusammenführen. Der Bootloader benötigt jedoch eine zusätzliche Anpassung: Der Bootloader überprüft die CRC der Anwendung, und die Anwendung wird nur gestartet, wenn die CRC übereinstimmt. Daher musst du die CRC der Anwendung berechnen und die korrekte CRC in den Bootloader integrieren. Glücklicherweise bietet Nordic Semi nRFutil an, das den Großteil der Arbeit erledigt.

Um die Einstellungen für deine Anwendung zu generieren, führe nrfutil settings generate — family NRF52 — application test_drivers.hex — application-version 1 — bootloader-version 1 — bl-settings-version 1 settings.hex aus. Ersetze die Anwendungs-Hex-Datei bei Bedarf. Die Versionierung der Anwendung und des Bootloaders kann beliebig sein, wenn du einen Standard-RuuviTag verwendest, da dieser die Versionsprüfung überspringt. Die bl-settings-version muss jedoch korrekt sein. Wenn du eine Endbenutzeranwendung entwickeln und die Kontrolle über die Firmware haben möchtest, die auf deine Tags hochgeladen wird, solltest du dein eigenes Schlüsselpaar generieren, deinen eigenen Bootloader mit den Schlüsseln kompilieren und Versionsprüfungen erzwingen. Die Vorbereitung für die Massenproduktion ist jedoch ein Thema für einen anderen Dev Diary-Eintrag.

Das von uns verwendete SoftDevice ist s132 3.1.0. Jetzt, da du die Hex-Dateien bereit hast, führe sie mit mergehex, das in den nRF5x-Tools enthalten ist, zu einem Paket zusammen. mergehex -m ruuvitag_b3_bootloader.hex settings.hex -o configured_bootloader.hex und mergehex -m s132_nrf52_3.1.0_softdevice.hex configured_bootloader.hex test_drivers.hex -o test_drivers_full.hex

Dann ist es Zeit, das DFU-Paket mit nRFutil zu erstellen: nrfutil pkg generate — key-file ruuvitag_fw/keys/ruuvi_open_private.pem — application test_drivers.hex — debug-mode test_drivers_dfu.zip

Es ist immer eine gute Idee, nach dem ersten Hochladen deines Pakets ein paar DFU-Pakete auf deinen Tag zu spielen. Es ist möglich, DFU-Pakete mit ungültigen Einstellungen zu erstellen, die den Bootloader blockieren, wodurch die Rettung des Tags zu einer ziemlichen Operation wird, die das Erstellen, Testen und Flashen eines speziellen Rettungs-Bootloaders erfordert, nur um den Tag wiederherstellen zu können.

Außerdem solltest du immer den Stromverbrauch deines Tags überprüfen, bevor du die Binärdateien veröffentlichst. Die Leistungsanalyse werden wir in einem zukünftigen Dev Diary-Eintrag behandeln.