* Use the new debounce algorithm in dactyl/matrix.c [#2065] This incorporates the fixed/optimized debounce code added to quantum/matrix.c in: * 508eddf8ba8548d3f71e1c09a404839beb49f45c * 4c6960835c0a6e29670dabdc27117d7d3c7f99f5 * 32f88c07173b795c6981c779057dceba00aeb1cb * f4030289744fc6dc82dd85c955070c0845813cc5 * a06115df19a74d39b08758472b221e630c3680d3 * Fix the row/column swap in dactyl [#2065] With a column-driven keyboard, reading from the mcp23081 returns a column-state, which takes some extra work to translate into the row-state used in the actual matrix. The ergodox_ez code sidestepped that problem by calling rows "columns" and columns "rows." With this change, the dactyl now calls rows "rows" and columns "columns." * Cleanup: variable names, documentation [#2065] * Support MATRIX_MASKED in dactyl/matrix.c [#2065] * Only unselect one col in unselect_col [#2065] Bonus: saves one i2c transaction per matrix_scan! * Implement COL2ROW in dactyl/matrix.c [#2065] * Fix a typo in dactyl/matrix.c This entirely doesn't matter. The PORT values are set during init_keyboard and never change. They're repeatedly set to the same thing. These PORT lines shouldn't even exist, but since they do, they should at least look right. * Implement COL_PINS/ROW_PINS for dactyl [#2065] * Rename "mcp23018" to "expander" [#2065] I honestly don't know whether/how well this code works with other I/O expanders, but at least in theory, it should be generic enough to work with others. Given that, the variable names shouldn't refer to a specific model of expander. * Remove matrix_power_up from dactyl/matrix.c [#2065] It's commented out in quantum/matrix.c, and the dactyl has no power up/down behavior beyond being unplugged (which goes to matrix_init), so there's no sense keeping it around. * Only initialize expander_input_mask once [#2065] ...and rename input_mask to expander_input_mask, since now that it isn't scoped to init_expander it isn't clear that it's only for the expander.
Dactyl
See https://github.com/adereth/dactyl-keyboard
The Dactyl uses the Teensy Loader.
Linux users need to modify udev rules as described on the Teensy
Linux page. Some distributions provide a binary, maybe called
teensy-loader-cli
.
To flash the firmware:
-
Build the firmware with
make handwired/dactyl:<keymapname>
, for examplemake handwired/dactyl:default
-
This will result in a hex file called
handwired_dactyl_<keymapname>.hex
, e.g.handwired_dactyl_default.hex
-
Start the teensy loader.
-
Load the .hex file into it.
-
Put the Teensy in firmware-loading mode:
- If your current layout has a RESET key, press it.
- If you lack a RESET key, press the reset button on the Teensy board itself.
-
Click the button in the Teensy app to download the firmware.
To flash with ´teensy-loader-cli´:
-
Build the firmware as above
-
Run
<path/to/>teensy_loader_cli -mmcu=atmega32u4 -w handwired_dactyl_<keymapname>.hex
-
If you like, you can do both at once:
make handwired/dactyl:<keymapname>:teensy
-
Put the Teensy in firmware-loading mode:
- If your current layout has a RESET key, press it.
- If you lack a RESET key, press the reset button on the Teensy board itself.