ANZEIGE
ANZEIGE
ANZEIGE

Synthesizer-Kolumne von Erik Steckmann: Firmware, Bugs, Features, Updates

14. Oktober 2020

Episode 4: The F Word - Firmware, Bugs, Features und Update-Mechanismen

Synthesizer Kolumne von Erik Steckmann: Firmware, Bugs, Features, Updates

Synthesizer-Kolumne von Erik Steckmann: Firmware, Bugs, Features und Update-Mechanismen

Ein Überblick zur Serie

Die mehrteilige Serie von Erik Steckmann könnt Ihr über folgende Links erreichen:

Vielleicht der König der Bugs bei seiner Erstauslieferung 1998, der AKAI S6000

Zum Thema Firmware, Bugs und Updates

Der bei genauerer Betrachtung wichtigste Teil der meisten elektronischen Klangerzeuger ist die Firmware. Das unsichtbare Band, das Hardware-Komponenten und User verbindet, erfordert im Entwicklungsprozess im Normalfall den größten Aufwand.
Für die meisten ist Firmware ein Buch mit sieben Siegeln und das Thema vieler Beschwerden von Nutzern an Hersteller.

ANZEIGE

Am sich schnell entwickelnden Markt kann es für Designer und Benutzer entscheidend sein, wie Firmware gehandhabt und gepflegt wird. Um etwas Licht ins Dunkel zu bringen, dreht sich der vierte Teil meiner Kolumne um alles im Gerät, was aus Code besteht.

Invisible – was ist Firmware

Zunächst möchte ich klarzustellen, was Firmware überhaupt ist.
Elektronische Geräte vom Synthesizer über das Autoradio bis zur Waschmaschine sind generell immer aus Hard- und Software aufgebaut. Die elektronischen Komponenten wie zum Beispiel Kondensatoren, Widerstände und anderen Bauteile werden als Hardware bezeichnet. Simpel gesagt speichern, wandeln und transportieren diese Bauteile elektrische Energie. Um aus den gespeicherten Ladungszuständen für Menschen verwertbare Informationen zu machen bedarf es einer Steuerungslogik. Diese wird durch Firmware abgebildet. Auf Basis von Speicher und einem Mikroprozessor in Zusammenarbeit mit einem Satz an Anweisungen werden Informationen der analogen Komponenten ein- und ausgelesen.

Firmware bildet das Bindeglied zwischen Hardware und Software. Aber was ist der Unterschied zwischen Software und Firmware? Um keine Verwirrung zu erzeugen, verwenden die meisten Hersteller von Musikelektronik nur den Begriff Firmware für beide Bestandteile. Dennoch möchte ich versuchen, den Unterschied hier klarzumachen.

White lines – Firmware besteht aus Text, sehr viel Text

Einfach gesagt, ist Firmware der Teil der Programmanweisungen der Informationen aus analogen Bauteilen in Werte umwandelt, die eine Maschine verstehen kann. Ein einfaches Beispiel ist die Bedienung eines Potentiometers. In Abhängigkeit der Position erzeugt dieses lediglich einen statischen Widerstandswert. In einem D/A-Wandler wird dieser in einen numerischen Wert umgewandelt und an die Software weitergeleitet. Diesen Job übernimmt die Firmware.

Software verwaltet ankommende Daten auf einer höheren Ebene. Auf Basis der einfachen Werte werden komplexe Funktionen realisiert. Zum Beispiel die Weiterleitung in einen MIDI-Wert auf einem speziellen Kanal oder die Anzeige des Wertes in einem Display. Die Software sorgt dafür, dass auch komplexe Funktion ausgeführt werden können. Ein guter Vergleich aus der Welt der Computer ist das Betriebssystem.

Im Normalfall verändert sich die Firmware eines Systems nur sehr selten und sehr geringfügig, während die Software in Abhängigkeit der Lebensdauer unter Umständen massive Veränderung erfährt. Hierzu aber später mehr.

Little Critters – was sind Bugs?

Wenn die Firmware eines elektronischen Gerätes einen Fehler aufweist, kann es dazu kommen, dass eine der angegebenen Programmfunktionen nicht oder nur fehlerhaft ausgeführt wird. Dies wird als Bug bezeichnet.

Die Bezeichnung Bug stammt aus den frühen Tagen der Computertechnik. Damals waren Computer riesengroß und basierten auf Relais. Ein Relais ist ein durch elektrischen Strom betriebener elektromagnetischer Schalter. Die extreme Größe der ersten Computersysteme begründete sich in der Verwendung von hunderten oder tausenden solcher Schalter. Im Verlaufe der Nutzung nisteten sich oft Insekten oder Käfer in den Schaltwegen ein und sorgten dafür, dass sich die Relais nicht mehr bewegten. Das Gerät stellte seine Funktion ein und ein Techniker musste das Ungeziefer entfernen. Der Begriff Bug war geboren.

