Raspberry Pi: Bare Metal CircuitPython

Ein Raspberry Pi ist ein Einplatinen-Computer. Manche Modelle sind so klein, dass sie leicht mit einem Mikrocontroller-Board verwechselt werden können.
Speichert man eine Bare-Metal-Version von CircuitPython auf einer Speicherkarte und startet damit einen Raspberry Pi (nicht den Pico), dann kann er wie ein Mikrocontroller-Board mit CircuitPython programmiert und verwendet werden.

Bare Metal MicroPython für den Raspberry Pi

Wenn es von CircuitPython eine Bare-Metal-Version gibt, dann stellt sich die Frage, ob es auch eine Bare-Metal-Version von MicroPython für den Raspberry Pi gibt. Ja, die gibt es. Allerdings sind das keine offiziellen Versionen, sondern die wurden von irgendjemand erstellt, der das aber nicht weiter verfolgt und gepflegt hat. Die meisten Quellen verlaufen ins Leere oder sind sehr alte Versionen.

Einschränkungen

Bare Metal CircuitPython wird vom Hersteller Adafruit auch in der aktuellsten Version für den Raspberry Pi gepflegt. Aber, nicht alle Module von CircuitPython sind für den Raspberry Pi implementiert. So ist es zum Beispiel nicht möglich das WLAN zu benutzen, ein PWM-Signal zu erzeugen oder einen ADC zu lesen. Der Grund ist, dass manche Hardware, wie ein PWM-Generator oder ADC nicht vorhanden sind, und andere Hardware, wie WLAN, eine umfangreiche Software-Unterstützung erfordert, die nur ein reguläres Betriebssystem bieten kann.
In der Praxis bedeutet das, dass manche Programmcodes nicht funktionieren, weil die Hardware oder die Software-Module nicht vorhanden sind.

Warum will man Bare Metal CircuitPython auf dem Raspberry Pi nutzen?

Wenn die Einschränkungen keine Rolle spielen, dann ist CircuitPython auf dem Raspberry Pi einen Blick wert. Denn es gibt ein paar Leistungsmerkmale, die Mikrocontroller-Boards nicht haben, der Raspberry Pi aber schon.

Mehr Rechenleistung und Arbeitsspeicher: Weil ein Raspberry Pi ein Einplatinen-Computer ist, hat er prinzipbedingt mehr Rechenleistung und Arbeitsspeicher. Wenn das wichtig ist, dann ist ein Raspberry Pi mit Bare Metal CircuitPython eine Option.

Viel Speicherkapazität: Bedingt durch die Speicherkarte kann dieses Mikrocontroller-System sehr viel mehr Speicherkapazität haben. Und wenn das auch nicht reicht, dann nimmt man einfach eine größere Speicherkarte. Ein typisches Mikrocontroller-Board kann man in der Hinsicht nicht einfach erweitern. Einen Raspberry Pi schon.

HDMI: Einer der Hauptvorteile von CircuitPython auf dem Raspberry Pi ist die einfache Verwendung eines angeschlossenen HDMI-Displays. Der vorhandenen HDMI-Ausgang vom Raspberry Pi wird explizit von CircuitPython unterstützt. Außerdem existieren eine Reihe von Bibliotheken von Adafruit, die eine vielfältige Grafik-Ausgabe ermöglichen.

Welche Raspberry Pis werden unterstützt?

Die Boards der Raspberry Pis sind in der Regel so konzipiert, dass sie den Anschluss von USB-Endgeräten erleichtern (USB-A-Anschluss). Der Raspberry Pi ist dann ein USB-Host. Durch CircuitPython fungiert der Raspberry Pi jedoch normalerweise selbst als USB-Endgerät. Dafür ist ein Micro-USB- oder USB-C-Anschluss notwendig.

Weil nicht alle Raspberry Pis einen Micro-USB- oder USB-C-Anschluss haben, werden offiziell nur folgende Raspberry Pis unterstützt, die CircuitPython-Firmware gepflegt und bereitgestellt:

  • Raspberry Pi Zero und Zero W (Micro-USB)
  • Raspberry Pi Zero 2 W (Micro-USB)
  • Raspberry Pi 4 Model B (USB-C)
  • Raspberry Pi Compute Module 4 IO Board (Micro-USB)

Es kann sein, dass auch andere Raspberry-Pi-Modelle funktionieren. Aber das lässt sich nicht garantieren und man muss sich ein Adapter-Kabel basteln, wenn man es als Mikrocontroller an einem Computer anschließen und programmieren will.

In der Praxis sind für Bare Metal CircuitPython nur die Modelle Raspberry Pi Zero (W) und Zero 2 W interessant, weil die einen Micro-USB-Port haben, der sowohl Daten übertragen, als auch gleichzeitig zur Stromversorgung dienen kann. Die Hardware entspricht praktisch einem klassischen Mikrocontroller-Board, wie dem Raspberry Pi Pico.

Bare Metal CircuitPython auf dem Raspberry Pi installieren

Die Installation von CircuitPython auf einem Raspberry Pi funktioniert wie bei jedem anderen Betriebssystem auch. Zuerst muss man ein Image herunterladen und das auf eine Speicherkarte schreiben. Anschließend nimmt den Raspberry Pi in Betrieb, in dem man ihn über USB mit einem Host-Computer verbindet.

Bare Metal CircuitPython auf dem Raspberry Pi programmieren

Zum Programmieren eines Raspberry Pi mit der Bare-Metal-Version von CircuitPython eignet sich die Entwicklungsumgebung Thonny Python IDE. Sie bietet eine einfache Oberfläche, um Programmcode zu schreiben, auf das Gerät zu speichern und auszuführen.
Zum Programmieren muss man den Raspberry Pi über den USB mit einem Host-Computer verbinden, der sowohl die Daten als auch die Energieversorgung bereitstellt.

Weitere verwandte Themen:

Frag Elektronik-Kompendium.de

Elektronik-Set Raspberry Pi Edition
Elektronik-Set Raspberry Pi Edition

Elektronik erleben mit dem Raspberry Pi mit Python und GPIO Zero

  • Leichter Einstieg ins Hardware-nahe Programmieren mit Python und GPIO Zero
  • Experimentieren und Programmieren ohne Vorkenntnisse
  • Sofort Loslegen mit All-in-one-Set

Elektronik-Set jetzt bestellen

Elektronik-Fibel

Elektronik einfach und leicht verständlich

Die Elektronik-Fibel ist ein Buch über die Grundlagen der Elektronik, Bauelemente, Schaltungstechnik und Digitaltechnik.

Das will ich haben!