bluerobotics / bluerobotics/cockpit

Joystick: allow axis protocol configuration

Open
#644 5 comments 0 reactions 0 assignees View on GitHub
joystick new-feature ux
Dominant language
TypeScript
Stars
198
Forks
63
Avg merge
2d 7h
Merged PRs (30d)
57

Description

Currently we forcibly send MAVLink `MANUAL_CONTROL` messages at a fixed rate, even though many vehicles don't support them, and some users may wish to change the frequency. It would be useful to allow turning that off and/or using some other protocol options for the motion control axes.

The most intuitive approach I can think of is providing a dropdown for the "axes protocol" which (for now) allows selecting between None, MAVLink `MANUAL_CONTROL`, and MAVLink `RC_CHANNELS_OVERRIDE`, together with a frequency selector/slider for the message rate (when the protocol is not None). That also leaves the UI open for additional protocols later, including non-MAVLink ones if that becomes relevant.

There is a bit of complexity involved though, because if the axes protocol is set to anything other than `MANUAL_CONTROL` then the corresponding button functions shouldn't be available to the user (since the messages won't be being sent). Perhaps we can allow them to stay selected (so they don't get unmapped), but just grey them out and/or strikethrough them to make it obvious they won't actually work.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by locating the joystick UI and the existing MAVLink MANUAL_CONTROL send path. Review how axis protocols, message frequency, and button mappings are represented, then verify that the requested protocol choices and disabled button behavior work without breaking existing mappings.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
api, frontend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.