The config file for ProffieOS is a unique "recipe" specific to your lightsaber. It contains all of the relevant information about the wiring, controls, features and presets on your saber and is necessary to update or modify your Proffieboard lightsaber. You should always save a backup copy of your config file on a computer and your SD card. This will make updating much simpler in the future.
If you purchased a Proffieboard saber from an installer or seller they SHOULD provide an original config with the saber. While this tool can help you build a new config, the specific wiring and set up of the saber when it's initially installed needs to be provided to ensure the saber operates correctly.
If you are installing this saber please refer to the Proffieboard Manual for wiring and setting up the BladeConfig section to match. A copy of the config SHOULD always be saved to the SD card and if you sell the saber the config should be provided with it for future owners.
For more information on updating your Proffieboard and uploading the config visit Updating Your Proffieboard.
Take your time to read through and complete ALL options and this tool will put together your config for you.
For each saber create a unique Config Name.
You can update OS version here. NOTE: Previous versions cannot run newer version styles or defines. You can always update from previous to newer but changing from newer to previous may cause compile errors if you have new features or capabilities in the config.
Latest released version of OS available here: https://fredrik.hubbe.net/lightsaber/proffieos.html
It is best to use current version, for questions visit theCrucible.
Should be printed on board, current board is v2.2 if you are unusure.
Your BladeConfig is found at the bottom of your config.h file, it will begin with "BladeConfig blades[] = {" and end with "};". This section contains information on how your saber has been wired and set up.
This tool will parse the BladeConfig above to determine the Number of Blades and CONFIGARRAYS found.NOTE: if using Edit Mode or ProffieOS Workbench with All Edit Options or Edit Blade Length enabled the blade length in the BladeConfig is the maximum length. It is recommended to set the blades that you may need to edit to the maximum blade length you will need (see "132" in example below).
Example:
BladeConfig blades[] = {
{ 0, WS281XBladePtr<132, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(), CONFIGARRAY(presets) },
};
This tool cannot check your BladeConfig, there are too many possible wiring and set up options. You will need to troubleshoot any issues with your BladeConfig separately before using this tool.
If you need to generate a new BladeConfig you can use the following configurator tools: Teensysaber | Proffieboard v1.5 | Proffieboard v2.2 | Proffieboard v3.6 or refer to the Manual.
This tool will use BladeConfig to determine Number of Blades.
Note: Number of Blades much match Blades defined in BladeConfig, changing this number will reset Presets below.
If wired for Blade Detect check box above. Your config should have the Pin defined, this tells the board which Pin to monitor for Blade. More information.
If you have multiple blades using shared LED pads check this box.
NOTE: Buttons must be wired to appropriate pad to operate. The CONFIG_BUTTONS section at the bottom of your original config will have the correct Pin
Only change this value if you have a strip longer than 144 pixels (very rare). Actual blade length is controlled in the BladeConfig section below.
Allocate additional buffer space for generating styles/colors (represented as pixels), intended to help process more complex styles. 25% to 50% of blade length (in pixels) recommended.
This is Max volume possible if using Volume editing/menu, be sure speaker can support before increasing.
:
This is the volume the saber will default to on boot, you will then use Volume Menu or Volume Editing to adjust during normal use
Hz
These defines enable a butterworth highpass filter with the given order and cutoff frequency. The idea is to remove frequencies that your speaker can't reproduce anyways to put less stress on the speaker. The filter order defaults to 8. A reasonable cutoff frequency might be 100Hz. The filter does not affect I2C or S/PDIF output if enabled.
The higher the value the harder the hit needed to trigger clash. Values over 8.0 will make clashes very difficult to trigger.
Additional Clash Adjustments - for more information see here.
If your saber is experiencing "False Clashes" or it is too difficult to trigger a "Clash" you can fine tune how clash detection works (after setting Clash Threshold above) with below options. Each saber is unique so it may take some experimentation to get the "golidlocks" setting for your specific saber. The design of the saber and chassis, the proximity of the speaker to the board, the bass in your fonts and speaker as well as other variables can affect how your saber detects clashes. These defines are optional and only necessary if the default clash detection is not working.
This define allows you to "suppress" audio vibrations causing false clashes (if needed). OS7 features new clash detection but if speaker vibrations continue to cause false clashes this define allows for additional fine-tuning. The higher the value the more force is needed to trigger clash as sounds get louder. (1 ~ 50). This define "may" allow you to use a slightly lower Clash Threshold to achieve the same sensitivity as previous OS versions (varies by saber). If you find it hard to trigger clashes you can add this define and set to 1 to eliminate sound suppression, the OS defaults to 10 if this define is missing.
Accelometer Range can be set to 2, 4, 8 or 16, and specifies the range of values measured by the accelerometer. Lower values means less precision, but we don’t really need high precision. OS7 uses 16 by default. To revert to the older OS3.9 type detection you can set to 4 or 8.
This define controls how often we read the accelerometer. The default is 1600, 800 is basically what ProffieOS 5 and below would get.
The default is 800, and the code just creates a box filter of size (PROFFIEOS_MOTION_FREQUENCY / ACCCEL_MEASUREMENTS_PER_SECOND = 2) to do the averaging. Setting this define to the same value as PROFFIEOS_MOTION_FREQUENCY (1600) means that no filtering will occur. Setting it to a lower value is also valid, but will cause some (very minor) latency in clash detection.
OS7 uses both Accelerometer and Gyro for Clash Detection, on some sabers this makes Clashes harder to trigger. To revert to OS5 or older clash detection you can disable the Gyro detection and just use Accelerometer.
This define will "kill off" oldest sound when spamming effects like blast or clash to prevent running out of wav players.
(minutes)
Amount of time motion and gestures detection stays active after saber is retracted. Recommended to save battery life.
(minutes)
Amount of time power to LEDs remains active after saber is retracted. Recommended for Accents/Crystals with Off behaviors to save battery life.
ms
This define will scan for changes of BladeID value every N ms, if a change is detected it will initialize the saber from scratch and load the right settings for the new ID. More information here: https://pod.hubbe.net/howto/blade-id-constant-monitoring.html
This define is the number of scans that get averaged together to come up with a useable scanned value. More information here: https://pod.hubbe.net/howto/blade-id-constant-monitoring.html
For use with Blade ID. More Information on values and set up: https://pod.hubbe.net/howto/blade-id.html
The expected orientation for your board is with the USB/SD pointing away from the blade. If your USB/SD is pointing towards the blade check this box to invert.
For curved hilts or when the board is not mounted parallel to the blade, the X, Y and Z are floating point numbers which specify how many degrees to rotate all measurements.
Recommended to save memory, removes the "old fashioned" default styles from previous OS versions.
Recommended to save memory, disables diagnostic commands for Serial Monitor. Note, if you need to run 'sdtest' or other diagnostic commands in Serial Monitor uncheck this option temporarily.
Disables the built-in "voice" errors and replaces with the following beepsequences to save additional memory (approx 2 ~ 3 %)
Specific Use (Rare), some commands which are only useful for developers are normally not compiled into the final binary to save memory, if you want them, add this define to enable them.
You can select the features you want for your saber using this section.
NOTE: many OS7 features are only available with my Prop file, unchecking the Fett263 Prop will do a basic set up and controls.
The prop file allows for the controls/buttons/gestures as well as many of the features. If you prefer the simple, default controls uncheck this box but note many features will no longer be available.
Enable Editing options for Edit Mode or ProffieOS Workbench (WebUSB / BT). Allows .ini files to save saber settings, colors and other information. Required for Edit Mode.
When powering back up the last active preset is used, otherwise first preset is always active on boot or power up.
Enable on-board menu system for Edit Mode, requires "Enable All Edit Options"
Enable on-board menu system for Edit Settings Mode (settings only), Preset editing done via ProffieOS Workbench (be sure to enable WebUSB in Arduino).
Requires "Enable All Edit Options", cannot be used with Edit Mode Menu.
This enables 8 "Special Ability" controls (style controlled), 4 while ON, 4 while OFF. Special Abilities are controlled by the style and can vary in every preset, they are "user" defined effects/capabilities.
Allows "Multi-Phase" to be style based. Cannot be used with Multi-Phase or Choreography
Enables Enhanced Battle Mode with Saved Choreography.
Cannot be used with Spin Mode
Enables toggle for "Spin" Mode* which disables all clash/stab/lockup effects to allow for spinning and flourishes.
Cannot be used with Choreography Mode or FETT263_HOLD_BUTTON_LOCKUP
*Not the same as ENABLE_SPINS
This will enable a preset change while ON to create a "Multi-Phase" saber effect
Enables Preset Selection Menu on Boot (when power is first applied)
Use Dial Menu to turn to desired preset, click PWR to select or hold PWR to select and ignite chosen preset.
This will enable Power Lock Mode to change 2 button Retraction from click PWR to hold PWR & AUX (can be enabled/disabled in Edit Mode)
Enables a click on POWER Button to Wake Up Gestures after MOTION_TIMEOUT without igniting blade. Saber will play boot sound and gestures will be active.
Disables the "on-the-fly" Change Font feature
Disables the "on-the-fly" Change Style feature
Disables the "on-the-fly" Copy Preset feature
Disable button control for Battle Mode, use gesture ignition or Special Abilities and/or style to toggle.
Disable button control for Multi-Blast Mode, use Special Abilities and/or style to toggle.
Disables Force/Quote player, only uses Force.
This will allow Quotes to be controlled by style. Use FETT263_SPECIAL_ABILITIES to set EFFECT_QUOTE or EFFECT_NEXT_QUOTE in style
Cannot be used with FETT263_RANDOMIZE_QUOTE_PLAYER and FETT263_QUOTE_PLAYER_START_ON
Enables odd/even out.wav ignition sound selection based on blade angle
Up = odd number sounds, Down = even numbered sounds. More information
Enables selection of clash, stab and lockup sounds based on actual clash strength
Light clash = 01.wav, Hard clash = highest number.wav. More information
Spoken Color Names replace default sounds during Color List Mode (requires .wav files)
Spoken Color Names replace default sounds during Color Change "CC" Color List Mode (requires .wav files)
Spoken Battery Level in volts or precent during On Demand Battery Level effect (requires .wav files), if using BC version point down for volts, parallel or up for percent
This will set Force / Quote to play Quote by default (if in font)
This will set Quote Player to randomly select quote.wav instead of playing sequentially
Disables spoken voice prompts in Track Player
Changes to Hold PWR to turn Off / Retract (2 button) - sa22c control
Enables Hold AUX for Lockup* (2 button) - sa22c control
Cannot be used with FETT263_SAVE_CHOREOGRAPHY
*Clash Strength / Clash Impact effects and sounds for Lockup negated
*Battle Mode control changes to hold AUX + Swing
Allows MELT to be gesture controlled full-time, uses Thrust for Stab effect - BC control variation
Save "Gesture Sleep" setting to turn gesture ignitions and retractions off on boot
Battle Mode is enabled via controls by default in this prop, you can customize further with these options. More Information
"Toggle On" = enable Battle Mode using default controls to toggle ON/OFF
"Always On" = Battle Mode toggle controls deactivated. This will disable traditional Clash and Stab effects
"Start On" = Battle Mode is active with each ignition by default but can be toggled using control ON/OFF
ms
This is the "delay" in millis to determine Clash vs Lockup, longer delay provides a longer time to "pull away".
The max value to use clashes in Battle Mode 2.0, clashes used on clash strength below this value
This allows light clashes to produce clash effects instead of using Begin/End Lockup
(above this value Clash is performed by quick pull away using Begin/End Lockup sounds and effect)
Recommended Range 0 ~ 8 (note 0 will use Battle Mode 1.0 with all clashes being Begin/End Lockup, above 8 will make Battle Mode lockup very difficult)
During Battle Mode Power Button Retraction is disabled to prevent accidental retraction, use gesture or exit Battle Mode to retract blade.
To enable gesture controlled Force Push (will use push.wav or force.wav if not present)
Prevents randomly selected sounds from repeating if more than one file exists.
Allows Color Change button to toggle each ColorChange<> effect. Recommended for "Click to Change" for Dual Phase or other custom ColorChange<> styles.
This will disable ColorWheel and ColorChange functionality. (Does not affect Color Editing). Also disables Color Change Direct and Save Color Change functionality.
For use with "Persistence of Vision" (POV) Style Capability
DO NOT enable this feature without reading all information. This will use all saved settings instead of uploaded config, when active uploaded changes to your board may not work properly.
If your saber has an OLED screen check this box.
If your saber has a BT module check this box.
Add an RFID reader. To configure the RFID reader, you will need an RFID_Commands array in the CONFIG_PRESETS section.
This enables I2S output, Data3 is SCK, Data4 is FS and Button2/aux is DATA
This enables S/PDIF output. The S/PDIF signal will come out at 3.3 volts on Button2/AUX.
NOTE: The Number of Blades needs to be set above prior to adding Presets.
You can save memory by re-using style code for PCB, Accents or Crystals in each preset. This will allow you to fit more Main, Secondary and Quillion styles.
Mixing old style formats and syntax with current will waste additional memory, it is advised that you use same version syntax for all styles to maximize memory.
If you plan to repeat or reuse styles in your presets, or if you wish to simplify how your presets appear in your config you can set up "using Functions" which will create shorthand names for your styles which you can use in the presets and move the full style information to the CONFIG_STYLES section at the bottom of the config.
NOTE: to troubleshoot or adjust styles you will still need the Style code as it appears in the CONFIG_STYLES section, and will need to provide when asking for help or troubleshooting.
Many of the new features are the result of my over-active imagination, brought to life with a lot of help and guidance from Fredrik. I've put in countless hours for R&D, testing, coding and debugging over the past 12+ months for OS7 with a lot more to come. While I do this for the fun of the hobby and to keep pushing the envelope of what is possible with Proffieboard lightsabers, there's a lot of time and effort involved. I've already begun building the ALL NEW! ProffieOS7 Style Library and it will have a ton of new features and styles but it's going to take even more time and effort to build and maintain it going forward, for this reason I am launching a Patreon page for those that want to help out by becoming patrons.
I appreciate all who've donated in the past on my previous libraries and once OS7 releases a lot of time will continue to go into creation for the new OS7 library and documentation to support everything possible.
Click "Generate Full Config" to assemable above selections