diff options
author | jack <[email protected]> | 2022-11-03 14:24:15 -0600 |
---|---|---|
committer | jack <[email protected]> | 2022-11-03 15:42:58 -0600 |
commit | e55177fb5b88a09c8d9882a33c33c5bfbc19e1fb (patch) | |
tree | 87f3c2132755066249a5eee7286b88654dce7a78 | |
parent | 731ae4f105356608ba2f3fceafa2ccef7df53b39 (diff) | |
download | qmk_me-e55177fb5b88a09c8d9882a33c33c5bfbc19e1fb.tar.gz qmk_me-e55177fb5b88a09c8d9882a33c33c5bfbc19e1fb.zip |
various readme updates
-rw-r--r-- | img/bark.png | bin | 0 -> 297 bytes | |||
-rw-r--r-- | img/num.png | bin | 0 -> 929 bytes | |||
-rw-r--r-- | img/run.png | bin | 0 -> 286 bytes | |||
-rw-r--r-- | img/sit.png | bin | 0 -> 259 bytes | |||
-rw-r--r-- | img/sneak.png | bin | 0 -> 255 bytes | |||
-rw-r--r-- | img/sym.png | bin | 0 -> 929 bytes | |||
-rw-r--r-- | img/sys.png | bin | 0 -> 1034 bytes | |||
-rw-r--r-- | img/walk.png | bin | 0 -> 280 bytes | |||
-rw-r--r-- | img/wpm_graph.gif | bin | 0 -> 3114411 bytes | |||
-rw-r--r-- | keyboards/minidox/keymaps/default/keymap.c | 15 | ||||
-rw-r--r-- | keymaps/crkbd/readme.md | 15 | ||||
-rw-r--r-- | keymaps/crkbd/rules.mk | 1 | ||||
-rw-r--r-- | keymaps/ferris/readme.md | 4 | ||||
-rw-r--r-- | keymaps/kyria/readme.md | 4 | ||||
-rw-r--r-- | keymaps/microdox/readme.md | 3 | ||||
-rw-r--r-- | readme.md | 88 | ||||
-rw-r--r-- | waffle/raw.py | 2 | ||||
-rw-r--r-- | waffle/tapping.c | 4 |
18 files changed, 97 insertions, 39 deletions
diff --git a/img/bark.png b/img/bark.png Binary files differnew file mode 100644 index 0000000..4b31319 --- /dev/null +++ b/img/bark.png diff --git a/img/num.png b/img/num.png Binary files differnew file mode 100644 index 0000000..b42e334 --- /dev/null +++ b/img/num.png diff --git a/img/run.png b/img/run.png Binary files differnew file mode 100644 index 0000000..4ce1a82 --- /dev/null +++ b/img/run.png diff --git a/img/sit.png b/img/sit.png Binary files differnew file mode 100644 index 0000000..765e8ef --- /dev/null +++ b/img/sit.png diff --git a/img/sneak.png b/img/sneak.png Binary files differnew file mode 100644 index 0000000..9c99f82 --- /dev/null +++ b/img/sneak.png diff --git a/img/sym.png b/img/sym.png Binary files differnew file mode 100644 index 0000000..9e8f0f1 --- /dev/null +++ b/img/sym.png diff --git a/img/sys.png b/img/sys.png Binary files differnew file mode 100644 index 0000000..176edd5 --- /dev/null +++ b/img/sys.png diff --git a/img/walk.png b/img/walk.png Binary files differnew file mode 100644 index 0000000..b475da3 --- /dev/null +++ b/img/walk.png diff --git a/img/wpm_graph.gif b/img/wpm_graph.gif Binary files differnew file mode 100644 index 0000000..8f53716 --- /dev/null +++ b/img/wpm_graph.gif diff --git a/keyboards/minidox/keymaps/default/keymap.c b/keyboards/minidox/keymaps/default/keymap.c deleted file mode 100644 index e354440..0000000 --- a/keyboards/minidox/keymaps/default/keymap.c +++ /dev/null @@ -1,15 +0,0 @@ -#include QMK_KEYBOARD_H -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_split_3x5_3( - KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, - KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, - KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, - MO(1), KC_SPC, KC_MS_L, KC_MS_R, KC_BSPC, MO(2) - ), - [1] = LAYOUT_split_3x5_3( - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, - KC_ESC, KC_TAB, KC_CAPS, KC_TILD, KC_GRV, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_RGUI, - KC_TRNS, KC_SPC, KC_LGUI, KC_PGUP, KC_VOLU, KC_MS_U - ) -}; diff --git a/keymaps/crkbd/readme.md b/keymaps/crkbd/readme.md index e1257ea..308791e 100644 --- a/keymaps/crkbd/readme.md +++ b/keymaps/crkbd/readme.md @@ -1,2 +1,17 @@ ### [proton-c crkbd](https://github.com/waffle87/waffle_corne) ![img](https://i.imgur.com/ob8D0hY.jpeg) + +#### notes +[low scan mode](https://github.com/waffle87/qmk.me/blob/master/keymaps/crkbd/keymap.c#L24-#L46) to avoid unecessary scans if there's no matrix activity (5s timeout)\ +[audio configuration](https://github.com/waffle87/qmk.me/blob/master/keymaps/crkbd/keymap.c#L49-#L57) to pass output from B1 to A5 (proper dac pin). +```c +extern LED_TYPE rgb_matrix_ws2812_array[RGB_MATRIX_LED_COUNT]; +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + pimoroni_trackball_set_rgbw(rgb_matrix_ws2812_array[29].r, rgb_matrix_ws2812_array[29].g, rgb_matrix_ws2812_array[29].b, 0); + for (uint8_t i = led_min; i <= led_max; i++) + if (g_led_config.flags[i] & LED_FLAG_UNDERGLOW) + rgb_matrix_set_color(i, RGB_YELLOW); + return false; +} +``` +above snippet aligns pimoronic trackball rgb led with the active rgb matrix animation, & sets the underglow leds to yellow. diff --git a/keymaps/crkbd/rules.mk b/keymaps/crkbd/rules.mk index eef496f..a08817e 100644 --- a/keymaps/crkbd/rules.mk +++ b/keymaps/crkbd/rules.mk @@ -4,6 +4,7 @@ SERIAL_DRIVER = usart WS2812_DRIVER = pwm OLED_ENABLE = yes AUDIO_ENABLE = yes +AUDIO_DRIVER = dac_basic RGB_MATRIX_ENABLE = yes ENCODER_ENABLE = yes ENCODER_MAP_ENABLE = yes diff --git a/keymaps/ferris/readme.md b/keymaps/ferris/readme.md index 1e54d11..c3ac9ca 100644 --- a/keymaps/ferris/readme.md +++ b/keymaps/ferris/readme.md @@ -2,3 +2,7 @@ ![parts](https://i.imgur.com/zKJoYMa.jpeg) ![switches](https://i.imgur.com/ZSEpMGf.jpeg) ![complete](https://i.imgur.com/Op0bU0N.jpeg) + +#### notes +an elite-c was required for this pcb, as it exposes an io pin where most pro-micro's have a raw power pin.\ +this means no diodes are required :^) diff --git a/keymaps/kyria/readme.md b/keymaps/kyria/readme.md index e473b8a..cc9bab8 100644 --- a/keymaps/kyria/readme.md +++ b/keymaps/kyria/readme.md @@ -1,4 +1,4 @@ -### RP2040 Kyria rev2 +### rp2040 kyria rev2 ![photo](https://i.imgur.com/P0urp7n.jpeg) #### parts & notes @@ -25,3 +25,5 @@ from there, wired trackpad directly to oled header pins on pcb. looks a bit iffy ![trackpad wiring](https://i.imgur.com/tvLVEe0.jpeg) * [pucks](https://splitkb.com/collections/keyboard-parts/products/tenting-puck) and [tripods](https://www.amazon.com/Manfrotto-MP3-BK-Large-Pocket-Support/dp/B00HCAB8MU) for tenting-puck + +* wpm graph is very resource intensive and drops matrix scan rate to ~200/s... diff --git a/keymaps/microdox/readme.md b/keymaps/microdox/readme.md index 025c17b..0291124 100644 --- a/keymaps/microdox/readme.md +++ b/keymaps/microdox/readme.md @@ -1,7 +1,6 @@ -### RP2040 Microdox v2 +### rp2040 microdox v2 ![photo](https://raw.githubusercontent.com/waffle87/microdox/master/images/mdox.png) * microcontrollers: [sparkfun rp2040 pro micro](https://www.sparkfun.com/products/18288) only complaint is the added height from the buttons, qwiic connector, & usb-c port, but still seems to work with [low profile sockets](https://www.digikey.com/product-detail/en/mill-max-manufacturing-corp/315-43-164-41-003000/ED4764-64-ND/1212143). -`CONVERT_TO = promicro_rp2040` is all the configuration this keyboard needs thanks to the recent converter work :^) @@ -1,8 +1,27 @@ +### qmk.me +this is a self-contained repository for my personal [qmk](https://github.com/qmk/qmk_firmware) userspace & keyboard code.\ +![keyboard](https://i.imgur.com/s0dN0JDh.jpeg) + +### building +symlinks are used to compile this code in a proper `qmk_firmware` repository.\ +eg. +```shell +ln -s ~/qmk.me/waffle ~/qmk_firmware/users/waffle +ln -s ~/qmk.me/keyboards/relic ~/qmk_firmware/keyboards/relic +echo "users/waffle\nkeyboards/relic" >> ~/qmk_firmware/.git/info/exclude +qmk compile -kb relic -km waffle + +``` + ### layout ![layout](https://i.imgur.com/uKNJuKi.png) ### combos -`#define COMBO_TERM 50` +[combos.h](waffle/combos.h) contains macros that allow for combos be simply defined in a `combos.def` file as +``` +CMB(<name>, <output>, <trigger keycodes>) +``` +`#define COMBO_TERM 40` | trigger | output (single/double tap) | | :-----: | :------------------------: | | r + u | enter | @@ -20,14 +39,21 @@ | f + g | right click | ### oled -[font file](oledfont.h) can be viewed and modified at [qmk logo editor](https://joric.github.io/qle)\ -all the boring animation code is stored in [oled.h](https://github.com/waffle87/qmk_firmware/blob/waffle_develop/users/waffle/oled.h) +[font file](waffle/oledfont.h) can be viewed and modified at [qmk logo editor](https://joric.github.io/qle)\ +all the boring animation code is stored in [oled.h](waffle/oled.h) **animations:**\ -[felix the dog](https://github.com/waffle87/qmk_firmware/blob/waffle_develop/users/waffle/oled.c#L133-#L151)\ -[bongo cat](https://github.com/waffle87/qmk_firmware/blob/waffle_develop/users/waffle/oled.c#L155-#L172)\ -[layer animation](https://github.com/waffle87/qmk_firmware/blob/waffle_develop/users/waffle/oled.c#L206-#L229)\ -below snippet can be used to render the big byte arrays used by animations. +[felix the dog](https://github.com/waffle87/qmk.me/blob/master/waffle/oled.c#L128-#L149)\ +![sit](img/sit.png) ![walk](img/walk.png) ![run](img/run.png) ![bark](img/bark.png) ![sneak](img/sneak.png)\ +[layer animation](https://github.com/waffle87/qmk.me/blob/master/waffle/oled.c#L203-#L226)\ +![num](img/num.png)\ +![sym](img/sym.png)\ +![sys](img/sys.png)\ +[wpm graph](https://github.com/waffle87/qmk.me/blob/master/waffle/oled.c#L170-#L201)\ +![gif](img/wpm_graph.gif)\ +[bongo cat](https://github.com/waffle87/qmk.me/blob/master/waffle/oled.c#L151-#L168) + +the below snippet is used to render the big byte arrays used by animations. where `size` is the array size and `action` is the animation frame name. ```c void anim_frame(uint16_t size, char const action[][size]) { @@ -37,9 +63,11 @@ void anim_frame(uint16_t size, char const action[][size]) { } ``` **custom timeout:**\ -some animations don't respect `OLED_TIMEOUT`, so a custom timeout from [drashna](https://github.com/qmk/qmk_firmware/blob/develop/users/drashna/oled/oled_stuff.c) can be used. -this depends on `OLED_DISABLE_TIMEOUT` & `SPLIT_OLED_ENABLE` being defined. +some animations don't respect `OLED_TIMEOUT`, so a custom timeout from [drashna](https://github.com/qmk/qmk_firmware/blob/master/users/drashna/oled/oled_stuff.c) can be used. +(this depends on `OLED_DISABLE_TIMEOUT` & `SPLIT_OLED_ENABLE` being defined) ```c +uint32_t oled_timer = 0; + bool oled_task_user(void) { if (is_keyboard_master()) { if (timer_elapsed32(oled_timer) > 180000) { //turn off after 3min @@ -53,7 +81,6 @@ bool oled_task_user(void) { return false; } -uint32_t oled_timer = 0; void oled_timer_reset(void) { oled_timer = timer_read32(); } @@ -67,7 +94,8 @@ the above snippet is also neat because global oled behavior can be placed in `ol while keyboard specific oled code, like rendering certain things, can go in `oled_task_keymap`. ### raw hid -[raw.py](raw.py) is a basic implementation modified from [rawhid in python](https://gist.github.com/fauxpark/03a3efcc7dbdfbfe57791ea267b13c55). +data is stored in a [typedef](https://github.com/waffle87/qmk.me/blob/master/waffle/waffle.h#L11-#L16) and [assigned](https://github.com/waffle87/qmk.me/blob/master/waffle/waffle.c#L7-#L11) when info is sent by the host.\ +[raw.py](waffle/raw.py) is a basic implementation modified from [rawhid in python](https://gist.github.com/fauxpark/03a3efcc7dbdfbfe57791ea267b13c55). renders current time on oled display: ```c void host_info(uint8_t data) { @@ -85,12 +113,36 @@ void render_time(void) { host_info(user_state.min); } ``` +### tap dances & custom keycodes +macro to help circumvent mod-tap/16-bit keycode limitation: +```c +#define INTERCEPT_MOD_TAP(mod, keycode) \ +case mod(keycode): \ + if (record->tap.count && record->event.pressed) { \ + tap_code16(keycode); \ + return false; \ + } \ + break; \ + +``` +which can be called from `process_record_user` as `INTERCEPT_MOD_TAP(LALT_T, KC_EXLM)` for example. + +| keycode | action (single/double/triple tap) | +| :------: | :-------------------------------------------: | +| `DEG_0` | 0 / ° | +| `PNP` | play/pause / skip/next / back/prev | +| `CLIPST` | paste (term) / search (term) / layer 2 (hold) | +| `UPDIR` | ../ | +| `RWORD` | outputs a random word ([dict.h](https://raw.githubusercontent.com/qmk/qmk_firmware/master/users/ridingqwerty/dict.h)) | ### some keyboards -[crkbd](https://github.com/waffle87/qmk_firmware/tree/waffle_develop/keyboards/crkbd/keymaps/waffle)\ -[relic](https://github.com/waffle87/qmk_firmware/tree/waffle_develop/keyboards/relic/keymaps/waffle)\ -[kyria](https://github.com/waffle87/qmk_firmware/tree/waffle_develop/keyboards/splitkb/kyria/keymaps/waffle)\ -[ferris](https://github.com/waffle87/qmk_firmware/tree/waffle_develop/keyboards/ferris/keymaps/waffle)\ -[microdox](https://github.com/waffle87/qmk_firmware/tree/waffle_develop/keyboards/boardsource/microdox/keymaps/waffle)\ -[minidox](https://github.com/waffle87/qmk_firmware/tree/waffle_develop/keyboards/handwired/minidox/keymaps/waffle)\ -[leftover30](https://github.com/waffle87/qmk_firmware/blob/waffle_develop/keyboards/tominabox1/leftover30_arm/keymaps/waffle/keymap.c) +[crkbd](keymaps/crkbd)\ +[kyria](keymaps/kyria)\ +[ferris](keymaps/ferris)\ +[microdox](keymaps/microdox)\ +[relic](keyboards/relic)\ +[vault35](keyboards/vault35)\ +[xyz60](keyboards/xyz60)\ +[f60](kemaps/f60)\ +[minidox](keyboards/minidox)\ +[leftover30](keyboards/leftover30) diff --git a/waffle/raw.py b/waffle/raw.py index 08ed06f..1410156 100644 --- a/waffle/raw.py +++ b/waffle/raw.py @@ -25,7 +25,7 @@ def send_packet(data): if interface is None: print("no device found") sys.exit(1) - request_data = [0x00] * 33 #hidapi doesn't send first byte to host + request_data = [0x00] * 33 #hidapi does not send first byte to host request_data[1:len(data) + 1] = data request_packet = bytes(request_data) try: diff --git a/waffle/tapping.c b/waffle/tapping.c index 7ef50df..6ade625 100644 --- a/waffle/tapping.c +++ b/waffle/tapping.c @@ -41,11 +41,11 @@ void td_reset(qk_tap_dance_state_t *state, void *user_data) { void qmk_dance(qk_tap_dance_state_t *state, void *user_data) { if (state->count == 1) { tap_code16(C(KC_T)); - send_string(qmkstr); + SEND_STRING(qmkstr); tap_code(KC_ENT); } else { tap_code16(C(KC_T)); - send_string(confstr); + SEND_STRING(confstr); tap_code(KC_ENT); } } |