Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

split70ctl

Built with Devbox

Warning: split70ctl requires the custom Split 70 firmware from https://github.com/Slijeff/EpomakerQMK. It only works with a keyboard running that firmware.

split70ctl is a command-line tool for controlling the accent strip LEDs on an Epomaker Split 70 keyboard running the custom QMK firmware. It works over USB and the 2.4G dongle, using the keyboard's VIA raw HID interface.

Features

  • Discover Split 70 strip-capable devices
  • Set individual strip LED colours
  • Set the entire strip to a single colour
  • Create left/right half colours or colour gradients
  • Run host-driven animations until interrupted
  • Switch control between host and keyboard firmware effects
  • Configure fallback colour, watchdog timeout, and boot mode
  • Persist settings to EEPROM with save
  • Optional local web UI for browser-based control

Requirements

  • Go 1.26.2 or later
  • Native HID support for github.com/sstallion/go-hid and hidapi

Build

From the repository root:

go install ./cmd/split70ctl

Or to build the binary in bin/:

go build -o bin/split70ctl ./cmd/split70ctl

Usage

split70ctl [flags] <command>

Common commands

  • split70ctl list
    • List attached strip-capable Split 70 keyboards.
  • split70ctl list --all
    • List every raw VIA/HID candidate, even if not confirmed by the strip probe.
  • split70ctl set <index> <colour>
    • Set one strip LED by index (0‑2 left half, 3‑5 right half).
  • split70ctl all <colour>
    • Set every LED to the same colour.
  • split70ctl gradient <from> <to>
    • Ramp a colour across the 6-LED strip from left to right.
  • split70ctl halves <left> <right>
    • Set the left and right halves independently.
  • split70ctl off
    • Blank the strip while staying under host control.
  • split70ctl anim <name>
    • Run a host-driven animation until Ctrl-C.
    • Supported animations: breathe, chase, comet, rainbow.
  • split70ctl mode [app|fw]
    • Show or set who controls the strip.
  • split70ctl default [colour]
    • Show or set the fallback colour used when the host takes over.
  • split70ctl watchdog [ms]
    • Show or set the host-liveness timeout in milliseconds.
  • split70ctl boot <on|off>
    • Set whether the strip starts under host control at power-on.
  • split70ctl save
    • Persist fallback colour, watchdog, and boot mode to EEPROM.
  • split70ctl serve
    • Start a local web UI for browser-based control.

Device selection

If more than one keyboard is attached, pin a specific device with:

split70ctl --device <HID path> <command>

Use split70ctl list to discover HID paths.

Colour format

Colours are provided as 6-digit hex RGB values, for example:

  • ff0000 for red
  • 00ff00 for green
  • 0000ff for blue

Web UI

Run:

split70ctl serve

Then open the printed address in a browser (default http://127.0.0.1:7070). The web UI is embedded into the binary.

Notes

  • The keyboard exposes strip control through a VIA custom HID channel.
  • Wireless links (Bluetooth / 2.4G) are limited to a lower safe frame rate than USB.
  • save persists settings, but individual frames are not stored to EEPROM.

Development

  • The project root contains go.mod and go.sum.
  • Main command source: cmd/split70ctl/
  • Device discovery and HID handling: internal/device/
  • Strip protocol implementation: internal/proto/
  • Host animation support: internal/anim/
  • Embedded web UI frontend: internal/webui/

About

Command-line controller for the Epomaker Split 70 accent strip LEDs, built for the custom firmware and supporting USB and 2.4G HID control.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages