Erin Call [Sun, 26 Nov 2017 07:18:59 +0000 (23:18 -0800)]
Handwired/Dactyl keyboard (#2058)
* Copy the ergodox_ez code to handwired/dactyl
Differences from the Ergodox:
* Use QMK_SUBPROJECT_H instead of QMK_KEYBOARD_H, since it's under
handwired
* Omitted several keymaps. They'll eventually be broken (since the
Dactyl has fewer keys), and I don't want to try to fix them.
* Omitted the keymap images for the default layout, since they depict
a different keyboard.
* Everything that said Ergodox now says Dactyl, naturally.
* [whitespace] Delete trailing whitespace
My editor does this automatically so it's just gonna keep cropping up...
* Cut the dactyl down to the right number of columns
(Remember, throughout matrix.c, everything called "row" is really a
column, and vice-versa).
* Remove LED-related code
* Tighten up the Dactyl's build options
* Whitespace cleanup in twimaster.c
* Hardtabs -> spaces
* No more trailing whitespace
* Typo fix
* Correct the CPU frequency units
The Teensy's CPU definitely doesn't run at 16 petahertz...
* Restore access to ONEHAND_ENABLE
I turned it off in 26d47cb42622d990a7c3335e7fcc151aa3edfbf0 while
desperately debugging; I just wanted to ensure it wasn't causing the
problem I was seeing. It was not, in fact, causing the problem, so it's
back.
Also fixed the swap matrix in dactyl.c, since it still referred to
columns that exist in the Ergodox but not the Dactyl.
* Clearer phrasing about TWI's effect on scan rate
* Fix up the Dactyl's firmware-loading instructions
Sadly, the Dactyl has no hole for the onboard reset button.
* Dvorak keymap for the Dactyl
* The Erincalling Layout
* Erincalling layout: Add a := key
I've been working in Go, which uses := a lot, and it's awkward to type
in this layout.
* Dactyl README: link to the dactyl-keyboard repo
* Add a missing copyright line
I don't know how much this matters? Honestly, it's enough for me that my
name is on the git commit. But hey, let's be consistent until there's a
specific reason not to be, right?
* Dactyl: remove commented-out code
I hate it I hate it I hate it
There's not even any information about what it was trying to do!!!! >:(
* Add a note about the row/column ridiculousness
* [whitespace] realign some constants
* Don't claim B4 is tied to VCC
It doesn't matter at all? I honestly don't know what the reason ever
was. It looks like it dates back to the original ErgoDox and I've never
seen one sentence about the purpose.
I've been skipping that wire for some time, and I promise it works fine.
* Dactyl keymaps: Send RALT for right-hand alt key
Not terribly important but I just like things tidy OK
* typo fix
* Refer to "dactyl.h" explicitly
QMK_SUBPROJECT_H has been working locally, but fails in CI. Strange!
* Dactyl: Don't use QMK_SUBPROJECT_H at all
It's still breaking in CI, even though it was a never a problem locally.
Seebs [Sat, 18 Nov 2017 22:11:26 +0000 (16:11 -0600)]
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.
Seebs [Sat, 18 Nov 2017 21:39:50 +0000 (15:39 -0600)]
Allow multiple process_record() calls per scan
This is particularly relevant for, e.g., the ergodox EZ and
other keyboards with slow scan rates. Without changing the API or
behavior of individual process_record() calls, we allow a
configuration flag to make multiple calls in a single scan.
This will probably have miniscule effects on non-steno users,
and it's not enabled by default for any keyboards. Added note
about it to ergodox README.
Previously an outdated copy of the default readme. Updated to match the Nyquist/DivergeJM format (DivergeJM is a split 5x12 implementation of the terminus_mini layout)
* Update makefiles to rules.mk
Renamed both Makefiles to rules.mk, removed references to makefiles
* Updated rules.mk
Inadvertantly removed important code from the rules.mk in previous commit. This has been restored.
Also disabled Tap_Dance in both rules.mk files
* Moved terminus_mini to handwired
Realised that existing directory was not appropriate for the terminus_mini project, moved to handwired.
* New Frosty Flake layout for QFR TKL
Added a TKL layout for the Frosty Flake with a navigation cluster on LOWER under the left hand and a similarly functioning MOUSE layer that includes mouse navigation functionality.
* README fix & keymap update for 3 keyboards
Fixed the markdown for the handwired/terminus_mini:default, Nyqyist:DivergeJM & frosty_flake:QFR_JM.
Added TAPPING_TERM = 150 to config.h for all keyboards
Switched LT(LOWER) and LAlt on the mod row for ortholinear boards.
* Update readme for QFR_JM to include make instructions
* Revert "Merge branch 'master' of https://github.com/mogranjm/qmk_firmware"
Implemented variable default base layer from the Planck default keymap.
* Update README to reflect QWERTY support
* Nyquist:DivergeJM - Update RESET location
Add a reset button to both hands, accessible when halves are disconnected.
* Typo fix
* Update DivergeJM
Switched master to Left hand,
Moved Reset key to a different location
* Added macros to send R pointer & dplyr pipe
Macros added as a string of keypresses, couldn't figure out how to get SEND_STRING to work.
* Added ADJUST -> QWERTY, DVORAK, COLEMAK
Re-implemented update_tri_layer fuctionality to reset base layer for Terminus_Mini & DivergeJM Nyquist keymaps to QWERTY, DVORAK or COLEMAK via the ADJUST layer.
Updated ReadMe files accordingly.
* Fix base layout diagram for Terminus_Mini
Remove split from diagram
* Changed the R operators to SEND_STRING, rather than keypress macros
* Added Dvorak to the QFR_JM keymap
* fixed duplicate row in Nyquist keymap
* Fix readme - LAlt location on mouse layer
* Set EE_HANDS to allow either Nyquist hand to work as master.
* Update R operator strings, clean up layering for terminus_mini, QFR_JM and DivergeJM
"<-" to " <- "
"%>%" to " %>% "
Also played around with the layering, removed unnecessary TAP_TOGGLE for LOWER and shuffled FUNCTION and MOUSE momentary actions to reflect layer order.
* Update bottom alpha row to output symbols on LOWER
This row now outputs the following (z -> /) when in the LOWER layer:
<-
%>%
{
[
`
|
]
}
.
/
* Updated readme files for QFR_JM, terminus_mini & DivergeJM
QFR_JM readme reflects correct LOWER bottom row symbol output,
terminus_mini & DivergeJM reflect correct command line make instructions.
* Add media keys to QFR_JM LOWER - Replicate QFR default functionality
* Fix issue with Mouse layering
Stuck on mouse layer because the wrong macro was assigned to the 'exit layer' key. Reassigned that key.
* Changed " <- " to "<- " for QFR_JM, terminus_mini & DivergeJM
* Add "KC_MAKE" to userspace example
* QMK DFU bootloader generation (#2009)
* adds :bootloader target
* update planck and preonic revisions
* remove references to .h files for planck
* update preonic keymap
* only add keyboard.h files that exist
* add production target
* hook things up with the new lufa variables
* update rules for planck/preonic
* back backlight key turn of status led when pressed
* add manufacturer/product strings to bootloader
* fix push script
* Added support for let's split kailh socket version (#2010)
* Added support for socket version of the let's split
Previously an outdated copy of the default readme. Updated to match the Nyquist/DivergeJM format (DivergeJM is a split 5x12 implementation of the terminus_mini layout)
* Update makefiles to rules.mk
Renamed both Makefiles to rules.mk, removed references to makefiles
* Updated rules.mk
Inadvertantly removed important code from the rules.mk in previous commit. This has been restored.
Also disabled Tap_Dance in both rules.mk files
* Moved terminus_mini to handwired
Realised that existing directory was not appropriate for the terminus_mini project, moved to handwired.
* New Frosty Flake layout for QFR TKL
Added a TKL layout for the Frosty Flake with a navigation cluster on LOWER under the left hand and a similarly functioning MOUSE layer that includes mouse navigation functionality.
* README fix & keymap update for 3 keyboards
Fixed the markdown for the handwired/terminus_mini:default, Nyqyist:DivergeJM & frosty_flake:QFR_JM.
Added TAPPING_TERM = 150 to config.h for all keyboards
Switched LT(LOWER) and LAlt on the mod row for ortholinear boards.
* Update readme for QFR_JM to include make instructions
* Revert "Merge branch 'master' of https://github.com/mogranjm/qmk_firmware"
Implemented variable default base layer from the Planck default keymap.
* Update README to reflect QWERTY support
* Nyquist:DivergeJM - Update RESET location
Add a reset button to both hands, accessible when halves are disconnected.
* Typo fix
* Update DivergeJM
Switched master to Left hand,
Moved Reset key to a different location
* Added macros to send R pointer & dplyr pipe
Macros added as a string of keypresses, couldn't figure out how to get SEND_STRING to work.
* Added ADJUST -> QWERTY, DVORAK, COLEMAK
Re-implemented update_tri_layer fuctionality to reset base layer for Terminus_Mini & DivergeJM Nyquist keymaps to QWERTY, DVORAK or COLEMAK via the ADJUST layer.
Updated ReadMe files accordingly.
* Fix base layout diagram for Terminus_Mini
Remove split from diagram
* Changed the R operators to SEND_STRING, rather than keypress macros
* Added Dvorak to the QFR_JM keymap
* fixed duplicate row in Nyquist keymap
* Fix readme - LAlt location on mouse layer
* Set EE_HANDS to allow either Nyquist hand to work as master.
* Update R operator strings, clean up layering for terminus_mini, QFR_JM and DivergeJM
"<-" to " <- "
"%>%" to " %>% "
Also played around with the layering, removed unnecessary TAP_TOGGLE for LOWER and shuffled FUNCTION and MOUSE momentary actions to reflect layer order.
* Update bottom alpha row to output symbols on LOWER
This row now outputs the following (z -> /) when in the LOWER layer:
<-
%>%
{
[
`
|
]
}
.
/
* Updated readme files for QFR_JM, terminus_mini & DivergeJM
QFR_JM readme reflects correct LOWER bottom row symbol output,
terminus_mini & DivergeJM reflect correct command line make instructions.
* Add media keys to QFR_JM LOWER - Replicate QFR default functionality
* Fix issue with Mouse layering
Stuck on mouse layer because the wrong macro was assigned to the 'exit layer' key. Reassigned that key.
* Changed " <- " to "<- " for QFR_JM, terminus_mini & DivergeJM
drashna [Mon, 6 Nov 2017 16:43:38 +0000 (08:43 -0800)]
Fix RGBLIGHT startup color (#1975)
* Fix RGBLIGHT startup color
While it's awesome to see the layer indicating code in here (no really!), and the general rule is to not alter the default keymap/code....
The problem with the layer_state_set_kb call handling this, is that the code doesn't seem to be called at startup. So the default layer color won't ever get set on startup. It needs to be called in the init function to be properly set.
I've played with this extensively, and if you check my keymaps, that is precisely why I have the setrgb/sethsv in the init function.
Michael F. Lamb [Fri, 3 Nov 2017 15:56:06 +0000 (08:56 -0700)]
several improvements for mitosis:datagrok (#1960)
* mitosis/datagrok: reduce features from rules.mk
* mitosis/datagrok: make both layer keys neighbor shift
* mitosis/datagrok: (no-op) tweak some comments
* mitosis/datagrok: set baudrate to 250k
This requires a corresponding change to the mitosis wireless firmware:
https://github.com/reversebias/mitosis/pull/10
* mitosis/datagrok: move design description from code comment to a readme
* mitosis/datagrok: new layout, new shifted keys, efficient LED code
This is experimental, but compiles and seems to work correctly.
* mitosis/datagrok: whoops, move readme.md
* mitosis/datagrok: a minor layout improvement simplifies custom-shifted code
instead of [, .] [? !], using [, ?] [. !] greatly simplifies the code
needed to perform the shifted-key switching. (And keeps , and . on the
same keys that they are under qwerty.)
also: layout improvements for symbols
* mitosis/datagrok: make my code conform to QMK style guidelines
* mitosis/datagrok: TODO note for layout table in README
* mitosis/datagrok: remove led_set_user until i figure out other changes
need to see if the corresponding changes needed in the keyboard-level code
is okay.
* mitosis/datagrok: simpler layer indicator
* mitosis/datagrok: undo change to keyboard baud; make it in my layout dir.
* mitosis/datagrok: apply same punctuation hack to qwerty layer