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

Added keyboard rena #22902

Merged
merged 16 commits into from
Jan 31, 2024
22 changes: 22 additions & 0 deletions keyboards/meetlab/rena/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
/* Copyright 2022 LXF-YZP(yuezp)
*
* 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

#define WS2812_PWM_DRIVER PWMD2
#define WS2812_PWM_CHANNEL 3
#define WS2812_DMA_STREAM STM32_DMA1_STREAM2
#define WS2812_DMA_CHANNEL 2
21 changes: 21 additions & 0 deletions keyboards/meetlab/rena/halconf.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
/* Copyright 2022 LXF-YZP(yuezp)
*
* 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

#define HAL_USE_PWM TRUE

#include_next <halconf.h>
117 changes: 117 additions & 0 deletions keyboards/meetlab/rena/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
{
"manufacturer": "meet_lab",
"keyboard_name": "Rena",
"maintainer": "yuezp",
"processor": "STM32F103",
"bootloader": "stm32duino",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"extrakey": true,
"nkro": true,
"rgblight": true
},
"matrix_pins": {
"cols": ["A3", "A4", "A5", "A6", "A7", "B0", "B1", "B10", "B11", "B12", "B7", "B13", "B6", "A15"],
"rows": ["B5", "B4", "B3", "B14", "A1"]
},
"rgblight": {
"animations": {
"alternating": true,
"breathing": true,
"christmas": true,
"knight": true,
"rainbow_mood": true,
"rainbow_swirl": true,
"rgb_test": true,
"snake": true,
"static_gradient": true,
"twinkle": true
},
"brightness_steps": 10,
"default": {
"animation": "rainbow_swirl"
},
"layers": {
"enabled": true,
"override_rgb": false
},
"led_count": 1,
"saturation_steps": 8
},
"url": "",
"usb": {
"device_version": "1.0.0",
"pid": "0xAB06",
"vid": "0xBA60"
},
"ws2812": {
"driver": "pwm",
"pin": "A2"
},
"layouts": {
"LAYOUT": {
"layout": [
{"label": "ESC", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [0, 1], "x": 1.25, "y": 0},
{"label": "@", "matrix": [0, 2], "x": 2.25, "y": 0},
{"label": "#", "matrix": [0, 3], "x": 3.25, "y": 0},
{"label": "$", "matrix": [0, 4], "x": 4.25, "y": 0},
{"label": "%", "matrix": [0, 5], "x": 5.5, "y": 0},
{"label": "^", "matrix": [0, 6], "x": 6.5, "y": 0},
{"label": "&", "matrix": [0, 7], "x": 7.5, "y": 0},
{"label": "*", "matrix": [0, 8], "x": 8.5, "y": 0},
{"label": "(", "matrix": [0, 9], "x": 9.75, "y": 0},
{"label": ")", "matrix": [0, 10], "x": 10.75, "y": 0},
{"label": "_", "matrix": [0, 11], "x": 11.75, "y": 0},
{"label": "+", "matrix": [0, 12], "x": 12.75, "y": 0},
{"label": "Delete", "matrix": [0, 13], "x": 14, "y": 0},
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1.25, "w": 1.5},
{"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1.25},
{"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1.25},
{"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1.25},
{"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1.25},
{"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1.25},
{"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1.25},
{"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1.25},
{"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1.25},
{"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1.25},
{"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1.25},
{"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1.25},
{"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1.25},
{"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1.25, "w": 1.5},
{"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.75},
{"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2.25},
{"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2.25},
{"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2.25},
{"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2.25},
{"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2.25},
{"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2.25},
{"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2.25},
{"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2.25},
{"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2.25},
{"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2.25},
{"label": "k90", "matrix": [2, 11], "x": 11.75, "y": 2.25},
{"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2.25, "w": 2.25},
{"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 2.25},
{"label": "Z", "matrix": [3, 1], "x": 2.25, "y": 3.25},
{"label": "X", "matrix": [3, 2], "x": 3.25, "y": 3.25},
{"label": "C", "matrix": [3, 3], "x": 4.25, "y": 3.25},
{"label": "V", "matrix": [3, 4], "x": 5.25, "y": 3.25},
{"label": "B", "matrix": [3, 5], "x": 6.25, "y": 3.25},
{"label": "N", "matrix": [3, 6], "x": 7.25, "y": 3.25},
{"label": "M", "matrix": [3, 7], "x": 8.25, "y": 3.25},
{"label": "<", "matrix": [3, 8], "x": 9.25, "y": 3.25},
{"label": ">", "matrix": [3, 9], "x": 10.25, "y": 3.25},
{"label": "?", "matrix": [3, 10], "x": 11.25, "y": 3.25},
{"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3.25, "w": 1.75},
{"label": "Up", "matrix": [3, 13], "x": 14, "y": 3.25},
{"label": "Win", "matrix": [4, 1], "x": 1.625, "y": 4.25},
{"label": "Alt", "matrix": [4, 2], "x": 2.625, "y": 4.25, "w": 1.5},
{"label": "Space", "matrix": [4, 6], "x": 4.375, "y": 4.5, "w": 6.25},
{"label": "Alt", "matrix": [4, 10], "x": 10.875, "y": 4.25, "w": 1.5},
{"label": "Ctrl", "matrix": [4, 12], "x": 12.375, "y": 4.25}
]
}
}
}
36 changes: 36 additions & 0 deletions keyboards/meetlab/rena/keymaps/default/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
/* Copyright 2022 LXF-YZP(yuezp)
*
* 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/>.
*/

