I have been working on the Armachat project by Peter Misenko. I rewrote the code to implement functions that Peter had not completed and added a few more. Some of the added features include:
- Implemented detection of a long keypress
- Dedicated keys when not in the editor
- Q – Toggle the keyboard backlight
- A – Toggle the display backlight
- V – Increase volume / Long keypress to decrease volume
- B – Increase display brightness / Long keypress to decrease display brightness
- Ability to receive messages in all screens including editor
- Validation of editor input
- Confirmation prompts
I have been working on an issue with editor text input. The display update procedure takes 400 to 500 milliseconds which causes an issue as keypresses are dropped when typing quickly. Initially it was taking nearly 1 second to update the screen so some improvement has been made but it is still not good enough. I continue to work on improving the screen draw time and may deploy a few things to allow all keys to be detected and handled.
Another area for improvement is the long keypress detection. I noticed that removing the long keypress detection speed up the code enough to catch all key presses however the added functionality that the long keypress provides is too much to ignore.
GitHub locations for Peter’s code and my rewrite.
- Official Armachat code: https://github.com/bobricius/Armachat-circuitpython
- My rewrite: https://github.com/richteel/Armachat
NOTE: I may delete this project in the future as it may be pulled into the official Armachat baseline.