Skip to content

Ferris Sweep Configuration Files

Ferris Sweep has a simpler configuration layout than Sweep Pro. Most user-facing changes live in config/cradio.keymap and config/cradio.conf.

Use ZMK Studio for live keymap edits when possible. Use this page when the setting needs a source-file change and a new firmware build.

FileWhat it controlsUsually flash
config/cradio.keymapLayers, key bindings, home-row modifiers, conditional tri-layer, mouse layer, soft-off wake behavior, battery report behavior wiring, pointer movement keys, and scroll keys.Usually left/main half; flash right too if you changed split or right-side behavior.
config/cradio.confBluetooth, USB, battery reporting, idle/sleep behavior, pointing support, ZMK Studio, behavior queue size, and keyboard name.Both halves that use this shared config.
config/behaviors/character_map.dtsiCharacter map used by text/report style behaviors.Left/main half if changed.
config/behaviors/report.dtsiBattery/report behavior used by the keymap.Left/main half if changed.
config/behaviors/send_string.dtsiHelper macro for defining send-string behaviors.Left/main half if changed and used by your keymap.
build.yamlGitHub Actions build matrix for cradio_left, cradio_right, and settings_reset.No direct flashing; it controls which UF2 files Actions builds.
GoalChange hereNotes
Change keys or layersconfig/cradio.keymapRe-render the Ferris Sweep keymap diagrams after changing public defaults.
Change home-row modifier timinght behavior in config/cradio.keymapCurrent timing is tapping-term-ms = <200> and quick-tap-ms = <150>.
Change the tri-layer ruleconditional_layers in config/cradio.keymapThe current function layer turns on when both right and left layers are active.
Change mouse layer keysmouse layer in config/cradio.keymapThis controls MB4, MB5, MCLK, movement keys, and scroll keys.
Tune key-based pointer movement or scrollingmmv and msc in config/cradio.keymapThese are firmware behavior settings for movement and scroll keys, not an OS setting.
Change Bluetooth slots or pairing capacityCONFIG_BT_MAX_CONN and CONFIG_BT_MAX_PAIRED in config/cradio.confCurrent value is 5.
Change battery reportingCONFIG_ZMK_BATTERY_REPORTING* and CONFIG_ZMK_BATTERY_REPORT_INTERVAL in config/cradio.confCurrent interval is 180 seconds.
Change sleep behaviorCONFIG_ZMK_IDLE_TIMEOUT, CONFIG_ZMK_SLEEP, and CONFIG_ZMK_IDLE_SLEEP_TIMEOUT in config/cradio.confCurrent sleep timeout is one hour.
Change keyboard Bluetooth nameCONFIG_ZMK_KEYBOARD_NAME in config/cradio.confKeep it 16 characters or shorter.
Change build artifactsbuild.yamlThe default Actions matrix builds cradio_left, cradio_right, and settings_reset.

Ferris Sweep uses one left firmware and one right firmware:

FirmwareShieldUse
cradio_leftcradio_leftMain left half, with ZMK Studio USB RPC in the default build matrix.
cradio_rightcradio_rightRight half.
settings_resetsettings_resetClears Bluetooth pairing and stored ZMK settings.

The default build.yaml matrix is:

include:
- board: nice_nano//zmk
shield: cradio_left
snippet: studio-rpc-usb-uart
- board: nice_nano//zmk
shield: cradio_right
- board: nice_nano//zmk
shield: settings_reset
  • If you changed only live keymap content through ZMK Studio, you usually do not need to rebuild firmware.
  • If you changed config/cradio.keymap, rebuild the left/main firmware at minimum.
  • If you changed shared options in config/cradio.conf, rebuild both halves.
  • If you changed build.yaml, run the GitHub Actions build again and download the newly generated UF2 artifacts.

See Build your own firmware for the exact GitHub Actions and local build commands.