Kriechtiere müssen nicht immer greifbar sein

In Tagen moderner und auf Programmcode passierenden Anweisungen sind Bugs simple Fehler in diesen Anweisungen. Sie reichen von simplen Tippfehlern, falschen Zahlenwerten oder fehlenden Informationen bis zu komplexen Fehlern in der Logik der Anweisungen und Berechnungen.

Ghostbusters – QA-Engineering & Beta-Testing

Eine wichtige Regel bei der Entwicklung von Software und Firmware ist: „Don’t test your own sh***t“. Ein guter Softwareentwickler schreibt an einem Tag circa 40 Zeilen Programmcode. Durch die intensive Beschäftigung mit dem Aufbau dessen entsteht eine gewisse Betriebsblindheit. Die Wahrscheinlichkeit Fehler zu übersehen steigt sehr stark an.

Um diese vor Release des Produktes zu finden, stellen Softwarefirmen und Hardwarehersteller sogenannte QA-Ingenieure ein. QA steht für Quality Assurance also Qualitätssicherung. Auch ich habe meine Karriere als ein solcher Ingenieur begonnen. Ich möchte deswegen nicht darauf verzichten, dem Berufszweig hier zu huldigen.
Mit Fokus auf alle Abschnitte des Entwicklungsprozesses von Design über Codierung bis zur Dokumentation wird getestet bis die Finger bluten. Nach dem Durchspielen von tausenden Testfällen, die manuell oder auch automatisiert durchgeführt werden, entstehen Beta-Versionen.

Im letzten Schritt vor dem Release werden diese Beta-Versionen an ausgewählte Freiwillige verteilt, die die Software ein letztes mal auf Herz und Nieren prüfen.

ANZEIGE

Waldorf Wave Prototyp

Growing it – Firmware-Update-Mechanismen

Ist die neue Firmware-Version letztendlich getestet, muss diese auf die Geräte gebracht werden. Hierzu gibt es verschiedene Herangehensweisen, die mehr oder weniger aufwändig sind.

Die leistungsfähigste Technik wird als Universal-Firmware-Updater bezeichnet. Eine spezielle Software erkennt beim Start automatisch, welche Geräte mit dem Computer verbunden sind und ob dieses eines Updates bedürfen. Mit wenigen Klicks und ohne potentielle Fehlerquellen wird das Update in wenigen Sekunden durchgeführt.

Etwas schwieriger sind Updates über Speicherkarten oder USB-Medien. Dies wird nötig, wenn die Geräte keinen vollwertigen USB-Port besitzen. Meist muss eine Datei von der Webseite des Anbieters heruntergeladen und in einen speziellen Ordner auf dem Speichermedium verschoben werden. Mittels einer magischen Tastenkombination oder einem ähnlichen Befehl können die Geräte dann in einen dedizierten Modus gebootet werden. Im letzten Schritt werden die Daten automatisch in den Geräte-Speicher übertragen.

Auch über MIDI-Ports sind Updates möglich. Das SysEx-Format kann dazu verwendet werden, Programmcode in Form von MIDI-Daten auf das Zielgerät zu übertragen.

Woran erkenne ich gute Firmware?

Softwarequalität definiert sich vor allem durch Dinge wie gute Architektur, ausreichende Kommentierung der Programmzeilen und die Verwendung von modernen Techniken zur Erzeugung des Codes. Leider sind diese Eigenschaften für den Nutzer meist nicht wahrnehmbar. Daher ist es extrem schwierig zu beurteilen, ob eine Firmware eine hohe Qualität aufweist.
Um eure Kaufentscheidungen zu unterstützen ist es hilfreich, einen Blick auf vorherige Produkte des Herstellers zu werfen. Wenn diese für lange Zeit mit regelmäßigen Firmware-Updates gepflegt werden ist dies ein gutes Zeichen. Viele Hersteller veröffentlichen sogenannte Release-Notes in denen beschrieben wird, welche Bugs behoben und welche neuen Funktionen hinzugefügt wurden. In diesen sind Frequenz und Inhalt der Updates gut erkennbar. Auch ein Blick in Foren oder Facebook-Gruppen können gute Einblicke geben.
Die Qualität der Dokumentation kann ebenfalls sehr aufschlussreich sein. Ein kurzer Blick auf die zur Verfügung gestellten Bedienungsanleitungen ist meist ein Indikator für hohe Software-Qualität.