#include QMK_KEYBOARD_H

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

[0] = LAYOUT(
KC_ESC, 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_BSLS,
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_BSPC,
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI),


[1] = LAYOUT(
KC_TRNS, 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_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)

};
36 changes: 36 additions & 0 deletions keyboards/meetlab/rena/keymaps/via/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
/* Copyright 2022 LXF-YZP(yuezp)
*
* 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/>.
*/

#include QMK_KEYBOARD_H

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

[0] = LAYOUT(
KC_ESC, 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_BSLS,
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_BSPC,
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI),


[1] = LAYOUT(
KC_TRNS, 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_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)

};
1 change: 1 addition & 0 deletions keyboards/meetlab/rena/keymaps/via/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
VIA_ENABLE = yes
17 changes: 17 additions & 0 deletions keyboards/meetlab/rena/matrix_diagram.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Matrix Diagram for Rena

```
┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐
│00 ││01 │02 │03 │04 ││05 │06 │07 │08 ││09 │0A │0B │0C ││0D │
└───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘
┌─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │
├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │
├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
fauxpark marked this conversation as resolved.
Show resolved Hide resolved
│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3C │3D │
└─────┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┴─┬─┴───┼────┬─┴───┘
│41 │42 │┌───────────────────────┐│4A │4C │
└────┴─────┘│46 │└─────┴────┘
└───────────────────────┘
```
21 changes: 21 additions & 0 deletions keyboards/meetlab/rena/mcuconf.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
/* Copyright 2022 LXF-YZP(yuezp)
*
* 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
#include_next <mcuconf.h>

#undef STM32_PWM_USE_TIM2
#define STM32_PWM_USE_TIM2 TRUE
27 changes: 27 additions & 0 deletions keyboards/meetlab/rena/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Rena - PCB

![Rena](https://i.imgur.com/95rqwegh.jpg)

A 59 keys keyboard with rgb.
This keyboard use 8mhz HSE and STM32F103 as MCU.

* Keyboard Maintainer: https://github.com/LXF-YZP
* Hardware Supported: Rena PCB

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

make meetlab/rena:default

Flashing example for this keyboard:

make meetlab/rena: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**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
40 changes: 40 additions & 0 deletions keyboards/meetlab/rena/rena.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
/* Copyright 2022 LXF-YZP(yuezp)
*
* 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/>.
*/

#include "quantum.h"

#ifdef RGBLIGHT_ENABLE

const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS(
{0, 1, HSV_GREEN}
);

const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
my_capslock_layer
);

bool led_update_kb(led_t led_state) {
if (!led_update_user(led_state)) { return false; }
rgblight_set_layer_state(0, led_state.caps_lock);
return true;
}

void keyboard_post_init_kb(void) {
rgblight_layers = my_rgb_layers;
keyboard_post_init_user();
}

#endif
1 change: 1 addition & 0 deletions keyboards/meetlab/rena/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# This file intentionally left blank