Guía para desarrolladores de ProffiePlaca V2 / ProffieOS
Referencia técnica para desarrolladores de firmware, ingenieros de configuración, técnicos de producto e integradores avanzados que trabajan con sables de luz SUPERNEOX basados en ProffiePlaca V2/V2.2 y ProffieOS.
1. Alcance y versiones
El manual proporcionado documenta un flujo de trabajo para ProffiePlaca V2 basado en Arduino IDE, ProffieOS, un config.h archivo, el contenido de la tarjeta SD, los presets y los Blade Estilos.
La documentación actual de ProffieOS mantiene el mismo flujo de trabajo fundamental: instalar el soporte de Arduino, obtener ProffieOS, crear una configuración específica para la placa, seleccionarla mediante CONFIG_FILE, compilar y cargar el firmware y, a continuación, iterar sobre la configuración.
Fuentes de referencia prioritarias
- Código/configuración específicos de la placa: El árbol de código fuente de ProffieOS y la configuración de la placa para el objetivo exacto.
- Documentación oficial actual: Documentación de ProffieOS.
- Referencia de la placa: Documentación de referencia de ProffiePlaca V2.
- Historial del repositorio: Commits de GitHub y notas de versión cuando el comportamiento difiera entre versiones.
2. Arquitectura del firmware y modelo de fuente de verdad
Un sable de luz SUPERNEOX basado en Proffie debe tratarse como un sistema por capas: cableado del hardware → configuración específica de la placa → definiciones de funciones de ProffieOS → definiciones de hojas → presets/estilos/props → recursos de la tarjeta SD.
Un fallo en una capa puede manifestarse como un fallo en otra, por lo que el diagnóstico debe comenzar por la capa de dependencias más baja y avanzar hacia arriba.
Capa de hardware
Batería, altavoz, botones, datos/alimentación NeoPixel, ID de la hoja, tarjeta SD, pantalla, LED de acento y periféricos opcionales.
Capa de compilación
Arduino IDE, paquete/plugin de la placa, árbol de código fuente de ProffieOS y CONFIG_FILE.
Capa de ejecución
BladeConfig, presets, estilos, props, comportamiento de movimiento/audio, menús y estado persistente.
Capa de recursos
Sound fonts, pistas, archivos de configuración, imágenes, recursos de pantalla y recursos de ejecución de la tarjeta SD.
3. Hardware de ProffiePlaca V2
ProffiePlaca V2 es un controlador de código abierto para sables de luz, diseñado para una personalización avanzada del firmware. Proporciona conexiones para alimentación, botones, LED direccionables, pantallas, sensores de movimiento, depuración y periféricos adicionales.
3.1 Hardware principal
- Controlador ProffiePlaca V2/V2.2
- Batería de ion-litio de 3,7 V
- Altavoz
- Hoja direccionable o hardware LED compatible
- Conexión Micro-USB para desarrollo
- Tarjeta microSD para sound fonts y recursos
3.2 Pines importantes
| Conexión | Función |
|---|---|
BATT+ |
Entrada de batería para la placa. |
BATT- |
Retorno de alimentación de los LED y ruta de retorno de alta corriente. |
GND |
Conexión a masa de la electrónica de la placa. |
Button 1/2/3 |
Entradas de los botones físicos. |
Data 1 / ID |
Medición del ID de la hoja y/o primera salida de datos de LED direccionables. |
Data 2 / Data 3 |
Salidas adicionales de LED direccionables. |
Data4 / DAC |
Salida de datos adicional o DAC de audio, según la configuración. |
LED 1-6 |
Conexiones para los canales LED compatibles. |
SDA / SCL |
Comunicación I²C para sensores de movimiento y periféricos. |
SWDIO / SWDCLK |
Interfaz de depuración ST-LINK. |
3.3 Consideraciones sobre el cableado
La mayoría de las conexiones de señal pueden utilizar cables de menor sección, pero las líneas de alimentación de la batería y los LED deben dimensionarse en función de la corriente prevista.
4. Entorno de desarrollo
4.1 Software necesario
- Arduino IDE
- Plugin de Arduino para ProffiePlaca
- Paquete de código fuente de ProffieOS
- Herramientas de controladores USB cuando sean necesarias
- Editor de texto plano/código para editar la configuración
4.2 Selección de la placa en Arduino
Para ProffiePlaca V2, selecciona el objetivo de placa correspondiente:
Tools → Placa → Proffieboard V2
| Ajuste de Arduino | Valor recomendado |
|---|---|
| Placa | Proffieboard V2 |
| Tipo de USB | Serie + WebUSB + almacenamiento masivo cuando sea compatible |
| DOSFS | SDCARD (SPI) |
| Velocidad de CPU | 80 MHz |
| Optimización | Smallest Code, Fast, Faster o Fastest, según la configuración y los requisitos de recursos |
| Puerto | Puerto COM de la placa conectada |
5. Instalación de ProffieOS
5.1 Obtener ProffieOS
Para garantizar una configuración y compilación estables del firmware de los sables de luz SUPERNEOX, utiliza ProffieOS 5.9. Después de descargarlo, extrae los archivos de código fuente de ProffieOS en una carpeta de usuario con permisos de escritura, como Documentos o el Escritorio. No guardes el código fuente en ubicaciones protegidas, como Program Files, ni en otros directorios gestionados por el sistema, ya que los permisos de Windows pueden restringir el acceso a los archivos y provocar problemas de compilación.
El árbol de código fuente contiene el sketch principal de Arduino:
ProffieOS/ProffieOS.ino
Los directorios habituales incluyen:
config/
blades/
styles/
props/
sound/
motion/
functions/
5.2 Abrir el sketch de Arduino
Abrir:
ProffieOS/ProffieOS.ino
5.3 Utilizar el configurador V2
La documentación oficial de ProffieOS recomienda utilizar el configurador diseñado para tu versión específica de ProffiePlaca. Para los sables de luz SUPERNEOX equipados con ProffiePlaca V2.x, utiliza el siguiente configurador: Configurador de ProffiePlaca V2.x
Configura el código generado de acuerdo con el cableado real del sable, sus componentes de hardware y las funciones instaladas. El configurador proporciona un punto de partida fiable, pero las configuraciones avanzadas o personalizadas pueden requerir edición manual adicional después de la generación.
6. Crear y seleccionar un archivo de configuración
6.1 Crear un archivo de configuración
- Abre el directorio
config/de ProffieOS. - Copia una plantilla de configuración existente.
- Cámbiale el nombre por uno descriptivo.
- Edita la configuración con un editor de texto plano.
- Guarda el archivo.
6.2 Seleccionar la configuración mediante CONFIG_FILE
Abre ProffieOS.ino y activa exactamente un archivo de configuración:
// #define CONFIG_FILE "config/example.h"
#define CONFIG_FILE "config/my_saber_config.h"
Todas las definiciones de configuración que no utilices deben permanecer comentadas.
7. Comprender las secciones de configuración
Un archivo de configuración de ProffieOS contiene varias secciones que se procesan durante la compilación.
CONFIG_TOP
Definiciones globales de hardware, interruptores de funciones, número de hojas, botones, audio, movimiento y compatibilidad con SD.
CONFIG_STYLES
Disponible en ProffieOS 7.x y posteriores. Almacena plantillas de estilos reutilizables y alias.
CONFIG_PRESETS
Define presets, sound fonts, pistas, estilos y nombres de presets.
CONFIG_PROP
Define el comportamiento de los props y los controles personalizados.
8. Parámetros principales de configuración
#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
| Parámetro | Función |
|---|---|
NUM_BLADES |
Número de definiciones de hojas. |
NUM_BUTTONS |
Botones físicos configurados. |
VOLUME |
Nivel de volumen predeterminado. |
maxLedsPerStrip |
Número máximo de LED. |
CLASH_THRESHOLD_G |
Umbral de impacto. Los valores más bajos suelen hacer que la detección de impactos sea más sensible. |
ENABLE_AUDIO |
Activa las funciones de audio. |
ENABLE_MOTION |
Activa la detección de movimiento. |
ENABLE_WS2811 |
Activa la funcionalidad WS2811/LED direccionable utilizada por las configuraciones NeoPixel habituales. |
ENABLE_SD |
Activa la compatibilidad con tarjetas SD. |
SAVE_STATE |
Activa el almacenamiento persistente del estado para los ajustes compatibles. |
9. Configuración de la hoja (* Nota: Actualmente no compatible con los sables de luz SUPERNEOX.)
La configuración de la hoja define el hardware LED físico, la detección de la hoja y su comportamiento lógico.
9.1 Ejemplo de una sola hoja
BladeConfig blades[] = {
{
0,
WS2811BladePtr<144>(),
CONFIGARRAY(presets)
}
};
El primer valor es la resistencia del ID de la hoja utilizada para su detección. Normalmente se utiliza el valor 0 cuando no se requiere seleccionar un ID de hoja.
9.2 Configuraciones de varias hojas
Varias entradas BladeConfig permiten seleccionar diferentes configuraciones físicas mediante la identificación de la hoja.
9.3 SubBlade
SubBlade permite dividir los LED direccionables en varias zonas lógicas, como guardas laterales, cámaras de cristal y píxeles de acento.
10. Configuración de presets
Un preset combina:
- Sound font
- Pista de música
- Blade Estilo
- Nombre del preset
Preset presets[] = {
{
"TeensySF",
"tracks/theme.wav",
EstiloNormalPtr<CYAN>(),
"cyan"
}
};
| Campo | Significado |
|---|---|
| Sound font | Directorio que contiene los archivos de sonido. |
| Pista | Ruta del archivo de música. |
| Estilo | Comportamiento visual de la hoja. |
| Nombre | Nombre del preset mostrado. |
11. Gestión de la tarjeta SD y los sound fonts
La tarjeta microSD almacena los recursos de ejecución utilizados por ProffieOS, incluidos sound fonts, pistas, recursos de configuración y recursos de pantalla opcionales.
11.1 Estructura recomendada de la tarjeta SD
SD CARD
├── SOUND/
│
├── TRACKS/
│
├── CONFIG/
│
├── FONT DIRECTORY 1/
│ ├── hum.wav
│ ├── swingl.wav
│ ├── swingh.wav
│ ├── clash.wav
│ └── blst.wav
│
└── FONT DIRECTORY 2/
11.2 Directorio de sound fonts
Cada sound font se almacena dentro de un directorio independiente. El nombre del directorio se referencia desde la configuración del preset.
Ejemplo:
Preset presets[] = {
{
"DarkLord",
"tracks/theme.wav",
EstiloNormalPtr<RED>(),
"Dark Lord"
}
};
13. Depuración mediante el monitor serie
El manual proporcionado documenta los siguientes comandos de uso habitual:
| Comando | Función |
|---|---|
battery_voltage |
Leer el voltaje de la batería. |
get_volume |
Leer el volumen actual. |
pow |
Alternar el encendido. |
on |
Encender. |
off |
Apagar. |
set_volume 500 |
Establecer el volumen. |
play |
Reproducir/detener la pista predeterminada. |
force |
Activar el sonido Force. |
drag |
Activar el sonido de Arrastre. |
blast |
Activar el sonido de Blaster. |
13.1 Activar la salida serie
#define ENABLE_SERIAL
13.2 Información de depuración habitual
- Mensajes de arranque
- Detección de la tarjeta SD
- Inicialización de la hoja
- Carga de presets
- Estado del sensor de movimiento
- Eventos de botones
14. Blade Estilos
Los Blade Estilos son el mecanismo principal que utiliza ProffieOS para definir el comportamiento visual de la hoja. Controlan el color, la animación, el encendido, la retracción, la respuesta a impactos, los efectos de bláster, el lockup, el drag, las transiciones y otros efectos interactivos.
14.1 Ejemplo de estilo básico
EstiloNormalPtr<RED>()
Los estilos básicos definen la apariencia predeterminada de una hoja. Las configuraciones más avanzadas utilizan funciones de estilo anidadas y capas de efectos para crear animaciones complejas.
14.2 Estructura de EstiloPtr
EstiloPtr<
InOutHelper<GREEN, 300, 800, BLACK>()
>()
EstiloPtr se utiliza habitualmente para asignar un Blade Estilo completo. Los efectos complejos se crean combinando varias funciones, capas y transiciones.
14.3 Colores RGB
Rgb<255, 50, 0>
Los valores de los canales RGB van de 0 a 255. También pueden utilizarse colores con nombre, como RED, GREEN, BLUE, WHITE, and CYAN cuando sean compatibles.
14.4 Funciones de efectos habituales
| Función | Descripción |
|---|---|
InOutHelper<base, extension, retraction, offColor> |
Controla la temporización de extensión y retracción de la hoja, incluido el color en estado apagado. |
AudioFlicker<A, B> |
Crea un parpadeo sensible al audio entre dos colores para simular inestabilidad energética. |
OnSpark<base, spark, duration> |
Añade un efecto de animación de chispas al encender la hoja. |
SimpleImpacto<base, clash, duration> |
Crea un efecto de destello cuando la hoja detecta un impacto. |
Bloqueo<base, lockup> |
Define el comportamiento continuo del lockup de la hoja y su respuesta de color. |
Blast<base, blast> |
Define los efectos de destello de desvío de bláster y sus colores asociados. |
14.5 Composición avanzada de estilos
Los usuarios avanzados pueden combinar funciones, capas, transiciones y efectos aleatorios para crear un comportamiento de hoja totalmente personalizado.
Layers<
RED,
AudioFlicker<RED,WHITE>,
Impacto
>()
14.6 Varias hojas / píxeles de acento
Un preset puede contener varios Blade Estilos correspondientes a distintas definiciones lógicas de hojas. Esto permite utilizar estilos independientes para una hoja principal, guardas laterales, cámaras de cristal, tiras de acento y otros grupos de píxeles configurados.
14.7 Recursos para editar estilos
- Página principal de ProffieOS - Nota: Utiliza ProffieOS 5.9 para los sables de luz SUPERNEOX.
- Archivo de configuración de la SD
- ProffieOS Documentation
- Foro de soporte The Crucible
- Recursos de estilos de Fett263
- Documentación de configuración de hojas
15. Integración avanzada
15.1 Pantallas
Los módulos de pantalla compatibles pueden proporcionar:
- Información de la batería
- Selección de presets
- Navegación por el menú
- Estado durante la ejecución
15.2 Periféricos adicionales
Las configuraciones avanzadas pueden integrar:
- LED de acento
- Cámaras de cristal
- Iluminación de la guarda lateral
- Sensores personalizados
- Controladores externos
15.3 Flujo de trabajo recomendado para producción
- Congela la revisión del hardware.
- Archiva el esquema de cableado.
- Archiva la versión de ProffieOS.
- Archiva el archivo de configuración.
- Archiva el contenido de la tarjeta SD.
- Prueba el firmware en hardware representativo.
- Publica el paquete de producción.
16. Solución de problemas
| Problema | Causa posible | Solución |
|---|---|---|
| La placa no se detecta | Problemaa con el controlador, el cable, el bootloader o el puerto. | Comprueba la conexión USB, los controladores y el puerto seleccionado en Arduino. |
| Error de compilación | Versión incorrecta de ProffieOS, configuración ausente o error de sintaxis. | Verifica CONFIG_FILE, la selección de la placa y la sintaxis de la configuración. |
| Sin sonido | Archivos de la SD ausentes, directorio de sound font incorrecto o ajustes de volumen. | Comprueba la estructura de la SD, los nombres de los sound fonts y la configuración de audio. |
| La hoja no se ilumina | Configuración incorrecta de la hoja o problema de cableado. | Verifica BladeConfig, la conexión de datos de los LED y la línea de alimentación. |
| Los efectos de movimiento no están disponibles | Compatibilidad con movimiento desactivada o problema con el sensor. | Comprueba ENABLE_MOTION y la conexión del hardware. |
17. Referencias para desarrolladores
- Guía oficial de instalación
- Repositorio de ProffieOS en GitHub
- Código fuente de configuración de la placa V2
- Página oficial de ProffieOS
- ProffieOS.ino / punto de entrada CONFIG_FILE
Nota:
ProffiePlaca y ProffieOS son proyectos de código abierto. Este documento es una referencia técnica elaborada a partir del manual proporcionado y de la documentación pública de ProffieOS. No es un documento oficial del proyecto ProffieOS.
Valida siempre las compilaciones de producción con la versión exacta de ProffieOS y la revisión de hardware que se vayan a desplegar.

