Arbeitsbeispiele

Aus nachvollziehbaren Gründen wünschen sich die meisten Firmen und Kunden heutzutage von Ihren "Zuarbeitern", dass diese ein NDA unterschreiben, damit keinerlei Details oder Firmeninterna über ihre Produkte an die Öffentlichkeit oder gar in die Hände von Marktbegleitern gelangen.

Daher kann ich hier nicht mit technischen Details von Produkten dienen, die ich im Kundenauftrag entwickelt habe. Allerdings lässt mich die Elektronik auch in meiner Freizeit irgendwie nicht los, und so kann ich (viel zu selten) das Angenehme mit dem Nützlichen kombinieren und im gleichen Stil, in dem ich für Kunden arbeite und dokumentiere gelegentlich mal auch eigene Projekte durchführen.

Ich bin ein großer Freund von Creative Commons, daher versuche ich auch möglichst viel von dem was ich erschaffe unter genau dieser Lizenz im Internet zu veröffentlichen. Auch wenn Creative Commons nicht unbedingt die perfekte Lizenz für Elektronik oder Software ist, habe ich trotzdem einige eigene eher kleine Elektronik-Projekte unter dieser Lizenz auf meiner privaten Webseite www.chrysophylax.de veröffentlicht.

Diese Projekte sind alle definitiv keine elektrotechnischen Wunderwerke höchster Komplexität - sondern meist eher genau das Gegenteil: Kleine praktische Helferlein, die einfach nur nützlich sind, einem das Leben etwas erleichtern oder wenigstens den Spieltrieb im Mann durch bunte blinkende Lämpchen befriedigen. Gerade weil sie so überschaubar sind, sind sie besonders gut geeignet, um potentiellen Interessenten meinen Arbeits- und Dokumentationsstil zu zeigen.

Auf folgende "Details", die mich stilistisch hoffentlich etwas vom "Marktstandard" abheben, möchte ich hier besonders hinweisen:

Fertigungsdaten

In den Projekten W007 und W010 kann man sich besonders gut ansehen, wie die Fertigungsdaten aussehen, die nach getaner Arbeit aus meinem Dokumentationssystem herausfallen. Layouts gibt es sowohl in diversen Varianten als Gerberdaten, als auch als CWK, je nachdem, was der Leiterplattenfertiger bevorzugt. Es sind sowohl Sätze mit, als auch Sätze ohne Bestückungsdruck vorhanden. Um die Arbeit mit den Ergebnissen zu erleichtern, sind zusätzlich von Layout und Bestückung auch große PDFs enthalten, die sowohl die einzelnen Ebenen, als auch sinnvolle Kombinationen enthalten. Dabei wird bewusst unterschieden zwischen einer Leiterplatten-Doku (enthält keine Bauteilwerte) und einer Baugruppen-Doku ("Zusammenfügung" von Leiterplatte und bestückten Bauteilen), die auch Bauteilwerte enthält, dafür etwas weniger detailliert auf die Platine eingeht. So wird am Elegantesten das altbekannte Problem gelöst, dass auf einundderselben Leiterplatte unterschiedliche Fertigungsstände mit unterschiedlichen Bauteilwerten bestückt werden können. Diese saubere Unterscheidung machen nur wenige Entwicklungsbüros.
Die Stücklisten liegen bewusst in HTML vor. Dies erscheint auf den ersten Blick etwas ungewöhnlich, da viele Firmen dafür lieber Word-Dokumente oder Excel-Dateien einsetzen, hat aber einen bestimmten Grund: Das Wunsch-Format, in dem Firmen Stücklisten möchten, sieht erfahrungsgemäß bei jeder Firma anders aus. Ein sauber formatiertes HTML bietet jedoch den Vorteil, dass man die Stückliste komplett markieren kann, und bei fast jedem marktüblichen Office-Paket heutzutage durch Kopieren in die Zwischenablage und Einfügen in eine Tabellenkalkulation dann automatisch Zeilen und Spalten erkannt und richtig verarbeitet werden. So hat der Kunde dann mit nur wenigen Klicks die Stückliste in seiner bevorzugten Tabellenkalkulation und kann sie dort durch einfaches Löschen oder Verschieben von Spalten in eine Form bringen, mit der er am Besten automatisiert weiterarbeiten kann. Ein weiterer Vorteil für die Einkaufs- und Beschaffungsabteilungen liegt darin, dass in den Stücklisten sowohl Lieferant und Lieferantenbestellnummer, als auch Hersteller und Herstellerbestellnummer angegeben sind. Diese Differenzierung pflegen auch nur sehr wenige Elektronikentwickler, was es dann dem Einkauf wiederum extrem schwierig macht, Lieferanten zu wechseln - weil man sich ohne diese Unterscheidung nie sicher sein kann, ob man beim anderen Lieferanten auch wirklich das gleiche Teil bekommt.
Zusätzlich bietet HTML den Vorteil, dass dieses Format hervorragend am Bildschirm betrachtet werden kann - was die üblichen DIN A3-PDFs mit vielzukleiner Schrift nicht immer bieten können.

