NODOMIC

Hardware / Firmware & Embedded-Software

Firmware & Embedded-Software

Echtzeit-Firmware und Embedded-Software für Mikrocontroller und vernetzte Geräte, von der ersten Inbetriebnahme bis zum stabilen, feldtauglichen Stand. Auf Platinen, die wir mit Ihnen entwerfen, oder auf Hardware, die bereits existiert oder anderswo gebaut wird. Muss auch die Platine noch entworfen werden, ist das Embedded Engineering.

Inbetriebnahme ist kein Schritt, den man überspringt, weil der Schaltplan stimmte.

EINSCHALTEN

Spannungen, Takte, und ob der Baustein überhaupt lebt

EINZELN

jede Peripherie für sich nachgewiesen, bevor etwas integriert wird

TREIBER

den Sensor richtig ansprechen, nicht ein Beispiel kopieren

TIMING

der Teil, der entscheidet, ob die Daten etwas bedeuten

DAUERLAUF

tagelang laufen lassen, weil die interessanten Fehler langsam sind

FELD-STAND

was ausgeliefert wird, mit erreichbaren Debug-Pfaden

Stufe zwei und fünf werden als Erstes gestrichen, wenn der Termin drückt, und genau sie entscheiden, ob das Gerät seinen ersten Monat im Feld übersteht.

Die meiste Embedded-Software schreiben Softwareteams, die gelegentlich ein Hardware-Projekt übernehmen. Bei uns ist es umgekehrt.

Eine Erfassungsplatine auf dem Mikroskoptisch während der Inbetriebnahme, eine Prüfspitze auf einem Pad, eine Status-LED leuchtet, dazu ein Fliegdraht und Kaptonband von einer früheren Korrektur
InbetriebnahmeEine Platine mitten im Debugging: Prüfspitze am Pad, Status-LED lebt, dazu der Fliegdraht von dem, was wir zuletzt falsch hatten.
Ein Oszilloskop zeigt zwei Taktsignale, eines gelb und eines blau, die nach fünfzehn Metern Kabel zwischen zwei Sensorknoten im Gleichlauf bleiben
Timing, nachgewiesenZwei Knoten an einem Abtasttakt nach fünfzehn Metern gewöhnlichem Kabel.

Die Firmware unserer eigenen Sensorknoten wurde hier geschrieben, für hier entworfene Platinen. Sie erfasst acht Audiokanäle an einem gemeinsamen Abtasttakt, verarbeitet sie auf dem Gerät und hält einen zweiten Knoten über gewöhnliches Kabel in derselben Zeitbasis. Nichts davon war beim ersten Versuch richtig.

Genau dafür lohnt es sich, jemanden zu holen. Firmware, die kompiliert, ist keine Leistung. Firmware, die sich beim zweihundertsten Einschalten noch richtig verhält, in der Kälte, an einer grenzwertigen Versorgung, mit einem Sensor, der gelegentlich lügt, ist eine andere Sache. Man kommt dorthin, indem man die Platine Baugruppe für Baugruppe in Betrieb nimmt, misst statt annimmt und festhält, was der Labortisch gezeigt hat, auch die Befunde, die eine weitere Platinenrevision bedeuteten.

Kaum ein Produkt verlangt acht Kanäle im Gleichschritt. Verlangt wird ein Gerät, das ein Jahr mit einer Batterie auskommt, einen August im Schaltschrank übersteht und ein Update ohne Einsatz vor Ort annimmt. Das ist dieselbe Technik, mit mehr Spielraum.

Ansehen, was damit gemessen wurde →

Inbetriebnahme und Platinen-Debugging

Erstes Einschalten, Spannungen und Takte gegen den Entwurf geprüft, dann jede Baugruppe für sich nachgewiesen. Wo die Platine falsch ist, finden wir es hier statt im Feld.

Treiber und Erfassung

Sensoren korrekt angesprochen: Initialisierung auf Registerebene, das Timing, das das Datenblatt tatsächlich verlangt, Kalibrierung und ein Datenpfad, der unter Last keine Abtastwerte verliert.

Timing und Synchronisation

Ein Abtasttakt für alle Kanäle und getrennte Geräte in einer Zeitbasis. Hier entscheidet sich, ob ein Multisensor-Produkt funktioniert.

Signalverarbeitung auf dem Gerät

Filterung, Spektralanalyse, Detektion und Schätzung innerhalb des Energie- und Latenzbudgets des Mikrocontrollers statt auf einem Server.

Echtzeit- und Embedded-Linux

Wo das Gerät groß genug dafür ist: Kernel und Userspace, Device Tree, Boot- und Update-Strategie und Echtzeitpfade, die auch wirklich in Echtzeit bleiben.

Energieverhalten

Tastverhältnis, Schlafzustände und Weckquellen gemeinsam mit der Elektronik entworfen, damit Laufzeit eine Zahl ist und keine Hoffnung.

Vom Gerät in die Cloud

Übertragung, Pufferung und Wiederverbindung unter der Annahme geschrieben, dass die Verbindung ausfällt, denn das wird sie. Und auf Wunsch der Dienst auf der anderen Seite.

Zuverlässigkeit über die Zeit

Watchdogs, Fehlerpfade und die Ausfallarten, die erst nach einer Woche Dauerlauf auftauchen. Dauertest vor der Auslieferung, nicht danach.

Updates und Wiederanlauf

Firmware, die sich im Feld ersetzen lässt und die nach einem fehlgeschlagenen Update von selbst zurückkommt, statt jemanden mit Programmiergerät vor Ort zu brauchen.

Die Entscheidungen, die ein Jahr später Geld kosten (Bauteilwahl, Schnittstellen, Update-Weg, wie das Gerät getestet wird), fallen in den ersten Wochen.

  1. 01

    Zuerst die Hardware lesen

    Schaltplan, Platine, Datenblätter und was an Firmware schon existiert. Bevor wir etwas schätzen, wollen wir wissen, was wir tatsächlich übernehmen, und wo eine Pinbelegung oder ein Bauteil Sie später in der Firmware Aufwand kostet, sagen wir es früh.

  2. 02

    Inbetriebnahme oder Übernahme

    Entweder eine neue Platine, auf der noch nie Code lief, oder eine bestehende Codebasis, die ihren Autoren über den Kopf gewachsen ist. Beides ist normal; das Zweite ist häufiger.

  3. 03

    Messbar machen

    Instrumentierung und Tests, die zeigen, ob das Gerät funktioniert, statt eines Eindrucks, dass es zu funktionieren scheint. Hier sind die meisten Embedded-Projekte unbemerkt am schwächsten.

  4. 04

    Härten und übergeben

    Feldbedingungen, Grenzfälle, der Update-Weg und eine Dokumentation, die mit der Arbeit entsteht, damit nichts davon abhängt, dass wir für immer verfügbar sind.

Firmware, die unbeaufsichtigt laufen muss?

Schicken Sie die Platine, den Schaltplan, das Repository oder nur die Randbedingungen, was eben existiert. Sie bekommen eine ehrliche Einschätzung, was der Baustein leisten kann, was das Timing zulässt und wo das Risiko tatsächlich liegt.

Projekt besprechen →