Skip to content

FlexiConfig

András Kun edited this page Jan 31, 2018 · 5 revisions

FX-SaberOS offers you the possibility to personalize the config menu according to your preferences. You can define:

  • which config menu items you would like to have in your saber
  • in which order the config menu items shall come

Customizing the config menu is easy, just follow the steps below:

  1. Go to the tab ConfigMenu.h
  2. Look for _// configure the config menu based on the blade type_
  3. below this line you will find a ConfigModeSubStatesEnum enum type for each blade type
  4. select the ConfigModeSubStatesEnum corresponding to the blade type used for editing
  5. Order of the config menu items is the same as the order of the enum type, i.e. in the enumenum ConfigModeSubStatesEnum {CS_SOUNDFONT, CS_FLICKERTYPE, CS_SLEEPINIT, CS_LASTMEMBER, CS_VOLUME, CS_POWERONOFFTYPE, CS_SWINGSENSITIVITY, CS_MAINCOLOR, CS_CLASHCOLOR, CS_BLASTCOLOR, CS_BATTERYLEVEL, CS_STORAGEACCESS, CS_UARTMODE}; the order of the config menu is:
  • sound font selection
  • flicker type select
  • sleep mode entry
  1. The enum member CS_LASTMEMBER defines the end of the config menu, i.e. you can place it after the last config menu item you want to be included in your personalized config menu. All items after the member CS_LASTMEMBER will be omitted, in case they are used to set parameters, involved parameters will get a pre-set value. For instance if you omit CS_VOLUME, the volume will be set to max.

Example: let's assume you have a neopixel blade and you enjoy experimenting with different color settings. You also want to have multiple sound fonts and want to switch between them. Since you like the sound of your saber you want it loud and feel no need to control volume. You do not have a kill-key and want to go to sleep mode to save power. Based on these preferences your personalized ConfigModeSubStatesEnum would look like this: enum ConfigModeSubStatesEnum {CS_SOUNDFONT, CS_MAINCOLOR, CS_CLASHCOLOR, CS_BLASTCOLOR, CS_SLEEPINIT, CS_LASTMEMBER, CS_FLICKERTYPE, CS_VOLUME, CS_POWERONOFFTYPE, CS_SWINGSENSITIVITY, CS_BATTERYLEVEL, CS_STORAGEACCESS, CS_UARTMODE};