Skip to content

Commit

Permalink
Adding SdraKb00 keyboard (qmk#24552)
Browse files Browse the repository at this point in the history
Co-authored-by: jack <jack@pngu.org>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
  • Loading branch information
3 people authored Nov 6, 2024
1 parent f5f11b7 commit f4e6af2
Show file tree
Hide file tree
Showing 3 changed files with 197 additions and 0 deletions.
71 changes: 71 additions & 0 deletions keyboards/sdrakbs/sdrakb00/keyboard.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
{
"manufacturer": "Diego Andres Rabaioli",
"keyboard_name": "sdrakb00",
"maintainer": "drabaioli",
"bootloader": "atmel-dfu",
"diode_direction": "COL2ROW",
"encoder": {
"rotary": [
{"pin_a": "B5", "pin_b": "B6", "resolution": 2}
]
},
"features": {
"bootmagic": true,
"encoder": true,
"extrakey": true,
"mousekey": true,
"nkro": true,
"rgb_matrix": true
},
"matrix_pins": {
"cols": ["F0", "F1", "F4", "F5"],
"rows": ["D4", "D6", "D7"]
},
"processor": "atmega32u4",
"rgb_matrix": {
"driver": "ws2812",
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
{"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
{"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
{"matrix": [1, 0], "x": 0, "y": 16, "flags": 4},
{"matrix": [1, 1], "x": 16, "y": 16, "flags": 4},
{"matrix": [1, 2], "x": 32, "y": 16, "flags": 4},
{"matrix": [1, 3], "x": 48, "y": 16, "flags": 4},
{"matrix": [2, 0], "x": 0, "y": 32, "flags": 4},
{"matrix": [2, 1], "x": 16, "y": 32, "flags": 4},
{"matrix": [2, 2], "x": 32, "y": 32, "flags": 4},
{"matrix": [2, 3], "x": 48, "y": 32, "flags": 4}
],
"max_brightness": 100,
"sleep": true,
"timeout": 300000
},
"url": "https://github.com/drabaioli/SdraKb00",
"usb": {
"device_version": "1.0.0",
"pid": "0x4200",
"vid": "0x7331"
},
"ws2812": {
"pin": "B0"
},
"layouts": {
"LAYOUT_ortho_3x4": {
"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, "encoder": 0},
{"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2},
{"matrix": [2, 1], "x": 1, "y": 2},
{"matrix": [2, 2], "x": 2, "y": 2},
{"matrix": [2, 3], "x": 3, "y": 2}
]
}
}
}
74 changes: 74 additions & 0 deletions keyboards/sdrakbs/sdrakb00/keymaps/default/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later

#include QMK_KEYBOARD_H

/* Keymap for 3x4 Macropad
*
* Layer 0 (Base Layer) - Numpad layout with mute button and layer toggle:
* ,----------------------,
* | 7 | 8 | 9 | MUTE |
* |-------+-------+-------+--------|
* | 4 | 5 | 6 | Layer1 |
* |-------+-------+-------+--------|
* | 1 | 2 | 3 | 0 |
* `-----------------------^--------'
*
* Layer 1 (Function Layer) - Accessed by holding MO(1):
* ,----------------------,
* | BKSP | / | - | ---- |
* |-------+-------+-------+--------|
* | = | * | + | ---- |
* |-------+-------+-------+--------|
* | ENTER | ---- | ---- | . |
* `-----------------------^--------'
*
* The base layer (0) provides standard numpad functionality with:
* - Numbers 0-9 in traditional numpad layout
* - Mute button in top right
* - Layer 1 momentary toggle (MO1) in middle right
*
* The function layer (1) adds:
* - Basic mathematical operators (+, -, *, /)
* - Backspace, Enter, and decimal point
* - Equal sign for calculations
* - Empty slots marked as ---- (KC_NO)
*/
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

[0] = LAYOUT_ortho_3x4(
KC_KP_7, KC_KP_8, KC_KP_9, KC_MUTE,
KC_KP_4, KC_KP_5, KC_KP_6, MO(1),
KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_0
),

[1] = LAYOUT_ortho_3x4(
KC_BACKSPACE, KC_KP_SLASH, KC_KP_MINUS, _______,
KC_EQUAL, KC_KP_ASTERISK, KC_KP_PLUS, _______,
KC_ENTER, _______, _______, KC_KP_DOT
)
};


/*
* Handle layer state changes by updating RGB matrix colors
*
* Sets RGB matrix colors based on active layer:
* - Layer 0: Light green (#88FB7A)
* - Layer 1: Red
* - Other layers: Red (fallback)
*/
layer_state_t layer_state_set_user(layer_state_t state) {
switch (get_highest_layer(state)) {
case 0:
rgb_matrix_sethsv(85, 255, 251); // #88FB7A for layer 0
break;
case 1:
rgb_matrix_sethsv(0, 255, 255); // Red for layer 1
break;
default:
rgb_matrix_sethsv(0, 255, 255); // Red for any other layer
break;
}
return state;
}
52 changes: 52 additions & 0 deletions keyboards/sdrakbs/sdrakb00/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# sdrakb00

![sdrakb00](https://i.imgur.com/0HfpFqW.jpeg)

11 keys hot-swap macropad with rotary encoder.

Macropad features:
- 11 hot-swap keys
- Rotary encoder with push button
- AtMega32U4 MCU
- Per-key RGB led for backlighting
- USB-C connector
- On PCB SPI header
- MCU reset button
- Switch mounting plate
- Power LED indicator

* Keyboard Maintainer: [Diego Andres Rabaioli](https://github.com/drabaioli)
* Hardware Supported: Pro Micro Atmega32u4 based macropad with 11 keys, RGB LED chain and rotary encoder
* Hardware Availability: [Get the gerbers and have fun building it your self ;)](https://github.com/drabaioli/SdraKb00)

Build SdraKb00 firmware:

make sdrakbs/sdrakb00:default

Flashing SdraKb00 firmware, execute:

make sdrakbs/sdrakb00:default:flash

Then press the reset button on the back side of the PCB.

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:

* **Physical reset button** (preferred): Briefly press the button on the back of the PCB
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard

## Default Keymap

### Base Layer (0)
- NumPad layout (1-9, 0)
- Encoder: Volume Up/Down
- Encoder Push: Mute
- Layer Switch: Hold (1,3) key for function layer

### Function Layer (1)
- NumPad operators (+, -, *, /)
- Enter, "=" and backspace keys
- Decimal point

0 comments on commit f4e6af2

Please sign in to comment.