Software im "Dot-Deeh-Double-Youh-Style"

Ein Hilfskonstrukt, das aus der Not geboren wurde, das sich aber inzwischen schon vielfach bewährt hat. In der Microcontrollerei hat man sehr häufig das Problem, dass man Software für den Zielkunden zwar gerne konfigurierbar hätte, diesem aber nicht unbedingt den kompletten Quellcode überlassen möchte. Bei klassischer PC-Software löst man das Problem durch Verteilung der "Executables", die über eine Konfigurations-Datei zu individualisieren sind, das geht aber bei Microcontroller-Software nicht, da diese üblicherweise nur als "Hex-File" aus der Entwicklungsumgebung fällt.

Gerade bei den Anbietern von "Geocaching-Zubehör" ist es extrem beliebt, anderer Leute Quellcode auf eigener Hardware einzusetzen und damit Geld zu verdienen. Die Erfinder des ursprünglichen Quellcodes sind damit selten glücklich, können aber nur wenig dagegen tun - wenn dieser Quellcode einmal in der Welt ist, ist er wie alles, was jemals im Internet stand, schlecht wieder zu entfernen.

Um zu verhindern, dass andere Menschen mit meiner Software Geld verdienen, habe ich den "Dot-Deeh-Double-Youh"-Trick (auf neuhochdeutsch einfach nur ".dw" - was der Atmel-Assembler problemlos versteht) erfunden: Microcontroller-Software wird von vorneherein so geschrieben, dass im Speicher zuerst das ausführbare Programm kommt, und anschließend nach dem Ende des Programms ein Bereich, in dem durch abgelegte Konfigurationswerte die Individualisierung auf den Anwendungsfall stattfindet. Wenn die Software fertig und fehlerfrei ist, wird sie OHNE den Individualisierungs-Datenbereich durch den Assembler gejagt, dieser erstellt ein .hex-File. Das .hex-File wird anschließend durch ein kleines Script ausgelesen und in eine Folge von .dw-Konstantenbefehle verwandelt.

In der zu veröffentlichenden Version der Software wird dann statt des echten Assembler-Quellcodes dieser .dw-Konstantenblock als include eingebunden und hintendran der "Individualisierungs-Block". Der Assembler kann diese beiden Teile zusammenfügen, rekonstruiert damit auch automatisch das eigentliche Anwendungsprogramm, aber dieses erscheint als nackter Datenblock ohne erkennbare oder modifizierbare Funktionalität. Natürlich kann man das Ergebnis problemlos durch einen Disassembler jagen zur Untersuchung, allerdings ist das ein höchst undankbarer Job.
Zu kompliziert? Schauen Sie sich einfach mal bei den Projekten die Softwareteile in W006Z003 und W006Z005 im Quellcode an, da wird das System schnell ersichtlich. Eine Vereinbarung zur Übergabe von Software in diesem Format habe ich auch mit einigen Kunden, dies macht die Software für den Kunden erheblich billiger, weil ich nicht meine gesamte Quellcode-Bibliothek mitliefern muss. Zusätzlich kann auch der Kunde diese Software im "Quellcode" weiter verteilen ohne befürchten zu müssen, dass jemand mit seinem geistigen Eigentum Schabernack treibt.