forked from qmk/qmk_firmware
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add Iris LM series of keyboards (qmk#24510)
- Loading branch information
Showing
16 changed files
with
741 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
// Copyright 2024 Danny Nguyen (@nooges) | ||
// SPDX-License-Identifier: GPL-2.0-or-later | ||
|
||
#pragma once | ||
|
||
/* Defines for the split keyboard setup */ | ||
#define SERIAL_USART_DRIVER SD3 // USART 3 | ||
#define SERIAL_USART_TX_PIN B10 | ||
#define SERIAL_USART_RX_PIN B11 | ||
#define SERIAL_USART_TX_PAL_MODE 7 | ||
#define SERIAL_USART_RX_PAL_MODE 7 | ||
#define SERIAL_USART_FULL_DUPLEX | ||
#define SERIAL_USART_PIN_SWAP | ||
|
||
#define USB_VBUS_PIN C6 | ||
#define SPLIT_HAND_PIN A0 | ||
|
||
/* Defines for the RGB matrix */ | ||
#ifdef RGB_MATRIX_ENABLE | ||
# define WS2812_PWM_DRIVER PWMD3 | ||
# define WS2812_PWM_CHANNEL 4 | ||
# define WS2812_PWM_PAL_MODE 10 | ||
# define WS2812_DMA_STREAM STM32_DMA1_STREAM2 | ||
# define WS2812_DMA_CHANNEL 2 | ||
# define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM3_UP | ||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
// Copyright 2024 Danny Nguyen (@nooges) | ||
// SPDX-License-Identifier: GPL-2.0-or-later | ||
|
||
#include "quantum.h" | ||
|
||
void keyboard_pre_init_kb(void) { | ||
// Disable the PD peripheral in pre-init because its pins (B4, B6) are being used in the matrix: | ||
PWR->CR3 |= PWR_CR3_UCPD_DBDIS; | ||
// Call the corresponding _user() function (see https://docs.qmk.fm/#/custom_quantum_functions) | ||
keyboard_pre_init_user(); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
// Copyright 2024 Danny Nguyen (@nooges) | ||
// SPDX-License-Identifier: GPL-2.0-or-later | ||
|
||
#pragma once | ||
|
||
#define HAL_USE_SERIAL TRUE | ||
|
||
#define HAL_USE_PWM TRUE | ||
|
||
#include_next <halconf.h> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,257 @@ | ||
{ | ||
"keyboard_name": "Iris LM-G Rev. 1", | ||
"bootloader": "stm32-dfu", | ||
"diode_direction": "COL2ROW", | ||
"features": { | ||
"bootmagic": true, | ||
"encoder": true, | ||
"extrakey": true, | ||
"mousekey": true, | ||
"rgb_matrix": true | ||
}, | ||
"encoder": { | ||
"rotary": [ | ||
{"pin_a": "A15", "pin_b": "C10"}, | ||
{"pin_a": "B13", "pin_b": "B12"} | ||
] | ||
}, | ||
"ws2812": { | ||
"driver": "pwm", | ||
"pin": "B7" | ||
}, | ||
"matrix_pins": { | ||
"cols": ["C4", "B2", "A5", "C11", "C13", "C14"], | ||
"rows": ["A4", "A3", "B14", "B5", "F1"] | ||
}, | ||
"split": { | ||
"enabled": true, | ||
"encoder": { | ||
"right": { | ||
"rotary": [ | ||
{"pin_a": "A5", "pin_b": "A6"}, | ||
{"pin_a": "A15", "pin_b": "C10"} | ||
] | ||
} | ||
}, | ||
"matrix_pins": { | ||
"right": { | ||
"cols": ["C11", "C13", "B6", "B9", "B12", "B2"], | ||
"rows": ["C4", "A7", "B14", "B5", "F1"] | ||
} | ||
}, | ||
"serial": { | ||
"driver": "usart" | ||
}, | ||
"transport": { | ||
"sync" :{ | ||
"matrix_state": true | ||
} | ||
} | ||
}, | ||
"processor": "STM32G431", | ||
"usb": { | ||
"device_version": "1.0.0", | ||
"pid": "0x1656" | ||
}, | ||
"layouts": { | ||
"LAYOUT": { | ||
"layout": [ | ||
{"matrix": [0, 0], "x": 0, "y": 0.375}, | ||
{"matrix": [0, 1], "x": 1, "y": 0.375}, | ||
{"matrix": [0, 2], "x": 2, "y": 0.125}, | ||
{"matrix": [0, 3], "x": 3, "y": 0}, | ||
{"matrix": [0, 4], "x": 4, "y": 0.125}, | ||
{"matrix": [0, 5], "x": 5, "y": 0.25}, | ||
|
||
{"matrix": [5, 5], "x": 9, "y": 0.25}, | ||
{"matrix": [5, 4], "x": 10, "y": 0.125}, | ||
{"matrix": [5, 3], "x": 11, "y": 0}, | ||
{"matrix": [5, 2], "x": 12, "y": 0.125}, | ||
{"matrix": [5, 1], "x": 13, "y": 0.375}, | ||
{"matrix": [5, 0], "x": 14, "y": 0.375}, | ||
|
||
{"matrix": [1, 0], "x": 0, "y": 1.375}, | ||
{"matrix": [1, 1], "x": 1, "y": 1.375}, | ||
{"matrix": [1, 2], "x": 2, "y": 1.125}, | ||
{"matrix": [1, 3], "x": 3, "y": 1}, | ||
{"matrix": [1, 4], "x": 4, "y": 1.125}, | ||
{"matrix": [1, 5], "x": 5, "y": 1.25}, | ||
|
||
{"matrix": [6, 5], "x": 9, "y": 1.25}, | ||
{"matrix": [6, 4], "x": 10, "y": 1.125}, | ||
{"matrix": [6, 3], "x": 11, "y": 1}, | ||
{"matrix": [6, 2], "x": 12, "y": 1.125}, | ||
{"matrix": [6, 1], "x": 13, "y": 1.375}, | ||
{"matrix": [6, 0], "x": 14, "y": 1.375}, | ||
|
||
{"matrix": [2, 0], "x": 0, "y": 2.375}, | ||
{"matrix": [2, 1], "x": 1, "y": 2.375}, | ||
{"matrix": [2, 2], "x": 2, "y": 2.125}, | ||
{"matrix": [2, 3], "x": 3, "y": 2}, | ||
{"matrix": [2, 4], "x": 4, "y": 2.125}, | ||
{"matrix": [2, 5], "x": 5, "y": 2.25}, | ||
|
||
{"matrix": [7, 5], "x": 9, "y": 2.25}, | ||
{"matrix": [7, 4], "x": 10, "y": 2.125}, | ||
{"matrix": [7, 3], "x": 11, "y": 2}, | ||
{"matrix": [7, 2], "x": 12, "y": 2.125}, | ||
{"matrix": [7, 1], "x": 13, "y": 2.375}, | ||
{"matrix": [7, 0], "x": 14, "y": 2.375}, | ||
|
||
{"matrix": [3, 0], "x": 0, "y": 3.375}, | ||
{"matrix": [3, 1], "x": 1, "y": 3.375}, | ||
{"matrix": [3, 2], "x": 2, "y": 3.125}, | ||
{"matrix": [3, 3], "x": 3, "y": 3}, | ||
{"matrix": [3, 4], "x": 4, "y": 3.125}, | ||
{"matrix": [3, 5], "x": 5, "y": 3.25}, | ||
{"matrix": [4, 5], "x": 6.15, "y": 3.75}, | ||
|
||
{"matrix": [9, 5], "x": 7.85, "y": 3.75}, | ||
{"matrix": [8, 5], "x": 9, "y": 3.25}, | ||
{"matrix": [8, 4], "x": 10, "y": 3.125}, | ||
{"matrix": [8, 3], "x": 11, "y": 3}, | ||
{"matrix": [8, 2], "x": 12, "y": 3.125}, | ||
{"matrix": [8, 1], "x": 13, "y": 3.375}, | ||
{"matrix": [8, 0], "x": 14, "y": 3.375}, | ||
|
||
{"matrix": [4, 2], "x": 3.5, "y": 4.25}, | ||
{"matrix": [4, 3], "x": 4.5, "y": 4.375}, | ||
{"matrix": [4, 4], "x": 5.6, "y": 4.75}, | ||
|
||
{"matrix": [9, 4], "x": 8.4, "y": 4.75}, | ||
{"matrix": [9, 3], "x": 9.5, "y": 4.375}, | ||
{"matrix": [9, 2], "x": 10.5, "y": 4.25} | ||
] | ||
} | ||
}, | ||
"rgb_matrix": { | ||
"animations": { | ||
"alphas_mods": true, | ||
"gradient_up_down": true, | ||
"gradient_left_right": true, | ||
"breathing": true, | ||
"band_sat": true, | ||
"band_val": true, | ||
"band_pinwheel_sat": true, | ||
"band_pinwheel_val": true, | ||
"band_spiral_sat": true, | ||
"band_spiral_val": true, | ||
"cycle_all": true, | ||
"cycle_left_right": true, | ||
"cycle_up_down": true, | ||
"cycle_out_in": true, | ||
"cycle_out_in_dual": true, | ||
"rainbow_moving_chevron": true, | ||
"cycle_pinwheel": true, | ||
"cycle_spiral": true, | ||
"dual_beacon": true, | ||
"rainbow_beacon": true, | ||
"rainbow_pinwheels": true, | ||
"raindrops": true, | ||
"jellybean_raindrops": true, | ||
"hue_breathing": true, | ||
"hue_pendulum": true, | ||
"hue_wave": true, | ||
"pixel_fractal": true, | ||
"pixel_flow": true, | ||
"pixel_rain": true, | ||
"typing_heatmap": true, | ||
"digital_rain": true, | ||
"solid_reactive_simple": true, | ||
"solid_reactive": true, | ||
"solid_reactive_wide": true, | ||
"solid_reactive_multiwide": true, | ||
"solid_reactive_cross": true, | ||
"solid_reactive_multicross": true, | ||
"solid_reactive_nexus": true, | ||
"solid_reactive_multinexus": true, | ||
"splash": true, | ||
"multisplash": true, | ||
"solid_splash": true, | ||
"solid_multisplash": true | ||
}, | ||
"driver": "ws2812", | ||
"split_count": [34, 34], | ||
"max_brightness": 120, | ||
"layout": [ | ||
{"matrix": [0,0], "flags":4, "x":0, "y":5}, | ||
{"flags":2, "x":8, "y":5}, | ||
{"matrix": [0,1], "flags":4, "x":16, "y":5}, | ||
{"matrix": [0,2], "flags":4, "x":32, "y":2}, | ||
{"flags":2, "x":40, "y":1}, | ||
{"matrix": [0,3], "flags":4, "x":48, "y":0}, | ||
{"matrix": [0,4], "flags":4, "x":64, "y":5}, | ||
{"flags":2, "x":72, "y":3}, | ||
{"matrix": [0,5], "flags":4, "x":80, "y":3}, | ||
|
||
{"matrix": [1,5], "flags":4, "x":80, "y":17}, | ||
{"matrix": [1,4], "flags":4, "x":64, "y":15}, | ||
{"matrix": [1,3], "flags":4, "x":48, "y":13}, | ||
{"matrix": [1,2], "flags":4, "x":32, "y":15}, | ||
{"matrix": [1,1], "flags":4, "x":16, "y":18}, | ||
{"matrix": [1,0], "flags":4, "x":0, "y":18}, | ||
|
||
{"matrix": [2,0], "flags":4, "x":0, "y":32}, | ||
{"matrix": [2,1], "flags":4, "x":16, "y":32}, | ||
{"matrix": [2,2], "flags":4, "x":32, "y":28}, | ||
{"matrix": [2,3], "flags":4, "x":48, "y":27}, | ||
{"matrix": [2,4], "flags":4, "x":64, "y":28}, | ||
{"matrix": [2,5], "flags":4, "x":80, "y":30}, | ||
|
||
{"matrix": [3,5], "flags":4, "x":80, "y":43}, | ||
{"matrix": [3,4], "flags":4, "x":64, "y":42}, | ||
{"matrix": [3,3], "flags":4, "x":48, "y":40}, | ||
{"flags":2, "x":40, "y":50}, | ||
{"matrix": [3,2], "flags":4, "x":32, "y":42}, | ||
{"matrix": [3,1], "flags":4, "x":16, "y":45}, | ||
{"flags":2, "x":8, "y":43}, | ||
{"matrix": [3,0], "flags":4, "x":0, "y":45}, | ||
|
||
{"matrix": [4,5], "flags":4, "x":98, "y":52}, | ||
{"matrix": [4,4], "flags":4, "x":90, "y":64}, | ||
{"flags":2, "x":80, "y":58}, | ||
{"matrix": [4,3], "flags":4, "x":72, "y":58}, | ||
{"matrix": [4,2], "flags":4, "x":56, "y":47}, | ||
|
||
{"matrix": [5,0], "flags":4, "x":224, "y":5}, | ||
{"flags":2, "x":216, "y":5}, | ||
{"matrix": [5,1], "flags":4, "x":208, "y":5}, | ||
{"matrix": [5,2], "flags":4, "x":192, "y":2}, | ||
{"flags":2, "x":184, "y":1}, | ||
{"matrix": [5,3], "flags":4, "x":176, "y":0}, | ||
{"matrix": [5,4], "flags":4, "x":160, "y":5}, | ||
{"flags":2, "x":152, "y":3}, | ||
{"matrix": [5,5], "flags":4, "x":144, "y":3}, | ||
|
||
{"matrix": [6,5], "flags":4, "x":144, "y":17}, | ||
{"matrix": [6,4], "flags":4, "x":160, "y":15}, | ||
{"matrix": [6,3], "flags":4, "x":176, "y":13}, | ||
{"matrix": [6,2], "flags":4, "x":192, "y":15}, | ||
{"matrix": [6,1], "flags":4, "x":208, "y":18}, | ||
{"matrix": [6,0], "flags":4, "x":224, "y":18}, | ||
|
||
{"matrix": [7,0], "flags":4, "x":224, "y":32}, | ||
{"matrix": [7,1], "flags":4, "x":208, "y":32}, | ||
{"matrix": [7,2], "flags":4, "x":192, "y":28}, | ||
{"matrix": [7,3], "flags":4, "x":176, "y":27}, | ||
{"matrix": [7,4], "flags":4, "x":160, "y":28}, | ||
{"matrix": [7,5], "flags":4, "x":144, "y":30}, | ||
|
||
{"matrix": [8,5], "flags":4, "x":144, "y":43}, | ||
{"matrix": [8,4], "flags":4, "x":160, "y":42}, | ||
{"matrix": [8,3], "flags":4, "x":176, "y":40}, | ||
{"flags":2, "x":184, "y":50}, | ||
{"matrix": [8,2], "flags":4, "x":192, "y":42}, | ||
{"matrix": [8,1], "flags":4, "x":208, "y":45}, | ||
{"flags":2, "x":216, "y":43}, | ||
{"matrix": [8,0], "flags":4, "x":224, "y":45}, | ||
|
||
{"matrix": [9,2], "flags":4, "x":168, "y":47}, | ||
{"matrix": [9,3], "flags":4, "x":152, "y":58}, | ||
{"flags":2, "x":144, "y":58}, | ||
{"matrix": [9,4], "flags":4, "x":134, "y":64}, | ||
{"matrix": [9,5], "flags":4, "x":126, "y":52} | ||
], | ||
"sleep": true | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
// Copyright 2024 Danny Nguyen (@nooges) | ||
// SPDX-License-Identifier: GPL-2.0-or-later | ||
|
||
#pragma once | ||
|
||
#include_next <mcuconf.h> | ||
|
||
/* enable USART3, used for split comms */ | ||
#undef STM32_SERIAL_USE_USART3 | ||
#define STM32_SERIAL_USE_USART3 TRUE | ||
|
||
/* enable TIM3, used for RGB LED PWM driver */ | ||
#undef STM32_PWM_USE_TIM3 | ||
#define STM32_PWM_USE_TIM3 TRUE |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
# Iris LM-G | ||
|
||
A split ergo 4x6 keyboard with 4 thumb keys made and sold by Keebio that supports Gateron KS-33 low-profile switches. [More info at Keebio](https://keeb.io). | ||
|
||
* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) | ||
* Hardware Supported: Iris LM-G PCBs | ||
* Hardware Availability: [Keebio](https://keeb.io) | ||
|
||
Make example for this keyboard (after setting up your build environment): | ||
|
||
make keebio/iris_lm/g1:default | ||
|
||
Example of flashing this keyboard: | ||
|
||
make keebio/iris_lm/g1:default:flash | ||
|
||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). | ||
|
||
## Bootloader | ||
|
||
Enter the bootloader in 3 ways: | ||
|
||
* **Bootmagic reset**: Hold down the key at the top left and plug in the keyboard | ||
* **Physical reset button**: Press and hold the button on the back of the PCB for at least 1 second and let go | ||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
{ | ||
"manufacturer": "Keebio", | ||
"maintainer": "Keebio", | ||
"url": "https://keeb.io", | ||
"usb": { | ||
"vid": "0xCB10" | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
// Copyright 2024 Danny Nguyen (@nooges) | ||
// SPDX-License-Identifier: GPL-2.0-or-later | ||
|
||
#pragma once | ||
|
||
/* Defines for the split keyboard setup */ | ||
#define SERIAL_USART_DRIVER SD3 // USART 3 | ||
#define SERIAL_USART_TX_PIN B10 | ||
#define SERIAL_USART_RX_PIN B11 | ||
#define SERIAL_USART_TX_PAL_MODE 7 | ||
#define SERIAL_USART_RX_PAL_MODE 7 | ||
#define SERIAL_USART_FULL_DUPLEX | ||
#define SERIAL_USART_PIN_SWAP | ||
|
||
#define USB_VBUS_PIN C6 | ||
#define SPLIT_HAND_PIN A0 | ||
|
||
/* Defines for the RGB matrix */ | ||
#ifdef RGB_MATRIX_ENABLE | ||
# define WS2812_PWM_DRIVER PWMD3 | ||
# define WS2812_PWM_CHANNEL 4 | ||
# define WS2812_PWM_PAL_MODE 10 | ||
# define WS2812_DMA_STREAM STM32_DMA1_STREAM2 | ||
# define WS2812_DMA_CHANNEL 2 | ||
# define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM3_UP | ||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
// Copyright 2024 Danny Nguyen (@nooges) | ||
// SPDX-License-Identifier: GPL-2.0-or-later | ||
|
||
#pragma once | ||
|
||
#define HAL_USE_SERIAL TRUE | ||
|
||
#define HAL_USE_PWM TRUE | ||
|
||
#include_next <halconf.h> |
Oops, something went wrong.