Commit graph

84 commits

Author SHA1 Message Date
Ondrej Jirman
134b4b6a8b firmware: Move more of the USB shutdown control to usb_enable/usb_disable
- make sure USB resources are re-enabled before jumping to bootloader
- make sure all USB resources are disabled prior to jumping to user fw
2021-08-02 10:03:48 +02:00
Ondrej Jirman
cea046008f Increase the default flashing area size to 0x2000
This does two things:
- more reasonable default because stock firmware size is larger than
  the previous default
- it will overwrite 0x3fff with 0xff, so that after flashing stock
  firmware the user firmware is automatically disabled
2021-06-28 15:36:58 +02:00
Ondrej Jirman
6a5fe581b9 Implement flashing over I2C and user/stock firmware support
I2C register layout changed a bit to make various operations easier
to implement in FW and for the user.

Flashing/debugging tools now share more code. Firmware is now more
configurable (it's now possible to compile-out various features).

Self-testing for column-shorts is implemented.

Firmware is optimized for low power consumption.
2021-06-28 15:09:47 +02:00
Ondrej Jirman
201b84d70e Update link to kernel driver 2021-06-20 13:16:55 +02:00
Ondrej Jirman
2a2ce1429c Update the i2c interface spec 2021-06-20 01:48:34 +02:00
Ondrej Jirman
f0b5f8cb68 And another update of the I2C spec 2021-06-19 21:42:52 +02:00
Ondrej Jirman
2185fdaae5 Update I2C spec 2021-06-19 21:23:03 +02:00
Ondrej Jirman
541c1ae17a Add I2C interface specification 2021-06-19 21:15:38 +02:00
Ondrej Jirman
04ca071b09 Fixup/document I2C 2021-06-19 02:51:23 +02:00
Ondrej Jirman
fbfa245ad4 Allow to use debug printing from interrupt handlers 2021-06-19 02:50:34 +02:00
Ondrej Jirman
2725248532 Add USB stack for easier printf() based debugging of the firmware 2021-06-18 19:43:11 +02:00
Ondrej Jirman
f7857f94ab Add the latest binary build of the firmware 2021-06-18 18:31:28 +02:00
Ondrej Jirman
c8d8eef090 Fix key release change detection in polling mode 2021-06-18 18:28:56 +02:00
Ondrej Jirman
93687e1b04 Add flashing help file 2021-06-18 18:26:58 +02:00
Ondrej Jirman
cea3dfb502 Add link to Samuel's kernel driver 2021-06-18 18:20:19 +02:00
Ondrej Jirman
212dea4914 Tidy up the flashing tool 2021-06-18 18:20:16 +02:00
Ondrej Jirman
c1d2adfc96 Update TODO 2021-06-17 11:40:08 +02:00
Ondrej Jirman
a739b4b856 Add reaped URB error checking 2021-06-17 11:16:58 +02:00
Ondrej Jirman
c8736296c3 Update TODO 2021-06-16 18:19:34 +02:00
Ondrej Jirman
a6f823612a Build kmap.h as part of a build process 2021-06-16 17:19:38 +02:00
Ondrej Jirman
dba6fb37c1 Add sticky fn/pine mode (press fn+esc or pine+esc to enter, esc to exit it)
In sticky mode, fn or pine key acts as stuck.
2021-06-16 17:02:02 +02:00
Ondrej Jirman
ff7e733636 Disable workaround for my broken prototype by default 2021-06-16 16:49:51 +02:00
Ondrej Jirman
a2ff7e6e98 Add uinput daemon that creates an input device for the keyboard 2021-06-16 16:47:59 +02:00
Ondrej Jirman
b9b02a5e73 Update some comments 2021-06-16 14:44:18 +02:00
Ondrej Jirman
2e29c24145 Add HACKING file 2021-06-16 14:32:28 +02:00
Ondrej Jirman
bca8c47f46 Implement polled mode and key bitmap change signalling via external interrupt
- this firmware consumes about 4-5 mA (can be probably made lower)
2021-06-16 14:09:25 +02:00
Ondrej Jirman
a9bb6a3691 Add a tool to convert keymap description to a header file 2021-06-15 09:23:10 +02:00
Ondrej Jirman
736018ce82 Fix factory keymap 2021-06-15 09:22:47 +02:00
Ondrej Jirman
a8c9398567 Allow to exit from bootloader mode without flasing
Useful for when you hit PINE+FN+F and don't want to flash a firmware.

./kbprog-usb reset
2021-06-15 09:22:31 +02:00
Ondrej Jirman
e59f647d83 Allow to switch to bootloader mode via FN+PINE+F 2021-06-15 09:21:31 +02:00
Ondrej Jirman
8a6af7acf7 Add tool for communicating with the charger 2021-06-15 09:20:43 +02:00
Ondrej Jirman
717cfd6526 Add keymaps 2021-06-14 13:31:54 +02:00
Ondrej Jirman
8250f31e2b Add links to video/blog/donations 2021-06-14 00:16:19 +02:00
Ondrej Jirman
d3c45f58a4 Initial commit 2021-06-14 00:10:49 +02:00