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.
- Loading branch information
Showing
7 changed files
with
294 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,11 @@ | ||
// Copyright 2021 Mike Tsao | ||
// Copyright 2024 Richard Dawe (@richdawe) | ||
// SPDX-License-Identifier: GPL-2.0-or-later | ||
|
||
#pragma once | ||
|
||
#define WS2812_PWM_DRIVER PWMD4 | ||
#define WS2812_PWM_CHANNEL 4 | ||
#define WS2812_PWM_PAL_MODE 2 | ||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM7 | ||
#define WS2812_DMA_CHANNEL 7 |
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 @@ | ||
// Copyright 2024 Richard Dawe (@richdawe) | ||
// SPDX-License-Identifier: GPL-2.0-or-later | ||
|
||
#pragma once | ||
|
||
#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,217 @@ | ||
{ | ||
"manufacturer": "YMDK", | ||
"keyboard_name": "YMD62 ISO QMK", | ||
"maintainer": "richdawe", | ||
"bootloader": "uf2boot", | ||
"diode_direction": "ROW2COL", | ||
"features": { | ||
"bootmagic": true, | ||
"extrakey": true, | ||
"mousekey": true, | ||
"nkro": true, | ||
"rgb_matrix": true | ||
}, | ||
"matrix_pins": { | ||
"cols": ["A7", "B0", "B1", "B2", "B10", "B11", "A5", "A15", "B3", "B12", "B13", "B14", "B15", "A8"], | ||
"rows": ["A4", "A3", "A2", "A1", "A0"] | ||
}, | ||
"processor": "STM32F103", | ||
"rgb_matrix": { | ||
"animations": { | ||
"alphas_mods": true, | ||
"band_pinwheel_sat": true, | ||
"band_pinwheel_val": true, | ||
"band_sat": true, | ||
"band_spiral_sat": true, | ||
"band_spiral_val": true, | ||
"band_val": true, | ||
"breathing": true, | ||
"cycle_all": true, | ||
"cycle_left_right": true, | ||
"cycle_out_in": true, | ||
"cycle_out_in_dual": true, | ||
"cycle_pinwheel": true, | ||
"cycle_spiral": true, | ||
"cycle_up_down": true, | ||
"dual_beacon": true, | ||
"flower_blooming": true, | ||
"gradient_left_right": true, | ||
"gradient_up_down": true, | ||
"hue_breathing": true, | ||
"hue_pendulum": true, | ||
"hue_wave": true, | ||
"jellybean_raindrops": true, | ||
"pixel_flow": true, | ||
"pixel_fractal": true, | ||
"pixel_rain": true, | ||
"rainbow_beacon": true, | ||
"rainbow_moving_chevron": true, | ||
"rainbow_pinwheels": true, | ||
"raindrops": true, | ||
"riverflow": true, | ||
"starlight": true, | ||
"starlight_dual_hue": true, | ||
"starlight_dual_sat": true | ||
}, | ||
"default": { | ||
"animation": "rainbow_moving_chevron" | ||
}, | ||
"driver": "ws2812", | ||
"layout": [ | ||
{"matrix": [0, 0], "x": 1, "y": 1, "flags": 4}, | ||
{"matrix": [0, 1], "x": 14, "y": 1, "flags": 4}, | ||
{"matrix": [0, 2], "x": 28, "y": 1, "flags": 4}, | ||
{"matrix": [0, 3], "x": 44, "y": 1, "flags": 4}, | ||
{"matrix": [0, 4], "x": 58, "y": 1, "flags": 4}, | ||
{"matrix": [0, 5], "x": 75, "y": 1, "flags": 4}, | ||
{"matrix": [0, 6], "x": 89, "y": 1, "flags": 4}, | ||
{"matrix": [0, 7], "x": 103, "y": 1, "flags": 4}, | ||
{"matrix": [0, 8], "x": 117, "y": 1, "flags": 4}, | ||
{"matrix": [0, 9], "x": 129, "y": 1, "flags": 4}, | ||
{"matrix": [0, 10], "x": 147, "y": 1, "flags": 4}, | ||
{"matrix": [0, 11], "x": 167, "y": 1, "flags": 4}, | ||
{"matrix": [0, 12], "x": 183, "y": 1, "flags": 4}, | ||
{"matrix": [0, 13], "x": 200, "y": 1, "flags": 4}, | ||
{"matrix": [1, 0], "x": 3, "y": 16, "flags": 4}, | ||
{"matrix": [1, 1], "x": 16, "y": 16, "flags": 4}, | ||
{"matrix": [1, 2], "x": 33, "y": 16, "flags": 4}, | ||
{"matrix": [1, 3], "x": 47, "y": 16, "flags": 4}, | ||
{"matrix": [1, 4], "x": 60, "y": 16, "flags": 4}, | ||
{"matrix": [1, 5], "x": 77, "y": 16, "flags": 4}, | ||
{"matrix": [1, 6], "x": 91, "y": 16, "flags": 4}, | ||
{"matrix": [1, 7], "x": 106, "y": 16, "flags": 4}, | ||
{"matrix": [1, 8], "x": 120, "y": 16, "flags": 4}, | ||
{"matrix": [1, 9], "x": 131, "y": 16, "flags": 4}, | ||
{"matrix": [1, 10], "x": 149, "y": 16, "flags": 4}, | ||
{"matrix": [1, 11], "x": 169, "y": 16, "flags": 4}, | ||
{"matrix": [1, 12], "x": 185, "y": 16, "flags": 4}, | ||
{"matrix": [1, 13], "x": 205, "y": 26, "flags": 4}, | ||
{"matrix": [2, 0], "x": 5, "y": 32, "flags": 4}, | ||
{"matrix": [2, 1], "x": 20, "y": 32, "flags": 4}, | ||
{"matrix": [2, 2], "x": 35, "y": 32, "flags": 4}, | ||
{"matrix": [2, 3], "x": 49, "y": 32, "flags": 4}, | ||
{"matrix": [2, 4], "x": 62, "y": 32, "flags": 4}, | ||
{"matrix": [2, 5], "x": 79, "y": 32, "flags": 4}, | ||
{"matrix": [2, 6], "x": 93, "y": 32, "flags": 4}, | ||
{"matrix": [2, 7], "x": 108, "y": 32, "flags": 4}, | ||
{"matrix": [2, 8], "x": 122, "y": 32, "flags": 4}, | ||
{"matrix": [2, 9], "x": 133, "y": 32, "flags": 4}, | ||
{"matrix": [2, 10], "x": 151, "y": 32, "flags": 4}, | ||
{"matrix": [2, 11], "x": 171, "y": 32, "flags": 4}, | ||
{"matrix": [2, 13], "x": 199, "y": 32, "flags": 4}, | ||
{"matrix": [3, 0], "x": 8, "y": 49, "flags": 4}, | ||
{"matrix": [3, 1], "x": 23, "y": 49, "flags": 4}, | ||
{"matrix": [3, 2], "x": 38, "y": 49, "flags": 4}, | ||
{"matrix": [3, 3], "x": 51, "y": 49, "flags": 4}, | ||
{"matrix": [3, 4], "x": 64, "y": 49, "flags": 4}, | ||
{"matrix": [3, 5], "x": 81, "y": 49, "flags": 4}, | ||
{"matrix": [3, 6], "x": 95, "y": 49, "flags": 4}, | ||
{"matrix": [3, 7], "x": 110, "y": 49, "flags": 4}, | ||
{"matrix": [3, 8], "x": 124, "y": 49, "flags": 4}, | ||
{"matrix": [3, 9], "x": 135, "y": 49, "flags": 4}, | ||
{"matrix": [3, 10], "x": 153, "y": 49, "flags": 4}, | ||
{"matrix": [3, 11], "x": 189, "y": 49, "flags": 4}, | ||
{"matrix": [3, 13], "x": 212, "y": 49, "flags": 4}, | ||
{"matrix": [4, 0], "x": 2, "y": 63, "flags": 4}, | ||
{"matrix": [4, 1], "x": 15, "y": 63, "flags": 4}, | ||
{"matrix": [4, 2], "x": 33, "y": 63, "flags": 4}, | ||
{"matrix": [4, 6], "x": 92, "y": 63, "flags": 4}, | ||
{"matrix": [4, 9], "x": 149, "y": 63, "flags": 4}, | ||
{"matrix": [4, 10], "x": 170, "y": 63, "flags": 4}, | ||
{"matrix": [4, 11], "x": 188, "y": 63, "flags": 4}, | ||
{"matrix": [4, 13], "x": 200, "y": 63, "flags": 4}, | ||
{"x": 60, "y": 5, "flags": 2}, | ||
{"x": 90, "y": 5, "flags": 2}, | ||
{"x": 120, "y": 5, "flags": 2}, | ||
{"x": 150, "y": 5, "flags": 2}, | ||
{"x": 180, "y": 5, "flags": 2}, | ||
{"x": 210, "y": 5, "flags": 2}, | ||
{"x": 210, "y": 60, "flags": 2}, | ||
{"x": 180, "y": 60, "flags": 2}, | ||
{"x": 150, "y": 60, "flags": 2}, | ||
{"x": 120, "y": 60, "flags": 2}, | ||
{"x": 90, "y": 60, "flags": 2}, | ||
{"x": 60, "y": 60, "flags": 2} | ||
], | ||
"max_brightness": 128 | ||
}, | ||
"url": "https://ymdkey.com/products/ymd62-iso-rgb-hot-swap-pcb-fully-programmable-support-via-vial", | ||
"usb": { | ||
"device_version": "0.0.4", | ||
"pid": "0x0062", | ||
"vid": "0x45D4" | ||
}, | ||
"ws2812": { | ||
"driver": "pwm", | ||
"pin": "B9" | ||
}, | ||
"community_layouts": ["60_iso"], | ||
"layouts": { | ||
"LAYOUT_60_iso": { | ||
"layout": [ | ||
{"matrix": [0, 0], "x": 0, "y": 0}, | ||
{"matrix": [0, 1], "x": 1, "y": 0}, | ||
{"matrix": [0, 2], "x": 2, "y": 0}, | ||
{"matrix": [0, 3], "x": 3, "y": 0}, | ||
{"matrix": [0, 4], "x": 4, "y": 0}, | ||
{"matrix": [0, 5], "x": 5, "y": 0}, | ||
{"matrix": [0, 6], "x": 6, "y": 0}, | ||
{"matrix": [0, 7], "x": 7, "y": 0}, | ||
{"matrix": [0, 8], "x": 8, "y": 0}, | ||
{"matrix": [0, 9], "x": 9, "y": 0}, | ||
{"matrix": [0, 10], "x": 10, "y": 0}, | ||
{"matrix": [0, 11], "x": 11, "y": 0}, | ||
{"matrix": [0, 12], "x": 12, "y": 0}, | ||
{"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, | ||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, | ||
{"matrix": [1, 1], "x": 1.5, "y": 1}, | ||
{"matrix": [1, 2], "x": 2.5, "y": 1}, | ||
{"matrix": [1, 3], "x": 3.5, "y": 1}, | ||
{"matrix": [1, 4], "x": 4.5, "y": 1}, | ||
{"matrix": [1, 5], "x": 5.5, "y": 1}, | ||
{"matrix": [1, 6], "x": 6.5, "y": 1}, | ||
{"matrix": [1, 7], "x": 7.5, "y": 1}, | ||
{"matrix": [1, 8], "x": 8.5, "y": 1}, | ||
{"matrix": [1, 9], "x": 9.5, "y": 1}, | ||
{"matrix": [1, 10], "x": 10.5, "y": 1}, | ||
{"matrix": [1, 11], "x": 11.5, "y": 1}, | ||
{"matrix": [1, 12], "x": 12.5, "y": 1}, | ||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, | ||
{"matrix": [2, 1], "x": 1.75, "y": 2}, | ||
{"matrix": [2, 2], "x": 2.75, "y": 2}, | ||
{"matrix": [2, 3], "x": 3.75, "y": 2}, | ||
{"matrix": [2, 4], "x": 4.75, "y": 2}, | ||
{"matrix": [2, 5], "x": 5.75, "y": 2}, | ||
{"matrix": [2, 6], "x": 6.75, "y": 2}, | ||
{"matrix": [2, 7], "x": 7.75, "y": 2}, | ||
{"matrix": [2, 8], "x": 8.75, "y": 2}, | ||
{"matrix": [2, 9], "x": 9.75, "y": 2}, | ||
{"matrix": [2, 10], "x": 10.75, "y": 2}, | ||
{"matrix": [2, 11], "x": 11.75, "y": 2}, | ||
{"matrix": [2, 13], "x": 12.75, "y": 2}, | ||
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5, "h": 2}, | ||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, | ||
{"matrix": [3, 1], "x": 1.25, "y": 3}, | ||
{"matrix": [3, 2], "x": 2.25, "y": 3}, | ||
{"matrix": [3, 3], "x": 3.25, "y": 3}, | ||
{"matrix": [3, 4], "x": 4.25, "y": 3}, | ||
{"matrix": [3, 5], "x": 5.25, "y": 3}, | ||
{"matrix": [3, 6], "x": 6.25, "y": 3}, | ||
{"matrix": [3, 7], "x": 7.25, "y": 3}, | ||
{"matrix": [3, 8], "x": 8.25, "y": 3}, | ||
{"matrix": [3, 9], "x": 9.25, "y": 3}, | ||
{"matrix": [3, 10], "x": 10.25, "y": 3}, | ||
{"matrix": [3, 11], "x": 11.25, "y": 3}, | ||
{"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75}, | ||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, | ||
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, | ||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, | ||
{"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, | ||
{"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, | ||
{"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, | ||
{"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25}, | ||
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} | ||
] | ||
} | ||
} | ||
} |
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,19 @@ | ||
// Copyright 2024 Richard Dawe (@richdawe) | ||
// SPDX-License-Identifier: GPL-2.0-or-later | ||
#include QMK_KEYBOARD_H | ||
|
||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
[0] = LAYOUT_60_iso( /* Base */ | ||
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, | ||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, | ||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, | ||
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, | ||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1) , KC_APP, KC_RCTL), | ||
|
||
[1] = LAYOUT_60_iso( /* FN */ | ||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL , | ||
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT , | ||
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_M_P, KC_TRNS, KC_TRNS, | ||
KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) | ||
}; |
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,9 @@ | ||
// Copyright 2024 Richard Dawe (@richdawe) | ||
// SPDX-License-Identifier: GPL-2.0-or-later | ||
|
||
#pragma once | ||
|
||
#include_next <mcuconf.h> | ||
|
||
#undef STM32_PWM_USE_TIM4 | ||
#define STM32_PWM_USE_TIM4 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,28 @@ | ||
# YMDK YMD62 ISO | ||
|
||
A 60% PCB supporting the ISO layout, with hotswap sockets, backlit keys and underglow. | ||
|
||
* Keyboard Maintainer: [Richard Dawe](https://github.com/richdawe) | ||
* Hardware Supported: YMD62 PCB | ||
* Hardware Availability: [YMDK](https://ymdkey.com/products/ymd62-iso-rgb-hot-swap-pcb-fully-programmable-support-via-vial) | ||
|
||
Make example for this keyboard (after setting up your build environment): | ||
|
||
make ymdk/ymd62:default | ||
|
||
Flashing example for this keyboard: | ||
|
||
make ymdk/ymd62: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 (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard | ||
* **Physical reset button**: Double-tap the reset button on the back of the PCB | ||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available | ||
|
||
Note: The device does not reconnect automatically after the QMK firmware has been flashed. | ||
Wait for the USB device to disappear after writing firmware, then unplug and re-plug it. |
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,2 @@ | ||
# Configure for 128K flash | ||
MCU_LDSCRIPT = STM32F103xB |