Kostenloser Versand ab CHF 200.-

LEGO RCX mit NQC auf Apple Mac programmieren

LEGO RCX mit NQC auf Apple Mac programmieren

Inhaltsverzeichnis

LEGO RCX mit NQC auf Apple Mac programmierenLEGO RCX mit NQC auf Apple programmieren – USB Tower & Firmware

In dieser Anleitung zeige ich, wie man einen alten LEGO Mindstorms RCX
mit NQC auf einem Apple Mac programmieren kann.
Verwendet wird der originale LEGO USB IR Tower.

Getestet wurde das Ganze auf einem Apple-Silicon-Mac mit macOS. Die Anleitung ist besonders
hilfreich für M1-, M2- und M3-Macs, kann aber auch auf anderen Macs als Orientierung dienen.

Wir sind  keine Programmierer und wir haben ChatGTP zur Hilfe genommen. Das ganze wird auf einem Arbeitsordner auf Terminal angelegt. So kann es wieder gelöscht werden und es kann nichts sicherheitsrelevantes passieren. Wir übernehmen aber keine Haftung für allfällige Fehler des Blog-Lesers!

Was wird benötigt?

  • LEGO Mindstorms RCX 1.0 oder RCX 2.0
  • LEGO USB IR Tower
  • Apple Mac mit macOS
  • Homebrew
  • Homebrew Bison
  • NQC-Quellcode
  • RCX-Firmware-Datei, zum Beispiel firm0332.lgo
  • frische Batterien für den RCX
 

Warum braucht man Bison um LEGO RCX auf Apple zu programmieren?

NQC ist ein älteres Programm und muss auf modernen Macs meist aus dem Quellcode gebaut werden.
Beim Kompilieren wird yacc beziehungsweise bison benötigt.

Auf macOS kann der Build sonst mit folgender Meldung abbrechen:

xcode-select: error: tool 'bison' requires Xcode

Das lässt sich sauber lösen, indem man Bison über Homebrew installiert und
nur temporär für den Build aktiviert.

1. LEGO USB Tower prüfen

Zuerst sollte geprüft werden, ob macOS den LEGO USB IR Tower erkennt.
Den Tower einstecken und im Terminal ausführen:

ioreg -p IOUSB -l -w 0 | grep -i "lego\|tower\|mindstorms"

Wenn der Tower erkannt wird, erscheint ungefähr:

LEGO USB Tower
USB Product Name = "LEGO USB Tower"
USB Vendor Name = "LEGO Group"

Wenn hier nichts erscheint, sollte man einen anderen USB-C-Adapter oder einen aktiven USB-A-Hub testen.
Manche modernen Adapter haben Probleme mit alten USB-Geräten.

2. Arbeitsordner anlegen

Für diese Anleitung wird alles in einem eigenen Testordner gespeichert:

mkdir -p ~/rcx-test
cd ~/rcx-test

Dadurch bleibt die Installation übersichtlich und kann später einfach wieder entfernt werden.

3. Benötigte Homebrew-Pakete installieren

Zuerst prüfen, ob Homebrew vorhanden ist:

brew --version

Dann die benötigten Pakete installieren:

brew install git cmake libusb bison

Wichtig: Es wird kein sudo brew benötigt.

4. Homebrew Bison temporär aktivieren

Auf Apple-Silicon-Macs liegt Homebrew normalerweise unter /opt/homebrew.
Damit beim NQC-Build das richtige Bison verwendet wird, diesen Befehl ausführen:

export PATH="/opt/homebrew/opt/bison/bin:$PATH"

Danach prüfen:

which bison
bison --version
which yacc

Die Ausgabe sollte ungefähr so aussehen:

/opt/homebrew/opt/bison/bin/bison
/opt/homebrew/opt/bison/bin/yacc

Dieser Schritt ist nur für das aktuelle Terminalfenster aktiv. Für einen ersten Test ist das ideal,
weil das System nicht dauerhaft verändert wird.

5. NQC herunterladen

Jetzt wird der NQC-Quellcode geladen:

cd ~/rcx-test
git clone https://github.com/jverne/nqc.git
cd nqc

Anschließend prüfen, ob ein Makefile vorhanden ist:

find . -maxdepth 3 -iname "Makefile"

Erwartete Ausgabe:

./Makefile

6. NQC bauen

Nun wird NQC kompiliert:

cd ~/rcx-test/nqc
make clean 2>/dev/null || true
make

Während des Builds können viele Warnungen erscheinen, zum Beispiel wegen sprintf.
Das ist bei altem C/C++-Code normal und bedeutet nicht, dass der Build fehlgeschlagen ist.

Erfolgreich ist der Build, wenn am Ende eine Zeile ähnlich dieser erscheint:

c++ -o bin/nqc ...

Danach NQC testen:

~/rcx-test/nqc/bin/nqc -help

Wenn eine Hilfeausgabe erscheint, wurde NQC erfolgreich gebaut.

7. RCX-Firmware laden

Wenn der RCX längere Zeit ohne Batterien war, fehlt oft die Firmware.
Dann muss sie zuerst neu übertragen werden.

