HWXLR8 / beef-board

USB HID PCB for Bemani rhythm games
GNU General Public License v3.0
11 stars 2 forks source link

Implement config tool #98

Closed ASleepyCat closed 1 month ago

ASleepyCat commented 2 months ago

Using only button combos to change settings is becoming a bit cumbersome, mostly because I don't remember the combos and have to keep going back to the README. On older controllers, changing turntable related settings would be very hard since they might not even have turntable LEDs. We might also want to add a setting in the future that would be infeasible with just button combos e.g. digital TT sustain.

Some approaches:

I'm mostly in favor of a web-based config tool since that would simplify testing and it's also the flashy new thing. I haven't done web dev in ages though and I haven't done web hosting before, so I'm amenable to making a desktop program instead.

HWXLR8 commented 2 months ago

My vote would be for a desktop program. It could still be web-based, just running locally. I would be fine with covering hosting costs and handling the infrastructure side of things, but I cannot offer much help with JS. I would certainly not be in favor of using any electron based bloatware though. A simple HTML+JS website would be sufficient.

Would we be ditching the existing key combos? I would like to keep them around.

ASleepyCat commented 2 months ago

I'm mostly concerned about cross platform compat, having a website makes that way easier for me since I only have a Windows machine. For now, we can just have the user open the page locally; we can worry about hosting for another time.

Would we be ditching the existing key combos? I would like to keep them around.

No they'd still be there, I don't see any reason to get rid of them.

Edit: what do you think about using the config tool to display the firmware version?

HWXLR8 commented 2 months ago

Sounds good, I think we're on the same page here. I see no problem with the config tool displaying FW version. I assume this config tool would replace beef-tool?

ASleepyCat commented 2 months ago

Sounds good, I think we're on the same page here. I see no problem with the config tool displaying FW version. I assume this config tool would replace beef-tool?

Ideally yeah, but that's going to have to be done later since I'd need to learn the Atmel DFU protocol - I don't think there's a JS library so I'd need to do implement that from scratch. Alternatively, we could just point people to QMK Toolbox (for now) since that's already a fleshed out flashing tool.

ASleepyCat commented 2 months ago

Oh also don't expect much from me for design stuff lol, I'll try to at least not make it look horrible.

ASleepyCat commented 2 months ago

Apparently there's a PR that adds some WebUSB stuff in LUFA (https://github.com/abcminiuser/lufa/pull/103), but for some reason there's been no progress for years. I don't think it's strictly necessary for us to add WebUSB stuff in our firmware, maybe further down the road if we want to implement some niceties (https://developer.chrome.com/docs/capabilities/build-for-webusb#webusb_descriptors).