Guide développeur ProffieBoard V2 / ProffieOS
Référence technique destinée aux développeurs firmware, aux ingénieurs configuration, aux techniciens produit et aux intégrateurs avancés travaillant sur les sabres laser SUPERNEOX équipés d'un ProffieBoard V2/V2.2 et de ProffieOS.
1. Périmètre et gestion des versions
Le présent guide décrit un workflow ProffieBoard V2 basé sur Arduino IDE,
ProffieOS, un fichier config.h, le contenu de la carte SD,
les presets et les Blade Styles.
La documentation actuelle de ProffieOS conserve le même principe de fonctionnement :
installer le support Arduino, récupérer ProffieOS, créer une configuration
adaptée à la carte, la sélectionner via CONFIG_FILE,
compiler et téléverser le firmware, puis itérer sur la configuration.
Références faisant autorité
- Code source / configuration spécifique à la carte : le code source de ProffieOS et la configuration correspondant exactement au matériel cible.
- Documentation officielle à jour : documentation ProffieOS.
- Référence matérielle : documentation de référence du ProffieBoard V2.
- Historique du dépôt : commits GitHub et notes de version lorsque le comportement diffère selon les versions.
2. Architecture du firmware et modèle de référence
Un sabre SUPERNEOX basé sur Proffie doit être considéré comme un système à plusieurs couches : câblage matériel → configuration spécifique à la carte → définitions des fonctionnalités ProffieOS → définitions des lames → presets/styles/props → ressources de la carte SD.
Une défaillance au niveau d'une couche peut se manifester comme un problème situé sur une autre couche. Le diagnostic doit donc commencer par le niveau de dépendance le plus bas et remonter progressivement vers les couches supérieures.
Couche matérielle
Batterie, haut-parleur, boutons, données/alimentation NeoPixel, identification de lame, carte SD, écran, LED auxiliaires et périphériques optionnels.
Couche de compilation
Arduino IDE, package/plugin de carte, code source ProffieOS
et CONFIG_FILE sélectionné.
Couche d'exécution
BladeConfig, presets, styles, props,
gestion des mouvements et du son, menus et paramètres persistants.
Couche des ressources
Sound fonts, pistes audio, fichiers de configuration, images, ressources d'affichage et autres ressources utilisées pendant l'exécution sur la carte SD.
3. Matériel ProffieBoard V2
Le ProffieBoard V2 est un contrôleur open source pour sabres laser, conçu pour permettre une personnalisation avancée du firmware. Il dispose de connexions pour l'alimentation, les boutons, les LED adressables, les écrans, les capteurs de mouvement, le débogage et différents périphériques supplémentaires.
3.1 Matériel principal
- Contrôleur ProffieBoard V2/V2.2
- Batterie Li-ion 3,7 V
- Haut-parleur
- Lame adressable ou matériel LED compatible
- Connexion Micro-USB pour le développement
- Carte microSD pour les sound fonts et autres ressources
3.2 Broches importantes
| Connexion | Fonction |
|---|---|
BATT+
|
Entrée batterie de la carte. |
BATT-
|
Retour d'alimentation des LED et chemin de retour pour les courants élevés. |
GND
|
Masse électrique de la carte. |
Button 1/2/3
|
Entrées des boutons physiques. |
Data 1 / ID
|
Mesure de l'identification de lame et/ou sortie de données pour la première LED adressable. |
Data 2 / Data 3
|
Sorties supplémentaires pour LED adressables. |
Data4 / DAC
|
Sortie de données supplémentaire ou sortie audio DAC, selon la configuration. |
LED 1-6
|
Connexions pour les canaux LED compatibles. |
SDA / SCL
|
Communication I²C pour les capteurs de mouvement et les périphériques. |
SWDIO / SWDCLK
|
Interface de débogage ST-LINK. |
3.3 Considérations relatives au câblage
La plupart des connexions de signal peuvent utiliser des fils de section réduite. En revanche, les lignes d'alimentation de la batterie et des LED doivent être dimensionnées en fonction du courant maximal attendu.
4. Environnement de développement
4.1 Logiciels requis
- Arduino IDE
- Plugin Arduino pour ProffieBoard
- Package source ProffieOS
- Pilotes USB lorsque cela est nécessaire
- Éditeur de texte brut ou éditeur de code pour modifier la configuration
4.2 Sélection de la carte dans Arduino IDE
Pour un ProffieBoard V2, sélectionnez la cible correspondant à la carte :
Outils → Type de carte → Proffieboard V2
| Paramètre Arduino | Valeur recommandée |
|---|---|
| Carte | Proffieboard V2 |
| Type USB | Serial + WebUSB + Mass Storage lorsque disponible |
| DOSFS | SDCARD (SPI) |
| Vitesse CPU | 80 MHz |
| Optimisation | Smallest Code, Fast, Faster ou Fastest selon la configuration et les ressources disponibles |
| Port | Port COM correspondant à la carte connectée |
5. Installation de ProffieOS
5.1 Télécharger ProffieOS
Pour garantir une configuration et une compilation stables du firmware des sabres SUPERNEOX, utilisez ProffieOS 5.9. Après téléchargement, extrayez les fichiers source de ProffieOS dans un dossier utilisateur accessible en écriture, par exemple Documents ou Bureau. Évitez de placer le code source dans des emplacements protégés tels que Program Files ou d'autres répertoires gérés par le système : les restrictions de permissions de Windows peuvent empêcher l'accès aux fichiers et provoquer des erreurs de compilation.
L'arborescence source contient notamment le sketch Arduino principal :
ProffieOS/ProffieOS.ino
Les répertoires courants comprennent notamment :
config/
blades/
styles/
props/
sound/
motion/
functions/
5.2 Ouvrir le sketch Arduino
Ouvrez :
ProffieOS/ProffieOS.ino
5.3 Utiliser le configurateur V2
La documentation officielle de ProffieOS recommande d'utiliser le configurateur correspondant à la version exacte de votre ProffieBoard. Pour les sabres SUPERNEOX équipés d'un ProffieBoard V2.x, utilisez le configurateur suivant : Configurateur ProffieBoard V2.x
Configurez ensuite le code généré en fonction du câblage réel du sabre, des composants matériels installés et des fonctionnalités utilisées. Le configurateur constitue un point de départ fiable, mais les configurations avancées ou personnalisées peuvent nécessiter des modifications manuelles supplémentaires après génération.
6. Créer et sélectionner un fichier de configuration
6.1 Créer le fichier de configuration
-
Ouvrez le répertoire
config/de ProffieOS. - Copiez un modèle de configuration existant.
- Renommez-le avec un nom explicite.
- Modifiez la configuration avec un éditeur de texte brut.
- Enregistrez le fichier.
6.2 Sélectionner la configuration avec CONFIG_FILE
Ouvrez ProffieOS.ino et activez exactement un fichier
de configuration :
// #define CONFIG_FILE "config/example.h"
#define CONFIG_FILE "config/my_saber_config.h"
Toutes les autres définitions de configuration inutilisées doivent rester commentées.
7. Comprendre les sections de configuration
Un fichier de configuration ProffieOS contient plusieurs sections évaluées lors de la compilation.
CONFIG_TOP
Définitions matérielles globales, options de fonctionnalités, nombre de lames, boutons, audio, mouvements et prise en charge de la carte SD.
CONFIG_STYLES
Disponible dans ProffieOS 7.x et versions ultérieures. Permet de stocker des modèles de styles et des alias réutilisables.
CONFIG_PRESETS
Définit les presets, les sound fonts, les pistes audio, les styles et les noms affichés pour les presets.
CONFIG_PROP
Définit le comportement du prop et les commandes personnalisées.
8. Principaux paramètres de configuration
#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
| Paramètre | Fonction |
|---|---|
NUM_BLADES
|
Nombre de définitions de lame. |
NUM_BUTTONS
|
Nombre de boutons physiques configurés. |
VOLUME
|
Niveau sonore par défaut. |
maxLedsPerStrip
|
Nombre maximal de LED par bande. |
CLASH_THRESHOLD_G
|
Seuil de détection des impacts. Des valeurs plus faibles rendent généralement la détection des clashes plus sensible. |
ENABLE_AUDIO
|
Active les fonctions audio. |
ENABLE_MOTION
|
Active la détection des mouvements. |
ENABLE_WS2811
|
Active la gestion des LED WS2811/LED adressables utilisée par les configurations NeoPixel courantes. |
ENABLE_SD
|
Active la prise en charge de la carte SD. |
SAVE_STATE
|
Active la sauvegarde persistante des paramètres compatibles. |
9. Configuration de la lame (* Remarque : cette fonction n'est actuellement pas prise en charge sur les sabres SUPERNEOX.)
La configuration de la lame définit le matériel LED physique, la détection de la lame et son comportement logique.
9.1 Exemple avec une seule lame
BladeConfig blades[] = {
{
0,
WS2811BladePtr<144>(),
CONFIGARRAY(presets)
}
};
La première valeur correspond à la résistance d'identification de la lame utilisée pour sa détection. Une valeur de 0 est généralement utilisée lorsqu'aucune sélection par identification de lame n'est nécessaire.
9.2 Configurations avec plusieurs lames
Plusieurs entrées BladeConfig permettent de sélectionner
différentes configurations physiques grâce à l'identification de la lame.
9.3 SubBlade
SubBlade permet de diviser les LED adressables en plusieurs
zones logiques, par exemple pour les quillons, les chambres de cristal
ou les pixels auxiliaires.
10. Configuration des presets
Un preset regroupe :
- Sound font
- Piste audio
- Blade Style
- Nom du preset
Preset presets[] = {
{
"TeensySF",
"tracks/theme.wav",
StyleNormalPtr<CYAN>(),
"cyan"
}
};
| Élément | Signification |
|---|---|
| Sound font | Répertoire contenant les fichiers audio. |
| Track | Chemin vers le fichier musical. |
| Style | Comportement visuel de la lame. |
| Name | Nom affiché pour le preset. |
11. Gestion de la carte SD et des Sound Fonts
La carte microSD stocke les ressources utilisées par ProffieOS pendant l'exécution, notamment les sound fonts, les pistes audio, les ressources de configuration et, selon la configuration, les ressources d'affichage.
11.1 Structure recommandée de la carte SD
SD CARD
├── SOUND/
│
├── TRACKS/
│
├── CONFIG/
│
├── FONT DIRECTORY 1/
│ ├── hum.wav
│ ├── swingl.wav
│ ├── swingh.wav
│ ├── clash.wav
│ └── blst.wav
│
└── FONT DIRECTORY 2/
11.2 Répertoire d'une Sound Font
Chaque sound font est stockée dans son propre répertoire. Le nom du répertoire est référencé dans la configuration du preset.
Exemple :
Preset presets[] = {
{
"DarkLord",
"tracks/theme.wav",
StyleNormalPtr<RED>(),
"Dark Lord"
}
};
13. Débogage avec le Moniteur série
Le manuel fourni documente les commandes couramment utilisées suivantes :
| Commande | Fonction |
|---|---|
battery_voltage
|
Lire la tension de la batterie. |
get_volume
|
Lire le volume actuel. |
pow
|
Basculer l'alimentation. |
on
|
Allumer le sabre. |
off
|
Éteindre le sabre. |
set_volume 500
|
Définir le volume. |
play
|
Lire/arrêter la piste audio par défaut. |
force
|
Déclencher le son Force. |
drag
|
Déclencher le son Drag. |
blast
|
Déclencher le son Blaster. |
13.1 Activer la sortie série
#define ENABLE_SERIAL
13.2 Informations de diagnostic courantes
- Messages de démarrage
- Détection de la carte SD
- Initialisation de la lame
- Chargement des presets
- État du capteur de mouvement
- Événements liés aux boutons
14. Blade Styles
Les Blade Styles constituent le mécanisme principal utilisé par ProffieOS pour définir le comportement visuel de la lame. Ils permettent notamment de contrôler : la couleur, les animations, l'allumage, l'extinction, la réaction aux impacts, les effets de tirs de blaster, le lockup, le drag, les transitions et d'autres effets interactifs.
14.1 Exemple de style simple
StyleNormalPtr<RED>()
Les styles simples définissent l'apparence par défaut de la lame. Les configurations plus avancées utilisent des fonctions de style imbriquées et différentes couches d'effets afin de créer des animations complexes.
14.2 Structure StylePtr
StylePtr<
InOutHelper<GREEN, 300, 800, BLACK>()
>()
StylePtr est couramment utilisé pour attribuer un Blade Style
complet. Les effets complexes sont créés en combinant plusieurs fonctions,
couches et transitions.
14.3 Couleurs RGB
Rgb<255, 50, 0>
Les valeurs des canaux RGB sont comprises entre 0 et 255.
Des couleurs nommées telles que
RED,
GREEN,
BLUE,
WHITE
et
CYAN
peuvent également être utilisées lorsqu'elles sont prises en charge.
14.4 Fonctions d'effets courantes
| Fonction | Description |
|---|---|
InOutHelper<base, extension, retraction, offColor>
|
Contrôle la durée et le comportement du déploiement et du retrait de la lame, y compris la couleur lorsque la lame est éteinte. |
AudioFlicker<A, B>
|
Crée un scintillement réactif au son entre deux couleurs afin de simuler une énergie instable. |
OnSpark<base, spark, duration>
|
Ajoute un effet d'étincelle lors de l'allumage de la lame. |
SimpleClash<base, clash, duration>
|
Crée un flash lorsque la lame détecte un impact. |
Lockup<base, lockup>
|
Définit le comportement continu de la lame pendant un lockup ainsi que sa réponse en couleur. |
Blast<base, blast>
|
Définit les effets de flash liés à la déviation d'un tir de blaster ainsi que les couleurs correspondantes. |
14.5 Composition avancée des styles
Les utilisateurs avancés peuvent combiner fonctions, couches, transitions et effets aléatoires afin de créer des comportements de lame entièrement personnalisés.
Layers<
RED,
AudioFlicker<RED,WHITE>,
Clash
>()
14.6 Lames multiples / Pixels auxiliaires
Un preset peut contenir plusieurs Blade Styles correspondant à plusieurs définitions logiques de lame. Cela permet de définir indépendamment le style de la lame principale, des quillons, des chambres de cristal, des bandes de pixels auxiliaires ou d'autres groupes de pixels configurés.
14.7 Ressources pour modifier les styles
- ProffieOS Homepage - Remarque : utilisez ProffieOS 5.9 pour les sabres SUPERNEOX.
- Fichier de configuration SD
- Documentation ProffieOS
- Forum d'assistance The Crucible
- Ressources de styles Fett263
- Documentation de configuration des lames
15. Intégration avancée
15.1 Écrans
Les modules d'affichage compatibles peuvent fournir notamment :
- Informations sur la batterie
- Sélection des presets
- Navigation dans les menus
- État du système en temps réel
15.2 Périphériques supplémentaires
Les configurations avancées peuvent intégrer :
- LED auxiliaires
- Chambres de cristal
- Éclairage des quillons
- Capteurs personnalisés
- Contrôleurs externes
15.3 Workflow recommandé pour la production
- Figer la révision matérielle.
- Archiver le schéma de câblage.
- Archiver la version de ProffieOS.
- Archiver le fichier de configuration.
- Archiver l'intégralité du contenu de la carte SD.
- Tester le firmware sur un matériel représentatif.
- Publier le package destiné à la production.
16. Dépannage
| Problème | Cause possible | Solution |
|---|---|---|
| Carte non détectée | Problème de pilote, câble, bootloader ou port. | Vérifiez la connexion USB, les pilotes et la sélection du port dans Arduino IDE. |
| Échec de compilation | Version incorrecte de ProffieOS, configuration manquante ou erreur de syntaxe. |
Vérifiez CONFIG_FILE,
la sélection de la carte
et la syntaxe du fichier de configuration.
|
| Aucun son | Fichiers SD manquants, répertoire de sound font incorrect ou réglage du volume. | Vérifiez la structure de la carte SD, les noms des sound fonts et la configuration audio. |
| La lame ne s'allume pas | Configuration de lame incorrecte ou problème de câblage. |
Vérifiez BladeConfig,
la connexion des données LED
et le circuit d'alimentation.
|
| Les effets de mouvement ne fonctionnent pas | Prise en charge du mouvement désactivée ou problème avec le capteur. |
Vérifiez ENABLE_MOTION
et la connexion matérielle du capteur.
|
17. Références pour les développeurs
- Guide officiel d'installation
- Dépôt GitHub ProffieOS
- Code source de configuration de la carte V2
- Page officielle ProffieOS
- ProffieOS.ino / point d'entrée CONFIG_FILE
Remarque :
ProffieBoard et ProffieOS sont des projets open source.
Ce document constitue une référence technique élaborée à partir
du manuel fourni et de la documentation publique de ProffieOS.
Il ne s'agit pas d'un document officiel du projet ProffieOS.
Validez toujours les builds destinés à la production avec la version
exacte de ProffieOS et la révision matérielle effectivement déployées.

