Blog

Zeigt uns eure Toolchain

Published on Mar 01, 2023 by Robert on Toolchain

Zeigt uns eure Toolchain

Ein Ziel der Open Toolchain Foundation ist es, die Toolchain, d.h. die Arbeitsabläufe und die dabei eingesetzten Software Tools bei der Entwicklung und Produktion von Hardware, besser zu verstehen und abzubilden.

Teilt eure Toolchain mit uns und der Community hier im Forum

Hier möchten wir euch ein Beispiel für eine generische Toolchain vorstellen, in der eine Leiterplatine und 3D-Druckteile entwickelt und hergestellt werden, wobei die Produktion auch ausgelagert werden kann. Das ist abhängig von den Mitteln die jeder zur Verfügung hat.

Toolchain EMCAD-3DP-PCB

Wir haben festgestellt, dass die Abbildung der Toolchain alleine nicht immer ausreicht. Sie sollte erläutert und dokumentiert sein, damit sie vorallem von Neueinsteigern verstanden wird.

Das Repository enthält alle benötigten Dateien für die Entwicklung und Produktion. Zur besseren Organisation ist es in Unterordner unterteilt.

  • MCAD (mechanische CAD-Konstruktionsdateien)
  • ECAD (elektronische Schaltpläne und PCB Entwurfsdateien)
  • Firmware (Quellcode der Firmware)
  • Dokumentation (alle Informationen um das Projekt nachzubauen)

Die mechanischen Bauteile des Projekts werden mit FreeCAD konstruiert. Mit KiCAD werden die elektronischen Bauteile (Leiterplatine) entworfen und Produktionsdateien exportiert. Als Schnittstelle zwischen FreeCAD und KiCAD, zum Austauschn von 3D-Geometrien, kommt kicadStepUp zum Einsatz. Die Firmware und die Dokumentation wird mit einem Texteditor erstellt. Fertigungsdatein für den 3D-Druck (g-code) werden mit Hilfe von Cura erzeugt.

Für die Versionsverwaltung, zur Erfassung von Dateiänderungen, dient git. Seinen vollen Funktionsumfang erreicht git nur mit rein textbasierten Datein. Zur besseren Verwaltung von Binärdateien (CAD-Dateien, Bilder, Videos, etc.) wird git-lfs verwendet. Eine wichtige Funktion von git-lfs ist die Möglichkeit, Dateien zu sperren, was dazu beiträgt, Konflikte beim mergen mit Binärdateien zu vermeiden. Dies ist vorallem dann hilfreich, wenn mehrere Personen im selben Repository arbeiten. Wir arbeiten gerade an einer PDM-ähnlichen git Benutzeroberfläche und haben ein erstes Mock-up erstellt, bitte sendet uns gerne Feedback.

Gitlab, als Webanwendung zur Versionsverwaltung, ermöglicht die Zusammenarbeit mit anderen Leuten. Darüber hinaus bietet es auch ein Issue-Tracking-System, Webhosting für die Dokumentation (GitLab Pages) und es können gewisse Prozessschritte mit Continuous Integration und Continuous Delivery (CI/CD) über die Pipeline automatisieren werden. Mithilfe von CI/CD können stets aktuelle Produktionsdateien bereitgestellt werden. Ferner wird die Dokumentation über einen Static-Site-Generator (SCG) erzeugt und als Webseite veröffentlicht.

Die Toolchain ist nicht immer linear, denn gerade in der Entwicklung kann es Schleifen geben, die immer wieder durchlaufen werden, bis das gewünschte Ergebniss erreicht ist.

Das hier gezeigte exemplarische Beispiel einer Toolchain kann als Blaupause dienen für den bevorstehenden Hackathon und das dortige Vorhaben, die Toolchain des nimble-Projektes durch eine Toolchain mit FLOSS zu ersetzen.

Wir von der Open Toolchain Foundation sind daran intessiert zu erfahren wie die Toolchain eures Projektes aussieht! Dazu könnt ihr einerseits eure Toolchain in unserem Forum teilen, oder ihr nehmt mit uns Kontakt auf und wir helfen euch dabei, eure Toolchain zu dokumentieren und mit der Community zu teilen.

Titelbild von Bernard Spragg

Similar Stories