Zum Hauptinhalt Zur Navigation

Tinkerforge: Wie ein Prozessorboard entsteht

Tinkerforge hat im Februar einen Kleinrechner angekündigt. Wir haben die Macher gefragt, wie und mit welchen Programmen ein Prozessorboard für Entwickler entsteht und welche Probleme auftreten können.
/ Alexander Merz
30 Kommentare News folgen (öffnet im neuen Fenster)
Leiterbahnenlayout in Kicad (Bild: Tinkerforge)
Leiterbahnenlayout in Kicad Bild: Tinkerforge

Im Februar hat Tinkerforge den RED-Brick angekündigt(öffnet im neuen Fenster) : einen Kleinrechner im Brick-Format von 4 x 4 cm mit einem Allwinner ARM-Cortex A8, 512 MB RAM und den Tinkerforge-typischen Anschlüssen. Damit könnte ein Tinkerforge-Projekt ohne einen zusätzlichen, externen Rechner betrieben werden. Wie wurde der Prozessor ausgewählt, welche Programme wurden zum Layouten verwendet und wie erfolgte die Produktion? Golem.de hat die Macher von Tinkerforge, Bastian Nordmeyer und Olaf Lüke, gefragt und mehr über die Voraussetzungen und Probleme bei der Entwicklung eines Rechners auf einer Platine erfahren – von der Idee bis zum fertigen Produkt.

Womit die Planung begann

Nachdem bei den Machern die Entscheidung gefallen war, einen Tinkerforge-Rechner zu konzipieren, galt es zunächst, die Eckdaten festzulegen, wie Nordmeyer erzählt: Auf dem Rechner sollte eine normale Linux-Distribution laufen, der Preis überschaubar bleiben und natürlich sollte er fähig sein, die Bricks von Tinkerforge anzusprechen.

Der kritischste Faktor war aber der Formfaktor: Der Rechner sollte idealerweise genauso groß sein wie die übrigen Bricks, das zeigte sich auch in einer Diskussion(öffnet im neuen Fenster) im Tinkerforge-Forum. Da auf der Platine auch noch das RAM und diverse Anschlüsse wie HDMI und USB untergebracht werden mussten, grenzte das die Anzahl der potenziellen Prozessormodelle schon allein der Größe wegen stark ein.

Gerade für geringe Größen gibt es mittlerweile einige interessante technische Ansätze, zum Beispiel die Package-on-Package-Technik(öffnet im neuen Fenster) wie sie beim Raspberry Pi zu finden ist. Dabei wird das RAM direkt auf den Prozessor gelötet. Das verringert nicht nur den Platzbedarf, sondern reduziert auch den Aufwand im Schaltungsentwurf. "Leider werden solche Prozessoren nur in Stückzahlen verkauft, die weit über unserer geplanten Produktionsmenge liegen" , sagte Nordmeyer, einer der Gründer von Tinkerforge und verantwortlich für die Hardware-Entwicklung.

Des Weiteren gelte es, bei der Auswahl des Prozessors darauf zu achten, dass auch bei der Abnahme eher kleinerer Mengen durch den Hersteller oder einen Distributor Support geleistet werde. Genauso gelte es, mögliche Lieferfristen und die Lieferbarkeit überhaupt im Auge zu behalten.

Letztlich reduzierte sich die Auswahl der Prozessoren auf Basis der Größe und der zur Verfügung stehenden technischen Eigenschaften auf zwei Modelle: den Allwinner A10s(öffnet im neuen Fenster) und die Sitara-Serie(öffnet im neuen Fenster) von Texas Instrument, wie sie auch beim Beaglebone Black zum Einsatz kommt. Letzterer hätte aber einen zusätzlichen LVDS(öffnet im neuen Fenster) -zu-HDMI-Wandler erfordert.

Die Schaltung und das Platinenlayout

Nachdem entschieden war, welche Technik zum Einsatz kommen würde, mussten die Schaltung entworfen und die Platine gelayoutet werden. Dabei werden die Position der Chips und Anschlüsse festgelegt und alle Bauteile müssen über Leiterbahnen miteinander verbunden werden.

Da Tinkerforge auf den durchgängigen Einsatz von Open-Source-Software achtet und es auch für die bisherigen Entwürfe zum Einsatz kam, wurde zum Layouten Kicad(öffnet im neuen Fenster) benutzt. Das Programm steht unter der GNU GPL v2-Lizenz und ist für Windows, Linux und OS X verfügbar.

