SUPERNEOX Developer Help Center

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.

Dokumentationsprofil: Deutsch Entwicklung / Technik ProffieBoard V2/V2.2 ProffieOS

Versionsabhängige Dokumentation. ProffieOS wird kontinuierlich weiterentwickelt. Konfigurationssyntax, Props, Styles, Menüs, serielle Befehle und unterstützte Hardware können sich zwischen verschiedenen Versionen ändern. Für jeden Build sind daher der exakt verwendete ProffieOS-Quellcode und die dazugehörige offizielle Dokumentation maßgeblich.

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

  1. Boardspezifischer Quellcode / Konfiguration: Der ProffieOS-Quellcode und die Board-Konfiguration für das konkret verwendete Zielsystem.
  2. Aktuelle offizielle Dokumentation: Die offizielle ProffieOS-Dokumentation.
  3. Board-Referenz: Die Referenzdokumentation für ProffieBoard V2.
  4. 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.

Empfohlene Vorgehensweise: Archivieren Sie für jede Produktionsrevision des Lichtschwerts die exakt verwendete ProffieOS-Version bzw. den Commit, die vollständige Konfigurationsdatei, das zugehörige SD-Karten-Asset-Paket, den Stand der Verkabelung sowie einen erfolgreich kompilierten und getesteten Build.

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.
Warnung zu Stromversorgung und Polarität: Der Verpolungsschutz schützt das Board. Angeschlossene NeoPixel-Hardware kann jedoch weiterhin durch eine falsch angeschlossene Batterie beschädigt werden.

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

  1. Öffnen Sie das Verzeichnis config/ von ProffieOS.
  2. Kopieren Sie eine vorhandene Konfigurationsvorlage.
  3. Vergeben Sie einen aussagekräftigen Dateinamen.
  4. Bearbeiten Sie die Konfiguration mit einem Text- bzw. Code-Editor.
  5. Speichern Sie die Datei.
Verwenden Sie Microsoft Word nicht. Konfigurationsdateien sind Quellcodedateien und müssen als reiner Text gespeichert werden.

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"
 }

};
Die Dateinamen müssen korrekt sein. ProffieOS sucht nach bestimmten Namen für die Audiodateien. Falsch benannte oder fehlende Dateien können dazu führen, dass keine Tonausgabe erfolgt oder bestimmte Effekte fehlen.

12. Tasten und Props

Die Tasten steuern die Benutzerinteraktion. Das Prop-System interpretiert Tastenkombinationen und wandelt diese in Aktionen des Lichtschwerts um.

12.1 Häufig verwendete Funktionen

Funktion Typische Eingabe
Zündung Kurzes Drücken der Power-/Aktivierungstaste.
Blade einfahren Kurzes Drücken der Power-/Aktivierungstaste, während das Blade aktiviert ist.
Stumme Zündung Power-Taste zweimal kurz drücken.
Nächstes Preset Blade ausgeschaltet: AUX-Taste kurz drücken.
Vorheriges Preset AUX gedrückt halten und anschließend Power drücken.
Clash Das aktivierte Blade anschlagen.
Lockup Power gedrückt halten und anschließend einen Clash auslösen.
Drag Die Lockup-Geste ausführen, während das Lichtschwert nach unten zeigt.
Force Effect AUX-Taste länger gedrückt halten.
Blaster Block Bei aktiviertem Blade die AUX-Taste kurz drücken.
Farbwechsel AUX gedrückt halten, Power schnell drücken und anschließend den Griff drehen.
Lautstärke / Menüsteuerung Längere Tastenkombinationen verwenden, um Einstellungen und Anpassungen aufzurufen.

Das genaue Verhalten wird durch den ausgewählten Prop und die konfigurierte Tastenbelegung bestimmt. ProffieOS enthält mehrere Saber-Props, darunter Standard- und erweiterte Implementierungen für Tasten und Funktionen. Es sollte daher nicht davon ausgegangen werden, dass alle aktuellen ProffieOS-Props dieselbe Tastenbelegung verwenden.

12.2 Prop-Konfiguration

Der ausgewählte Prop definiert:

  • Tasten-Timing
  • Interpretation von Gesten
  • Menüverhalten
  • Sonderfunktionen

#include "props/saber.h"

Individuelle Props können für spezielle Hardware oder produktspezifische Bedienelemente erstellt werden.

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
Empfohlener Ablauf: Bei der Fehlersuche an einem Produkt-Saber sollte zunächst das vollständige serielle Boot-Protokoll erfasst werden, bevor Firmware-Einstellungen geändert werden.

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

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

  1. Hardware-Revision festlegen und einfrieren.
  2. Verdrahtungsplan archivieren.
  3. Verwendete ProffieOS-Version archivieren.
  4. Konfigurationsdatei archivieren.
  5. Inhalte der SD-Karte archivieren.
  6. Firmware auf repräsentativer Hardware testen.
  7. 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.
Vor dem erneuten Flashen: Die funktionierende Konfiguration und ein Backup der SD-Karte müssen immer gesichert werden. Ein Firmware-Update kann individuell konfigurierte Funktionen und Verhaltensweisen überschreiben.

17. Entwickler-Referenzen

Hinweis für die Entwicklung: Bei der Entwicklung von Produktions-Sabers sollten Firmware, Konfiguration, Hardware-Revisionen und SD-Karteninhalte gemeinsam versioniert und verwaltet werden.

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.