Kilter Board example
Display LED routes on a Kilter Board (or compatible Aurora Climbing LED board).
Live demo
Source
Stack
Pattern
- Connect to the Kilter Board via
KilterBoardfrom@hangtime/grip-connect. - Parse route data (e.g. from URL or app state) into an array of
{ position, role_id }. - Call
device.led(config)with that array to light the holds.
See Devices: Kilter Board for the full led() API, how to get correct positions, and role_id.
Board data in this example
This example uses a pre-built board data file to resolve holds to LED positions. The data is a tab-separated array with one row per hold in the form [holes.x, holes.y, holes.id, leds.position, placement.id], the same structure you get from the Kilter Board app database (or from BoardLib): hole coordinates, hole id, LED position (the index used in led()), and placement id. When building the led() config, the example looks up each hold in this data to get leds.position and passes that as position to device.led([{ position, role_id }, ...]). Route URLs use the layout format p<placement_id>r<role_id>...; the example parses that and maps each placement_id to the corresponding LED position via the board data.
Resources
- A web based Kilterboard application (Tim / georift): Building kilterboard.app, reverse engineering the Bluetooth protocol, Web Bluetooth API.
- Kilterboard (bazun.me): Building for the Kilter Board.