Allerdings stieß Kicad bei diesem Projekt an seine Grenzen: "Es war eine große Fummelei" , erzählt Nordmeyer. Gerade die Anbindung des RAMs an den Prozessor sei eine große Herausforderung gewesen. Dabei müsste eine Vielzahl von Leiterbahnen gezogen werden, welche die gleiche Länge haben müssen, damit die Signale tatsächlich zur gleichen Zeit ankommen. Das heißt, dass je nach ihrer Position Leiterbahnen nicht auf dem kürzesten Wege geführt werden dürften, sondern mäandern(öffnet im neuen Fenster) müssten. Gleichzeitig dürfe aber auch der Impedanz ( frequenzabhängige Widerstand(öffnet im neuen Fenster) ) der Leitungen nur in Grenzen variieren, und eine gegenseitige Beeinflussung durch elektromagnetische Feldeffekte müsse beachtet werden ( Übersprechen beziehungsweise Crosstalk(öffnet im neuen Fenster) ).

Kommerzielle Programme haben dafür meist Funktionen, die dafür sorgen, dass mehrere Leiterbahnen stets identische Längen aufweisen, definierte Abstände einhalten und künstliche Verlängerungen einbauen. Eines der bekanntesten ist Eagle(öffnet im neuen Fenster) , von dem es auch eine kostenfreie Version gibt, die einige Einschränkungen aufweist, für kleinere Projekte aber ausreicht. Im Gegensatz zu Kicad ist aber dessen Speicherformat wie jenes anderer kommerzieller Programme proprietär, was den Austausch erschwert.

Der erste echte Prototyp

Die Schaltung und das Platinenlayout stehen – doch wird der Rechner funktionieren? Das lässt sich erst feststellen, wenn tatsächlich die erste Platine hergestellt, bestückt und mit Strom versorgt wird. Denn eine korrekte Schaltung bedeutet nicht automatisch eine funktionierende oder produktionstaugliche Schaltung, gerade bei einem Prozessorboard.

Leiterbahnen und Bauteile können sich gegenseitig elektromagnetisch beeinflussen, Lötpads für Bauteile sich beim Bestücken als zu klein erweisen. Oder sie weisen zu wenig Abstand voneinander auf und es kommt zu unfreiwilligen Lötbrücken. Manchmal wird beim Entwurf schlicht ein Widerstand an einem der vielen Prozessorpins falsch dimensioniert.

Einfachere Schaltungen lassen sich meist mit einem Breadboard testen, für etwas aufwendigere Schaltungen bieten sich Lochrasterplatinen an. Kommen jedoch viele SMD- oder gar BGA-Bauelemente zum Einsatz, wie im Falle eines Prozessorboards, dann führt kaum ein Weg an einer Testplatine vorbei.

Bastian Nordmeyer ätzt Testplatinen aber schon lange nicht mehr selbst: "Der Aufwand lohnt sich nicht, gerade weil man danach die umweltschädlichen Chemikalien noch entsorgen muss" , sagt er. Es gebe mittlerweile viele Anbieter für die Herstellung von Platinen, die selbst bei kleinsten Mengen noch preiswert seien.

Das Auflöten der Bauelemente, das Bestücken dieser Platinen zu Testzwecken, könne dann aber bei entsprechender Erfahrung durchaus per Hand erfolgen oder in einem umgebauten Pizzaofen bei SMD-Bauteilen – für ganz Experimentierfreudige sogar bei BGA-Bauelementen.

Wenn aber wie in diesem Fall ein komplexes Platinendesign selbst noch getestet werden müsse, sei das keine gute Idee, meint Nordmeyer. Zwar könnten die Schaltung und ihr Verhalten immer noch mit Hilfe von Logik-(öffnet im neuen Fenster) sowie Spektrumanalyzer(öffnet im neuen Fenster) getestet werden. Ob aber Probleme bei der Prozessoranbindung auf Layoutprobleme oder eine fehlerhaft gelötete Verbindung zurückzuführen seien, sei bei BGA-Bauelementen nur per Röntgengerät zu erkennen.

Dienstleister finden

Um produktionsbedingte Probleme bereits im Vorfeld auszuschließen oder wenigstens zu minimieren, erfolgte bereits die Herstellung der Prototypen für den RED-Brick durch externe Dienstleister. Das galt sowohl für die Platinenherstellung als auch deren Bestückung.

