qmk_firmware/keyboards/handwired/dactyl
Erin Call 050c21d35f Bring dactyl/matrix.c in line with quantum/matrix.c (#2613)
* Use the new debounce algorithm in dactyl/matrix.c [#2065]

This incorporates the fixed/optimized debounce code added to
quantum/matrix.c in:

* 508eddf8ba
* 4c6960835c
* 32f88c0717
* f403028974
* a06115df19

* 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.
2018-04-27 14:47:41 -04:00
..
keymaps
config.h
dactyl.c
dactyl.h
i2cmaster.h
matrix.c
readme.md
rules.mk
twimaster.c

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 example make 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.