Skip to content
EN

UI tab

The UI tab (Display etc.) designs the Hapbeat device’s appearance and controls. Edit OLED layout, button assignments, LED colors, Volume, and Hold feedback together, then use Deploy to write them to the device.

It applies to Hapbeat devices (duo_wl / band_wl) and writes ui-config.json to device NVS. UI settings are independent per Duo / Band model.

UI tab overview. Labels: tabs, OLED preview, page management, model switch, layout controls, device deploy, element palette.

  1. Tabs — Kit / UI / Manage.
  2. OLED preview — layout simulator with left/right button Press and Hold assignments.
  3. Pages — page tabs, + Page, and presets.
  4. Model switch — Duo WL ⇄ Band WL; each model has its own layout.
  5. Layout controls — reset, normal / 180° orientation, save, load.
  6. Deploy — writes the UI configuration to selected devices.
  7. Element palette — status, control, identification, network, and metadata elements.

The OLED is edited as a 16-character × 2-line grid (one character is 8×16 px). Elements use character width and support font_scale 1× or 2×.

  • Select an element in the palette, then click the grid to place it.
  • Drag placed elements to move them; drag resize handles to change width where supported.
  • Use the delete action to remove the selected element.
  • Elements cannot overlap or extend outside the grid. Snap rules keep layout within character cells.
  • Save / Load exports or imports ui-config.json; Reset returns the selected model to its default layout.
GroupExamplesPurpose
Statusbattery, volume, Wi-Fi, app connectionShows device state.
Controllablevolume level, page indicatorProvides user-operable display feedback.
Identificationapp name, device name, addressIdentifies the device and connected app.
Network / metadataIP, firmware, custom textShows deployment and diagnostic information.

The displayed app name is the value from the most recently connected application. It cannot show a separate app name per simultaneous connection; assign the device name or address if persistent identification is needed.

Create and name multiple OLED pages (for example main, exhibit, debug); select a page tab to edit it. + Page adds a page and presets supply starting layouts.

Each left / right button has independent Press and Hold actions. Available actions include page navigation, volume control, playback / device controls, and configured UI actions. Use the preview to inspect assignments before deploying.

The control bar switches model, page, orientation, and layout import / export. A model switch never copies layout into another model: each model keeps an independent configuration.

Use Deploy to write the selected model’s current configuration to selected online devices through Helper. The configuration becomes ui-config.json in NVS and survives restart. A failed or offline target is reported per device.

Choose OLED brightness from the supported device levels. The factory default is 3 (High). Brightness is device configuration, not just preview styling.

Configure hold trigger duration and the time before color feedback begins. Defaults are 700 ms trigger / 150 ms color-change start. Hold feedback can use a selected color, brightness, and optional OLED indicator.

LED conditions are independently enabled and ordered: lower numeric priority wins. Configure color, brightness (optionally per-condition), blink interval (0–10 s in 0.1 s increments; 0 is steady), and smooth / immediate fade.

ConditionMeaningDefault RGBBlinkFadePriority
battery_criticalbattery ≤5%, device will stop soon128,0,00.5 ssmooth1
battery_lowbattery ≤15%, charging recommended255,120,02 ssmooth2
wifi_disconnectedconfigured Wi-Fi is disconnected255,200,01 simmediate3
volume_mutevolume is 0, so no haptics180,0,255steadyimmediate4
app_connectedreceiving CONNECT_STATUS from an app0,42,255steadyimmediate6
idle_wifiWi-Fi connected, no app connection0,255,0steadyimmediate7

Configures controls such as the Band volume knob in Var mode.

FieldRange / meaning
steps1–64 volume steps.
directionascending (higher is louder) or descending (higher is quieter).
default_level0 through steps − 1; fixed to this value in Fix mode.
SettingDefault
OLED brightness3 (High)
Hold trigger / color-change start700 ms / 150 ms
Hold color / brightnessorange #FF8800 (255,136,0) / raw 35 (about 14%)
Hold OLED indicatoroff
Volume10 steps, ascending, fixed level 5
Global LED brightness5 (moderate for near-face use)
OrientationDuo normal / Band 180° flipped

Editing auto-saves in localStorage (hapbeat-studio-display-v2), sessionStorage, and IndexedDB for this machine. Deploy writes the selected model to device NVS. Save / Load export or import ui-config.json; importing changes only the selected model slot.