Den richtigen Dienstleister zu finden, sei ein Lernprozess, berichtet Nordmeyer. Die reine Suche ließe sich mit Google bestreiten. Bei der endgültigen Auswahl dürfe aber nicht nur der Preis ausschlaggebend sein. Vielmehr müsse die gelieferte Produktqualität stimmen und dürfe nicht zu Nacharbeiten zwingen. Zuverlässige Lieferzeiten seien zudem unabdingbar für die eigene Planung. Ein kommunikationsbereiter Dienstleister helfe mit seiner Erfahrung, bevor in der Produktion die Hälfte schief laufe, und könne beim billigen Einkauf einfacher passiver Bauteile wie Widerstände behilflich sein.

Auch die Tinkerforge-Macher hatten in der Vergangenheit nicht sofort Glück mit der Wahl ihrer Dienstleister. Fehlerhafte Bestückungen ihrer allerersten Brick-Chargen mussten sie selbst per Lötkolben in einigen Nachtschichten ausbügeln. Und selbst beim besten aller Dienstleister kann die erste Produktionscharge noch zu viel Ausschuss führen, da der Produktionsprozess sich erst einspielen muss.

Aus diesem Zusammenspiel aus eingespieltem Produktionsprozess und darauf abgestimmtem Platinendesign ergibt sich auf der anderen Seite das Problem, dass ein Wechsel des Dienstleisters dann nicht immer einfach oder schnell machbar ist, es sei denn, der Auftraggeber wäre bereit, viel Geld zu zahlen.

Außerdem ist die Wahl des Dienstleisters einer der wenigen Bereiche, bei denen auch ein kleiner Produzent Einfluss auf nichttechnische Faktoren seines Produktes hat, etwa auf die Arbeitsbedingungen, unter denen es hergestellt wird.

Wie es weiter geht

Aktuell werden bei Tinkerforge die ersten Prototypen zusammengebaut und an der Anpassung und Abstimmung der Linux-Distribution gearbeitet, die darauf laufen soll. Das bedeutet zum einen, angepasste Treiber zu entwickeln, zum anderen, ein einfaches Webinterface zu bauen, um Programme einfach hochladen zu können.

Warum es den RED erst jetzt gibt

Einen Tinkerforge-Stapel ohne zusätzlichen Rechner betreiben zu können, wünschten viele Nutzer und Interessenten – auch hier im Golem.de-Forum. Dass dieser Wunsch erst jetzt erfüllt wird, hat mehrere Gründe.

Die beiden Gründer Bastian Nordmeyer und Olaf Lüke hatten ihren ersten intensiven Kontakt mit programmierbarer Elektronik an der Universität im Rahmen eines Roboterfußball-Projektes 2008. Obwohl sie sich dort mit den Softwareaspekten auseinandersetzen wollten, und es ihnen eher um Spielstrategien ging, verbrachten sie unfreiwillig – und wie sie sagen: zu viel – Zeit, die Hardware selbst zu verstehen und kämpften stets mit den Hardware- und Softwarebegrenzungen von embedded Systemen – obwohl die Hardware auch damals schon sehr leistungsfähig war.

In der Folge begannen sie damals, einen Vorgänger des heutigen Tinkerforge-Systems zu entwerfen. Die eigentliche Programmlogik sollte dabei aus Prinzip auf einem normalen Rechner laufen, damit sich ein Entwickler möglichst in einer Programmiersprache seiner Wahl auf seine eigentliche Aufgabe konzentrieren könnte und nicht durch die Hardware beschränkt würde. Dieses Konzept behielten sie bei, als sie nach Abschluss des Studiums Tinkerforge ins Leben riefen.

Als in der Folgezeit Kunden nach Möglichkeiten fragten, ein Tinkerforge-Projekt 'stand-alone' laufenzulassen, empfahlen die Macher, einen Raspberry Pi oder vergleichbare Kleinrechner zu nutzen. Doch das war nicht immer unproblematisch. Der abweichende Formfaktor dieser Rechner erforderte umständlichere Konstruktionen, manche Kunden wollten sich nicht mit dem Aufsetzen und Konfigurieren eines Linux herumschlagen und nicht jeder Kleinrechner stellte genug Strom am USB-Ausgang bereit, um einen Tinkerforge-Stapel zu betreiben.

Trotzdem dauerte es noch eine ganze Weile bis zum ersten Entwurf des RED. Die Macher waren der Meinung, dass eine breite Palette an Sensoren und Bauteilen Priorität besitze. Erst als diese To-do-Liste abgearbeitet war und sie sich erfahren genug fühlten, begannen sie mit der Entwicklung ihres Kleinrechners.

Ob sie ihnen gelingen wird, werden wir in den nächsten Monaten verfolgen.


Relevante Themen