4.6 KiB
4.6 KiB
🚀 Quickstart Guide - ESP32-S3 GNUBoy
Von 0 zu einem laufenden GameBoy Emulator in 10 Minuten!
⚡ Schnellstart
1️⃣ Voraussetzungen prüfen
# ESP-IDF installiert?
idf.py --version
# Python Version (sollte 3.10 sein)?
python --version
# Git installiert?
git --version
Wenn etwas fehlt, siehe weiter unten!
2️⃣ Projekt klonen
cd ~/Arduino/gameboy/
git clone <dein-repo> esp32-s3-gnuboy
cd esp32-s3-gnuboy
3️⃣ ESP-IDF aktivieren
source ~/esp-idf/export.sh
Wichtig: Das musst du jedes Mal machen wenn du ein neues Terminal öffnest!
4️⃣ Target setzen
idf.py set-target esp32s3
5️⃣ Bauen
idf.py build
Dauer: ~2-5 Minuten beim ersten Build
6️⃣ Flashen
# Board anschließen via USB
# Dann:
idf.py -p /dev/ttyUSB0 flash
Port finden:
ls /dev/ttyUSB*
# oder
ls /dev/ttyACM*
7️⃣ Monitor starten
idf.py monitor
Beenden: Ctrl+]
✅ Fertig!
Du solltest jetzt sehen:
╔════════════════════════════════════════════════════════╗
║ ║
║ ESP32-S3 GNUBoy LEGO GameBoy Emulator ║
║ ║
╚════════════════════════════════════════════════════════╝
Hardware: Waveshare ESP32-S3-Touch-LCD-2
Display: ST7789 2.0" 240x320
Flash: 16 MB
PSRAM: 8 MB
🔧 Fehlerbehebung
Problem: Python 3.12 Fehler
# Python 3.10 installieren:
sudo apt-get install python3.10 python3.10-venv python3.10-dev
# Alte ESP-IDF Umgebung löschen:
rm -rf ~/.espressif/python_env/idf4.4_py3.12_env
# ESP-IDF neu installieren:
cd ~/esp-idf
python3.10 ./install.sh esp32s3
Problem: Port nicht gefunden
# USB Ports checken:
ls -la /dev/ttyUSB*
ls -la /dev/ttyACM*
# Berechtigungen setzen:
sudo usermod -a -G dialout $USER
# Dann neu einloggen!
Problem: Build Fehler
# Alles löschen und neu:
idf.py fullclean
idf.py build
Problem: Flash Fehler
# Board in Download Mode bringen:
# 1. BOOT Button drücken und halten
# 2. RESET Button kurz drücken
# 3. BOOT loslassen
# 4. Nochmal flashen versuchen
📱 Nächste Schritte
SD-Karte vorbereiten
- Formatieren: FAT32
- Verzeichnis:
/roms/gb/ - ROMs kopieren:
tetris.gb, etc.
Hardware verbinden
- Display: Sollte schon integriert sein!
- Buttons: Nach Pin-Plan verlöten
- Audio: MAX98357A anschließen
- NFC: PN532 via I2C
- SD-Karte: Einlegen
Code anpassen
- Pins prüfen:
main/hardware_config.h - Features aktivieren:
main/main.c
🎮 Test-Workflow
Minimaler Test (ohne ROMs):
# Build & Flash
idf.py build flash monitor
# Erwartung:
# - System startet
# - PSRAM erkannt
# - Display initialisiert
# - Keine Errors
Mit ROM testen:
# 1. ROM auf SD-Karte: /roms/gb/tetris.gb
# 2. SD-Karte einlegen
# 3. Neustarten
# 4. ROM sollte laden
💡 Tipps
Schneller entwickeln:
# Nur App flashen (schneller):
idf.py app-flash
# Monitor ohne Flash:
idf.py monitor
# Build + Flash + Monitor in einem:
idf.py build flash monitor
Debug aktivieren:
idf.py menuconfig
# Dann:
# Component config → Log output
# → Default log verbosity → Verbose
Pin-Check:
Alle Pins sind in einer Datei:
cat main/hardware_config.h
📊 Checkliste
Nach erfolgreichem Build solltest du haben:
- ✅ ESP-IDF v4.4 aktiv
- ✅ Python 3.10 (nicht 3.12!)
- ✅ Projekt kompiliert ohne Fehler
- ✅ Board erkannt auf
/dev/ttyUSB0 - ✅ Flash erfolgreich
- ✅ Serial Monitor zeigt Boot-Messages
- ✅ PSRAM wird erkannt (8 MB)
- ✅ Display wird initialisiert
🎯 Wenn alles läuft:
Glückwunsch! 🎉
Jetzt kannst du:
- Hardware zusammenbauen
- GNUBoy Core integrieren
- ROMs testen
- NFC implementieren
- Link Cable bauen
📞 Hilfe
Serial Monitor zeigt nichts? → Richtigen Port? Richtige Baud-Rate (115200)?
Build dauert ewig? → Beim ersten Mal normal (5-10 Min), danach schneller
Flash schlägt fehl? → Boot Mode? USB-Kabel OK? Treiber installiert?
Viel Erfolg! 🚀
Für Stefan's LEGO GameBoy Projekt