Feature request: simulate PWM keyboard input from fitness measurements
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 43/100
Research direction
Start by locating BikeControl's existing PWM-like steering implementation and its keyboard input handling; the issue does not name specific files or tests. Trace how fitness measurements and game focus are represented, then assess how a single measurement could drive one movement key. Done means PWM-style key timing works and keys are released when disabled, measurements go stale or disconnect, or the game loses focus.
Written by the indexing model from the issue text.
Description
Feature request
Turn fitness measurements into ordinary keyboard input, making it possible to play keyboard-controlled games by pedaling without mods, plugins or fitness integration in the game.
Example: Minecraft without a mod
BikeControl could map trainer power, cadence or speed to the W key:
- No pedaling: release W.
- Low effort: alternate pressing and releasing W, producing slower average movement.
- Higher effort: hold W for more of each cycle.
- Full input: hold W continuously.
- Above an optional sprint threshold: also hold the configured sprint key. Minecraft defaults to Ctrl; other games or custom bindings may use Shift or another key.
The game simply receives its normal keyboard controls. It does not need to understand fitness data, Open Bike Control or analog movement. PWM-style timing changes the proportion of time the movement key is held, rather than asking the game to support variable-speed input. Actual movement will follow the game's normal acceleration and movement rules.
Combined with BikeControl's existing steering, this would let riders pedal to move and steer through ordinary games.
Requested behavior
- Select an available fitness measurement, such as power, cadence or speed.
- Configure its inactive and full-input levels and map it to a movement key.
- Vary the key's held time within each press/release cycle with the measurement, using the existing PWM-like steering approach where practical.
- Optionally configure a sprint key and activation threshold, and a brake/backward mapping for games where useful.
- Release keys when disabled, when measurements become stale or disconnect, or when the selected game loses focus. Do not hold opposing movement keys together.
The smallest useful version is one fitness measurement mapped to one movement key through PWM timing. Sprint and brake/backward mappings can follow separately.
Related work and use case
One setup would connect a trainer to BikeControl on a phone and relay its measurements to BikeControl on a PC, where BikeControl generates the keyboard input. The game receives only ordinary key presses.
Measurement transport is separate work and is not requested in this issue:
This request concerns converting available fitness measurements into keyboard input, whether the measurements come from a locally connected device or a future relay. The goal is to add fitness-driven play to ordinary games without requiring changes to those games.
- Dominant language
- Dart
- Stars
- 620
- Forks
- 75
- Avg merge
- 12h 10m
- Merged PRs (30d)
- 14
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from OpenBikeControl/bikecontrol
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
OpenBikeControl/bikecontrol#404 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
OpenBikeControl/bikecontrol#401 · 2 comments ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 1-2 days Newbie friendliness 54/100
OpenBikeControl/bikecontrol#417 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 3/5 1-2 days Newbie friendliness 38/100
OpenBikeControl/bikecontrol#413 · 5 comments ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
OpenBikeControl/bikecontrol#410 · 5 comments · 1 reaction ·
Maintainers usually reply within 1 day
All issues in OpenBikeControl/bikecontrol
Similar issues
-
from.page-issue
Difficulty 1/5 Under an hour Newbie friendliness 85/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 82/100
bannzai/Pilll#2080 · 1 comment ·
Maintainers usually reply within 1 day
-
good first issue help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
mollykitten/waveform#112 ·
Maintainers usually reply within 1 day
-
auto-implement-claude
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Maintainers usually reply within 1 day