SCS0009-Servo-Debug-Tool – Anleitung
Das SCS0009-Servo-Debug-Tool ist ein FTServo-Debug-Tool, das speziell für den SCS0009 aus den Feetech-Bus-Servos entwickelt wurde (Potentiometer-Rückmeldung, 10-Bit-Auflösung 0–1023). Über die grafische Oberfläche lassen sich serielle Verbindung, Servo-Scan, Parameter-Lesen/-Schreiben, Positionssteuerung, Baudrate ändern, Werkseinstellungen wiederherstellen sowie xdat-Parameter-Backup/-Wiederherstellung durchführen.
Dieses Tool wird von JUXI_Technology entwickelt und gepflegt und unter MIT-Lizenz veröffentlicht. FT-Debugger, xdat-Parameter-Backup/-Wiederherstellung, plattformübergreifende Unterstützung und weitere Funktionen sind Eigenentwicklungen.
Kompatibilitätshinweis
⚠️ Dieses Tool unterstützt derzeit nur den Feetech SCS0009 (SCS-Serie, Potentiometer-Positionsrückmeldung, 10-Bit-Auflösung 0–1023). Registertabelle, xdat-Parameterformat und Baudratentabelle sind auf den Feetech SCS0009 ausgelegt; für Servos anderer Marken/Modelle wird keine Kompatibilität garantiert.
Funktionen
| Funktion | Beschreibung |
|---|---|
| Automatische Port-Erkennung | Intelligente Erkennung von USB-Seriell-Ports, automatisches Herausfiltern virtueller Geräte |
| Plattformübergreifend | Kompatibel mit Windows / Ubuntu / macOS |
| Umschaltung Chinesisch/Englisch | Ein-Klick-Umschaltung zwischen Chinesisch/Englisch in der Oberfläche, Auswahl wird automatisch gespeichert |
| Serielle Verbindung | Manuelle/automatische Portwahl, 8 Baudratenstufen (38400~1M) |
| Servo-Scan | Automatische Erkennung online befindlicher Servos (ID 1–254), Echtzeitanzeige |
| Parameter lesen | Liest alle 44 Register (EEPROM + SRAM) |
| Parametertabelle | 5 Spalten (Adresse/Register/Wert/Speicherbereich/Lesen-Schreiben), klickbare Verknüpfung |
| Positionssteuerung | Zielposition-/Geschwindigkeitssteuerung; nach Bewegungsende Hinweis zum Abschalten des Drehmoments |
| Baudrate ändern | Servo-Baudrate ändern, bei Fehlschlag automatischer Rollback |
| Werkseinstellungen | Werkseinstellungen mit einem Klick wiederherstellen |
| xdat-Parameter | Aktuelle EEPROM-Parameter des Servos speichern / Backup zum Wiederherstellen öffnen |
Oberflächenübersicht
Das Hauptprogramm hat ein Einzelpanel-Layout (FT-Debugger); bei zu geringer Fensterhöhe erscheint automatisch eine Bildlaufleiste, beim Maximieren passt es sich elastisch an:
┌─────────────────────────────────────────────────────────────┐
│ SCS0009 舵机调试工具 [EN / English] │ ← 顶栏
├─────────────────────────────────────────────────────────────┤
│ 🔌 串口连接 [端口▾][🔄][波特率▾][连接] [🔴未连接] │
│ 🎯 舵机 [🔍扫描][舵机▾][读取参数][读取状态] │
│ ┌ 扫描到的舵机列表 ┐ │
│ 📋 参数表 地址|寄存器|值|存储区域|读写 (44 个寄存器) │
│ 🎯 位置控制 目标位置|速度|移动|力矩开|力矩关 | 状态 │
│ 🔧 波特率/恢复出厂 新波特率|修改波特率|恢复出厂 │
│ 📁 xdat 参数(仅保存EEPROM) 保存当前舵机|打开xdat|恢复参数 │
│ 📜 日志 │
└─────────────────────────────────────────────────────────────┘- Obere Leiste: App-Titel, Sprachumschaltfläche.
- 🔌 串口连接 (Serielle Verbindung): Port und Baudrate wählen, Verbinden/Trennen.
- 🎯 舵机 (Servo): Scannen, Servo auswählen, Parameter/Status lesen.
- 📋 参数表 (Parametertabelle): 44 Register in 5 Spalten (Adresse/Register/Wert/Speicherbereich/Lesen-Schreiben); die Auswahl übernimmt automatisch die Schreibadresse.
- 🎯 位置控制 (Positionssteuerung): Zielposition/Geschwindigkeit; nach Bewegungsende weist die Statusleiste auf das Abschalten des Drehmoments hin.
- 🔧 波特率/恢复出厂 (Baudrate/Werksreset): Baudrate ändern (Rollback bei Fehlschlag), Werkseinstellungen wiederherstellen.
- 📁 xdat 参数(仅保存 EEPROM) (xdat-Parameter, nur EEPROM): Parameter des aktuellen Servos speichern, Backup öffnen, wiederherstellen.
Installation und Start
Systemvoraussetzungen:
| Abhängigkeit | Version | Beschreibung |
|---|---|---|
| Python | >= 3.8 | 3.10+ empfohlen, Download von python.org |
| PySide6 | >= 6.0 | GUI-Framework |
| pyserial | >= 3.5 | Serielle Kommunikation |
| System | Windows 10 / 11, Ubuntu 20.04+ / Debian 11+, macOS 11+ | macOS 11+ unterstützt Apple Silicon / Intel |
Hardware-Anschluss: Servo-Steuerplatine über einen USB-zu-Seriell-Adapter (z. B. CH340 / CP2102) verbinden und die Servos mit Strom versorgen (Standardversion empfohlen DC 5V 5A, Pro-Version empfohlen DC 12V 5A).
Windows
- Python 3.10+ installieren (bei der Installation unbedingt Add Python to PATH ankreuzen, sonst findet die Kommandozeile
pythonnicht). Installation prüfen:
python --version- Virtuelle Umgebung erstellen und Abhängigkeiten installieren:
cd SCS0009_ServoController
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt⚠️ Die virtuelle Umgebung muss nur einmal erstellt werden. Ein erneutes Ausführen von
python -m venv .venvsetzt die vorhandene Umgebung zurück bzw. überschreibt sie (die installierten Abhängigkeiten werden gelöscht); danach genügt jeweils die Aktivierung mitactivate.
Hinweis: Nach der Aktivierung erscheint
(.venv)als Präfix vor der Eingabeaufforderung.
- Umgebung prüfen und starten:
python setup.py
python -m src.gui.factory_calibration_toolWenn [OK] 环境检查通过,可以运行项目 angezeigt wird, ist die Umgebung korrekt eingerichtet.
- Im Geräte-Manager (
Win+X→ Geräte-Manager) unter „Anschlüsse (COM und LPT)" die COM-Nummer prüfen:
端口 (COM 和 LPT)
└─ USB-SERIAL CH340 (COM3) ← 你的舵机串口Notieren Sie die COM-Nummer und wählen Sie sie nach dem Start aus; alternativ können Sie den Port manuell angeben (wenn der Port belegt ist):
python -m src.gui.factory_calibration_tool --port COM3Verfügbare Ports anzeigen:
python -m src.gui.factory_calibration_tool --list-portsLinux (Ubuntu / Debian)
- Chinesische Schriftarten und Abhängigkeiten installieren (die chinesischen Schriftarten sind für die Anzeige der chinesischen Oberfläche erforderlich, die Emoji-Schriftart für Symbole wie ✅⚠️ im Log):
sudo apt install python3-venv fonts-noto-cjk fonts-noto-color-emoji- ⚠️ Port-Berechtigung hinzufügen (Gruppe dialout)【erforderlich】 (unter Linux können normale Benutzer standardmäßig nicht auf
/dev/ttyUSB*//dev/ttyACM*zugreifen):
sudo usermod -a -G dialout $USER
# 注销并重新登录后生效Prüfen (die Ausgabe sollte dialout enthalten):
groupsFalls dies nicht wirkt: Computer neu starten; bei manchen Distributionen heißt die Gruppe
uucp(Arch) odertty.
- Virtuelle Umgebung erstellen, Abhängigkeiten installieren und starten:
cd SCS0009_ServoController
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python setup.py
python -m src.gui.factory_calibration_tool⚠️ Die virtuelle Umgebung muss nur einmal erstellt werden. Ein erneutes Ausführen von
python3 -m venv .venvüberschreibt die vorhandene Umgebung (die installierten Abhängigkeiten werden gelöscht); danach genügt jeweilssource .venv/bin/activate.
Meldet pip den Fehler „externally managed environment", verwenden Sie alternativ
pip install --break-system-packages -r requirements.txtoder eine virtuelle Umgebung.
- USB-zu-Seriell-Gerät erkennen (nach dem Einstecken des Adapters):
ls /dev/ttyUSB* /dev/ttyACM* 2>/dev/nullTypische Ausgabe:
/dev/ttyUSB0 # CH340 / CP2102 / PL2303
/dev/ttyACM0 # 原生 USB 串口(Arduino / ESP32 板载)Detaillierte Herstellerinformationen anzeigen:
dmesg | tail -20 | grep -i tty
# 或
lsusbBei mehreren Geräten werden
ttyUSB0/ttyUSB1in der Reihenfolge des An-/Absteckens zugewiesen und können dadurch instabil sein. Empfohlen:/dev/ttyACM*verwenden oder die Namen anhand des Herstellers fixieren (siehe udev-Abschnitt unten).
Port manuell angeben:
python -m src.gui.factory_calibration_tool --port /dev/ttyUSB0- Optional: Gerätenamen per udev fixieren (verhindert Nummerndrift nach dem An-/Abstecken). Erstellen Sie
/etc/udev/rules.d/99-servo.rulesund fixieren Sie die Namen anhand der USB-ID:
SUBSYSTEM=="tty", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", SYMLINK+="ttyServo"Danach ist der Zugriff über den festen Namen mit ls -l /dev/ttyServo möglich; die Hersteller-ID ermitteln Sie mit lsusb.
macOS
- Python über Homebrew installieren (vermeidet die veraltete systemeigene Python-Version):
# 安装 Homebrew(如果没有)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 安装 Python
brew install pythonPrüfen:
python3 --version- Virtuelle Umgebung erstellen, Abhängigkeiten installieren und starten (mit
sourceaktivieren, nicht mit.bat):
cd SCS0009_ServoController
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python setup.py
python -m src.gui.factory_calibration_tool⚠️ Die virtuelle Umgebung muss nur einmal erstellt werden. Ein erneutes Ausführen von
python3 -m venv .venvüberschreibt die vorhandene Umgebung (die installierten Abhängigkeiten werden gelöscht); danach genügt jeweilssource .venv/bin/activate.
- ⚠️ Serielle Portnamen: macOS legt USB-Seriell-Geräte unter
/devab; es gibt zwei Namensschemata:
| Präfix | Bedeutung | Geeignet |
|---|---|---|
/dev/tty.usbserial-* | Modem-Stil (blockierend) | kann hängen bleiben, nicht empfohlen |
/dev/cu.usbserial-* | Callout-/Terminal-Stil (nicht blockierend) | ✅ empfohlen |
Portnamen anzeigen:
ls /dev/cu.*Typische Ausgabe:
/dev/cu.usbserial-0001 # CP2102 / FTDI
/dev/cu.usbmodem141101 # 板载 USB 串口(Arduino / ESP32)
/dev/cu.wchusbserial1420 # CH340Das Programm bevorzugt automatisch
cu.*-Geräte; bei manueller Portangabe verwenden Siecu.statttty..
Port manuell angeben:
python -m src.gui.factory_calibration_tool --port /dev/cu.usbserial-0001- USB-Treiber: Für die meisten gängigen Chips (CH340, CP2102, FTDI) bringt macOS die Treiber bereits mit – Plug-and-Play. Falls das Gerät nicht erkannt wird:
system_profiler SPUSBDataType | grep -A5 -i "serial\|CH340\|CP210"- CH340: Bei älteren Chargen muss der offizielle WCH-Treiber installiert werden;
- Im Allgemeinen genügt es, wenn
ls /dev/cu.*das Gerät anzeigt.
- Nutzungshinweise:
- Der Portname kann sich ändern: Nach dem Umstecken an einen anderen USB-Port kann sich der
cu.*-Name ändern; wählen Sie ihn bei jedem Start im Bereich „🔌 串口连接" aus. - Energiesparen: Der Ruhezustand von macOS kann den seriellen Port trennen; halten Sie das System während der Bedienung wach oder erhöhen Sie die Ruhezustandszeit.
- Datenschutzberechtigung: Erscheint beim ersten Start die Abfrage „Zugriff auf Wechseldatenträger", klicken Sie auf „Erlauben".
- Der Portname kann sich ändern: Nach dem Umstecken an einen anderen USB-Port kann sich der
Bedienung
1. Servos verbinden und erkennen
- Servo-Steuerplatine über den USB-zu-Seriell-Adapter anschließen und die Servos mit Strom versorgen.
- GUI öffnen, im Bereich „🔌 串口连接" den Port wählen (oder
🔄zum Aktualisieren anklicken) und die Baudrate einstellen (Standard 1M). - Auf 连接 klicken; der Status zeigt
🟢 已连接.
Erscheint die Meldung, dass der Port belegt ist, stellen Sie sicher, dass kein anderes Programm (serieller Monitor, ein zuvor nicht beendetes Tool) den Port belegt.
2. Servos scannen
- Auf 🔍 扫描舵机 klicken, um online befindliche Servos im ID-Bereich 1–254 zu erkennen.
- Die Scan-Ergebnisse werden in Echtzeit in der Servoliste angezeigt (mit Modellbezeichnung).
- Klicken Sie in der Servoliste auf eine Zeile, um sie automatisch in das Dropdown „舵机" zu übernehmen.
3. Parameter lesen
- Nach Auswahl des Servos auf 📖 读取参数 klicken, um alle 44 Register einzeln zu lesen.
- Die Parametertabelle zeigt 5 Spalten (Adresse/Register/Wert/Speicherbereich/Lesen-Schreiben); EPROM / SRAM / DEFAULT sind farblich unterschieden.
- Der Log-Bereich zeigt das Leseergebnis jedes Registers und die Fehlerursache an.
Die Bedeutung der einzelnen Register ist unter Potentiometer-SCSCL-Servo – Analyse der Speichertabelle beschrieben.
4. Parameter ändern / Schreiben
- In der Parametertabelle auf die zu ändernde Registerzeile klicken → „Schreibadresse", „Länge" und „Wert" werden automatisch übernommen.
- Im Eingabefeld „Wert" den neuen Wert eintragen und auf ✏️ 写入 klicken.
- Das Programm führt aus: EEPROM entsperren → schreiben → wieder sperren.
- Ergebnisdialog: Bei Erfolg erscheint ein grüner Hinweis „✅ 已成功写入", bei Fehlschlag ein roter Hinweis „❌ 写入失败" (mit Ursache).
5. Servo-ID ändern
- In der Parametertabelle die Zeile „舵机 ID" (Adresse 0x05) suchen und anklicken.
- Im Feld „Wert" die neue ID eintragen und auf ✏️ 写入 klicken.
- Das Programm führt aus: Entsperren → Schreiben an Adresse 5 → wieder sperren.
⚠️ Stellen Sie vor dem Ändern der ID sicher, dass nur dieser eine Servo am Bus hängt, um ID-Konflikte zu vermeiden.
6. Positionssteuerung
- Im Bereich „🎯 位置控制" den Schieberegler ziehen, um die Zielposition anzupassen (0–1023, 10-Bit-Auflösung des Potentiometers); das Zahlenfeld zeigt den Wert synchron an; alternativ können Sie direkt in das Zahlenfeld eingeben, der Schieberegler folgt synchron.
- Auf ▶ 移动 klicken; der Servo beginnt zu fahren, die Statusleiste zeigt „移动中..." an.
- Nach Abschluss der Bewegung erscheint „✅ 已移动完成,请关闭力矩"; klicken Sie auf ⏹ 力矩关 (Drehmoment aus).
7. Baudrate ändern / Werkseinstellungen wiederherstellen
- Baudrate ändern: Im Bereich „🔧 波特率/恢复出厂" die neue Baudrate wählen (38400 – 1000000 bps) und auf 🔧 修改波特率 klicken. Nach dem Schreiben wird die Baudrate des seriellen Ports automatisch umgestellt und per Ping verifiziert; bei Fehlschlag erfolgt ein automatischer Rollback.
- Werkseinstellungen wiederherstellen: Auf 🔄 恢复出厂 klicken; der Servo wird auf die Werkseinstellungen zurückgesetzt (ID=1, Baudrate=1000000); danach muss erneut gescannt werden.
8. xdat-Parameter-Backup und -Wiederherstellung
Im Bereich „📁 xdat 参数(仅保存 EEPROM)":
- 💾 保存当前舵机: Die EEPROM-Parameter des aktuell ausgewählten Servos als xdat-Datei speichern (Backup).
- Nach beliebigen Änderungen an den Servoparametern können Sie wie folgt wiederherstellen:
- 📂 打开 xdat: Die Backup-Datei laden.
- 📤 恢复参数到舵机: Das Backup zurück in das EEPROM des aktuellen Servos schreiben.
Hinweise
- Sicherheit geht vor: Das Schreiben von Parametern wird dauerhaft im EEPROM gespeichert. Stellen Sie vor dem Schreiben eine stabile Stromversorgung sicher und prüfen Sie, dass der Roboterarm weder Personen noch Gegenstände treffen kann.
- Stromversorgung: SoARM 101 Standardversion empfohlen DC 5V 5A, Pro-Version empfohlen DC 12V 5A. Unzureichende Stromversorgung führt zu Schrittverlusten oder Kommunikationsfehlern.
- Exklusiver Zugriff auf den Port: Unter Windows wird der serielle Port vom Programm exklusiv belegt; derselbe Port kann nicht gleichzeitig von zwei Programmen verwendet werden. Verwenden Sie dieses Tool nicht, während ein anderes Programm (serieller Monitor) denselben Port geöffnet hat.
- Linux-Port-Berechtigung: Für den Zugriff auf
/dev/ttyUSB*//dev/ttyACM*muss der Benutzer zur Gruppedialouthinzugefügt werden (siehe Abschnitt „Linux" oben). - macOS-Portnamen: Verwenden Sie
/dev/cu.*(nicht blockierend) statt/dev/tty.*(blockierend, kann hängen bleiben), siehe Abschnitt „macOS" oben. - Hot-Plug: Nach dem Abziehen des USB-Kabels versucht das Programm automatisch, die Verbindung wiederherzustellen; nach dem erneuten Einstecken
🔄anklicken, um die Portliste zu aktualisieren. - Übertemperatur-/Überspannungsschutz: Das Programm überwacht Spannung und Temperatur (Warnung bei Temperatur > 60°C). Bei anhaltend hoher Servotemperatur das System stoppen und abkühlen lassen.
- Parameter-Write ist irreversibel: Nach dem Schreiben ins EEPROM wird der ursprüngliche Wert überschrieben und kann nicht rückgängig gemacht werden. Empfehlung: Zuerst mit „xdat 保存当前舵机" ein Backup anlegen, dann ändern.
- Risiko bei ID-Änderung: Bei Schreib- oder Verifizierungsfehlern meldet das Programm einen Fehler, in Extremfällen kann der Servo jedoch „den Kontakt verlieren". Bei Kontaktverlust können Sie „恢复出厂设置" versuchen (nach dem Reset ist die ID wieder 1).
- Kodierungsprobleme: Bei Emoji-Zeichensalat in der Windows-Konsole setzen Sie
PYTHONIOENCODING=utf-8und führen Sie das Kommandozeilen-Tool anschließend erneut aus. Unter Linux / macOS mit nativem UTF-8 tritt dieses Problem normalerweise nicht auf.
Fehlerbehebung
| Symptom | Mögliche Ursache | Lösung |
|---|---|---|
| Serieller Port lässt sich nicht öffnen / Port belegt | Anderes Programm belegt den Port | Programme wie serielle Monitore schließen oder den Port wechseln und das Tool neu starten |
| Windows: PermissionError beim Öffnen des Ports | Anderer Prozess belegt den COM-Port | Sicherstellen, dass kein anderer Prozess diesen COM-Port belegt |
| Keine Servos gefunden | Unzureichende Stromversorgung / falsche Verkabelung / falsche Baudrate | Stromversorgung und Verkabelung prüfen; sicherstellen, dass der Servo mit 1M Baudrate läuft |
| Parameterlesen schlägt fehl | Port belegt / Servo antwortet nicht | Andere Programme schließen; Verbindung neu aufbauen; prüfen, ob die Adresse korrekt ist |
| Schreiben schlägt fehl | Unzureichende Servoversorgung oder Zielregister nicht schreibbar | Stromversorgung und Verbindung des Servos prüfen; sicherstellen, dass das Zielregister schreibbar ist |
| Temperaturanstieg zu schnell | Überlast oder Blockade | Mechanik auf Blockaden prüfen, Geschwindigkeit/Beschleunigung reduzieren |
| Servo nach ID-Änderung nicht auffindbar | ID-Konflikt oder Schreiben fehlgeschlagen | Werkseinstellungen wiederherstellen, erneut scannen |
| Windows: Port nicht gefunden | Treiber fehlt | Im Geräte-Manager den Treiber prüfen; anderen USB-Port verwenden; CH340-Treiber installieren |
| Linux: Port nicht gefunden | Gerät nicht erkannt | ls /dev/ttyUSB* /dev/ttyACM*; Gerät mit lsusb prüfen |
| Permission denied: /dev/ttyUSB0 | Benutzer nicht in der Gruppe dialout | sudo usermod -a -G dialout $USER ausführen und neu anmelden; oder sudo chmod 666 /dev/ttyUSB0 (temporär) |
| Linux: Gerätename ändert sich | An-/Absteckreihenfolge beeinflusst die ttyUSB-Nummerierung | Namen per udev-Regel fixieren (siehe Abschnitt „Linux" oben) oder bei jedem Start auswählen |
macOS: Portname mit tty. bleibt hängen | Blockierender Gerätename verwendet | Geräte mit cu.-Präfix verwenden |
| macOS: Gerät nicht gefunden | Gerät nicht erkannt | ls /dev/cu.*; aus- und wieder einstecken; mit system_profiler SPUSBDataType prüfen |
| macOS: Berechtigungsproblem | Systemzugriffskontrolle | Normalerweise keine zusätzlichen Berechtigungen nötig; bei Zugriffskontrollabfrage dem Terminal den Zugriff erlauben |
| Chinesische Oberfläche leer | Chinesische Schriftarten fehlen | Unter Linux fonts-noto-cjk installieren; bei Problemen unter macOS Noto Sans CJK installieren |
| Emojis werden als Kästchen angezeigt | Emoji-Schriftart fehlt | fonts-noto-color-emoji installieren |
| pip-Installation schlägt fehl | System-Python geschützt (externally managed environment) | Virtuelle Umgebung verwenden; oder pip install --break-system-packages -r requirements.txt |
| Programm startet nicht | Abhängigkeiten fehlen oder Version passt nicht | Version mit python3 --version prüfen; Abhängigkeiten mit pip list prüfen |
| macOS: Aktivierung der virtuellen Umgebung schlägt fehl | Falsches Aktivierungsskript | source .venv/bin/activate verwenden (nicht .bat) |
| macOS Apple Silicon: Kompilierungsfehler | Altes Python unter Rosetta | Python 3.10+ verwenden (native Apple-Silicon-Unterstützung) |
Verzeichnisstruktur
SCS0009_ServoController/
├── docs/ # 分系统教程(中英文)
│ ├── zh/ # 中文教程
│ │ ├── Windows教程.md
│ │ ├── Linux教程.md
│ │ └── macOS教程.md
│ └── en/ # 英文教程
│ ├── Windows.md
│ ├── Linux.md
│ └── macOS.md
├── src/
│ ├── gui/ # PySide6 图形界面
│ │ ├── factory_calibration_tool.py # 主窗口(FT 调试器 + 语言切换)
│ │ ├── ft_debugger.py # FT 调试器面板(参数读写 / xdat 备份)
│ │ ├── theme_utils.py # 浅色主题
│ │ └── language_dialog.py # 语言选择对话框
│ ├── xdat_utils.py # xdat 参数文件读写
│ ├── i18n*.py / i18n_translations/ # 中英文国际化
│ └── port_utils.py # 串口检测
├── scservo_sdk/ # FTServo 舵机通信 SDK
├── requirements.txt
└── setup.py # 环境检查脚本Das Tool-Repository besteht aus den Modulen src/gui (PySide6-GUI mit FT-Debugger), scservo_sdk (FTServo-Servo-Kommunikations-SDK) und setup.py (Skript zur Umgebungsprüfung).