Durchdacht – gute Firmware wird gepflegt und geplant

Ein extremes Negativbeispiel für besonders schlechte Firmware liefert das chinesische Unternehmen Icon Pro Audio. Die professionell aussehenden MIDI-Controller und Audio-Interfaces des Anbieters sind durchzogen von Bugs und schlecht designter Firmware. Das geht soweit, dass viele der Geräte nicht in der Lage sind, die versprochen Anwendungsfälle zu erfüllen. Mangelhafte Architektur sorgt dafür, dass es möglich ist, Teile der Firmware bei Updates oder der schlichten Benutzung zu zerstören. Im schlimmsten Falle muss das Gerät eingeschickt und die Firmware von einem Profi mit Spezialwerkzeug neu aufgespielt werden. Dass der Hersteller sich über diese Probleme bewusst ist und sie scheinbar ebenso bewusst ignoriert, beweisen unzählige negative Forumsbeiträge überall im Internet.
Wer billig kauft, kauft zweimal.

Dev Peek: Do it like its 1982 – Firmware-Updates mit EEPROM-Brennern

Auch in den Urzeiten der Musikelektronik kam es vor, dass Anpassungen der Firmware notwendig waren. Obwohl zur damaligen Zeit eine wesentlich niedrigere Komplexität der Firmware üblich war und diese auch mit wesentlich höherem Aufwand getestet wurde, wurden Updates ab und an nötig. In einer Zeit lange vor Personalcomputern, USB und dem Internet gestaltete sich dies wesentlich schwieriger.

EEPROM-Brenner DIY-Projekt

Die Mikrochips, die zur damaligen Zeit die Firmware beinhalteten, wurden als EEPROM, ROM oder EPROM bezeichnet und konnten oft nur wenige Byte speichern. Der Unterschied zu heutigem Speicher war, dass es sich um statischen Speicher handelte. Es war also nicht ohne Weiteres möglich, den Code darauf zu überschrieben. Um die Firmware auf einem Gerät zu ersetzen mussten die ICs (integrierte Schaltungen) die die Firmwaredaten speicherten manuell von den Boards entfernt und mit speziellen Programmiermaschinen überschrieben werden. Der Aufwand und das Risiko dabei Schäden anzurichten waren exorbitant. Viele Hersteller verkauften fertig beschriebene Bausteine, die vom Nutzer selbst oder einer entsprechenden Fachkraft eingesetzt werden mussten – kein Vergleich zur Einfachheit heutiger Updates.
Früher war also doch nicht alles besser.

Dev Peek: Backlogs – wie Bugfixes und neue Features geplant werden

Backlog planning session – Jeder Klebezettel steht für ein Feature

Jeder von euch wird dieses Problem kennen. Ihr besitzt diese wunderbare Workstation voller genialer Features, doch diese eine kleine winzige Sache fehlt. Im Kopf entsteht eine geniale Idee wie das Gerät noch viel besser gemacht werden könnte. Eventuell kommt ihr darauf, eure Idee mit dem Hersteller zu teilen und schreibt eine Mail an diesen. Die Idee ist so gut, sie muss einfach umgesetzt werden. Doch es passiert nichts. Woran liegt das?
An der Ignoranz des Entwicklungsteams? An einem Fehler in der Kommunikationskette? Oder vielleicht doch daran, dass ihr keine Blumen geschickt habt?

Um diese Frage zu beantworten, hilft es einen Blick auf die Herangehensweise der Hersteller zu werfen.
Um aus der schier unendlichen Menge an möglichen neuen Funktionen die zu bestimmen, für die es sich lohnt den Aufwand zu betreiben, wird ein Werkzeug verwendet, das sich Backlog nennt.

Ein Backlog ist eine priorisierte Liste von möglichen neuen Funktionen und Fehlerbehebungen die verschiedene Parameter vergleicht. So werden neben dem Aufwand der Implementierung und dem Nutzen für den Anwender auch Faktoren wie der Wert für das Marketing und Vergleiche mit der Konkurrenz herangezogen.

Mittels Beobachtungen, Umfragen und anderen Techniken wird so von findigen Produktmanagern bestimmt, wie die Kapazitäten des Entwicklungsteams investiert werden. Für einen Außenstehenden sind diese Entscheidungen oft schwer zu durchschauen. Seid euch sicher, dass in den meisten Fällen sinnvolle Entscheidungen getroffen werden. Das Team wird jedes Feature, das ihr gerne vorschlagen möchtet, höchstwahrscheinlich bereits in dieser Liste haben. Ich denke aber, dass Blumen ab und zu trotzdem keine schlechte Idee sind.

