ahalekelly / Dettlaff

Dettlaff is a flexible electronics controller for brushless flywheel Nerf blasters
MIT License
9 stars 4 forks source link

TODO: Flesh out UX options #24

Open Daehder opened 1 year ago

Daehder commented 1 year ago

People will want / have been asking for all sorts of ux options like rotational switches, quick setting buttons, screens, dpads like the PewPew, etc

`Also we need an option to have a button that will jump to a specific fire mode instead of cycling through modes - should this be a parameter in each FireModeEntry, or a repeated value in ControlParams? Each button will need a pin and SwitchOrientation

_Originally posted by @ahalekelly in https://github.com/ahalekelly/Dettlaff/pull/2#discussion_r1071784529_

ahalekelly commented 1 year ago

Yeah from an electrical/firmware standpoint, I think having one button per fire mode is equivalent to a rotary switch. So you can have one firmware mode for both of those which I described above.

Maybe some people want Next Fire Mode and Prev Fire Mode buttons as well? Also for a single Cycle Fire Mode button to work, you need to have a way of knowing what fire mode you're in. We should make the ESCs beep an identifiable pattern when changing to a fire mode, that's possible to do over dshot though I'm not sure you can do it while the motors are spinning. Or maybe blink the white LED in a pattern?

SuperStressed just brought up that the Hummingbird has a dual stage trigger, where the first stage is semi auto and second stage is full auto. I hadn't thought of this scenario before, need to figure out the best way to encode that in the protobuf. Maybe just a boolean to make the button for each fire mode also act as a trigger?

And we should also support rate of fire adjustment with a potentiometer. That's a super straightforward thing, just have parameters for potMinRof and potMaxRof and scale between them. I think log scale is preferable here, maybe people can just buy a log pot though?

I wasn't planning on writing the firmware for a screen, but I've been very surprised how many people have been asking for a screen. It's at least out of scope for now though. And I think dpads and rotary encoders are only useful if you have a screen?

Also, Ray brought up that it would be cool to be able to fire the blaster remotely over BLE. Changing the active fire mode is definitely required too (#15).

I think the cycle fire mode button and one button per fire mode are only options required for the v1.0 release though, all the rest are just nice to have options.