1 LiteX-CNC Firmware kompilieren
In diesem Tutorial wird gezeigt, wie man eine LinuxCNC-kompatible Firmware namens LiteX-CNC für günstige China-LED-Treiberboards (Modell 5a-75b) flasht. Mit dieser Methode kann man auf teure CNC-Motion-Cards verzichten und dennoch ein voll funktionsfähiges CNC-System auf Basis eines FPGA-Boards betreiben.
Das genannte Treiberboard gibt es für unter 25€ auf AliExpress zu kaufen, es beinhaltet eine Menge I/Os, die sich mit wenigen Schritten auch als Inputs umwandeln lassen, das Board ist eine günstige Alternative zu teuren Motion Cards, bietet jedoch nur Digitale Pins.
1.1 Repository klonen:
Lädt den LiteX-CNC-Quellcode von GitHub herunter und wechselt ins Projektverzeichnis.
1.2 Python-Umgebung einrichten:
Erstellt eine isolierte Python-Umgebung und installiert das LiteX-CNC-Paket.
1.3 Treiber und Toolchain installieren:
Installiert die benötigten Treiber und die FPGA-Toolchain für die Firmwareentwicklung.
1.4 Zusätzliche Tools für FPGA:
sudo apt install yosys nextpnr-ecp5 build-essential cmake clang bison flex libreadline-dev \
gawk tcl-dev libffi-dev git python3 python3-dev libboost-all-dev \
libeigen3-dev libqt5opengl5-dev qtbase5-dev
Installiert Open-Source-Tools für FPGA-Synthese und Routing.
1.5 Firmware-Konfiguration herunterladen:
wget https://raw.githubusercontent.com/Gamer08YT/ByteCNC/refs/heads/main/litexcnc/5a-75b_v8.0_i12o14p6s6e6.json
Lädt die JSON-Konfigurationsdatei für die gewünschte CNC-Hardware.
1.6 Firmware bauen:
Kompiliert die Firmware für das FPGA-Board, basierend auf der Konfiguration.
Der Prozess kann 10–15 Minuten oder mehr dauern, je nach Leistung des Computers.
1.7 Firmware flashen:
./venv/bin/python -m litexcnc flash_firmware --permanent --programmer ftdi/esp32_devkitj_v1 ./5a-75b_v8.0_i12o14p6s6e6/gateware/colorlight_5a_75b.svf
Die Firmware kann nach Abschluss des Kompilierprozesses über einen Flasher in das FPGA programmiert werden, in diesem Fall nutze ich den ESP-Programmer als FTDI Adapter.
Der Upload läuft über folgende Pins des JTAG Interfaces ab:
| GPIO | Header Pin | Funktion | LED Karte |
| 16 | 36 | TCK | J27 |
| 6 | 31 | TMS | J31 |
| 19 | 35 | TDI | J32 |
| 26 | 37 | TDO | J30 |
Weitere Pinouts / Hardware Revisionen: chubby75/5a-75b at master · q3k/chubby75
1.8 Karte testen
Derzeit ist nur ein NIC-Interface implementiert, hierfür wird LAN1 mit der Ethernetschnittstelle am PC verbunden.
Die Karte spricht kein DHCP, daher muss eine statische IP-Adresse festgelegt werden (10.0.0.10 / 255.255.255.0).
Mit der halrun CLI können Funktionen von dem HAL Treiber getestet werden.
Disclaimer:
Alle Anleitungen/Tutorials sind nach bestem Wissen und Gewissen verfasst, gehen immer von den definierten Software/Firmware-Versionen aus und sind auf das englische GUI ausgelegt.
Es gibt keine Garantie auf Erfolg. Im Falle eines Misserfolges hilft aber die Community hier sicherlich weiter.
Keiner der Autoren oder der Betreiber des Forums ist für die aus der Nutzung resultierenden Probleme/Herausforderungen verantwortlich.
Jegliche hier beschriebenen Schritte erfolgen ausnahmslos in eigener Verantwortung des Durchführenden.
Eltern haften für ihre Kinder.