Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[keyboard] mzmkb/slimdash/rev1 #24804

Open
wants to merge 26 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
85cabff
create template for slimdash
mizma Jan 1, 2025
37c7859
fix up to match board design
mizma Jan 1, 2025
663d485
implement slimdash features
mizma Jan 1, 2025
76702ee
fix typo
mizma Jan 1, 2025
680559d
add right hand matrix
mizma Jan 5, 2025
6f20ad5
add KC_GRV to RAISE layer
mizma Jan 6, 2025
e283811
fix license
mizma Jan 7, 2025
bde1d1f
fix layout offset
mizma Jan 7, 2025
0bd3a4c
run qmk format-json
mizma Jan 7, 2025
70c3814
fix missing CAPS and add Image to README
mizma Jan 9, 2025
4d65254
editorial fix
mizma Jan 9, 2025
7b3a7ef
add PCB image and fix image link
mizma Jan 9, 2025
64320a1
Remove default behavior from config.h
mizma Jan 10, 2025
43f7c8f
remove default definitions for keyboard.json
mizma Jan 10, 2025
234fb44
remove duplicate definition in keyboard.json
mizma Jan 10, 2025
b29fe4c
Update title to keyboard name in readme.md
mizma Jan 10, 2025
391408c
remove default behaviour setting in keyboard.json
mizma Jan 10, 2025
8e5a597
remove default behaviour in keyboard.json
mizma Jan 10, 2025
9fe5200
remove unnecessary file
mizma Jan 10, 2025
f9e249d
Add community layout "ortho_5x14"
mizma Jan 10, 2025
6583784
make diagram more representative of physical layout
mizma Jan 10, 2025
8c82395
revert to standard LAYOUT macro per code-review
mizma Jan 10, 2025
80962eb
replace image url
mizma Jan 10, 2025
6eb3267
Update image link
mizma Jan 12, 2025
bf10a5f
Update mouse keycodes to latest defines.
mizma Jan 12, 2025
bd0c1a3
replace with new upload in imgur
mizma Jan 19, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions keyboards/mzmkb/slimdash/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"manufacturer": "mzmkb",
"maintainer": "mizma",
"bootloader": "rp2040",
"processor": "RP2040",
"split": {
"enabled": true
},
"url": "https://github.com/mizma/slimdash"
}
41 changes: 41 additions & 0 deletions keyboards/mzmkb/slimdash/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Slimdash

