* Preliminary commit for Octagon V1 support
This is essentially a cp -R v2 v1 with a few things changed to
get it to compile and build.
* The Octagon V1 supports up to 84 keys as opposed to the V2 which
supports up to 86. This commit changes the keymap to match it.
* Temporary default keymap just to get things to compile
* Update readme file
* Fix switch matrix
* Fix underglow lighting option
* Fix keymap to take care of shifted columns
* Fix keymap formatting
* Remove un-needed files left over from rasmusx
* Make Octagon V1 have its own keymap directory with default keymap
* Make Octagon V2 have its own keymap directory with default keymap
* Cleanups and readme edits
* adding new layout for the planck that helps when coming from the pok3r
* Fixing the function layer
* Update readme.md
* Update keymap.c
Making some small adjustments
* Update keymap.c
switching GUI and Esc
* Update keymap.c
* adding mod tap on left and right shift
* adding mod tap on left and right shift
* poker keymap for lets split
* fixing the FN layer
* removing unused file
* rename octagon_v2 directory to octagon directory
* Move octagon_v2 files to v2 sub-directory
* Edit readme files
* setup header files for building multiple versions of the Duck
Octagon.
* Changes as per Jack's PR 2170 comments
* Add keymap for my friend's KBD75\nBug : RGUI is read as RALT
* Add keymap for Nyquist
* Add Keymap for Whitefox (Truefox layout only)
* Add Keymap for XD75 and XD73 (XD75 with 1u blocker each on left and right bottom
* Added functions to read HSV values
I have added three functions to rgb_light.c to be able to read the hue, saturation and value from other places.
They are rgblight_get_hue(), rgblight_get_sat(), adn rgblight_get_val().
* Create keymap.c
* Add COSPAD support to QMK
I have ported the COSPAD numpad to qmk.
* Update readme.md
* Update cospad.c
* Line ending stuff again
* Added initial files for Christmas Tree PCB
* Updated Readme and info json's, also config.
* Cleaned up keymap file, added proper comments for keymap. Removed readme leftover from original copy of planck folder structure.
* Forgot to push rules.mk for the V2017 folder, fixed now.
* Initial commit for Octagon V2 Support
This is still basically just a copy of lightsaver support with
names changed.
* Port xauser keymap from: https://github.com/xauser/tmk_keyboard/blob/xauser/keyboard/octagon_v2/keymap_common.h
* Temporary default keymap just to get things compiling
* Modify config.h to have the right keyboard info
* Partial port of xauser matrix code for octagon v2
* Fix readme.md
1. Fix link to geekhack GB
2. Add microchips
3. Add appropriate attributions
* Fix PORTD
* Intermediate fix to get LEDs working
* Update BACKLIGHT_AREAS enum
* Port the following:
backlight_set
backlight_toggle_rgb
backlight_set_rgb
and resolve dependencies in header files
* Port backlight_update_state to led_set_kb
* Change copyright notice author to MechMerlin
* Remove Rasmus keymap
* Get a default keymap that actually does something and let's you reset.
* Convert keymap into KC_XXXX format.
* Better formatting of the default keymap to make it more readable
* Fix keymap
* Get that Fn key working!
* Some code cleanup and small refactor
* Fix keymap in octagon_v2.h
* Line ending stuff again
* Added initial files for Christmas Tree PCB
* Updated Readme and info json's, also config.
* Cleaned up keymap file, added proper comments for keymap. Removed readme leftover from original copy of planck folder structure.
* Initial K-Type support
* Copy PJRC_TEENSY_3_1 to work around watchdog issues
* K-Type: Remove bootloader offset in rules.mk
* Ensure matrix and scan quantum functions are called when needed
This is porting a fix from f5422a70b6
* Added xd60:Jos keymap
* Corrected Layout image for xd60:Jos layout
* Update README for xd60:Jos layout
* Created rules.mk for xd60:Jos layout
* Fixed an edge case for xd60:Jos layout
* Now using a specific for xd60:Jos layout instead of modifying the main one
* Better physical layout image for xd60:Jos layout
* new planck keymap, new feature - hybrid shift/enter action key (great for small keyboards!)
* corrected documentation to specify rules.mk file instead of Makefile
* Initial version of the Ergodox EZ Bépo keymap, TypeMatrix style.
* Update the readme file and add some handling of the keyboard LEDs.
* Toggling layer requires 2 taps.
* Remove a constant as it conflicts with an earier definition.
* Fix a typo in a type name.
* Fix the arrow layer that had a bad number.
* Second main version of my bepo keymap, after the tests of the first one.
* Fix the triggering of the function layer and the handling of the LED.
* Reduce the shining of the LEDs.
* Fix the swap layer (that required a keypress on the other side of the keyboard to be deactivated).
* Duplicate some of the mouse button for easy access.
* Move some of the secondary functions out of the center keys.
* Slightly slow down the mouse and mouse wheel.
* Update the comment and readme.md for the V2 of the keymap.
* Invert button 2 and 3 of the mouse. Really fix the SWAP layer.
* Test with the right alt modifier added as secondary function (on hold) of the space keys. The right alt key becomes a left alt one.
* Add specific shift/ctrl for the FN layer; move some mouse keys around to help with that.
* Remove one FN modifier-on-hold key that was not useful.
* Duplicate the FN layer inside the MOUSE layer.
* Add support (not tested yet) for macro recording and play on a single key as a tap dance.
* Allow to stop recording the macro by tapping once on the macro key (still un-tested).
* Add support for macro recording using some tap dance.
* shorten a comment.
* Reinstate the FN toggle on the percent key (so that there is an FN toggle on the right-hand-side).
* Fix some comments and update the link to the most up-to-date image.
* Small fix to the keymap images.
* Change overwatch to Gamepad
* Remove secrets file
* Add sample sensitive.h file
* Borrow @colinta's secrets.h include method
* Remove unnessary placeholder for macros
* Set secrets to use PROGMEM for char string
* Add readme files to my keymaps and userspace
* ignore libs
* Clang complete file
* Add VIM_A, VIM_S, VIM_COMMAND_SHIFT_D, and VIM_COMMAND_SHIFT_A
Add VIM_A, VIM_S, VIM_COMMAND_SHIFT_D, and VIM_COMMAND_SHIFT_A
a s O
* Comment blocks for minimap
generated at
http://patorjk.com/software/taag/#p=display&h=0&v=0&c=c&f=Banner&t=COMMENT
* Be explicit
* More Comment blocks
* Add J
* add A, C, D, J, S, O
* Make h j k l explicitly vim commands (useful for JOIN)
* add cb ce cw ch cj ck cl db de dw dh dj dk dl vb ve vh vj vk vl x ciw diw viw
* debug messages for ci di vi
* Var capitalized
* Save bytes by disabling mouse keys
* Add Y P
* Be more explicit about which key was pressed
* Be more explicit about which key was sent
* Move project to new directory structure
* Remove non-vim layout folder
* Replace KC_TRNS with KC_NO on normal layer
* Insert Mode as default
* Try to prevent crashes
* Put normal mode back
* Revert "ignore libs"
This reverts commit 4c5d7592d6c1b70e689c0b9400afca19c71970a7.
* add rules.mk
* Add mouse bindings
* Checkout most recent keymap following rebase
* Realign mouse button keys
* Make a macro for TO(NORMAL_MODE)
* add i2c lib submodule
* add actuation point adjustment to fc980c
* add actuation point adjustment to fc660c also.
* use https for i2c submodule
* move to existing i2c lib
* properly remove old submodule
* oops, forgot some files for the fc660c
* Line ending stuff again
* Added initital files and layout for the PCB Ruler keyboard/macro pad thing
* Updated Readme
* Changed make command to new format
"unselecting" left-hand rows is a wasted i2c transaction.
On the left-hand side, the ergodox uses a GPIO expander. It
does *not* change "direction" (input/output) of pins, it just
sets pins high or low.
But all the pins are written at once. There's no way to
change just one pin's value; you send a full byte of all eight
row pins. (Not all of them are in use, but that doesn't matter.)
So every pin is either +V or ground. This is in contrast
with the right-hand side, which is using input mode to make pins
be neutral.
So there's no need to "deselect" the rows on the left side
at all. To select row 0, you set the GPIO register for the
rows to 0xFE. The previous code would then set it back to
0xFF, then set it to 0xFD on the next cycle. But we can just
omit the intervening step, and set it to 0xFD next cycle,
and get the same results.
And yes, I tested that the keyboard still works.
On my system, scan rate as reported by DEBUG_SCAN_RATE goes
from 445 or so to 579 or so, thus, from ~2.24ms to ~1.73ms.
Signed-off-by: seebs <seebs@seebs.net>
* pull fuse settings for bootloader jump
* fix 32a chips
* make automatic bootloader selection optional
* quantify bootloaders
* fixs #164, speeds up dfu reset
* fix for chips w/o usb
* missing an n
* fix bootloader sizes, use words for addresses
* fix bmini, pearl, and [[ issue, make things quiet
* ignore avr errors on arm for now
* update settings for the light
* document bootloader stuff
* add bootloader title
* 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.
* linux shake-around
* move terminal and browser spawning keys
* add a shift to window resizing keys to free combo up for window management
* "jump to tab" shortcuts for firefox
* change window resize modifiers
* change wm keys
* change wm keys again, and reformat keymap to 80chars
* typos
* language key
* qwerty layer for SO, general cleanup
* adds my xd75 layout
* add secret strings to 'secrets.h' behind compile flag, assign defaults
* macro keys now have defaults (hidden in colinta.h) before any recording, and after clearing the dynamic macros.
* fixed whitespace - using 4 spaces instead of 2
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>
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.
Signed-off-by: seebs <seebs@seebs.net>