>_ DevTrendsde

Sprache

Start

Sprachen

Bereiche

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicherheit
C

Was Linus Torvalds macht, wenn er genug vom Linux-Kernel hat

Stellen Sie sich vor, der Erfinder von Linux und Git beschließt in seiner Freizeit, sich in analoge Schaltungstechnik und digitale Audioverarbeitung zu vertiefen. Das Ergebnis ist das GuitarPedal-Projekt auf GitHub. Es ist ein voll ausgestattetes Gitarren-Multi-Effekt-Pedal, bei dem Linus persönlich die Leiterplatten in KiCad entworfen und die Firmware in C geschrieben hat.

Das Projekt ging aus seinem alten, aufgegebenen Prototyp hervor. Zuvor hatte er analoge Potentiometer, die ein Albtraum bei der Konfiguration waren. Jetzt verfügt das Pedal über ein OLED-Display, zwei Drehgeber und einen neuen Mikrocontroller.

Modulare Hardware und winzige Steckverbinder

Die Hardware basiert auf einem modularen, demontierbaren Design. Anstatt die gesamte Schaltung auf einer großen Platine zu verlegen, teilte Linus das Gerät in vier separate Module auf.

Die erste Platine trägt den RP2354-Mikrocontroller aus der Raspberry Pi Pico 2-Familie. Die zweite Platine beherbergt den TI TAC51-Audiocodec, der das Signal der Gitarre digitalisiert. Das dritte Modul enthält die 9V-Stromanschlüsse und Audiobuchsen, und das vierte übernimmt die Schnittstelle zum 128x128-Display, Fußtastern und Drehgebern.

Front

Die Module sind über ein flaches 12-poliges FFC-Kabel miteinander verbunden. Die Datenübertragung erfolgt über I2C für die Steuerung und I2S für Audio. Die Platinen verwenden HiRose BM28-Steckverbinder mit einem Rastermaß von nur 0,35 mm. Torvalds sagt offen in der README, dass das Arbeiten mit so mikroskopisch kleinen Bauteilen bei der manuellen Montage schwierig ist. Aber sie machen es möglich, alles in ein kompaktes Gehäuse zu integrieren.

Der Autor betont: Die Modularität war für das Experimentieren mit dem Layout notwendig. Wenn Sie das Design nachbauen möchten, wäre es sinnvoller, den Codec direkt auf der Anschlussplatine und den Mikrocontroller auf der Steuerplatine zu platzieren. Dadurch entfällt das beidseitige Bestücken und komplexe Flachbandkabel.

Inside

Steuerung und Firmware-Build

Oben auf dem Gehäuse sitzt ein monochromes Display. Darunter befinden sich zwei Drehgeber mit integrierten Tasten und zwei Fußtaster.

Der obere Drehgeber ändert den Wert des aktuellen Parameters, und durch Drücken wird zum nächsten Parameter in der Liste gewechselt. Der untere Drehgeber scrollt durch die Effekte selbst. Der linke Fußtaster aktiviert oder deaktiviert den ausgewählten Effekt mit einem Fußtritt, und der rechte schaltet das Pedal in den Signal-Bypass-Modus.

Der Firmware-Build ist unkompliziert und ohne überflüssige Komplikationen. Der Quellcode ist in reinem C geschrieben, mit Bindings an pico-sdk und tinyusb. Unter Linux sieht der Prozess so aus:

git clone https://github.com/torvalds/GuitarPedal.git
cd GuitarPedal/Software
make prep
make

Im Verzeichnis build/ erscheint die fertige blink.uf2-Datei. Um das Gerät zu flashen, müssen Sie beim Anschließen über USB beide Drehgeber gedrückt halten und einfach die Datei auf das erscheinende virtuelle Laufwerk kopieren.

Was steckt im DSP

Der interessanteste Teil des Repositories befindet sich im Software-Processing-Ordner. Torvalds hat seine eigenen DSP-Algorithmen geschrieben. Die Berechnungen laufen im 32-Bit-Gleitkommaformat.

Hier ist, was das Pedal bereits kann:

  • Noise Gate. Der Schwellenwert sinkt bis auf -85 dBV. Der Code berechnet Attack- und Decay-Parameter, um das Brummen der Tonabnehmer zu eliminieren, ohne die Saiten резко abzuschneiden. Die Status-LED ändert ihre Helligkeit, wenn das Gate auslöst.
  • Compressor. Arbeitet mit einstellbarer Attack-Zeit, Decay und Makeup-Gain.
  • Boost mit Signallimiting. Anstatt standardmäßiger Wellenbegrenzung verwendete Linus Signal-Folding. Wenn die Amplitude den Schwellenwert überschreitet, wird die Welle nicht abgeschnitten – sie wird zurückgefaltet. Dies erzeugt ein reichhaltiges harmonisches Spektrum.
  • Echo und Delays. Der Echo-King-Effekt wurde aus dem Hothouse-Projekt portiert und emuliert den Maestro Echoplex Tape Delay. Basis-Phaser und Flanger sind ebenfalls vorhanden.
  • Pitch Shifter. Funktioniert ohne schwere Fast-Fourier-Transformation. Der Algorithmus verwendet einen Ring-Delay-Buffer mit zwei Phasen und sinusoidaler Glättung an den Nahtstellen. Das Hinzufügen von Feedback erzeugt einen Echo-Effekt mit allmählicher Tonhöhenverschiebung.
  • Zehn-Band-Equalizer. Jede Bänder ist einstellbar von -20 dB bis +20 dB, und der aktuelle Frequenzgang wird als Graph auf dem Display gezeichnet.

Der Code enthält auch einen Stub zum Senden von Audio über USB an einen Computer, obwohl Linus selbst vor der Instabilität dieses Teils warnt.

Warum lohnt sich ein Blick auf dieses Projekt

Das GuitarPedal-Repository ist weniger als fertiges Musikinstrument interessant, sondern als anschauliches Beispiel für Full-Stack-Embedded-Entwicklung aus einer Hand.

Hier finden Sie:

  • Fertige Schaltpläne und Layout in KiCad mit Beispielen für die Arbeit in einem kompakten Gehäuse
  • Nativen C-Code für die Arbeit mit einem Audiocodec über I2S auf RP2040- und RP2350-Chips
  • Klare mathematische Algorithmen für Gitarreneffekte ohne externe, schwere Bibliotheken
  • Einfache UI für OLED-Displays basierend auf Drehgebern

Wenn Sie verstehen möchten, wie DSP auf Mikrocontrollern funktioniert, oder sehen möchten, wie Torvalds Code außerhalb des Linux-Kernels schreibt, ist das Studium dieses Repositories definitiv lohnenswert.

Ähnliche Projekte