lego-esp32s3-gameboy/QUICKSTART.md

4.6 KiB
Raw Blame History

🚀 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

  1. Formatieren: FAT32
  2. Verzeichnis: /roms/gb/
  3. 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

  1. Pins prüfen: main/hardware_config.h
  2. 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:

  1. Hardware zusammenbauen
  2. GNUBoy Core integrieren
  3. ROMs testen
  4. NFC implementieren
  5. 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