The purpose of this project is to build a blackberry-trackball mouse and glue it to the middle of an (allegedly) ergonomic keyboard... in Rust Embedded, for the STM32F042 :)
This came about from twitter idea to board, then to Rust Embedded. The code is based on RTIC rust-embedded framework (formerly known as RTFM). It exclusively uses interrupts and also works on OSX, not only Linux (wink wink, nudge nudge, James ;P).
- DPI tweaking to have a better trackball accuracy or speed/stepping.
- Button debouncer.
- Remove one of the buttons of the PCB, since it conflicts with one of the trackball GPIOs... oops, hardware blopper ;)
- Add acceleration like @LSChyi did?
- Perhaps a clever (optical) system to make this experiment actually practical and useful :P
- On OSX the mouse works fine. On GNU/Linux systems, the mouse might stop responding after ~30 seconds of use. This could be related to the Linux USB autosuspend subsystem.. Try to fix that from the firmware so that it works everywhere?
- If enough people show interest and choose to sponsor me, I would love to look at how to:
- Understand the flash process of the Beken 3231.
- Implement an LLVM backend for the ARM968E-S and have
rustc
working with it. - Goal: have a sub-$1 bluetooth IC that potentially does all we need and more plus learn to implement an LLVM backend from scratch. Also provide a way to upcycle bluetooth hardware, keeping it away from the dumpster.
Write a simplified RTIC example to return the favour to that amazing rust-embedded community: Done.
@joshajohnson @mvirkkunen @therealprof @jamesmunns @TeXitoi @TheZoq2
And all the folks from the RTIC matrix.org community for patiently guiding and helping me in this experiment.