Skip to content

Modes and Lighting Features

Robert McKenzie edited this page Mar 17, 2026 · 1 revision

Modes and Lighting Features

This page explains what the visible lighting modes do and when they appear.

Main ride modes

The package supports four main modes.

1. White/Red

This is the default directional riding behavior.

What it does

  • The direction of travel determines which strip is treated as the front and rear visual output.
  • In forward travel, the active front side is rendered white.
  • The opposite side is rendered red.
  • In reverse travel, the assignment flips.

When to use it

Use this mode if your priority is visibility and directional clarity.

This is the most practical everyday mode.

2. Battery Meter

This mode displays battery state of charge along the strip.

What it does

  • It estimates battery percentage from pack voltage and the configured cell profile.
  • It lights more LEDs as state of charge increases.
  • The color transitions toward a battery-style color scale.
  • At very low charge it emphasizes red.

When to use it

Use this when you want an at-a-glance energy indicator instead of directional white/red visuals.

3. Cylon

This is an animated scanning mode.

What it does

  • A moving highlight sweeps back and forth across the strip.
  • It runs on both front and rear outputs.

When to use it

Use this for show lighting when visibility signaling is less important than style.

4. Rainbow Chase

This is a continuous hue-scrolling pattern.

What it does

  • Colors are generated across the strip from a moving hue value.
  • The rainbow scrolls over time.

When to use it

Use this for decorative output or event/demo setups.

Idle mode

Once the configured Idle Timeout has elapsed, the package switches to Idle Mode and Idle Brightness.

This gives you a second visual profile for when the board is stationary or inactive.

Typical uses:

  • keep low-power accent lighting visible
  • show battery meter while stopped
  • tone down brightness when parked

Startup mode

For a limited period after boot, while the board is not yet in a running state, the package uses Startup Mode.

Use this to create a short boot signature such as:

  • battery meter on startup
  • a brief animated effect
  • a soft idle-style introduction before normal run mode begins

Status mode

The status strip is separate from the main front and rear ride-mode strips.

Its job is to communicate state and telemetry-oriented information.

The UI exposes at least these status mode variants:

  • Green->Red Voltage, Blue Sensor, Yellow->Red Duty
  • Swap ADC1/ADC2

The source also shows status behavior for special cases such as:

  • connecting state
  • float disabled state
  • handtest/switch-state related indications
  • battery-style indication in some stopped conditions
  • high-duty or warning-like patterns

Brake light

Brake light is an overlay, not just a separate mode.

What it does

When enabled, the code strobes the trailing strip red during braking conditions.

Trigger condition

Brake behavior is active when all of these are true:

  • brake light is enabled
  • the board is in a running state
  • the package is not in the special disabled state
  • total current is at or below Brake Light Min Amps
  • LED updates while running are not disabled

Practical tuning

Start with the default threshold and test carefully. If the light is too sensitive or not sensitive enough, adjust Brake Light Min Amps.

Highbeam behavior

Highbeam is driven by Refloat state and supported hardware wiring.

What the package does

  • accepts the highbeam state from Refloat
  • can use dedicated highbeam pins on supported front or rear hardware
  • can dim the main RGB output while highbeam is active using Dim RGB on Highbeam

Practical tip

If your highbeam looks too harsh, reduce:

  • Highbeam Brightness
  • or increase the dimming effect on the main RGB output

Mall Grab behavior

Mall Grab is treated as a special runtime state that changes the brightness behavior and can reuse the status brightness path.

Use it when you want a distinct carry/handling visual state separate from riding brightness.

Charging display behavior

The source contains support around charging-related battery display logic. In this build, the legacy charging display toggle is intentionally disabled in config migration, but battery-related behaviors still appear in main-mode logic.

Treat battery visualization as the primary supported behavior rather than building your workflow around older legacy charging toggles.