Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Configuration without external dependencies #27

Open
tlietz opened this issue Nov 20, 2023 · 6 comments
Open

Configuration without external dependencies #27

tlietz opened this issue Nov 20, 2023 · 6 comments
Labels
blocking Issue needs to be resolved before releasing a product enhancement New feature or request

Comments

@tlietz
Copy link
Member

tlietz commented Nov 20, 2023

VIA is the primary dependency for configuration. We should try to have a method of configuration that does not rely on any external dependencies for updates. This could be accomplished by using a webserver, serial terminal, telnet, or ssh running locally. If none of those are found to be reasonable, our own web-based or PC-software configurator may have to be created.

Another option would be to add wireless connectivity to the keypad and implement a webserver with that https://github.com/sysprogs/PicoHTTPServer/

@tlietz tlietz added enhancement New feature or request question Further information is requested labels Nov 20, 2023
@tlietz
Copy link
Member Author

tlietz commented Nov 20, 2023

Pico webserver over usb works on linux machine, but times out when running on windows PC with win 11 or win 10. The webserver is also very slow.

@tlietz
Copy link
Member Author

tlietz commented Nov 20, 2023

QMK has VIRTSER (virtual serial) support which looks promising

@tlietz tlietz modified the milestone: initial configuration settings Nov 20, 2023
@tlietz
Copy link
Member Author

tlietz commented Nov 20, 2023

For the initial configurator, VIRTSER will be used, which means it can be accessed by serial terminal emulators such as Teraterm. Or any standard online serial emulator that uses the webSerial API, like the official Google one (https://googlechromelabs.github.io/serial-terminal/)

While settings are being configured, need to consider when to write something to memory vs. EEPROM

Initial features:

  • restore default settings
  • actuation settings
    • Per key settings toggle
    • Rapid trigger toggle
    • Actuation distance (arrow key, selection, or text-based input?)
    • Press sensitivity
    • Release sensitivity
  • Lighting settings
    • Effect selection
    • Brightness
    • Effect speed
    • Color selection from hardcoded values, or manually input them in

Future:

  • see when analog keys are actuated so that testing can be done inside the configurator as settings are changed (analog keys might need to be monitored so that the keycode they're assigned to aren't registered in this screen of the terminal)
  • Keycode settings
  • method of saving and restoring firmware settings
    • Gives binary string that is a representation of current settings
    • Have a prompt where the binary string is pasted in to restore settings
  • Undo last action
  • Bongo cat
  • Streaming tests
  • Reaction time test
  • Serial terminal-based game that relies on analog nature of keys

@tlietz
Copy link
Member Author

tlietz commented Nov 21, 2023

This ascii art collection will be useful

@tlietz tlietz added the priority-1 Solve these first label Nov 22, 2023
@tlietz tlietz added blocking Issue needs to be resolved before releasing a product and removed priority-1 Solve these first labels Dec 7, 2023
@tlietz
Copy link
Member Author

tlietz commented Dec 8, 2023

Ascii art generator from image: https://www.text-image.com/convert/ascii.html

@tlietz
Copy link
Member Author

tlietz commented Dec 9, 2023

Ansi control codes for serial terminal: https://gist.github.com/fnky/458719343aabd01cfb17a3a4f7296797

@tlietz tlietz removed the question Further information is requested label Aug 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blocking Issue needs to be resolved before releasing a product enhancement New feature or request
Projects
None yet
Development

When branches are created from issues, their pull requests are automatically linked.

1 participant