ProffieBoard V2 / ProffieOS Entwicklerhandbuch
Technische Referenz für Firmware-Entwickler, Konfigurationsingenieure, Servicetechniker und erfahrene Integratoren, die mit SUPERNEOX Lichtschwertern auf Basis von ProffieBoard V2/V2.2 und ProffieOS arbeiten.
1. Geltungsbereich und Versionierung
Das vorliegende Handbuch beschreibt einen ProffieBoard-V2-Workflow,
der auf Arduino IDE, ProffieOS, einer config.h-Datei,
SD-Karteninhalten, Presets und Blade Styles basiert.
Die aktuelle ProffieOS-Dokumentation folgt weiterhin demselben
grundlegenden Ablauf:
Arduino-Unterstützung installieren, ProffieOS beziehen,
eine boardspezifische Konfiguration erstellen, diese über
CONFIG_FILE auswählen, kompilieren und auf das Board
übertragen und anschließend die Konfiguration weiter anpassen.
Maßgebliche Dokumentationsquellen
- Boardspezifischer Quellcode / Konfiguration: Der ProffieOS-Quellcode und die Board-Konfiguration für das konkret verwendete Zielsystem.
- Aktuelle offizielle Dokumentation: Die offizielle ProffieOS-Dokumentation.
- Board-Referenz: Die Referenzdokumentation für ProffieBoard V2.
- Repository-Historie: GitHub-Commits und Release Notes, wenn sich das Verhalten zwischen verschiedenen Versionen unterscheidet.
2. Firmware-Architektur und Modell der maßgeblichen Datenquelle
Ein SUPERNEOX Lichtschwert auf Proffie-Basis sollte als mehrschichtiges System betrachtet werden: Hardware-Verkabelung → boardspezifische Konfiguration → ProffieOS-Funktionsdefinitionen → Blade-Definitionen → Presets/Styles/Props → SD-Karten-Assets.
Ein Fehler auf einer Ebene kann sich als Problem auf einer anderen Ebene bemerkbar machen. Bei der Fehlersuche sollte daher grundsätzlich von der untersten Abhängigkeitsebene nach oben vorgegangen werden.
Hardware-Ebene
Akku, Lautsprecher, Tasten, NeoPixel-Daten- und Stromversorgung, Blade-ID, SD-Karte, Display, Status-LEDs und optionale Peripheriegeräte.
Build-Ebene
Arduino IDE, Board-Paket bzw. Plugin,
ProffieOS-Quellcode und die ausgewählte
CONFIG_FILE-Definition.
Laufzeitebene
BladeConfig, Presets, Styles, Props,
Bewegungs- und Audioverhalten, Menüs sowie
gespeicherte Einstellungen.
Asset-Ebene
Sound Fonts, Tracks, Konfigurationsdateien, Bilder, Display-Assets und weitere Laufzeitressourcen auf der SD-Karte.
3. ProffieBoard V2 Hardware
Das ProffieBoard V2 ist ein Open-Source-Controller für Lichtschwerter, der für eine weitreichende Anpassung der Firmware ausgelegt ist. Es bietet Anschlüsse für die Stromversorgung, Tasten, adressierbare LEDs, Displays, Bewegungssensoren, Debugging sowie zusätzliche Peripheriegeräte.
3.1 Zentrale Hardware-Komponenten
- ProffieBoard V2/V2.2 Controller
- 3,7-V-Li-Ionen-Akku
- Lautsprecher
- Adressierbares Blade oder unterstützte LED-Hardware
- Micro-USB-Anschluss für die Entwicklung
- microSD-Karte für Sound Fonts und weitere Ressourcen
3.2 Wichtige Anschlüsse
| Anschluss | Funktion |
|---|---|
BATT+
|
Batterieeingang für das Board. |
BATT-
|
Rückleitung der LED-Stromversorgung und Hochstrom-Rückleitung. |
GND
|
Masseanschluss für die Board-Elektronik. |
Button 1/2/3
|
Eingänge für die physischen Tasten. |
Data 1 / ID
|
Messung der Blade-ID und/oder Datenausgang für die erste adressierbare LED. |
Data 2 / Data 3
|
Zusätzliche Ausgänge für adressierbare LEDs. |
Data4 / DAC
|
Zusätzlicher Datenausgang oder Audio-DAC, abhängig von der jeweiligen Konfiguration. |
LED 1-6
|
Anschlüsse für unterstützte LED-Kanäle. |
SDA / SCL
|
I²C-Kommunikation mit Bewegungssensoren und Peripheriegeräten. |
SWDIO / SWDCLK
|
ST-LINK-Debugging-Schnittstelle. |
3.3 Hinweise zur Verkabelung
Für die meisten Signalleitungen können Kabel mit geringerem Querschnitt verwendet werden. Die Leitungen für Batterie- und LED-Stromversorgung müssen jedoch entsprechend der zu erwartenden Stromstärke dimensioniert werden.
4. Entwicklungsumgebung
4.1 Benötigte Software
- Arduino IDE
- ProffieBoard Arduino Plugin
- ProffieOS-Quellcode
- USB-Treiber bzw. erforderliche Treibersoftware
- Text- bzw. Code-Editor zur Bearbeitung der Konfiguration
4.2 Auswahl des Arduino-Boards
Wählen Sie für ProffieBoard V2 das entsprechende Board-Ziel aus:
Tools → Board → Proffieboard V2
| Arduino-Einstellung | Empfohlener Wert |
|---|---|
| Board | Proffieboard V2 |
| USB Type | Serial + WebUSB + Mass Storage, sofern unterstützt |
| DOSFS | SDCARD (SPI) |
| CPU Speed | 80 MHz |
| Optimize | Smallest Code, Fast, Faster oder Fastest, abhängig von Konfiguration und Ressourcenbedarf |
| Port | COM-Port des angeschlossenen Boards |
5. ProffieOS installieren
5.1 ProffieOS beziehen
Für eine stabile Firmware-Konfiguration und Kompilierung von SUPERNEOX Lichtschwertern verwenden Sie ProffieOS 5.9. Entpacken Sie die ProffieOS-Quelldateien nach dem Download in einen Ordner mit Schreibzugriff, beispielsweise in „Dokumente“ oder auf den Desktop. Speichern Sie den Quellcode nicht in geschützten Verzeichnissen wie „Programme“ oder anderen systemverwalteten Anwendungsverzeichnissen, da Windows-Berechtigungen den Dateizugriff einschränken und dadurch Kompilierungsfehler verursachen können.
Der Quellcode enthält das zentrale Arduino-Sketch:
ProffieOS/ProffieOS.ino
Zu den häufig verwendeten Verzeichnissen gehören:
config/
blades/
styles/
props/
sound/
motion/
functions/
5.2 Arduino-Sketch öffnen
Öffnen Sie:
ProffieOS/ProffieOS.ino
5.3 V2-Konfigurator verwenden
Die offizielle ProffieOS-Dokumentation empfiehlt, den für die jeweilige ProffieBoard-Version vorgesehenen Konfigurator zu verwenden. Für SUPERNEOX Lichtschwerter mit ProffieBoard V2.x verwenden Sie den folgenden Konfigurator: ProffieBoard V2.x Configurator
Passen Sie den erzeugten Code an die tatsächliche Verkabelung, die verbauten Hardware-Komponenten und die aktivierten Funktionen des jeweiligen Lichtschwerts an. Der Konfigurator bietet eine zuverlässige Ausgangsbasis. Bei erweiterten Konfigurationen oder individuellen Hardware-Aufbauten können jedoch nach der Generierung zusätzliche manuelle Anpassungen erforderlich sein.
6. Konfigurationsdatei erstellen und auswählen
6.1 Konfigurationsdatei erstellen
-
Öffnen Sie das Verzeichnis
config/von ProffieOS. - Kopieren Sie eine vorhandene Konfigurationsvorlage.
- Vergeben Sie einen aussagekräftigen Dateinamen.
- Bearbeiten Sie die Konfiguration mit einem Text- bzw. Code-Editor.
- Speichern Sie die Datei.
6.2 Konfiguration mit CONFIG_FILE auswählen
Öffnen Sie ProffieOS.ino und aktivieren Sie
genau eine Konfigurationsdatei:
// #define CONFIG_FILE "config/example.h"
#define CONFIG_FILE "config/my_saber_config.h"
Alle nicht verwendeten Konfigurationsdefinitionen müssen auskommentiert bleiben.
7. Konfigurationsbereiche verstehen
Eine ProffieOS-Konfigurationsdatei enthält mehrere Bereiche, die beim Kompilieren ausgewertet werden.
CONFIG_TOP
Globale Hardwaredefinitionen und Funktionseinstellungen, einschließlich Blade-Anzahl, Tasten, Audio, Bewegungssensoren und SD-Karten-Unterstützung.
CONFIG_STYLES
Ab ProffieOS 7.x verfügbar. Enthält wiederverwendbare Style-Vorlagen und Aliase.
CONFIG_PRESETS
Definiert Presets, Sound Fonts, Tracks, Blade Styles und die Namen der Presets.
CONFIG_PROP
Definiert das Verhalten der Props und individuelle Steuerungsfunktionen.
8. Zentrale Konfigurationsparameter
#ifdef CONFIG_TOP
#include "proffieboard_v2_config.h"
#define NUM_BLADES 1
#define NUM_BUTTONS 2
#define VOLUME 1000
const unsigned int maxLedsPerStrip = 144;
#define CLASH_THRESHOLD_G 1.0
#define ENABLE_AUDIO
#define ENABLE_MOTION
#define ENABLE_WS2811
#define ENABLE_SD
#define SAVE_STATE
#endif
| Parameter | Funktion |
|---|---|
NUM_BLADES
|
Anzahl der definierten Blades. |
NUM_BUTTONS
|
Anzahl der konfigurierten physischen Tasten. |
VOLUME
|
Standard-Lautstärke. |
maxLedsPerStrip
|
Maximale Anzahl der LEDs. |
CLASH_THRESHOLD_G
|
Schwellenwert für die Clash-Erkennung. Niedrigere Werte führen in der Regel zu einer höheren Empfindlichkeit bei der Erkennung von Schlägen. |
ENABLE_AUDIO
|
Aktiviert die Audiofunktionen. |
ENABLE_MOTION
|
Aktiviert die Bewegungserkennung. |
ENABLE_WS2811
|
Aktiviert die WS2811- bzw. adressierbare LED-Funktion, die bei gängigen NeoPixel-Konfigurationen verwendet wird. |
ENABLE_SD
|
Aktiviert die SD-Karten-Unterstützung. |
SAVE_STATE
|
Aktiviert das Speichern von Einstellungen und Zuständen, sofern diese Funktion für die jeweilige Konfiguration unterstützt wird. |
9. Blade-Konfiguration (* Hinweis: Derzeit nicht von SUPERNEOX Lichtschwertern unterstützt.)
Die Blade-Konfiguration definiert die physische LED-Hardware, die Blade-Erkennung und das logische Verhalten des Blades.
9.1 Beispiel für ein einzelnes Blade
BladeConfig blades[] = {
{
0,
WS2811BladePtr<144>(),
CONFIGARRAY(presets)
}
};
Der erste Wert gibt den Blade-ID-Widerstand an, der für die Blade-Erkennung verwendet wird. Der Wert 0 wird üblicherweise verwendet, wenn keine Auswahl über eine Blade-ID erforderlich ist.
9.2 Mehrere Blade-Konfigurationen
Mehrere BladeConfig-Einträge ermöglichen die Auswahl
unterschiedlicher physischer Konfigurationen anhand der
Blade-Identifikation.
9.3 SubBlade
Mit SubBlade können adressierbare LEDs in mehrere
logische Bereiche unterteilt werden, beispielsweise für
Crossguards, Kristallkammern oder zusätzliche Accent-Pixel.
10. Preset-Konfiguration
Ein Preset kombiniert:
- Sound Font
- Musik-Track
- Blade Style
- Preset-Name
Preset presets[] = {
{
"TeensySF",
"tracks/theme.wav",
StyleNormalPtr<CYAN>(),
"cyan"
}
};
| Feld | Bedeutung |
|---|---|
| Sound Font | Verzeichnis mit den zugehörigen Audiodateien. |
| Track | Pfad zur Musikdatei. |
| Style | Definiert das visuelle Verhalten des Blades. |
| Name | Anzeigename des Presets. |
11. SD-Karte und Sound-Font-Verwaltung
Die microSD-Karte speichert die von ProffieOS verwendeten Laufzeitressourcen. Dazu gehören Sound Fonts, Tracks, Konfigurationsressourcen und optionale Display-Assets.
11.1 Empfohlene SD-Kartenstruktur
SD CARD
├── SOUND/
│
├── TRACKS/
│
├── CONFIG/
│
├── FONT DIRECTORY 1/
│ ├── hum.wav
│ ├── swingl.wav
│ ├── swingh.wav
│ ├── clash.wav
│ └── blst.wav
│
└── FONT DIRECTORY 2/
11.2 Sound-Font-Verzeichnis
Jeder Sound Font wird in einem eigenen Verzeichnis gespeichert. Der Name dieses Verzeichnisses wird in der Preset-Konfiguration referenziert.
Beispiel:
Preset presets[] = {
{
"DarkLord",
"tracks/theme.wav",
StyleNormalPtr<RED>(),
"Dark Lord"
}
};
13. Debugging über den seriellen Monitor
Das bereitgestellte Handbuch dokumentiert die folgenden häufig verwendeten Befehle:
| Befehl | Funktion |
|---|---|
battery_voltage
|
Liest die aktuelle Batteriespannung aus. |
get_volume
|
Liest die aktuell eingestellte Lautstärke aus. |
pow
|
Schaltet die Stromversorgung ein bzw. aus. |
on
|
Schaltet die Stromversorgung ein. |
off
|
Schaltet die Stromversorgung aus. |
set_volume 500
|
Legt die Lautstärke fest. |
play
|
Startet bzw. stoppt den Standardtitel. |
force
|
Löst den Force-Sound aus. |
drag
|
Löst den Drag-Sound aus. |
blast
|
Löst den Blaster-Sound aus. |
13.1 Serielle Ausgabe aktivieren
#define ENABLE_SERIAL
13.2 Typische Debug-Informationen
- Boot-Meldungen
- Erkennung der SD-Karte
- Initialisierung der Klinge
- Laden von Presets
- Status des Bewegungssensors
- Tastenereignisse
14. Blade Styles
Blade Styles bilden den zentralen Mechanismus von ProffieOS zur Definition des visuellen Verhaltens einer Klinge. Sie steuern unter anderem Farbe, Animationen, Zündung, Einfahren, Reaktionen auf Clash-Ereignisse, Blaster-Effekte, Lockup, Drag, Übergänge und weitere interaktive Effekte.
14.1 Einfaches Style-Beispiel
StyleNormalPtr<RED>()
Einfache Styles definieren das Standard-Erscheinungsbild einer Klinge. Für komplexere Konfigurationen werden verschachtelte Style-Funktionen und Effekt-Layer kombiniert, um umfangreiche Animationen und dynamische Effekte zu erzeugen.
14.2 Struktur von StylePtr
StylePtr<
InOutHelper<GREEN, 300, 800, BLACK>()
>()
Mit StylePtr wird üblicherweise ein vollständiger Blade Style zugewiesen.
Komplexe Effekte entstehen durch die Kombination mehrerer Funktionen,
Layer
und Übergänge.
14.3 RGB-Farben
Rgb<255, 50, 0>
Die Werte der einzelnen RGB-Kanäle liegen zwischen 0 und 255.
Sofern unterstützt, können auch benannte Farben wie
RED,
GREEN,
BLUE,
WHITE
und
CYAN
verwendet werden.
14.4 Häufig verwendete Effektfunktionen
| Funktion | Beschreibung |
|---|---|
InOutHelper<base, extension, retraction, offColor>
|
Steuert die zeitlichen Abläufe beim Aus- und Einfahren der Klinge einschließlich der Farbe im ausgeschalteten Zustand. |
AudioFlicker<A, B>
|
Erzeugt ein audioreaktives Flackern zwischen zwei Farben und simuliert dadurch eine instabile Energiewirkung. |
OnSpark<base, spark, duration>
|
Fügt beim Zünden der Klinge einen Funkenanimationseffekt hinzu. |
SimpleClash<base, clash, duration>
|
Erzeugt einen Aufblitzeffekt, sobald die Klinge einen Aufprall erkennt. |
Lockup<base, lockup>
|
Definiert das kontinuierliche Lockup-Verhalten der Klinge sowie die entsprechende Lockup-Farbe. |
Blast<base, blast>
|
Definiert Blaster-Deflection-Blitzeffekte und die zugehörigen Farben. |
14.5 Erweiterte Style-Komposition
Fortgeschrittene Anwender können Funktionen, Layer, Übergänge und Zufallseffekte miteinander kombinieren, um das Verhalten der Klinge vollständig individuell anzupassen.
Layers<
RED,
AudioFlicker<RED,WHITE>,
Clash
>()
14.6 Mehrere Klingen / Accent Pixels
Ein Preset kann mehrere Blade Styles enthalten, die unterschiedlichen logischen Klingendefinitionen zugeordnet sind. Dadurch lassen sich Hauptklinge, Quillons, Kristallkammern, Accent-Strips oder andere konfigurierte Pixelgruppen unabhängig voneinander steuern.
14.7 Ressourcen zur Bearbeitung von Blade Styles
- ProffieOS Homepage – Hinweis: Für SUPERNEOX-Sabers bitte ProffieOS 5.9 verwenden.
- SD-Konfigurationsdatei
- ProffieOS-Dokumentation
- The Crucible Support Forum
- Fett263 Style Resources
- Blade Configuration Documentation
15. Erweiterte Integration
15.1 Displays
Unterstützte Display-Module können beispielsweise folgende Informationen und Funktionen bereitstellen:
- Batterieinformationen
- Preset-Auswahl
- Menünavigation
- Betriebsstatus
15.2 Zusätzliche Peripheriegeräte
Bei fortgeschrittenen Hardware-Konfigurationen können unter anderem folgende Komponenten integriert werden:
- Accent-LEDs
- Kristallkammern
- Crossguard-Beleuchtung
- Benutzerdefinierte Sensoren
- Externe Controller
15.3 Empfehlung für den Produktionsablauf
- Hardware-Revision festlegen und einfrieren.
- Verdrahtungsplan archivieren.
- Verwendete ProffieOS-Version archivieren.
- Konfigurationsdatei archivieren.
- Inhalte der SD-Karte archivieren.
- Firmware auf repräsentativer Hardware testen.
- Produktionspaket freigeben.
16. Fehlerbehebung
| Problem | Mögliche Ursache | Lösung |
|---|---|---|
| Board wird nicht erkannt | Problem mit Treiber, USB-Kabel, Bootloader oder Port. | USB-Verbindung und Treiber überprüfen und sicherstellen, dass in Arduino der richtige Port ausgewählt ist. |
| Kompilierung schlägt fehl | Falsche ProffieOS-Version, fehlende Konfiguration oder Syntaxfehler. |
CONFIG_FILE,
Board-Auswahl
und Syntax der Konfiguration überprüfen.
|
| Kein Ton | Fehlende Dateien auf der SD-Karte, falsches Soundfont-Verzeichnis oder falsche Lautstärkeeinstellungen. | Struktur der SD-Karte, Namen der Soundfonts und Audio-Konfiguration überprüfen. |
| Klinge leuchtet nicht | Fehlerhafte Blade-Konfiguration oder Problem mit der Verdrahtung. |
BladeConfig,
LED-Datenverbindung
und Stromversorgung überprüfen.
|
| Bewegungseffekte nicht verfügbar | Bewegungsunterstützung deaktiviert oder Problem mit dem Sensor. |
ENABLE_MOTION
und die Hardware-Verbindung überprüfen.
|
17. Entwickler-Referenzen
- Offizieller Installationsleitfaden
- ProffieOS GitHub Repository
- Quellcode der V2-Board-Konfiguration
- Offizielle ProffieOS-Seite
- ProffieOS.ino / CONFIG_FILE-Einstiegspunkt
ProffieBoard und ProffieOS sind Open-Source-Projekte. Dieses Dokument dient als technische Referenz und wurde auf Grundlage des bereitgestellten Handbuchs sowie der öffentlich zugänglichen ProffieOS-Dokumentation zusammengestellt. Es handelt sich nicht um ein offizielles Dokument des ProffieOS-Projekts.
Produktions-Builds müssen stets mit der exakt eingesetzten ProffieOS-Version und der tatsächlich verwendeten Hardware-Revision validiert werden.

