Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Keyboard] id80: Transpose matrix to use faster COL2ROW routines #8930

Merged
merged 2 commits into from
Apr 29, 2020

Conversation

sigprof
Copy link
Contributor

@sigprof sigprof commented Apr 26, 2020

Description

Transpose the matrix layout of the ID80 keyboard by swapping MATRIX_ROW_PINS with MATRIX_COL_PINS, flipping DIODE_DIRECTION from ROW2COL to COL2ROW, and adjusting the LAYOUT macro accordingly.

Even the standard QMK matrix_scan() function can give about 2 times higher scan rate (if compiled with optimizations enabled) if the COL2ROW matrix layout is used instead of ROW2COL. Although the ID80 PCB is wired using the ROW2COL matrix layout, it is possible to transpose the matrix from the QMK standpoint, so that "columns" would correspond to horizontal connections, and "rows" would correspond to (mostly) vertical connections; in this case the matrix could be handled as if it had the COL2ROW layout.

The matrix layout change makes the older VIA JSON layout definition incompatible, but the corresponding JSON was not yet accepted to the VIA repository, so it should still be safe to make this change.

Types of Changes

  • Core
  • Bugfix
  • New feature
  • Enhancement/optimization
  • Keyboard (addition or update)
  • Keymap/layout/userspace (addition or update)
  • Documentation

Checklist

  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.
  • I have tested the changes and verified that they work and don't break anything (as well as I can manage).

Even the standard QMK matrix_scan() function can give about 2 times
higher scan rate (if compiled with optimizations enabled) if the COL2ROW
matrix layout is used instead of ROW2COL.  Although the ID80 PCB is
wired using the ROW2COL matrix layout, it is possible to transpose the
matrix from the QMK standpoint, so that "columns" would correspond to
horizontal connections, and "rows" would correspond to (mostly) vertical
connections; in this case the matrix could be handled as if it had the
COL2ROW layout.

The matrix layout change makes the older VIA JSON layout definition
incompatible, but the corresponding JSON was not yet accepted to the VIA
repository, so it should still be safe to make this change.
sigprof added a commit to sigprof/keyboards that referenced this pull request Apr 26, 2020
The QMK PR qmk/qmk_firmware#8930 changes the
matrix layout used by the IDOBAO ID80 keyboard (the matrix is
transposed, so that the faster COL2ROW scan routines may be used).
Update the VIA layout definition according to these changes.
@sigprof sigprof mentioned this pull request Apr 26, 2020
6 tasks
@zvecr zvecr added the keyboard label Apr 26, 2020
@zvecr zvecr requested a review from a team April 26, 2020 17:03
keyboards/id80/id80.h Outdated Show resolved Hide resolved
keyboards/id80/config.h Outdated Show resolved Hide resolved
@zvecr zvecr requested a review from fauxpark April 27, 2020 05:28
@drashna drashna merged commit 8fdb229 into qmk:master Apr 29, 2020
mrlinuxfish pushed a commit to mrlinuxfish/qmk_firmware that referenced this pull request May 3, 2020
…#8930)

* id80: Transpose matrix to use faster COL2ROW routines

Even the standard QMK matrix_scan() function can give about 2 times
higher scan rate (if compiled with optimizations enabled) if the COL2ROW
matrix layout is used instead of ROW2COL.  Although the ID80 PCB is
wired using the ROW2COL matrix layout, it is possible to transpose the
matrix from the QMK standpoint, so that "columns" would correspond to
horizontal connections, and "rows" would correspond to (mostly) vertical
connections; in this case the matrix could be handled as if it had the
COL2ROW layout.

The matrix layout change makes the older VIA JSON layout definition
incompatible, but the corresponding JSON was not yet accepted to the VIA
repository, so it should still be safe to make this change.

* id80: Remove obsolete comments
bitherder pushed a commit to bitherder/qmk_firmware that referenced this pull request May 15, 2020
…#8930)

* id80: Transpose matrix to use faster COL2ROW routines

