SUPERNEOX Developer Help Center

ProffieBoard V2.2 User Guide

Learn how to use, configure, and customize your SUPERNEOX ProffieBoard V2.2 lightsaber with ProffieOS 5.9. This guide covers essential settings and practical customization for saber owners.
For advanced programming, firmware configuration, and developer-level customization, see the ProffieBoard V2.2 Developer Guide.

ProffieBoard V2.2 ProffieOS 5.9 Firmware Configuration Blade Styles
Version Notice: This guide is intended primarily for ProffieOS 5.9 and ProffieBoard V2.x. Configuration syntax and available features may differ between ProffieOS releases. Always verify version-specific behavior against the official ProffieOS documentation and source code.

1. Button Controls

Button behavior is determined by the ProffieOS configuration and the number of buttons defined for the saber. The controls below assume a configuration with at least one activation button and may include an AUX button.

Function Button Operation
Blade Ignition / Retraction Briefly press the Activation / Power button to turn the saber on or off.
Turn On Muted Double-click the Power button.
Next Preset With the blade off, briefly press the AUX button.
Previous Preset Hold the AUX button and press the Activation button.
Clash While the blade is on, strike the blade.
Lockup While the blade is on, hold the Activation button and trigger a clash. Release the Activation button to end Lockup.
Drag Similar to Lockup. Point the saber mostly downward before holding the Activation button and triggering the effect.
Force Long-press the AUX button.
Start Soundtrack Long-press the Activation button.
Blaster Block While the blade is on, briefly press the AUX button.
Color Change Mode While the blade is on, hold the AUX button and quickly press the Activation button. After the confirmation sound, rotate the hilt to change colors. To exit Color Change Mode, hold the Activation button until the confirmation sound is heard.
Developer Note: Button behavior depends on the configured button definitions and ProffieOS prop/button configuration. If you are developing a custom button layout, verify the active configuration before troubleshooting button behavior.

2. Serial Monitor Commands

ProffieOS provides serial commands that can be used for testing, diagnostics, configuration checks, audio testing, and preset navigation.

Command Description
battery_voltage Returns the current battery voltage.
get_volume Returns the current volume value.
pow Turns the saber on or off.
on Turns the saber on.
off Turns the saber off.
set_volume <0-3000> Sets the volume value.
Example: set_volume 500
play Plays the default preset soundtrack. If the track is already playing, this command stops it.
play_track tracks/<track name>.wav Plays a specific track from the tracks folder.
Example: play_track tracks/venus.wav
stop_track tracks/<track name>.wav Stops a specific track.
force Plays the Force sound effect.
drag Plays the Drag sound effect.
blast Plays the Blaster sound effect.
lock Plays the Lockup sound effect.
clash Plays the Clash sound effect.
reset Reboots the ProffieBoard.
n Switches to the next preset.
p Switches to the previous preset.
list_presets Lists all available presets.
sdtest Tests SD card speed.
scanid Reports the detected Blade ID resistance.

3. Software Installation & Setup

Firmware development and uploading for ProffieBoard requires the Arduino IDE together with the ProffieBoard Arduino plugin and the appropriate USB drivers.

Recommended Environment: Use a stable release of Arduino IDE. For SUPERNEOX ProffieBoard V2.2 sabers, this guide is written around a ProffieOS 5.9 workflow.

3.1 Required Software

Arduino IDE

Used to edit, compile, and upload ProffieOS firmware.

ProffieBoard Plugin

Adds ProffieBoard support and board-specific upload options to Arduino IDE.

Zadig

Used when the required USB driver configuration is needed for firmware programming.

USB Data Cable

A data-capable Micro-USB cable is required. Charge-only cables cannot be used for firmware programming.

3.2 Arduino IDE Installation

Install the latest stable version of Arduino IDE . Do not use a Beta release.

Arduino IDE

On Windows, installing Arduino IDE as a Windows Store application is not recommended. The application may be installed into a protected directory that prevents additional plugins or software from being installed correctly.

