Skip to content

adding LED splash effect with the provide QMK firmware, by editing matrix_init_user(), matrix_scan_user(), process_record_user(), led_instructions[]

License

GPL-2.0, GPL-2.0 licenses found

Licenses found

GPL-2.0
LICENSE
GPL-2.0
license_GPLv2.md
Notifications You must be signed in to change notification settings

valen214/Massdrop-Ctrl-Keyboard-Ripple-LED

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Massdrop CTRL Keyboard Splash LED

The rainbow color is now made brighter! (closer to what the default pattern looks)

(but because I quite like the original one, I am going to add toggle switch)

adding LED Splash effect with the provided QMK software.

demo video: https://youtu.be/W3U1SDztx1I

installing video: https://youtu.be/TsPV_rCVT-k (or more recommanded to use the simple installer)

feel free to leave comments or feature request.

How to use:

simple installer

  1. download the download_and_install.bat file and just execute (double click) it

qmk toolbox

  1. bin file inside /.build/

(Currently Available) Settings

Key Combos:

  • Hold(Fn + P) + A, Hold(Fn + P) + D: Previous/Next dripple effect

    • 0: None
    • 1: background off wave on (default)
    • 2: background on wave off
    • 3: rainbow wave 🌈
    • 4: rainbow wave on rotate background
  • Hold(Fn + P) + W, Hold(Fn + P) + S: Increase/Decrease dripple wave width (default: 2, 10 on rainbow and 5 on wave off, set to >10 and press space to see true rainbow!)

  • Hold(Fn + P) + Q, Hold(Fn + P) + E: Decrease/Increase wave speed (actually it's wave period, default: 30~50ms, 10ms per incre/decre, lowest(fastest): 10ms)

  • Hold(Fn) + Up, Hold(Fn) + Down: scroll up and down (implemented with MOUSEKEY, because page up/down scrolls too fast)

  • Hold(Fn + P) + Tab: Toggle between two rainbow color preset

UIO are equivalent to QWE (the keys will light up after pressing Fn + P

JKL are equivalent to ASD so as to allow one hand switching

TODO:

  • add indicator

  • check out the functions from https://beta.docs.qmk.fm/features/feature_rgblight

Implementation:

basically all changes happen only in /keyboards/massdrop/ctrl/keymaps/custom/keymap.c: Inspired by LastContinue's Post, by abusing led_instructions_t to set the led of each individual key only in keymap.c (It is understood to be very inefficient, but one benefit of this is being more prone to future changes (if any, ok I know there is very little) and slightly more portable (more below)).

one core function is unsigned char ktli(uint16_t keycode); where you input the keycode to return the id of the led light that key correspond to (as mentioned in the post). Therefore, ideally, changing this function alone is enough to use the code on other QMK 87 keyboards (assumption is made that the parent project from massdrop is identical to QMK's, but that's not true, I am unable to compile the code with QMK's firmware fork, didn't bother to debug).

another core function is matrix_scan_user() This is provided in the specification. This function is invoked after every small period, to check the time passed after a key press registered as in process_record_user(keycode) (which stores information in KEY_STROKES), against the distance between the registered key and the targeted led key.

The DISTANCE_MAP[][] (as initialized from matrix_init_user()) recorded the distances (adjacent key as 1 unit) between each of the two keys. While additional algorithm is used to calibrate the distance between two keys which appears to be distinct in a 2D array, but adjacent in reality. ( This process could have been cached before compiling)

Known bugs/limitations

  • please raise a ticket if you find one

This project is just for fun and please don't be serious 😊.

What's different (or added) from the forked project: (root as project folder)

+ /hid_listen.exe

+ /key_distance.py

+ /.build/*

+ /keyboards/massdrop/ctrl/keymaps/custom/*

+ /keyboards/massdrop/ctrl/keymaps/custom_activate_on_press/*

! /keyboards/massdrop/ctrl/keymaps/config.h # adding parameters for MOUSEKEY

! /keyboards/massdrop/ctrl/keymaps/rules.mk # changing MOUSEKEY_ENABLE = yes

other changes are unintentional or not important.

a copy of the above readme is in /keyboards/massdrop/ctrl/, NO

below is the content from the original readme

Quantum Mechanical Keyboard Firmware

Current Version Build Status Discord Docs Status GitHub contributors GitHub forks

This is a keyboard firmware based on the tmk_keyboard firmware with some useful features for Atmel AVR and ARM controllers, and more specifically, the OLKB product line, the ErgoDox EZ keyboard, and the Clueboard product line.

Documentation

The docs are hosted on Gitbook and GitHub (they are synced). You can request changes by making a fork and pull request, or by clicking the "suggest an edit" link on any page of the docs.

Supported Keyboards

The project also includes community support for lots of other keyboards.

Maintainers

QMK is developed and maintained by Jack Humbert of OLKB with contributions from the community, and of course, Hasu. The OLKB product firmwares are maintained by Jack Humbert, the Ergodox EZ by Erez Zukerman, the Clueboard by Zach White, and the Atreus by Phil Hagelberg.

Official website

http://qmk.fm is the official website of QMK, where you can find links to this page, the documentation, and the keyboards supported by QMK.

About

adding LED splash effect with the provide QMK firmware, by editing matrix_init_user(), matrix_scan_user(), process_record_user(), led_instructions[]

Resources

License

GPL-2.0, GPL-2.0 licenses found

Licenses found

GPL-2.0
LICENSE
GPL-2.0
license_GPLv2.md

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published