Firmware-Dateien im Downloads-Ordner suchen:

ls -lh ~/Downloads/*.lgo

Typische Firmware-Dateien heißen zum Beispiel:

firm0309.lgo
firm0328.lgo
firm0332.lgo

Beispiel mit firm0332.lgo:

~/rcx-test/nqc/bin/nqc -Susb -firmware ~/Downloads/firm0332.lgo

Während der Übertragung sollte der RCX eingeschaltet sein. Der USB IR Tower sollte etwa 5 bis 10 cm
vor dem schwarzen IR-Fenster des RCX stehen. Am besten nichts bewegen und direktes Sonnenlicht vermeiden.

Du findest weitere NQC Dateien auf https://bricxcc.sourceforge.net/nqc/

8. Erstes NQC-Testprogramm erstellen

Jetzt wird ein kleines Testprogramm erstellt. Es spielt einen Ton ab und lässt Motor A kurz laufen:

cat > ~/rcx-test/test.nqc <<'EOF'
task main()
{
  PlaySound(SOUND_UP);
  OnFwd(OUT_A);
  Wait(100);
  Off(OUT_A);
}
EOF

9. Programm auf den LEGO RCX übertragen

Das Testprogramm wird mit folgendem Befehl auf den RCX geladen:

~/rcx-test/nqc/bin/nqc -Susb -d ~/rcx-test/test.nqc

Falls -Susb nicht funktioniert, kann man alternativ testen:

~/rcx-test/nqc/bin/nqc -Susb: -d ~/rcx-test/test.nqc

Wenn alles funktioniert, wird das Programm übertragen und kann anschließend am RCX gestartet werden.

10. NQC später verwenden

Für spätere Programme reicht normalerweise:

~/rcx-test/nqc/bin/nqc -Susb -d deinprogramm.nqc

Beispiel:

~/rcx-test/nqc/bin/nqc -Susb -d ~/rcx-test/test.nqc

Den Bison-Pfad braucht man nur wieder, wenn NQC neu gebaut werden soll:

export PATH="/opt/homebrew/opt/bison/bin:$PATH"

11. Aufräumen

Wenn der Testordner gelöscht werden soll:

rm -rf ~/rcx-test

Falls die Homebrew-Pakete ebenfalls entfernt werden sollen:

brew uninstall bison libusb cmake git
brew autoremove
brew cleanup

Nicht nötig und nicht empfohlen:

sudo brew ...
brew link --force bison

Häufige Probleme

Der LEGO USB Tower wird nicht erkannt

Wenn der Tower bei ioreg nicht erscheint, liegt das Problem meist beim USB-C-Adapter
oder Hub. Ein aktiver USB-A-Hub kann helfen.

Der Build bricht bei Bison oder Yacc ab

Dann Homebrew-Bison installieren und den Pfad setzen:

brew install bison
export PATH="/opt/homebrew/opt/bison/bin:$PATH"

NQC meldet keine Antwort vom RCX

Dann sollte man Abstand und Ausrichtung zwischen USB Tower und RCX prüfen. Außerdem sollte der RCX
eingeschaltet sein, frische Batterien haben und die Firmware muss geladen sein.

Die RCX-Firmware ist verschwunden

Das ist normal, wenn der RCX längere Zeit ohne Batterien war. Die Firmware muss dann erneut übertragen werden.

Kurzfassung

mkdir -p ~/rcx-test
cd ~/rcx-test

brew install git cmake libusb bison
export PATH="/opt/homebrew/opt/bison/bin:$PATH"

git clone https://github.com/jverne/nqc.git
cd nqc
make clean 2>/dev/null || true
make

~/rcx-test/nqc/bin/nqc -help

Firmware laden:

~/rcx-test/nqc/bin/nqc -Susb -firmware ~/Downloads/firm0332.lgo

Programm laden:

~/rcx-test/nqc/bin/nqc -Susb -d ~/rcx-test/test.nqc

Fazit vom LEGO RCX mit NQC auf Apple programmieren

Der LEGO RCX lässt sich auch heute noch mit NQC auf einem Apple Mac programmieren.
Entscheidend ist, dass macOS den LEGO USB IR Tower erkennt und NQC mit Homebrew-Bison sauber gebaut wird.

Damit funktioniert die Kombination aus klassischem LEGO Mindstorms RCX und moderner Apple-Hardware
erstaunlich gut.

Wenn du de kleinen RCX mit DC Power Stecker besitzt kannst du coole Funktionen programmieren.
Und kleiner KI Tipp: ChatGTP macht die Programmierung sehr gut.

Liebe Grüsse aus der Technic Stube

Pascal von gallusbrick

Wir hoffen, dieser Post hat dir gefallen…
Ebenfalls wünschen wir dir viel Spass beim weiterbauen.

Gruss Pascal und Thomas

Unsere Bestseller…
Kostenloser Versand

Bestellungen über CHF 200

30 Tage Rückgaberecht

Auf Verschlossene Produkte

24 Monate Garantie

Auf elektronische Bauteile

100% Sicher einkaufen

TWINT / MasterCard / Visa