⬅ Zurück zum Blog
Breadboard-Schaltplan für den Pico-2-SPI-Flasher

SPI Flasher mit Raspberry Pi Pico 2

Veröffentlicht am 21. März 2026 • Autor: Hauke Klostermann

In dieser Version läuft der SPI-Flasher komplett als Arduino-Sketch auf dem Raspberry Pi Pico 2. Es werden also keine main.py- oder sdcard.py-Dateien mehr auf den Pico kopiert. Stattdessen wird der fertige Sketch einmal per Arduino IDE hochgeladen und der Dump landet anschließend direkt auf der microSD-Karte.

Projektidee

Ich wollte eine einfache Möglichkeit haben, SPI-Flash-Chips von Kameras, Routern oder anderen Embedded-Geräten direkt auszulesen, ohne dafür jedes Mal einen PC am Zielgerät zu brauchen. Der Pico 2 eignet sich dafür sehr gut, weil er zwei SPI-Schnittstellen, genügend GPIOs und genug Leistung für einen standalone Dumper mitbringt.

Das aktuelle Setup nutzt einen SPI-Bus für den Flash und einen zweiten für die microSD-Karte. Der READ-Taster startet den Dump vom Flash auf die SD-Karte, und über die Status-LEDs sieht man sofort, ob das System bereit ist, gerade arbeitet oder einen Fehler meldet.

Was sich gegenüber der ersten Version geändert hat

Vorher

  • MicroPython auf dem Pico 2
  • main.py und sdcard.py auf den Pico kopieren
  • Dokumentation für Python-Dateien

Jetzt

  • Arduino IDE als Entwicklungsumgebung
  • Ein kompletter Sketch als Firmware
  • Download direkt als .ino-Datei

Pinbelegung / Schaltplan

Die folgende Belegung entspricht dem zuletzt getesteten Arduino-Aufbau mit getrennten SPI-Bussen für Flash und microSD. Das eingebundene Bild pico2-flasher-schaltplan.png bleibt als Breadboard-Schaltplan erhalten.

Funktion Pico 2 Pin Ziel
Flash SCKGP18SPI-Flash CLK
Flash MOSIGP19SPI-Flash DI / MOSI
Flash MISOGP16SPI-Flash DO / MISO
Flash CSGP17SPI-Flash CS
READ-TasterGP6Taster gegen GND
WRITE-TasterGP7Taster gegen GND
SD MISOGP12microSD MISO
SD CSGP13microSD CS
SD SCKGP14microSD CLK
SD MOSIGP15microSD MOSI
Grüne LEDGP2Status bereit / erfolgreich
Gelbe LEDGP3Aktivität
Rote LEDGP4Fehler
Versorgung3V3 / GNDSD-Modul, Flash, Taster, LEDs
Wichtig: WP# und HOLD# / RESET# des SPI-Flashs müssen fest auf 3,3 V liegen, sofern du keinen Quad-SPI-Modus verwendest. Beim SD-Modul unbedingt prüfen, ob es direkt 3,3 V braucht oder einen eigenen Spannungsregler besitzt.

Installation mit Arduino IDE

  1. Arduino IDE installieren.
  2. Unter Datei → Voreinstellungen die zusätzliche Boardverwalter-URL eintragen:
    https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
  3. Im Boardverwalter das Paket Raspberry Pi Pico / RP2040 / RP2350 installieren.
  4. Als Board Raspberry Pi Pico 2 auswählen.
  5. Über den Bibliotheksverwalter die Bibliothek SdFat installieren.

Downloads

Hier findest du den fertigen Arduino-Sketch für den Pico 2. Der Sketch enthält die Pinbelegung, die SD-Anbindung, die JEDEC-Abfrage des Flashs, den READ-Button für den Dump und die Status-LEDs.

So verwendest du den Dumper

  1. Schaltung nach Plan aufbauen.
  2. microSD-Karte als FAT32 formatieren und einstecken.
  3. Den Arduino-Sketch in der Arduino IDE öffnen.
  4. Pico 2 anschließen und den Sketch hochladen.
  5. Optional den seriellen Monitor mit 115200 Baud öffnen, um JEDEC-ID und Fortschritt zu sehen.
  6. Den READ-Taster drücken.

Status-LEDs

  • Grün: bereit oder erfolgreich abgeschlossen
  • Gelb: Dump läuft gerade
  • Rot: Fehler, z. B. SD-Init oder Flash nicht erkannt

Serielle Ausgabe

Typische Meldungen beim erfolgreichen Start:

Starte Flash -> SD
DEBUG: SD init OK
JEDEC ID: 0x...

Ergebnis

Nach einem erfolgreichen Lesevorgang liegt der Dump als Datei /flash_dump.bin auf der microSD-Karte. Bei einem 128-Mbit-Flash wie dem 25FQ128 entspricht das typischerweise einer Dateigröße von rund 16.777.216 Byte.

Fertig: An diesem Punkt ist der Dump erfolgreich auf der SD-Karte gelandet und kann anschließend am PC weiter analysiert werden.