COM Port Troubleshooting: If ProffieBoard does not appear as an available COM port, try a different USB port, confirm that the cable supports data transfer, and consider testing an earlier stable Arduino IDE version.

3.3 Install the ProffieBoard Plugin and Zadig

Install the ProffieBoard Arduino plugin and Zadig according to their respective installation instructions.

ProffieBoard Arduino Plugin

3.4 Arduino IDE Board Settings

In Arduino IDE, select:

Tools → Board → Proffieboard V2
Setting Recommended Value
Board Proffieboard V2
USB Type Serial + Mass Storage (or + WebUSB)
CPU Speed 80 MHz
Optimize Smallest Code
or Fast / Faster / Fastest
DOSFS SDCARD (SPI)
Port The COM port assigned to the connected ProffieBoard

Connect the ProffieBoard to your computer using a USB data cable. The assigned COM port should become available under the Port menu.

4. Firmware Upload & Update

Step 1 — Download ProffieOS and SD Card Files

Download the ProffieOS firmware package and the corresponding SD card files.

For SUPERNEOX ProffieBoard V2.2 sabers, this developer guide uses ProffieOS 5.9 as the reference version.

ProffieOS 5.9

Extract:

ProffieOS-v5.9.zip

Extract the package to a normal working directory such as Documents or Desktop.

Important: Do not extract ProffieOS into the Arduino installation directory or any Windows Program Files directory.

The extracted structure should contain:

ProffieOS-v5.9/

└── ProffieOS/

Do not rename or move the folders or files inside the ProffieOS directory.

Step 2 — Install the SD Card Content

ProffieOS SD Card Content

Extract:

ProffieOS_SD_Card.zip

Copy all files from the extracted ProffieOS_SD_Card folder to the root directory of the ProffieBoard microSD card.

Windows File Extension Settings

Enable File name extensions in Windows File Explorer so that file extensions such as .h are visible.

Do not create duplicate extensions. If Windows is hiding the existing extension, do not manually add another .h extension to the configuration file.

Step 3 — Create the Configuration File

Open:

ProffieOS/config/

Create your configuration file inside this directory.

The recommended workflow is to copy the appropriate default configuration file, rename the copy, and then replace its contents with the configuration generated for your saber.

For ProffieBoard V2.x, use the official ProffieBoard V2.x Configurator .

Step 4 — Select the Configuration File

Open:

ProffieOS/ProffieOS.ino

Locate the CONFIG_FILE definition.

#define CONFIG_FILE "config/my_saber_config.h"

If multiple configuration files exist in the config directory, only the configuration file you want to compile should be active.

Important: Only one CONFIG_FILE definition should be active at a time.

Multiple saber configurations can remain in the same config directory. Switch between them by changing the active CONFIG_FILE.

Step 5 — Connect the Board

Connect the ProffieBoard to the computer using a data-transfer Micro-USB cable.

USB Cable Warning: A charge-only USB cable cannot be used for firmware programming.

Step 6 — Compile and Upload

  1. Open ProffieOS.ino in Arduino IDE.
  2. Verify that the correct ProffieBoard V2 board and COM port are selected.
  3. Confirm that the correct CONFIG_FILE is active.
  4. Click Upload.
  5. Wait for compilation and uploading to finish.

After a successful upload, the progress indicator should reach 100%.

If a speaker is connected, the ProffieBoard should play its boot sound after a successful upload.

If Serial + Mass Storage is selected and the ProffieBoard appears as a removable drive, safely eject the drive before disconnecting the USB cable.

Firmware Upload Complete: The new ProffieOS firmware is now installed on the board.

Upload Troubleshooting

If the upload fails, check the following common causes:

  1. There may be a syntax or configuration error in your configuration header file.
  2. The CONFIG_FILE name may be incorrect.
  3. The configuration file may not be located in the ProffieOS/config/ directory.
  4. The Windows username or working directory may contain non-Latin characters that cause toolchain problems.
  5. The selected board, USB type, CPU speed, or COM port may be incorrect.

