You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
qmk_firmware/keyboards/ergodox_ez
Seebs 7fbe6c3594 improve ergodox ez performance
With these changes, the ergodox ez goes from 315 scans per second
when no keys are pressed (~3.17ms/scan) to 447 (~2.24ms/scan).

The changes to the pin read are just condensing the logic, and
replacing a lot of conditional operations with a single bitwise
inversion.

The change to row scanning is more significant, and merits
explanation. In general, you can only scan one row of a keyboard
at a time, because if you scan two rows, you no longer know
which row is pulling a given column down. But in the Ergodox
design, this isn't the case; the left hand is controlled by an
I2C-based GPIO expander, and the columns and rows are *completely
separate* electrically from the columns and rows on the right-hand
side.

So simply reading rows in parallel offers two significant
improvements. One is that we no longer need the 30us delay after
each right-hand row, because we're spending more than 30us
communicating with the left hand over i2c. Another is that we're
no longer wastefully sending i2c messages to the left hand
to unselect rows when no rows had actually been selected in the
first place. These delays were, between them, coming out to
nearly 30% of the time spent in each scan.

Signed-off-by: seebs <seebs@seebs.net>
7 years ago
..
keymaps Update to drashna keymaps (#4) 7 years ago
util Creates a layouts/ folder for keymaps shared between keyboards (#1609) 7 years ago
190hotfix.sh Creates a layouts/ folder for keymaps shared between keyboards (#1609) 7 years ago
config.h improve ergodox ez performance 7 years ago
ergodox_ez.c fix typo 7 years ago
ergodox_ez.h add initial support for left leds on an ergodox ez 7 years ago
i2cmaster.h Creates a layouts/ folder for keymaps shared between keyboards (#1609) 7 years ago
matrix.c improve ergodox ez performance 7 years ago
readme.md Allow multiple process_record() calls per scan 7 years ago
rules.mk document how to define LEFT_LEDS and how that hack is done 7 years ago
twimaster.c Creates a layouts/ folder for keymaps shared between keyboards (#1609) 7 years ago

readme.md

ErgoDox EZ

The Ez 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 keymapname, for example make default

  • This will result in a hex file called ergodox_ez_keymapname.hex, e.g. ergodox_ez_default.hex

  • Start the teensy loader.

  • Load the .hex file into it.

  • Press the Reset button by inserting a paperclip gently into the reset hole in the top right corder.

  • Click the button in the Teensy app to download the firmware.

To flash with ´teensy-loader-cli´:

  • Build the firmware with make keymapname, for example make default

  • Run ´<path/to/>teensy_loader_cli -mmcu=atmega32u4 -w ergodox_ez_.hex´

  • Press the Reset button by inserting a paperclip gently into the reset hole in the top right corder.

Settings

You may want to enable QMK_KEYS_PER_SCAN because the Ergodox has a relatively slow scan rate.