summaryrefslogtreecommitdiffstats
path: root/keyboards/mechmini
diff options
context:
space:
mode:
authorKenneth Aloysius <krusli@users.noreply.github.com>2018-01-02 09:34:46 +1100
committerJack Humbert <jack.humb@gmail.com>2018-01-01 17:34:46 -0500
commiteba4cb7a0437c115c56dfe1796a76c69a99c4d4f (patch)
treed8b1e3152733bacb8cca0fe55d876146487993bb /keyboards/mechmini
parent85ea96393131e4080737f574c93b001cbc99d46d (diff)
RGB underglow support for JJ40, clean up redundant code in Mechmini keymap (#2196)
* Cleanup Mechmini keymap. Once the custom RGB function is defined, there is no need to manually handle RGB code. * Change default to KEYMAP_MIT, not KEYMAP_OFFSET * Add custom RGB code for JJ40 * Reset Mechmini advertised power draw to 500. Will have to test actual maximum power draw later. * RGB working on JJ40. * Fix: saturation increase/decrease flipped * Add new directory for my custom keymap with RGB keycodes * Swap LAlt and LGUI * Update JJ40 max power draw with measured value * Update: fun40 rules.mk to enable underglow; earlier failed Travis CI
Diffstat (limited to 'keyboards/mechmini')
-rw-r--r--keyboards/mechmini/config.h7
-rw-r--r--keyboards/mechmini/keymaps/default/keymap.c118
-rw-r--r--keyboards/mechmini/mechmini.c7
-rw-r--r--keyboards/mechmini/usbconfig.h2
4 files changed, 14 insertions, 120 deletions
diff --git a/keyboards/mechmini/config.h b/keyboards/mechmini/config.h
index e7004608e1..6a4523f85e 100644
--- a/keyboards/mechmini/config.h
+++ b/keyboards/mechmini/config.h
@@ -30,12 +30,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROWS 8
#define MATRIX_COLS 15
+#define NO_UART 1
+
+/* RGB underglow */
+// The RGB_DI_PIN value seems to be shared between all PS2AVRGB boards.
+// The same pin is used on the JJ40, at least.
#define RGBLED_NUM 16
#define RGBLIGHT_ANIMATIONS
#define RGB_DI_PIN E2
-#define NO_UART 1
-
/* key combination for command */
#define IS_COMMAND() (keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)))
diff --git a/keyboards/mechmini/keymaps/default/keymap.c b/keyboards/mechmini/keymaps/default/keymap.c
index 5cae1bc815..4a0a4dc0a6 100644
--- a/keyboards/mechmini/keymaps/default/keymap.c
+++ b/keyboards/mechmini/keymaps/default/keymap.c
@@ -14,16 +14,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "mechmini.h"
-#include "rgblight.h"
#include "quantum.h"
-#define MAX_BRIGHTNESS 15
-#define MAX_BRIGHTNESS_IOS 5 // max brightness suitable for iOS devices
-
-#define _BL 0
-#define _FN1 1
-#define _FN2 2
-#define _FN3 3
+#define _BL 0 // base layer
+#define _FN1 1 // function layer 1
+#define _FN2 2 // function layer 2
+#define _FN3 3 // function layer 3
#define _____ KC_TRNS
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
@@ -52,109 +48,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_____, _____, _____, _____, _____, _____, _____, _____
)
};
-
-/**
- * Blank keymap
- [0] = KEYMAP(
- _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____
- _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____,
- _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____,
- _____, _____, _____, _____, _____, _____, _____, _____
- )
- */
-
-uint8_t current_level = 4;
-int is_on = 0;
-
-uint8_t r = 0xFF;
-uint8_t g = 0xFF;
-uint8_t b = 0xFF;
-
-uint8_t max_brightness = MAX_BRIGHTNESS_IOS;
-
-enum macro_id {
- TOGGLE_RGB,
- BRIGHTNESS_DOWN,
- BRIGHTNESS_UP,
- COLOR_1,
- COLOR_2,
- COLOR_3,
- ENABLE_MAX_BRIGHTNESS
-};
-
-const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
- keyevent_t event = record->event;
-
- switch (id) {
- case TOGGLE_RGB:
- if (event.pressed) {
- if (!is_on) {
- current_level = 4;
- is_on = 1;
- } else {
- is_on = 0;
- }
- }
- case BRIGHTNESS_DOWN:
- if (event.pressed && current_level > 0) {
- current_level--;
- }
- break;
- case BRIGHTNESS_UP:
- if (event.pressed && current_level < max_brightness) {
- current_level++;
- }
- break;
- case COLOR_1: // set to pink
- if (event.pressed) {
- r = 0xFF;
- g = 0x81;
- b = 0xC2;
- }
- break;
- case COLOR_2: // set to cyan
- if (event.pressed) {
- r = 0x00;
- g = 0xE0;
- b = 0xFF;
- }
- break;
- case COLOR_3: // set to white
- if (event.pressed) {
- r = 0xFF;
- g = 0xFF;
- b = 0xFF;
- }
- break;
- case ENABLE_MAX_BRIGHTNESS: // enable all 16 brightness steps
- if (event.pressed) {
- max_brightness = MAX_BRIGHTNESS;
- }
- break;
- }
-
- return MACRO_NONE;
-}
-
-const uint16_t fn_actions[] PROGMEM = {
-};
-
-void rgblight_setrgb(uint8_t r, uint8_t g, uint8_t b);
-
-uint8_t dim(uint8_t color, uint8_t opacity) {
- return ((uint16_t) color * opacity / 0xFF) & 0xFF;
-}
-
-void user_setrgb(uint8_t r, uint8_t g, uint8_t b) {
- uint8_t alpha = current_level * 0x11;
- rgblight_setrgb(dim(r, alpha), dim(g, alpha), dim(b, alpha));
-}
-
-void matrix_scan_user(void) {
- if (!is_on) {
- current_level = 0;
- user_setrgb(r, g, b);
- } else {
- user_setrgb(r, g, b);
- }
-}
diff --git a/keyboards/mechmini/mechmini.c b/keyboards/mechmini/mechmini.c
index baa2e03575..9897da099f 100644
--- a/keyboards/mechmini/mechmini.c
+++ b/keyboards/mechmini/mechmini.c
@@ -16,16 +16,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "mechmini.h"
-#include "rgblight.h"
-
#include <avr/pgmspace.h>
#include "action_layer.h"
#include "i2c.h"
#include "quantum.h"
-extern rgblight_config_t rgblight_config;
+#include "rgblight.h"
+// custom RGB driver
+extern rgblight_config_t rgblight_config;
void rgblight_set(void) {
if (!rgblight_config.enable) {
for (uint8_t i = 0; i < RGBLED_NUM; i++) {
@@ -42,4 +42,5 @@ void rgblight_set(void) {
__attribute__ ((weak))
void matrix_scan_user(void) {
rgblight_task();
+ /* add other tasks to be done on each matrix scan */
}
diff --git a/keyboards/mechmini/usbconfig.h b/keyboards/mechmini/usbconfig.h
index b6b8cdbbb4..d2d848fcdc 100644
--- a/keyboards/mechmini/usbconfig.h
+++ b/keyboards/mechmini/usbconfig.h
@@ -118,7 +118,7 @@ section at the end of this file).
/* Define this to 1 if the device has its own power supply. Set it to 0 if the
* device is powered from the USB bus.
*/
-#define USB_CFG_MAX_BUS_POWER 100
+#define USB_CFG_MAX_BUS_POWER 500
/* Set this variable to the maximum USB bus power consumption of your device.
* The value is in milliamperes. [It will be divided by two since USB
* communicates power requirements in units of 2 mA.]