5. SD Card Content

ProffieOS uses the saber's microSD card to store sound fonts, configuration-related files, and music tracks.

Sound Fonts

Copy supported sound font folders to the root directory of the microSD card.

The original configuration supports common sound font structures including:

Plecter

Plecter-compatible sound font structures.

NEC

NEC-compatible sound font structures.

SmoothSwing

SmoothSwing-compatible sound font structures.

When using a supported sound font structure, WAV file names normally do not need to be changed.

Music Tracks

Place music tracks inside:

tracks/

Example:

tracks/venus.wav

tracks/mars.wav
tracks/mercury.wav

File and Folder Naming

For best compatibility, use Latin characters and simple file names for sound font folders and music tracks.

Avoid unnecessary special characters such as:

? , . | \ } { [ / -

Each sound font folder should contain the required configuration files, such as:

config.ini

smoothsw.ini
Missing Files: If required files are missing, copy the corresponding files from a known-working default ProffieBoard sound font rather than creating arbitrary replacements.

6. Configuration & Parameters

ProffieBoard configuration is primarily controlled through a C++ configuration header file located in:

ProffieOS/config/

The configuration defines the board setup, blade count, buttons, audio settings, motion features, LED configuration, clash sensitivity, presets, and Blade Styles.

ProffieBoard V2 Configuration

Basic ProffieBoard V2 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

Parameter Reference

Parameter Purpose
NUM_BLADES Defines the number of blade configurations used.
NUM_BUTTONS Defines the number of configured buttons. The referenced configuration supports 1–3 buttons.
VOLUME Sets the initial volume value. The documented range is 0–3000.
maxLedsPerStrip Defines the maximum number of LEDs configured for the addressable LED strip.
CLASH_THRESHOLD_G Defines clash sensitivity. Lower values generally make clash detection more sensitive; higher values make it less sensitive.
ENABLE_AUDIO Enables audio functionality.
ENABLE_MOTION Enables motion sensing.
ENABLE_WS2811 Enables WS2811 / addressable LED functionality.
ENABLE_SD Enables SD card functionality.
SAVE_STATE Allows the board to save state information such as the selected volume, preset, and blade color.

Clash Sensitivity

A documented starting value is:

#define CLASH_THRESHOLD_G 1.0

Lower values generally produce more sensitive clash detection, while higher values generally produce less sensitive detection.

Tuning Tip: Adjust clash sensitivity in small increments. Excessively sensitive settings may cause false clashes during normal movement, while insensitive settings may prevent genuine clashes from being detected.

Editing the Configuration

Use a plain-text editor or code editor to modify C++ configuration files.

Do not use Microsoft Word. Word processors may insert formatting characters or modify the structure of source files.

After changing the configuration:

  1. Save the configuration file.
  2. Open ProffieOS.ino.
  3. Verify that the correct CONFIG_FILE is active.
  4. Compile the firmware.
  5. Upload the firmware to the ProffieBoard.

7. Preset Configuration

Presets define the sound font, soundtrack, Blade Style, and human-readable preset name used by the saber.

Basic Preset Structure

A typical preset is defined inside the CONFIG_PRESETS section:

#ifdef CONFIG_PRESETS

Preset presets[] = {

{
"TeensySF",
"tracks/venus.wav",
StyleNormalPtr(),
"cyan"
}

};

#endif

Preset Components

Component Description
Sound Font Folder Name of the sound font folder stored on the SD card.
Track Name Music track path, normally inside the tracks directory.
Blade Style Defines the visual behavior and effects of the blade.
Preset Name Human-readable name used by the preset system.

Blade Configuration

Physical blade configuration is declared through a BladeConfig blades[] array.

This configuration associates the physical LED/blade hardware with the preset configuration.

BladeConfig blades[] = {

{
0,
WS281XBladePtr<
144,
bladePin,
Color8::GRB,
PowerPINS
>(),
CONFIGARRAY(presets)
},

};

8. Blade Styles

ProffieOS uses Blade Styles to define the visual behavior of the main blade and other configured LEDs.

Color

Define base and custom blade colors.

Motion Effects

Respond to movement, swings, and other motion input.

Impact Effects

Control Clash, Blaster, Lockup, and Drag effects.

Transitions

Control ignition, retraction, timing, and transition behavior.

Blade Style Capabilities

  • Base color
  • Color changes
  • Flickering
  • Clash flashes
  • Blaster effects
  • Lockup effects
  • Drag effects
  • Ignition effects
  • Retraction effects
  • Timing
  • Transition behavior

Blade Style Editor

The original developer documentation recommends using a Blade Style Editor to create and modify Blade Styles.

Useful reference resources include:

Blade Style Structure

A Blade Style is normally contained inside a StylePtr<...> expression.

Effects can be nested together, with each layer modifying or transforming the result of the underlying effect.

InOutHelper

InOutHelper<base color, 200, 300, Black>
Parameter Meaning
base color Main blade color.
200 Extension / ignition duration in milliseconds.
300 Retraction duration in milliseconds.
Black Blade color when retracted.

Color Definitions

Predefined color constants can be used for common blade colors:

WHITE
 

RED
GREEN
BLUE
PURPLE
CYAN
YELLOW
MAGENTA

Custom RGB colors can be defined using:

Rgb<R, G, B>

Example:

Rgb<255, 50, 0>

Each RGB channel uses a value from 0 to 255:

  • 0 = no output from that channel
  • 255 = maximum output from that channel

AudioFlicker

AudioFlicker<"A" color, "B" color>

AudioFlicker creates a flickering blade effect that responds to the saber's audio or hum.

A larger difference between the two colors generally produces a stronger visual variation.

OnSpark

OnSpark<base color, spark color, duration>

OnSpark adds a spark effect during blade ignition. The duration value is specified in milliseconds.

SimpleClash

SimpleClash<base color, clash color, 40>

Adds a Clash flash effect. The final parameter defines the effect duration in milliseconds.

Lockup

Lockup<base color, lockup color>

Adds the Lockup effect and defines the color behavior used during the effect.

Blast

Blast<base color, blast color>

Adds the Blaster effect and defines the color used for the effect.

Combined Blade Style Example

A more advanced Blade Style can combine multiple effects into a single nested expression.

A typical combined style may include:

  • Green base color
  • Audio flicker
  • Spark during ignition
  • Clash effect
  • Blaster effect
  • Lockup effect
  • Drag effect
  • Ignition timing
  • Retraction timing
Developer Note: Blade Style expressions can become very long and deeply nested. When debugging a complex style, test individual effects first and then combine them incrementally.

The completed Blade Style is inserted into the appropriate StylePtr<...> container within the preset.

9. Developer References

For current ProffieOS development, configuration, and board-specific information, use the official resources below together with this SUPERNEOX developer guide.

SUPERNEOX SD Configuration File

SUPERNEOX Proffie V2.2 default configuration files.

Open Google Drive →

ProffieOS Documentation

Official documentation covering ProffieOS features, configuration, and development concepts.

Open Documentation →

ProffieOS GitHub

Source code, releases, configuration examples, and development information.

Open GitHub →

ProffieBoard V2.x Configurator

Browser-based configuration tool for ProffieBoard V2.x.

Open Configurator →

ProffieOS Support Forum

Community discussion and troubleshooting resources for ProffieOS and ProffieBoard.

Open Support Forum →

10. Documentation Scope

Documentation Scope: This developer guide is based on the supplied ProffieBoard V2 technical manual and preserves its core configuration concepts, command references, firmware workflow, preset structure, and Blade Style terminology.

ProffieOS is actively maintained. Configuration syntax, available features, supported hardware, and behavior may vary between releases.

Always verify version-specific behavior. Before applying a configuration or code example to a production saber, compare it with the documentation and source code for the exact ProffieOS version installed on the board.

SUPERNEOX Developer Help Center

ProffieBoard V2.2 · ProffieOS 5.9 · Firmware & Configuration Reference