Even the standard QMK matrix_scan() function can give about 2 times
higher scan rate (if compiled with optimizations enabled) if the COL2ROW
matrix layout is used instead of ROW2COL.  Although the ID80 PCB is
wired using the ROW2COL matrix layout, it is possible to transpose the
matrix from the QMK standpoint, so that "columns" would correspond to
horizontal connections, and "rows" would correspond to (mostly) vertical
connections; in this case the matrix could be handled as if it had the
COL2ROW layout.

The matrix layout change makes the older VIA JSON layout definition
incompatible, but the corresponding JSON was not yet accepted to the VIA
repository, so it should still be safe to make this change.

* id80: Remove obsolete comments
sowbug pushed a commit to sowbug/qmk_firmware that referenced this pull request May 24, 2020
…#8930)

* id80: Transpose matrix to use faster COL2ROW routines

Even the standard QMK matrix_scan() function can give about 2 times
higher scan rate (if compiled with optimizations enabled) if the COL2ROW
matrix layout is used instead of ROW2COL.  Although the ID80 PCB is
wired using the ROW2COL matrix layout, it is possible to transpose the
matrix from the QMK standpoint, so that "columns" would correspond to
horizontal connections, and "rows" would correspond to (mostly) vertical
connections; in this case the matrix could be handled as if it had the
COL2ROW layout.

The matrix layout change makes the older VIA JSON layout definition
incompatible, but the corresponding JSON was not yet accepted to the VIA
repository, so it should still be safe to make this change.

* id80: Remove obsolete comments
turky pushed a commit to turky/qmk_firmware that referenced this pull request Jun 13, 2020
…#8930)

* id80: Transpose matrix to use faster COL2ROW routines

Even the standard QMK matrix_scan() function can give about 2 times
higher scan rate (if compiled with optimizations enabled) if the COL2ROW
matrix layout is used instead of ROW2COL.  Although the ID80 PCB is
wired using the ROW2COL matrix layout, it is possible to transpose the
matrix from the QMK standpoint, so that "columns" would correspond to
horizontal connections, and "rows" would correspond to (mostly) vertical
connections; in this case the matrix could be handled as if it had the
COL2ROW layout.

The matrix layout change makes the older VIA JSON layout definition
incompatible, but the corresponding JSON was not yet accepted to the VIA
repository, so it should still be safe to make this change.

* id80: Remove obsolete comments
jakobaa pushed a commit to jakobaa/qmk_firmware that referenced this pull request Jul 7, 2020
…#8930)

* id80: Transpose matrix to use faster COL2ROW routines

Even the standard QMK matrix_scan() function can give about 2 times
higher scan rate (if compiled with optimizations enabled) if the COL2ROW
matrix layout is used instead of ROW2COL.  Although the ID80 PCB is
wired using the ROW2COL matrix layout, it is possible to transpose the
matrix from the QMK standpoint, so that "columns" would correspond to
horizontal connections, and "rows" would correspond to (mostly) vertical
connections; in this case the matrix could be handled as if it had the
COL2ROW layout.

The matrix layout change makes the older VIA JSON layout definition
incompatible, but the corresponding JSON was not yet accepted to the VIA
repository, so it should still be safe to make this change.

* id80: Remove obsolete comments
@sigprof sigprof deleted the id80-matrix-transpose branch September 2, 2020 20:43
sjmacneil pushed a commit to sjmacneil/qmk_firmware that referenced this pull request Feb 19, 2021
…#8930)

* id80: Transpose matrix to use faster COL2ROW routines

Even the standard QMK matrix_scan() function can give about 2 times
higher scan rate (if compiled with optimizations enabled) if the COL2ROW
matrix layout is used instead of ROW2COL.  Although the ID80 PCB is
wired using the ROW2COL matrix layout, it is possible to transpose the
matrix from the QMK standpoint, so that "columns" would correspond to
horizontal connections, and "rows" would correspond to (mostly) vertical
connections; in this case the matrix could be handled as if it had the
COL2ROW layout.

The matrix layout change makes the older VIA JSON layout definition
incompatible, but the corresponding JSON was not yet accepted to the VIA
repository, so it should still be safe to make this change.

* id80: Remove obsolete comments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants