* Initial version of zeal60 * WIP * Fixes issue #900 * Adding RGB underglow functionality. Fixed a compile-time conflict caused by enabling RGB underglow functionality. * Refactor RPC protocol * Fix last merge * README for RGB underglow updated. * Additional README changes. * Adding RGBW strip software-based current-limiting functionality. * RGBW current-limiting functionality should be handled by RGBSTRIP_MAX_CURRENT_PER_LIGHT instead. * Updated README to reflect implementation of built-in current limiting. * Keymap readability improvements. * Minor keymap improvements. * Fixed LED driver init sequence, formatting * Dimming implementation tested, working. * Stab LEDs synced with spacebar hits in effects. * RGB underglow tested and functional. Simplified README for RGB underglow. * Undid accidental file deletion from previous merge conflict. Safer values for RGB underglow. * Improved arrow key positions in keymap. * Added functionality to correct uneven RGB underglow. Refactored related code. * Reverted to safer values for underglow. * Changes for v0.3 * Custom LED brightness scaling will take place after current adjustment in order to avoid being overridden. * Create keymap.c Added split backspace and split shift to ISO layout * Create config.h Turned on LEDs for new layout * Fixed bug where left spacebar stabilizer LED (LC06) would adopt color of row above. * Added hhkb_wilba keymap * Update keymap.c * Update keymap.c * Update keymap.c * Added indicators, full param setting via host * Added "mousekey" layout * Added Zeal65 support, factory test mode * Keycode safe range changed, caused bugs * Bumped EEPROM version due to change in QMK keycodes * Disable HHKB "blocked" LEDs if KC_NO in keymap * Added "disable_hhkb_blocker_leds" * Required overridden function for keymaps in EEPROM * Added polar coordinate mapping, effect speed * Force Raw HID interface number to 1 always * Fixed last merge from master * Added effect speed to default keymaps * add BACKLIGHT_ prefix to vars * add BACKLIGHT_ prefix to vars * Keymap speed effect; keymap improvements/fixes Readme updated to match changes * Refactored to use common IS31FL3731/I2C drivers * Fixed make rules, backlight disabled feature * Make split rightshift default for Zeal65 * Added M60-A as a "version" of Zeal60. * Renamed IS31FL3731 driver functions * Fix suspend_wakeup_init_kb() being defined twice * First pass refactor dynamic keymaps * Updated to changed I2C and ISSI drivers * Refactor zeal_color.* usage to quantum/color.* * Updated Zeal65, fixed dynamic_keymap * Major refactoring of Zeal60 backlight and API * Lots of little cleanups * Added readme.md * Added readme.md * Added LAYOUT_60*() macros, refactored and cleaned up default keymaps * Fix compile error in suspend.c * Added Zeal65 LAYOUT macros, info.json * Added rama/m60_a, deleted zeal60/keymaps/m60_a * Fixed rama/m60_a/keymaps/proto * Fixed compilation error for suspend.c * Requested changes for PR * Fixed readme.md images * Another readme.md fix * Added drashna's requested changes |
||
---|---|---|
.. | ||
Makefile | ||
README.md | ||
config.h | ||
keymap.c |
README.md
RGB Underglow Strip on the Zeal60: A Guide
![](https://i.imgur.com/UuUdOCb.jpg)
Requirements
- WS2812B RGB strip, preferably 60 LEDs/meter
- Wire, solder
- Tape, hot glue, or some sort of adhesive
A. Connecting the strip
You might find the full PCB image helpful. Ignore the red boxes!
-
Connect V+ to the receiving end of the thermistor labeled F1; connect GND to the board's GND pin. (Avoid connecting +V to the board's +5V pin - you will likely overload the thermistor, and you will limit your maximum brightness.)
-
Connect DI to PB0.
-
Should look something like this when finished:
Optional: To allow considerably more light to escape, consider angling the strip outwards by using some sort of fulcrum under the strip. (I used a thick wire.)
B. Enabling the strip
-
If it is not present already, add the following to your keymap's
Makefile
:RGBLIGHT_ENABLE = yes AUDIO_ENABLE = no #Underglow animations cannot be used with audio.
-
If it is not present already, add the following to your keymap's
config.h
, and edit the values as necessary:// Set up RGB underglow. #define RGB_DI_PIN B0 // The pin your RGB strip is wired to #define RGBLIGHT_ANIMATIONS // Require for fancier stuff (not compatible with audio) #define RGBLED_NUM 35 // Number of LEDs #define RGBLIGHT_HUE_STEP 5 // How much each press of rgb_hue changes hue #define RGBLIGHT_SAT_STEP 10 // How much each press of rgb_sat changes sat #define RGBLIGHT_VAL_STEP 10 // How much each press of rgb_val changes val
-
If they are not present already, add the following keycodes to your keymap to control the RGB strip:
RGB_TOG
(on/off),RGB_MOD
(step through modes),RGB_HUI
,RGB_HUD
,RGB_SAI
,RGB_SAD
,RGB_VAI
,RGB_VAD
(HSV increase/decrease). Add these to your keymap.
C. Dealing with current limits
USB 2.0 ports on laptops provide up to 500mA max, but USB 3.0 ports can provide up to 900mA; USB 3.1 up to 1.5A; and powered USB hubs even more. We can run our keyboard at a higher brightness if we draw more power. The Zeal60 uses 500mA at max brightness. This means that you have about 400mA remaining for the strip to use on a USB 3.0 port; 1000mA free on a USB 3.1 port, so on and so forth.
Warning: This means you will need to turn off your RGB strip before connecting to a USB 2.0 port, as USB 2.0 cannot sustain the current necessary!
-
If not present already, add the following to your keymap's
config.h
. Change the numbers based on your needs. The ones below are safe underestimates.// Enable current limiting for RGB underglow. #define RGBSTRIP_CURRENT_LIMIT 400 // Strip current limit in mA. (USB amperage - 500mA for keyboard) #define RGBSTRIP_MAX_CURRENT_PER_LIGHT 50 // mA per light when at max brightness.
Example: I use a USB port capable of providing 1800 mA. The keyboard uses 500mA, so my personal value (in the
tusing
keymap) forRGBSTRIP_CURRENT_LIMIT
is 1300. The particular WS2812B RGB strip I have uses a maximum of 60 mA per LED, so that is my personal value forRGBSTRIP_MAX_CURRENT_PER_LIGHT
. -
Toggle on the LED strip (
RGB_TOG
) and step through animations (RGB_MOD
) to test it out!
D. Sources and resources
A. Connecting the strip.
- In-depth description of connecting an RGB strip to the GH60
- 32U4 Pinout
- Redditor describes connecting RGB strips on his Satan GH60
- Another Redditor on RGB with the Satan GH60
B. Enabling the strip.
- QMK Wiki portion on underglow
- Planck
Makefile
,config.h
, andkeymap.c
config example - Video demonstrating keycode functions and RGB modes on a KC60
C. Dealing with current limits.
- Discussion of cutting jumpers and adding resistors to lower current from Zeal60
- A selection of 900mA-1.5A current hold fuses - look for an SMD 0805-sized fuse.
- Video detailing technique to solder 0805 resistors
- QMK feature request to implement max power draw limits in
config.h
- Commit enabling max power draw limits in
config.h