ANZEIGE
ANZEIGE
Forum
  1. Profilbild
    Filterpad  AHU

    Ein sehr schöner und vor allem sinnvoller Artikel. Überhaupt wird das Thema immer wichtiger und komplexer, da Digitalisierung in der Musikproduktion heutzutage nicht mehr wegzudenken ist. Trotz immer benutzerfreundlicherer Software werden durch die Schnelllebigkeit und ständiger Interaktion mit anderer Software (z.B. DAW mit Win. etc.) die Produkte unvollständig und gerne mit Bugs ausgeliefert. Den Ärger hat man dann Zuhause bei der Anwendung. Wenigstens müssen keine Insekten mehr daran glauben.

  2. Profilbild
    janschneider  

    Dass der Begriff “bug” von Käfern in den Computern kommt, ist mWn ein “urban myth”. Zumindest wenn man Wikipedia glauben darf, wurde der Begriff schon wesentlich länger im Engineering benutzt, um kleine Fehler zu kennzeichnen.
    Es gab tatsächlich mal einen Fall, wo in einem der ersten Röhrenbasierten Computer eine Motte gefunden wurde und angeblich einen Fehler verursacht wurde, und die Motte mit der Beschriftung “we found an a actual bug” aufbewahrt wurde. Daraus wurde dann die Geschichte, dass somit auch der Begriff erfunden wurde.
    https://en.m.wikipedia.org/wiki/Bug_(engineering)#History

  3. Profilbild
    KrauTronicA  RED

    Als kleine Ergänzung noch eine weitere wichtige Regel bzgl. Test: „Was nicht getestet wird, funktioniert später auch nicht“. Klingt überspitzt, aber aufgrund der Komplexität heutiger Geräte gibt es viele Möglichkeiten für unerwünschte Nebenwirkungen. Zitat „Sie können teilweise gar nicht so blöd denken wie das was alles so in der Praxis passiert.“ Da ist also die Kreativität des Qualitätsingenieurs gefragt ;-).
    Bei der Einführung neuer features in updates ist es ebenfalls sehr wichtig zu prüfen, daß diese die bereits vorhandenen Funktionen nicht beeinträchtigen. Da hilft eine automatisierte Testumgebung (schärfer formuliert: ist diese zwingend notwendig), die genau das überprüfen und sicherstellen soll.
    Beta-Tests sind kein Luxus oder Werbe-Gag, sondern durchaus sinnvoll. Betonung aber wie von Erik angesprochen auf „ausgewählte Freiwillige“. Allerdings sollte selbst dann nicht der Eindruck entstehen daß der Hersteller sich hier die Kosten für eine vernünftige firmeninterne Qualitätssicherung sparen will.
    Der Vergleich von Firmware mit einem Betriebssystem oder Treiber ist passend, genauso zutreffend ist „hardwarenahe“ Programmierung. Sie ist mit entscheidend dafür, ob das volle Potential der Hardware genutzt werden kann.

  4. Profilbild
    lightman  AHU

    Fluch und Segen der modernen Zeiten. Fluch, weil es updatebare Firmware gibt, und Segen, weil es updatebare Firmware gibt.

  5. Profilbild
    Haurein  

    Gut, bei elektronischen Geräten ist eine Firmware notwendig. Aber es gibt auch vollkommen sinnlose Fälle.
    Ein Freund hat ein Rennrad mit einer elektronischen Schaltung und musste eine Radtour abbrechen, weil er nicht mehr schalten konnte. Zuhause musste er ein Firmwareupdate aufspielen und dann gings wieder. Was für ein Schwachsinn!

    Demnächst gibts wahrscheinlich noch elektronische Klopapierhalter mit Firmware :-(

  6. Profilbild
    mfk  

    @Red:

    Der „Episode 3: Hit me like a … – Tasten & Pads“-Link geht auf
    „https://www.amazona.de/wp-admin/post.php?post=393497&action=edit“
    statt auf
    „https://www.amazona.de/synthesizer-kolumne-von-erik-steckmann-tasten-und-pads/“

    (In allen Artikeln der Serie)

Kommentar erstellen

Die AMAZONA.de-Kommentarfunktion ist Ihr Forum um sich persönlich zu den Inhalten der Artikel auszutauschen. Sich daraus ergebende Diskussionen sollten höflich und sachlich geführt werden. Haben Sie eigene Erfahrungen mit einem Produkt gemacht, stellen Sie diese bitte über die Funktion Leser-Story erstellen ein. Für persönliche Nachrichten verwenden Sie bitte die Nachrichtenfunktion im Profil.

ANZEIGE