![mzmkb/slimdash/rev1](https://i.imgur.com/ymf8ROw.jpeg)

__SlimDash__ is a slim low profile split ortho-staggered keyboard inspired by omkbd/ErgoDash
with following key highlights:

* Ortho-Staggered Split keyboard layout
* Slim body (20-22mm depending on key caps and rubber feet used)
* Rigid body structure
* Per-Key RGB LED Matrix lighting
* USB-C connector
* Easy build utilizing PCBA service for the harder SMT components
* Keyboard Maintainer: [mizma](https://github.com/mizma)
* Hardware Supported: [SlimDash](https://github.com/mizma/SlimDash/)
* Hardware Availability: Build your own using design data at [SlimDash](https://github.com/mizma/SlimDash/)

Make example for this keyboard (after setting up your build environment):

make mzmkb/slimdash/rev1:default

Flashing example for this keyboard:

make mzmkb/slimdash/rev1:default:flash

You may also enter Bootloader on your keyboard, and copy the `mzmkb_slimdash_*_*.uf2`
file into the `RPI-RP2` drive shown in your PC.

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:

* __Reset button__: Double-tap the RESET button on the side of the keyboard near
TRRS jack.
* __Physical reset button__: Hold BOOT_SW and press RESET on the side of the keyboard
near TRRS jack.
* __Keycode in layout__: Press the key mapped to `QK_BOOT` if it is available
28 changes: 28 additions & 0 deletions keyboards/mzmkb/slimdash/rev1/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
/* Copyright 2025 mizma (@mizma)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

#pragma once

// Make it easier to enter the bootloader
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U

// UART1, communication between the two halves
#define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode
#define SERIAL_USART_TX_PIN GP17 // USART TX pin
#define SERIAL_USART_RX_PIN GP18 // USART RX pin
#define SERIAL_PIO_USE_PIO1 // Use PIO1 as PIO0 is used for WS2812 driver

239 changes: 239 additions & 0 deletions keyboards/mzmkb/slimdash/rev1/keyboard.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,239 @@
{
"keyboard_name": "slimdash rev1.0",
"diode_direction": "COL2ROW",
"features": {
"extrakey": true,
"mousekey": true,
"nkro": true,
"rgb_matrix": true,
},
"matrix_pins": {
"cols": ["GP0", "GP1", "GP3", "GP5", "GP8", "GP7", "GP9"],
"rows": ["GP2", "GP4", "GP6", "GP11", "GP10"]
},
"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,
"digital_rain": true,
"dual_beacon": true,
"gradient_left_right": true,
"gradient_up_down": true,
"hue_breathing": true,
"hue_pendulum": true,
"hue_wave": true,
"jellybean_raindrops": true,
"multisplash": true,
"pixel_flow": true,
"pixel_fractal": true,
"pixel_rain": true,
"rainbow_beacon": true,
"rainbow_moving_chevron": true,
"rainbow_pinwheels": true,
"raindrops": true,
"solid_color": true,
"solid_multisplash": true,
"solid_reactive": true,
"solid_reactive_cross": true,
"solid_reactive_multicross": true,
"solid_reactive_multinexus": true,
"solid_reactive_multiwide": true,
"solid_reactive_nexus": true,
"solid_reactive_simple": true,
"solid_reactive_wide": true,
"solid_splash": true,
"splash": true,
"typing_heatmap": true
},
"driver": "ws2812",
"layout": [
{"matrix": [3, 6], "x": 105, "y": 51, "flags": 4},
{"matrix": [4, 6], "x": 105, "y": 64, "flags": 4},
{"matrix": [4, 5], "x": 90, "y": 51, "flags": 4},
{"matrix": [4, 4], "x": 75, "y": 51, "flags": 4},
{"matrix": [4, 3], "x": 45, "y": 51, "flags": 4},
{"matrix": [4, 2], "x": 30, "y": 51, "flags": 4},
{"matrix": [4, 1], "x": 15, "y": 51, "flags": 4},
{"matrix": [4, 0], "x": 0, "y": 51, "flags": 4},
{"matrix": [3, 0], "x": 0, "y": 38, "flags": 4},
{"matrix": [3, 1], "x": 15, "y": 38, "flags": 4},
{"matrix": [3, 2], "x": 30, "y": 38, "flags": 4},
{"matrix": [3, 3], "x": 45, "y": 38, "flags": 4},
{"matrix": [3, 4], "x": 60, "y": 38, "flags": 4},
{"matrix": [3, 5], "x": 75, "y": 38, "flags": 4},
{"matrix": [2, 6], "x": 90, "y": 26, "flags": 4},
{"matrix": [1, 6], "x": 90, "y": 13, "flags": 4},
{"matrix": [2, 5], "x": 75, "y": 26, "flags": 4},
{"matrix": [2, 4], "x": 60, "y": 26, "flags": 4},
{"matrix": [2, 3], "x": 45, "y": 26, "flags": 4},
{"matrix": [2, 2], "x": 30, "y": 26, "flags": 4},
{"matrix": [2, 1], "x": 15, "y": 26, "flags": 4},
{"matrix": [2, 0], "x": 0, "y": 26, "flags": 4},
{"matrix": [1, 0], "x": 0, "y": 13, "flags": 4},
{"matrix": [1, 1], "x": 15, "y": 13, "flags": 4},
{"matrix": [1, 2], "x": 30, "y": 13, "flags": 4},
{"matrix": [1, 3], "x": 45, "y": 13, "flags": 4},
{"matrix": [1, 4], "x": 60, "y": 13, "flags": 4},
{"matrix": [1, 5], "x": 75, "y": 13, "flags": 4},
{"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
{"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
{"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
{"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
{"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
{"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
{"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
{"matrix": [8, 6], "x": 119, "y": 51, "flags": 4},
{"matrix": [9, 6], "x": 119, "y": 64, "flags": 4},
{"matrix": [9, 5], "x": 134, "y": 51, "flags": 4},
{"matrix": [9, 4], "x": 149, "y": 51, "flags": 4},
{"matrix": [9, 3], "x": 179, "y": 51, "flags": 4},
{"matrix": [9, 2], "x": 194, "y": 51, "flags": 4},
{"matrix": [9, 1], "x": 209, "y": 51, "flags": 4},
{"matrix": [9, 0], "x": 224, "y": 51, "flags": 4},
{"matrix": [8, 0], "x": 224, "y": 38, "flags": 4},
{"matrix": [8, 1], "x": 209, "y": 38, "flags": 4},
{"matrix": [8, 2], "x": 194, "y": 38, "flags": 4},
{"matrix": [8, 3], "x": 179, "y": 38, "flags": 4},
{"matrix": [8, 4], "x": 164, "y": 38, "flags": 4},
{"matrix": [8, 5], "x": 149, "y": 38, "flags": 4},
{"matrix": [7, 6], "x": 134, "y": 26, "flags": 4},
{"matrix": [6, 6], "x": 134, "y": 13, "flags": 4},
{"matrix": [7, 5], "x": 149, "y": 26, "flags": 4},
{"matrix": [7, 4], "x": 164, "y": 26, "flags": 4},
{"matrix": [7, 3], "x": 179, "y": 26, "flags": 4},
{"matrix": [7, 2], "x": 194, "y": 26, "flags": 4},
{"matrix": [7, 1], "x": 209, "y": 26, "flags": 4},
{"matrix": [7, 0], "x": 224, "y": 26, "flags": 4},
{"matrix": [6, 0], "x": 224, "y": 13, "flags": 4},
{"matrix": [6, 1], "x": 209, "y": 13, "flags": 4},
{"matrix": [6, 2], "x": 194, "y": 13, "flags": 4},
{"matrix": [6, 3], "x": 179, "y": 13, "flags": 4},
{"matrix": [6, 4], "x": 164, "y": 13, "flags": 4},
{"matrix": [6, 5], "x": 149, "y": 13, "flags": 4},
{"matrix": [5, 6], "x": 134, "y": 0, "flags": 4},
{"matrix": [5, 5], "x": 149, "y": 0, "flags": 4},
{"matrix": [5, 4], "x": 164, "y": 0, "flags": 4},
{"matrix": [5, 3], "x": 179, "y": 0, "flags": 4},
{"matrix": [5, 2], "x": 194, "y": 0, "flags": 4},
{"matrix": [5, 1], "x": 209, "y": 0, "flags": 4},
{"matrix": [5, 0], "x": 224, "y": 0, "flags": 4}
],
"max_brightness": 128,
"sleep": true,
"split_count": [35, 35]
},
"split": {
"matrix_pins": {
"right": {
"cols": ["GP0", "GP1", "GP3", "GP5", "GP8", "GP7", "GP9"],
"rows": ["GP2", "GP4", "GP6", "GP11", "GP10"]
}
},
"serial": {
"driver": "vendor"
},
"transport": {
"sync": {
"matrix_state": true
}
}
},
"usb": {
"device_version": "1.0.0",
"pid": "0x7344",
"vid": "0x4D5A"
},
"ws2812": {
"driver": "vendor",
"pin": "GP20"
},
"layouts": {
"LAYOUT": {
mizma marked this conversation as resolved.
Show resolved Hide resolved
"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": [0, 6], "x": 6, "y": 0.75},
{"matrix": [5, 6], "x": 11.5, "y": 0.75},
{"matrix": [5, 5], "x": 12.5, "y": 0.25},
{"matrix": [5, 4], "x": 13.5, "y": 0.125},
{"matrix": [5, 3], "x": 14.5, "y": 0},
{"matrix": [5, 2], "x": 15.5, "y": 0.125},
{"matrix": [5, 1], "x": 16.5, "y": 0.375},
{"matrix": [5, 0], "x": 17.5, "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": [1, 6], "x": 6, "y": 1.75},
{"matrix": [6, 6], "x": 11.5, "y": 1.75},
{"matrix": [6, 5], "x": 12.5, "y": 1.25},
{"matrix": [6, 4], "x": 13.5, "y": 1.125},
{"matrix": [6, 3], "x": 14.5, "y": 1},
{"matrix": [6, 2], "x": 15.5, "y": 1.125},
{"matrix": [6, 1], "x": 16.5, "y": 1.375},
{"matrix": [6, 0], "x": 17.5, "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": [2, 6], "x": 6, "y": 2.75},
{"matrix": [7, 6], "x": 11.5, "y": 2.75},
{"matrix": [7, 5], "x": 12.5, "y": 2.25},
{"matrix": [7, 4], "x": 13.5, "y": 2.125},
{"matrix": [7, 3], "x": 14.5, "y": 2},
{"matrix": [7, 2], "x": 15.5, "y": 2.125},
{"matrix": [7, 1], "x": 16.5, "y": 2.375},
{"matrix": [7, 0], "x": 17.5, "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": [3, 6], "x": 7.25, "y": 4},
{"matrix": [8, 6], "x": 10.25, "y": 4},
{"matrix": [8, 5], "x": 12.5, "y": 3.25},
{"matrix": [8, 4], "x": 13.5, "y": 3.125},
{"matrix": [8, 3], "x": 14.5, "y": 3},
{"matrix": [8, 2], "x": 15.5, "y": 3.125},
{"matrix": [8, 1], "x": 16.5, "y": 3.375},
{"matrix": [8, 0], "x": 17.5, "y": 3.375},
{"matrix": [4, 0], "x": 0, "y": 4.375},
{"matrix": [4, 1], "x": 1, "y": 4.375},
{"matrix": [4, 2], "x": 2, "y": 4.125},
{"matrix": [4, 3], "x": 3, "y": 4},
{"matrix": [4, 4], "x": 5.25, "y": 5},
{"matrix": [4, 5], "x": 6.25, "y": 4, "h": 2},
{"matrix": [4, 6], "x": 7.25, "y": 5},
{"matrix": [9, 6], "x": 10.25, "y": 5},
{"matrix": [9, 5], "x": 11.25, "y": 4, "h": 2},
{"matrix": [9, 4], "x": 12.25, "y": 5},
{"matrix": [9, 3], "x": 14.5, "y": 4},
{"matrix": [9, 2], "x": 15.5, "y": 4.125},
{"matrix": [9, 1], "x": 16.5, "y": 4.375},
{"matrix": [9, 0], "x": 17.5, "y": 4.375}
]
}
}
}
Loading
Loading