Centre d'aide développeurs SUPERNEOX

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.

Profil de la documentation : Français Développeur / Technique ProffieBoard V2/V2.2 ProffieOS

Documentation dépendante de la version. ProffieOS fait l'objet d'un développement continu. La syntaxe de configuration, les props, les styles, les menus, les commandes série et la prise en charge matérielle peuvent évoluer d'une version à l'autre. Pour chaque compilation, considérez le code source exact de ProffieOS ainsi que la documentation officielle correspondant à cette version comme les références définitives.

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é

  1. Code source / configuration spécifique à la carte : le code source de ProffieOS et la configuration correspondant exactement au matériel cible.
  2. Documentation officielle à jour : documentation ProffieOS.
  3. Référence matérielle : documentation de référence du ProffieBoard V2.
  4. 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.

Bonne pratique recommandée : Pour chaque révision de sabre destinée à la production, archivez la version exacte de ProffieOS ou le commit utilisé, le fichier de configuration complet, le package de ressources de la carte SD, la version du câblage ainsi qu'une compilation fonctionnelle validée.

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.
Attention à l'alimentation et à la polarité : La protection contre l'inversion de polarité protège la carte, mais les composants NeoPixel connectés peuvent toujours être endommagés en cas de polarité de batterie incorrecte.

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

  1. Ouvrez le répertoire config/ de ProffieOS.
  2. Copiez un modèle de configuration existant.
  3. Renommez-le avec un nom explicite.
  4. Modifiez la configuration avec un éditeur de texte brut.
  5. Enregistrez le fichier.
N'utilisez pas Microsoft Word. Les fichiers de configuration sont du code source et doivent rester au format texte brut.

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

};
Le nom des fichiers est important. ProffieOS recherche des noms de fichiers audio précis. Un nom incorrect ou un fichier manquant peut entraîner une absence de son ou la disparition de certains effets.

12. Boutons et Props

Les boutons définissent les interactions avec l'utilisateur. Le système de props interprète les combinaisons de boutons et les convertit en actions du sabre.

12.1 Actions courantes

Action Commande habituelle
Allumage Pression brève sur le bouton Power/Activation.
Extinction de la lame Pression brève sur le bouton Power/Activation lorsque la lame est allumée.
Allumage silencieux Double pression sur le bouton Power.
Preset suivant Lame éteinte : pression brève sur AUX.
Preset précédent Maintenir AUX, puis appuyer sur Power.
Clash Frapper la lame lorsqu'elle est allumée.
Lockup Maintenir Power, puis déclencher un clash.
Drag Utiliser le geste de Lockup en orientant la pointe du sabre vers le bas.
Effet Force Appui long sur AUX.
Blocage de tir Pression brève sur AUX lorsque la lame est allumée.
Changement de couleur Maintenir AUX et appuyer rapidement sur Power, puis faire pivoter le manche.
Volume / navigation dans les menus Combinaisons d'appuis longs permettant d'accéder aux réglages et aux paramètres.

Le comportement exact dépend du prop sélectionné et de la configuration des boutons. ProffieOS propose plusieurs props pour sabres laser, notamment des implémentations standard et avancées de la gestion des boutons et des fonctionnalités. Ne partez pas du principe que tous les props actuels utilisent la même affectation des boutons.

12.2 Configuration du Prop

Le prop sélectionné définit notamment :

  • Le temps de détection des appuis sur les boutons
  • L'interprétation des gestes
  • Le comportement des menus
  • Les fonctions spéciales

#include "props/saber.h"

Des props personnalisés peuvent être créés pour du matériel spécifique ou des commandes propres à un produit.

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
Workflow recommandé : Lors du diagnostic d'un sabre destiné à la production, enregistrez l'intégralité du journal de démarrage série avant de modifier les paramètres du firmware.

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

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

  1. Figer la révision matérielle.
  2. Archiver le schéma de câblage.
  3. Archiver la version de ProffieOS.
  4. Archiver le fichier de configuration.
  5. Archiver l'intégralité du contenu de la carte SD.
  6. Tester le firmware sur un matériel représentatif.
  7. 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.
Avant de reflasher le firmware : Sauvegardez toujours la configuration fonctionnelle ainsi que le contenu de la carte SD. Une mise à jour du firmware peut écraser certains comportements personnalisés.

17. Références pour les développeurs

Note technique : Pour le développement de sabres destinés à la production, conservez sous contrôle de version le firmware, la configuration, les révisions matérielles et les ressources de la carte SD.

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.