Firmware -------- - allow to stay in factory FW by holding a key combo on powerup - choose combo - document - test I2C interface using FX2 - first I2C TX after switch to USER firmware after flashing over I2C fails, subsequent ones work - also power consumption indicates power consumption of the sotck firmware so maybe we just sleep in stock instead of switching after flashing? ------------ - implement I2C configuration options - disable keyboard matrix scanning - only enable USB in stock FW upon request over I2C (idling USB stack takes about 0.6mA on top of 1.8mA baseline) Charger behavior ---------------- - does the charger turn off VOUT after some period of low load? - does it enable it again to see if there's a need for it? - this auto-off behavior will kill the power to the keyboard controller, so we need a way to detect it and power the controller from the pinephone side by enabling VBUS. - tricky! - or make the user keep pressing the kb power button to use the keyboard for a while, like in a train conductor has to in a train :) - not good! Userspace input device daemon ----------------------------- - allow to read keymap config from a file instead of compiling it in - improve combo key handling - sticky keys entry mode? - add various modal modes: - show modal hints on the display - write to linux console framebuffer directly - run a generic process/script (eg. to show mode in i3 status bar) Modes: - navigation mode arrows work as arrows without holding Fn key, holding Fn key inverts the meaning to primary (so Fn+Up types a 'dot') - sticky Fn mode (all keys act as if Fn is being held) - sticky keys mode (build a multi-key shortcut gradually, without having to hold multiple keys at once) - ???