I rewrote DevTerm keyboard & trackball firmware from scratch to fix trackball movements.
I think that a good trackball controller satisfies these conditions:
- It should be responsive to your rolling speed. The faster you roll, the faster it moves.
- But it should be precise if you want, without ‘Fn’ key mode.
- Also it shouldn’t be janky when you move diagonally in any angle.
- While doing so, it shouldn’t be slippery. It stops to move immediately when you stop to roll.
I’ve also rewrote the keyboard part.
It uses the open draining mode, so it might be a little bit better on simultaneous input than before (I’m not sure).
There is still room for improvements.
I’m constantly experimenting with the interpolation and heuristics.
Also I found that we can cut down the power usage to few milliamps (currently it constantly draws ~30mA).
I might rewrite it again with newer, official stm32duino package.