mirror of
https://github.com/qmk/qmk_userspace.git
synced 2025-04-30 12:44:17 -04:00
initial transfer from previous repo
This commit is contained in:
parent
35edec2998
commit
7a06b56aef
41 changed files with 2227 additions and 2 deletions
121
keyboards/adafruit/macropad/keymaps/mls_v100/keymap.c
Normal file
121
keyboards/adafruit/macropad/keymaps/mls_v100/keymap.c
Normal file
|
@ -0,0 +1,121 @@
|
|||
/* Copyright 2022 Jose Pablo Ramirez <jp.ramangulo@gmail.com>
|
||||
*
|
||||
* 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(
|
||||
LT(1,KC_MUTE),
|
||||
KC_ENT, KC_0, KC_BSPC,
|
||||
KC_7, KC_8, KC_9,
|
||||
KC_4, KC_5, KC_6,
|
||||
KC_1, KC_2, KC_3
|
||||
),
|
||||
[1] = LAYOUT(
|
||||
_______,
|
||||
CK_TOGG, AU_TOGG, _______,
|
||||
_______, _______, _______,
|
||||
_______, _______, _______,
|
||||
_______, _______, _______
|
||||
),
|
||||
};
|
||||
|
||||
#ifdef ENCODER_MAP_ENABLE
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
||||
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||
[1] = { ENCODER_CCW_CW(_______, _______) },
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
static void render_qmk_logo(void) {
|
||||
static const char PROGMEM qmk_logo[] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x3f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x3f, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f,
|
||||
0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3f,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x83, 0x83, 0x83, 0x83, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe,
|
||||
0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x83, 0x83, 0x83, 0x83, 0x03,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x81, 0x83, 0x83, 0x83, 0x83, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||
0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x83, 0x83, 0x83, 0x83, 0x81,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x01, 0x07, 0x1f, 0x3f, 0x7f, 0x7e, 0xf8, 0xf0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff,
|
||||
0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xf0, 0xf8, 0x7e, 0x7f, 0x3f, 0x1f, 0x07, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xc0, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0xff, 0xff,
|
||||
0xff, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc0,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xfc, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xfc, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc,
|
||||
0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
oled_write_raw_P(qmk_logo, sizeof(qmk_logo));
|
||||
}
|
||||
|
||||
bool oled_task_user(void) {
|
||||
render_qmk_logo();
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif
|
1
keyboards/adafruit/macropad/keymaps/mls_v100/rules.mk
Normal file
1
keyboards/adafruit/macropad/keymaps/mls_v100/rules.mk
Normal file
|
@ -0,0 +1 @@
|
|||
ENCODER_MAP_ENABLE = yes
|
45
keyboards/aks_mls/test/config.h
Normal file
45
keyboards/aks_mls/test/config.h
Normal file
|
@ -0,0 +1,45 @@
|
|||
/*
|
||||
* 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
|
||||
|
||||
/* OLED SPI Defines */
|
||||
#define OLED_DISPLAY_128X64
|
||||
#define OLED_IC OLED_IC_SH1106
|
||||
|
||||
/* OLED SPI Pins */
|
||||
#define OLED_DC_PIN GP11
|
||||
#define OLED_CS_PIN GP12
|
||||
#define OLED_RST_PIN GP13
|
||||
|
||||
/* Shift OLED columns by 2 pixels */
|
||||
#define OLED_COLUMN_OFFSET 2
|
||||
|
||||
/* Divisor for OLED */
|
||||
#define OLED_SPI_DIVISOR 4
|
||||
|
||||
|
||||
|
||||
/* ChibiOS SPI definitions */
|
||||
#define SPI_DRIVER SPID1
|
||||
#define SPI_SCK_PIN GP26
|
||||
#define SPI_MOSI_PIN GP27
|
||||
/* #define SPI_MISO_PIN GP20 */
|
||||
|
||||
/* Double tap the side button to enter bootloader */
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP25
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
|
||||
|
28
keyboards/aks_mls/test/halconf.h
Normal file
28
keyboards/aks_mls/test/halconf.h
Normal file
|
@ -0,0 +1,28 @@
|
|||
/* Copyright 2022 Jose Pablo Ramirez <jp.ramangulo@gmail.com>
|
||||
*
|
||||
* 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 <halconf.h>
|
||||
|
||||
#undef HAL_USE_SPI
|
||||
#define HAL_USE_SPI TRUE
|
||||
|
||||
#undef SPI_USE_WAIT
|
||||
#define SPI_USE_WAIT TRUE
|
||||
|
||||
#undef SPI_SELECT_MODE
|
||||
#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD
|
38
keyboards/aks_mls/test/keyboard.json
Normal file
38
keyboards/aks_mls/test/keyboard.json
Normal file
|
@ -0,0 +1,38 @@
|
|||
{
|
||||
"manufacturer": "Allan Seidel",
|
||||
"keyboard_name": "handwired/aks_mls",
|
||||
"maintainer": "Allan Seidel",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x0000",
|
||||
"vid": "0xFEED"
|
||||
},
|
||||
"bootmagic": {
|
||||
"matrix": [3, 2]
|
||||
},
|
||||
"processor": "RP2040",
|
||||
"bootloader": "rp2040",
|
||||
"diode_direction": "COL2ROW",
|
||||
"matrix_pins": {
|
||||
"cols": ["GP0", "GP2", "GP4"],
|
||||
"rows": ["GP22", "GP21", "GP20", "GP28"]
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1},
|
||||
{"matrix": [1, 1], "x": 1, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2, "y": 1},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2},
|
||||
{"matrix": [2, 1], "x": 1, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2, "y": 2},
|
||||
{"matrix": [3, 0], "x": 0, "y": 3},
|
||||
{"matrix": [3, 1], "x": 1, "y": 3},
|
||||
{"matrix": [3, 2], "x": 2, "y": 3}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
118
keyboards/aks_mls/test/keymaps/default/keymap.c
Normal file
118
keyboards/aks_mls/test/keymaps/default/keymap.c
Normal file
|
@ -0,0 +1,118 @@
|
|||
/*
|
||||
* 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
|
||||
|
||||
|
||||
enum layer_names {
|
||||
_BASE,
|
||||
_SPECIAL1,
|
||||
_SPECIAL2,
|
||||
_STANDBY
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/*
|
||||
* ┌───┬───┬───┬
|
||||
* │ 7 │ 8 │ 9 │
|
||||
* ├───┼───┼───┼
|
||||
* │ 4 │ 5 │ 6 │
|
||||
* ├───┼───┼───┼
|
||||
* │ 1 │ 2 │ 3 │
|
||||
* ├───┼───┼───┼
|
||||
* │ 0 │ . │Ent│
|
||||
* └───┴───┴───┘
|
||||
*/
|
||||
[_BASE] = LAYOUT(
|
||||
KC_P7, KC_P8, KC_P9,
|
||||
KC_P4, KC_P5, KC_P6,
|
||||
KC_P1, KC_P2, KC_P3,
|
||||
KC_P0, TO(_SPECIAL1), KC_PENT
|
||||
),
|
||||
[_SPECIAL1] = LAYOUT(
|
||||
KC_P7, KC_P8, KC_P9,
|
||||
KC_P4, KC_P5, KC_P6,
|
||||
KC_P1, KC_P2, KC_P3,
|
||||
KC_P0, TO(_SPECIAL2), KC_PENT
|
||||
),
|
||||
[_SPECIAL2] = LAYOUT(
|
||||
KC_P7, KC_P8, KC_P9,
|
||||
KC_P4, KC_P5, KC_P6,
|
||||
KC_P1, KC_P2, KC_P3,
|
||||
KC_P0, TO(_STANDBY), KC_PENT
|
||||
),
|
||||
[_STANDBY] = LAYOUT(
|
||||
KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, TO(_BASE), KC_NO
|
||||
),
|
||||
|
||||
};
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
|
||||
static void render_logo(void) {
|
||||
static const char PROGMEM aks_mls_logo[] = {
|
||||
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94,
|
||||
0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4,
|
||||
0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00
|
||||
};
|
||||
|
||||
// oled_write_P(aks_mls_logo, false);
|
||||
oled_write_raw_P(aks_mls_logo, sizeof(aks_mls_logo));
|
||||
}
|
||||
|
||||
bool oled_init(oled_rotation_t(OLED_ROTATION_0));
|
||||
|
||||
bool oled_task_user(void) {
|
||||
render_logo();
|
||||
|
||||
oled_set_cursor(0, 3);
|
||||
// oled_write(PSTR("Layer: "), false);
|
||||
|
||||
switch (get_highest_layer(layer_state)) {
|
||||
case _BASE:
|
||||
// oled_write_ln(PSTR("Base"), false);
|
||||
oled_write_ln(PSTR("Default Actions"), false);
|
||||
oled_advance_page(true);
|
||||
oled_advance_page(true);
|
||||
break;
|
||||
case _SPECIAL1:
|
||||
// oled_write_ln(PSTR("Special1"), false);
|
||||
oled_write_ln(PSTR("Special Actions 1"), false);
|
||||
oled_advance_page(true);
|
||||
break;
|
||||
case _SPECIAL2:
|
||||
// oled_write_ln(PSTR("Special2"), false);
|
||||
oled_write_ln(PSTR("Special Actions 2"), false);
|
||||
oled_advance_page(true);
|
||||
oled_advance_page(true);
|
||||
break;
|
||||
case _STANDBY:
|
||||
oled_write_ln(PSTR("Standby Mode"), false);
|
||||
oled_write_ln(PSTR("Keys do nothing"), false);
|
||||
oled_write_ln(PSTR("Layer key re-engages"), false);
|
||||
break;
|
||||
default:
|
||||
oled_write_ln_P(PSTR("Undefined"), false);
|
||||
oled_advance_page(true);
|
||||
oled_advance_page(true);
|
||||
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
#endif
|
1
keyboards/aks_mls/test/keymaps/default/rules.mk
Normal file
1
keyboards/aks_mls/test/keymaps/default/rules.mk
Normal file
|
@ -0,0 +1 @@
|
|||
MOUSEKEY_ENABLE = yes
|
22
keyboards/aks_mls/test/mcuconf.h
Normal file
22
keyboards/aks_mls/test/mcuconf.h
Normal file
|
@ -0,0 +1,22 @@
|
|||
/* Copyright 2022 Jose Pablo Ramirez <jp.ramangulo@gmail.com>
|
||||
*
|
||||
* 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 RP_SPI_USE_SPI1
|
||||
#define RP_SPI_USE_SPI1 TRUE
|
14
keyboards/aks_mls/test/rules.mk
Normal file
14
keyboards/aks_mls/test/rules.mk
Normal file
|
@ -0,0 +1,14 @@
|
|||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
||||
MOUSEKEY_ENABLE = no # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Enable N-Key Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
OLED_ENABLE = yes
|
||||
OLED_TRANSPORT = spi
|
||||
LTO_ENABLE = yes
|
3
keyboards/aks_mls/test/testreadme.md
Normal file
3
keyboards/aks_mls/test/testreadme.md
Normal file
|
@ -0,0 +1,3 @@
|
|||
aks_mls test qmk is for the handwired v01 setup prior to when encorders were added.
|
||||
|
||||
You may get nowhere trying to use it!!!
|
109
keyboards/aks_mls/testadapad/config.h
Normal file
109
keyboards/aks_mls/testadapad/config.h
Normal file
|
@ -0,0 +1,109 @@
|
|||
/* Copyright 2022 Jose Pablo Ramirez <jp.ramangulo@gmail.com>
|
||||
*
|
||||
* 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
|
||||
|
||||
/* OLED SPI Defines */
|
||||
#define OLED_DISPLAY_128X64
|
||||
#define OLED_IC OLED_IC_SH1106
|
||||
|
||||
/* OLED SPI Pins */
|
||||
#define OLED_DC_PIN GP24
|
||||
#define OLED_CS_PIN GP22
|
||||
#define OLED_RST_PIN GP23
|
||||
|
||||
#define OLED_BRIGHTNESS 128
|
||||
|
||||
/* Shift OLED columns by 2 pixels */
|
||||
#define OLED_COLUMN_OFFSET 2
|
||||
|
||||
/* Divisor for OLED */
|
||||
#define OLED_SPI_DIVISOR 4
|
||||
|
||||
/* ChibiOS SPI definitions */
|
||||
#define SPI_DRIVER SPID1
|
||||
#define SPI_SCK_PIN GP26
|
||||
#define SPI_MOSI_PIN GP27
|
||||
#define SPI_MISO_PIN GP28
|
||||
|
||||
/* Double tap the side button to enter bootloader */
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP13
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
|
||||
|
||||
/* Audio */
|
||||
#define AUDIO_PIN GP16
|
||||
#define AUDIO_PWM_DRIVER PWMD0
|
||||
#define AUDIO_PWM_CHANNEL RP2040_PWM_CHANNEL_A
|
||||
#define AUDIO_INIT_DELAY
|
||||
#define AUDIO_CLICKY
|
||||
|
||||
#define SPEAKER_SHUTDOWN GP14
|
||||
#define AUDIO_DAC_SAMPLE_MAX 200U
|
||||
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
|
||||
/* RGB Defines */
|
||||
# define RGB_MATRIX_LED_COUNT 12
|
||||
|
||||
/* Enable Framebuffer and keypress effects */
|
||||
# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
|
||||
# define RGB_MATRIX_KEYPRESSES
|
||||
|
||||
# define ENABLE_RGB_MATRIX_ALPHAS_MODS
|
||||
# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
|
||||
# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
|
||||
# define ENABLE_RGB_MATRIX_BREATHING
|
||||
# define ENABLE_RGB_MATRIX_BAND_SAT
|
||||
# define ENABLE_RGB_MATRIX_BAND_VAL
|
||||
# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
|
||||
# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
|
||||
# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
|
||||
# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
|
||||
# define ENABLE_RGB_MATRIX_CYCLE_ALL
|
||||
# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
|
||||
# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
|
||||
# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
|
||||
# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
|
||||
# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
|
||||
# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
|
||||
# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
|
||||
# define ENABLE_RGB_MATRIX_DUAL_BEACON
|
||||
# define ENABLE_RGB_MATRIX_RAINBOW_BEACON
|
||||
# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
|
||||
# define ENABLE_RGB_MATRIX_RAINDROPS
|
||||
# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
|
||||
# define ENABLE_RGB_MATRIX_HUE_BREATHING
|
||||
# define ENABLE_RGB_MATRIX_HUE_PENDULUM
|
||||
# define ENABLE_RGB_MATRIX_HUE_WAVE
|
||||
# define ENABLE_RGB_MATRIX_PIXEL_RAIN
|
||||
# define ENABLE_RGB_MATRIX_PIXEL_FLOW
|
||||
# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
|
||||
# define ENABLE_RGB_MATRIX_TYPING_HEATMAP
|
||||
# define ENABLE_RGB_MATRIX_DIGITAL_RAIN
|
||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
|
||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE
|
||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
|
||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
|
||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
|
||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
|
||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
|
||||
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
|
||||
# define ENABLE_RGB_MATRIX_SPLASH
|
||||
# define ENABLE_RGB_MATRIX_MULTISPLASH
|
||||
# define ENABLE_RGB_MATRIX_SOLID_SPLASH
|
||||
# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
|
||||
#endif
|
31
keyboards/aks_mls/testadapad/halconf.h
Normal file
31
keyboards/aks_mls/testadapad/halconf.h
Normal file
|
@ -0,0 +1,31 @@
|
|||
/* Copyright 2022 Jose Pablo Ramirez <jp.ramangulo@gmail.com>
|
||||
*
|
||||
* 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 <halconf.h>
|
||||
|
||||
#undef HAL_USE_SPI
|
||||
#define HAL_USE_SPI TRUE
|
||||
|
||||
#undef SPI_USE_WAIT
|
||||
#define SPI_USE_WAIT TRUE
|
||||
|
||||
#undef SPI_SELECT_MODE
|
||||
#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD
|
||||
|
||||
#undef HAL_USE_PWM
|
||||
#define HAL_USE_PWM TRUE
|
92
keyboards/aks_mls/testadapad/keyboard.json
Normal file
92
keyboards/aks_mls/testadapad/keyboard.json
Normal file
|
@ -0,0 +1,92 @@
|
|||
{
|
||||
"keyboard_name": "MLS AdaFruit RP2040 Macropad",
|
||||
"manufacturer": "aks_mls",
|
||||
"url": "https://learn.adafruit.com/adafruit-macropad-rp2040",
|
||||
"maintainer": "aks-mls",
|
||||
"usb": {
|
||||
"pid": "0x0004",
|
||||
"vid": "0xDF04",
|
||||
// "vid": "0x239A",
|
||||
// "pid": "0x0108",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"mousekey": false,
|
||||
"extrakey": true,
|
||||
"nkro": true,
|
||||
"audio": true,
|
||||
"encoder": true,
|
||||
"rgb_matrix": true,
|
||||
"oled": true
|
||||
},
|
||||
"audio": {
|
||||
"driver": "pwm_hardware",
|
||||
"power_control": {
|
||||
"pin": "GP14"
|
||||
}
|
||||
},
|
||||
"encoder": {
|
||||
"rotary": [
|
||||
{"pin_a": "GP18", "pin_b": "GP17"}
|
||||
]
|
||||
},
|
||||
"rgb_matrix": {
|
||||
"animations": {
|
||||
"breathing": true,
|
||||
"hue_breathing": true
|
||||
},
|
||||
"driver": "ws2812",
|
||||
"layout": [
|
||||
{"matrix": [1, 0], "x": 0, "y": 0, "flags": 4},
|
||||
{"matrix": [1, 1], "x": 112, "y": 0, "flags": 4},
|
||||
{"matrix": [1, 2], "x": 224, "y": 0, "flags": 4},
|
||||
{"matrix": [2, 0], "x": 0, "y": 21, "flags": 4},
|
||||
{"matrix": [2, 1], "x": 112, "y": 21, "flags": 4},
|
||||
{"matrix": [2, 2], "x": 224, "y": 21, "flags": 4},
|
||||
{"matrix": [3, 0], "x": 0, "y": 42, "flags": 4},
|
||||
{"matrix": [3, 1], "x": 112, "y": 42, "flags": 4},
|
||||
{"matrix": [3, 2], "x": 224, "y": 42, "flags": 4},
|
||||
{"matrix": [4, 0], "x": 0, "y": 64, "flags": 4},
|
||||
{"matrix": [4, 1], "x": 112, "y": 64, "flags": 4},
|
||||
{"matrix": [4, 2], "x": 224, "y": 64, "flags": 4}
|
||||
]
|
||||
},
|
||||
"bootmagic": {
|
||||
"matrix": [1, 2]
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "GP19",
|
||||
"driver": "vendor"
|
||||
},
|
||||
"processor": "RP2040",
|
||||
"bootloader": "rp2040",
|
||||
"matrix_pins": {
|
||||
"direct": [
|
||||
[null, null, "GP0"],
|
||||
["GP1", "GP2", "GP3"],
|
||||
["GP4", "GP5", "GP6"],
|
||||
["GP7", "GP8", "GP9"],
|
||||
["GP10", "GP11", "GP12"]
|
||||
]
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"x": 2, "y": 0, "matrix": [0, 2]},
|
||||
{"x": 0, "y": 1, "matrix": [1, 0]},
|
||||
{"x": 1, "y": 1, "matrix": [1, 1]},
|
||||
{"x": 2, "y": 1, "matrix": [1, 2]},
|
||||
{"x": 0, "y": 2, "matrix": [2, 0]},
|
||||
{"x": 1, "y": 2, "matrix": [2, 1]},
|
||||
{"x": 2, "y": 2, "matrix": [2, 2]},
|
||||
{"x": 0, "y": 3, "matrix": [3, 0]},
|
||||
{"x": 1, "y": 3, "matrix": [3, 1]},
|
||||
{"x": 2, "y": 3, "matrix": [3, 2]},
|
||||
{"x": 0, "y": 4, "matrix": [4, 0]},
|
||||
{"x": 1, "y": 4, "matrix": [4, 1]},
|
||||
{"x": 2, "y": 4, "matrix": [4, 2]}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
20
keyboards/aks_mls/testadapad/keymaps/mls001/config.h
Normal file
20
keyboards/aks_mls/testadapad/keymaps/mls001/config.h
Normal file
|
@ -0,0 +1,20 @@
|
|||
|
||||
#define RGBLIGHT_EFFECT_BREATHING true
|
||||
|
||||
#undef RGBLIGHT_MODE_BREATHING
|
||||
#define RGBLIGHT_MODE_BREATHING 0
|
||||
|
||||
|
||||
|
||||
|
||||
#undef BREATHING_PERIOD
|
||||
#define BREATHING_PERIOD 1000
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifdef RGBLIGHT_LIMIT_VAL
|
||||
#undef RGBLIGHT_LIMIT_VAL
|
||||
#define RGBLIGHT_LIMIT_VAL 40
|
||||
#endif
|
152
keyboards/aks_mls/testadapad/keymaps/mls001/keymap.c
Normal file
152
keyboards/aks_mls/testadapad/keymaps/mls001/keymap.c
Normal file
|
@ -0,0 +1,152 @@
|
|||
/* Copyright 2022 Jose Pablo Ramirez <jp.ramangulo@gmail.com>
|
||||
*
|
||||
* 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
|
||||
|
||||
enum layer_names {
|
||||
_BASE,
|
||||
_SPECIAL1,
|
||||
_SPECIAL2,
|
||||
_STANDBY
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE] = LAYOUT(
|
||||
TO(_SPECIAL1),
|
||||
KC_7, KC_8, KC_9,
|
||||
KC_4, KC_5, KC_6,
|
||||
KC_1, KC_2, KC_3,
|
||||
KC_ENT, KC_0, KC_BSPC
|
||||
),
|
||||
[_SPECIAL1] = LAYOUT(
|
||||
TO(_SPECIAL2),
|
||||
KC_ESC, KC_MS_U, KC_NO,
|
||||
KC_MS_L, KC_MS_D, KC_MS_R,
|
||||
KC_NO, KC_WH_U, KC_NO,
|
||||
KC_WH_L, KC_WH_D, KC_WH_R
|
||||
),
|
||||
[_SPECIAL2] = LAYOUT(
|
||||
TO(_STANDBY),
|
||||
KC_NO, KC_NO, KC_NO,
|
||||
RGB_MOD, RGB_RMOD, KC_NO,
|
||||
RGB_M_B, RGB_M_R, RGB_M_SW,
|
||||
RGB_TOG, RGB_M_P, KC_NO
|
||||
),
|
||||
[_STANDBY] = LAYOUT(
|
||||
TO(_BASE),
|
||||
KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO
|
||||
),
|
||||
};
|
||||
|
||||
#ifdef ENCODER_MAP_ENABLE
|
||||
/* This sets what the encoder turns do at each layer.
|
||||
There has to be a setting for each defined layer.
|
||||
Otherwise there will be a compile error.
|
||||
|
||||
Keep in mind the transparency encoding applies.
|
||||
*/
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
||||
[_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||
[_SPECIAL1] = { ENCODER_CCW_CW(CK_DOWN, CK_UP) },
|
||||
[_SPECIAL2] = { ENCODER_CCW_CW(AU_PREV, AU_NEXT) },
|
||||
[_STANDBY] = { ENCODER_CCW_CW(KC_NO, KC_NO) }
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
|
||||
static void render_logo(void) {
|
||||
static const char PROGMEM aks_mls_logo[] = {
|
||||
// 'mls_logo_layers_totop', 128x24px
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0x10, 0x18,
|
||||
0x08, 0xc4, 0xc4, 0x84, 0x02, 0x02, 0x02, 0x83, 0xc1, 0x01, 0x01, 0xc1, 0xc1, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x03, 0x82, 0xc2, 0x42, 0x44, 0x44, 0x84, 0x08, 0x18, 0x10, 0x20, 0xc0, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x30, 0x40, 0x80, 0x80,
|
||||
0x00, 0x3f, 0x01, 0x03, 0x07, 0x02, 0x01, 0x3f, 0x3f, 0x00, 0x00, 0x3f, 0x3f, 0x20, 0x20, 0x20,
|
||||
0x20, 0x00, 0x00, 0x13, 0x27, 0x26, 0x26, 0x3e, 0x1c, 0x00, 0x80, 0x80, 0x40, 0x30, 0x0f, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x01, 0x03, 0x07, 0x02, 0x01, 0x3f, 0x3f, 0x00, 0x00,
|
||||
0x18, 0x3d, 0x25, 0x25, 0x3f, 0x3e, 0x00, 0x00, 0x1e, 0x3f, 0x21, 0x21, 0x21, 0x00, 0x3f, 0x3f,
|
||||
0x02, 0x03, 0x03, 0x00, 0x1e, 0x3f, 0x21, 0x21, 0x3f, 0x1e, 0x00, 0xff, 0xff, 0x21, 0x21, 0x3f,
|
||||
0x1e, 0x00, 0x00, 0x18, 0x3d, 0x25, 0x25, 0x3f, 0x3e, 0x00, 0x1e, 0x3f, 0x21, 0x21, 0x3f, 0x3f,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
|
||||
0x01, 0x02, 0x02, 0x06, 0x04, 0x04, 0x04, 0x0c, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
|
||||
0x08, 0x08, 0x0c, 0x04, 0x04, 0x04, 0x06, 0x02, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
oled_write_raw_P(aks_mls_logo, sizeof(aks_mls_logo));
|
||||
}
|
||||
|
||||
bool oled_init(oled_rotation_t(OLED_ROTATION_0));
|
||||
|
||||
bool oled_task_user(void) {
|
||||
render_logo();
|
||||
|
||||
oled_set_cursor(0, 3);
|
||||
// oled_write(PSTR("Layer: "), false);
|
||||
|
||||
switch (get_highest_layer(layer_state)) {
|
||||
case _BASE:
|
||||
// oled_write_ln(PSTR("Base"), false);
|
||||
oled_write_ln(PSTR("Default Actions"), false);
|
||||
oled_advance_page(true);
|
||||
oled_advance_page(true);
|
||||
rgblight_sethsv_noeeprom(HSV_GREEN);
|
||||
break;
|
||||
case _SPECIAL1:
|
||||
// oled_write_ln(PSTR("Special1"), false);
|
||||
oled_write_ln(PSTR("Special Actions 1"), false);
|
||||
oled_advance_page(true);
|
||||
rgblight_sethsv_noeeprom(HSV_BLUE);
|
||||
break;
|
||||
case _SPECIAL2:
|
||||
// oled_write_ln(PSTR("Special2"), false);
|
||||
oled_write_ln(PSTR("Special Actions 2"), false);
|
||||
oled_advance_page(true);
|
||||
oled_advance_page(true);
|
||||
rgblight_sethsv_noeeprom(HSV_MAGENTA);
|
||||
break;
|
||||
case _STANDBY:
|
||||
oled_write_ln(PSTR("Standby Mode"), false);
|
||||
oled_write_ln(PSTR("Keys do nothing"), false);
|
||||
oled_write_ln(PSTR("Layer key re-engages"), false);
|
||||
rgblight_sethsv_noeeprom(HSV_RED);
|
||||
|
||||
break;
|
||||
default:
|
||||
oled_write_ln_P(PSTR("Undefined"), false);
|
||||
oled_advance_page(true);
|
||||
oled_advance_page(true);
|
||||
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
3
keyboards/aks_mls/testadapad/keymaps/mls001/rules.mk
Normal file
3
keyboards/aks_mls/testadapad/keymaps/mls001/rules.mk
Normal file
|
@ -0,0 +1,3 @@
|
|||
ENCODER_MAP_ENABLE = yes
|
||||
AUDIO_ENABLE = no
|
||||
MOUSEKEY_ENABLE = yes
|
25
keyboards/aks_mls/testadapad/keymaps/mls002/config.h
Normal file
25
keyboards/aks_mls/testadapad/keymaps/mls002/config.h
Normal file
|
@ -0,0 +1,25 @@
|
|||
|
||||
#define RGBLIGHT_EFFECT_BREATHING true
|
||||
|
||||
#undef RGBLIGHT_MODE_BREATHING
|
||||
#define RGBLIGHT_MODE_BREATHING 0
|
||||
|
||||
|
||||
#undef BREATHING_PERIOD
|
||||
#define BREATHING_PERIOD 1000
|
||||
|
||||
|
||||
#ifdef RGBLIGHT_LIMIT_VAL
|
||||
#undef RGBLIGHT_LIMIT_VAL
|
||||
#define RGBLIGHT_LIMIT_VAL 40
|
||||
#endif
|
||||
|
||||
// The default brightness level of the OLED, from 0 to 255.
|
||||
#undef OLED_BRIGHTNESS
|
||||
#define OLED_BRIGHTNESS 128
|
||||
|
||||
// Turns off the OLED screen after 60000ms of screen update inactivity.
|
||||
// Helps reduce OLED Burn-in. Set to 0 to disable.
|
||||
// Default is 60000ms ie 60 seconds
|
||||
#undef OLED_TIMEOUT
|
||||
#define OLED_TIMEOUT 60000
|
160
keyboards/aks_mls/testadapad/keymaps/mls002/keymap.c
Normal file
160
keyboards/aks_mls/testadapad/keymaps/mls002/keymap.c
Normal file
|
@ -0,0 +1,160 @@
|
|||
/* Copyright 2022 Jose Pablo Ramirez <jp.ramangulo@gmail.com>
|
||||
*
|
||||
* 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
|
||||
|
||||
enum layer_names {
|
||||
_BASE,
|
||||
_SPECIAL1,
|
||||
_SPECIAL2,
|
||||
_STANDBY
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE] = LAYOUT(
|
||||
TO(_SPECIAL1),
|
||||
KC_7, KC_8, KC_9,
|
||||
KC_4, KC_5, KC_6,
|
||||
KC_1, KC_2, KC_3,
|
||||
KC_ENT, KC_0, KC_BSPC
|
||||
),
|
||||
[_SPECIAL1] = LAYOUT(
|
||||
TO(_SPECIAL2),
|
||||
KC_ESC, KC_MS_U, KC_NO,
|
||||
KC_MS_L, KC_MS_D, KC_MS_R,
|
||||
KC_NO, KC_WH_U, KC_NO,
|
||||
KC_WH_L, KC_WH_D, KC_WH_R
|
||||
),
|
||||
[_SPECIAL2] = LAYOUT(
|
||||
TO(_STANDBY),
|
||||
KC_NO, KC_NO, KC_NO,
|
||||
RGB_MOD, RGB_RMOD, KC_NO,
|
||||
RGB_M_B, RGB_M_R, RGB_M_SW,
|
||||
RGB_TOG, RGB_M_P, KC_NO
|
||||
),
|
||||
[_STANDBY] = LAYOUT(
|
||||
TO(_BASE),
|
||||
KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO
|
||||
),
|
||||
};
|
||||
|
||||
#ifdef ENCODER_MAP_ENABLE
|
||||
/* This sets what the encoder turns do at each layer.
|
||||
There has to be a setting for each defined layer.
|
||||
Otherwise there will be a compile error.
|
||||
|
||||
Keep in mind the transparency encoding applies.
|
||||
*/
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
||||
[_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||
[_SPECIAL1] = { ENCODER_CCW_CW(CK_DOWN, CK_UP) },
|
||||
[_SPECIAL2] = { ENCODER_CCW_CW(AU_PREV, AU_NEXT) },
|
||||
[_STANDBY] = { ENCODER_CCW_CW(KC_NO, KC_NO) }
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
|
||||
|
||||
// static void render_logo(void) {
|
||||
// static const char PROGMEM aks_mls_logo[] = {
|
||||
// // 'mls_logo_layers_totop', 128x24px
|
||||
// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0x10, 0x18,
|
||||
// 0x08, 0xc4, 0xc4, 0x84, 0x02, 0x02, 0x02, 0x83, 0xc1, 0x01, 0x01, 0xc1, 0xc1, 0x01, 0x01, 0x01,
|
||||
// 0x01, 0x01, 0x03, 0x82, 0xc2, 0x42, 0x44, 0x44, 0x84, 0x08, 0x18, 0x10, 0x20, 0xc0, 0x00, 0x00,
|
||||
// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x00, 0x00,
|
||||
// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0,
|
||||
// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x30, 0x40, 0x80, 0x80,
|
||||
// 0x00, 0x3f, 0x01, 0x03, 0x07, 0x02, 0x01, 0x3f, 0x3f, 0x00, 0x00, 0x3f, 0x3f, 0x20, 0x20, 0x20,
|
||||
// 0x20, 0x00, 0x00, 0x13, 0x27, 0x26, 0x26, 0x3e, 0x1c, 0x00, 0x80, 0x80, 0x40, 0x30, 0x0f, 0x00,
|
||||
// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x01, 0x03, 0x07, 0x02, 0x01, 0x3f, 0x3f, 0x00, 0x00,
|
||||
// 0x18, 0x3d, 0x25, 0x25, 0x3f, 0x3e, 0x00, 0x00, 0x1e, 0x3f, 0x21, 0x21, 0x21, 0x00, 0x3f, 0x3f,
|
||||
// 0x02, 0x03, 0x03, 0x00, 0x1e, 0x3f, 0x21, 0x21, 0x3f, 0x1e, 0x00, 0xff, 0xff, 0x21, 0x21, 0x3f,
|
||||
// 0x1e, 0x00, 0x00, 0x18, 0x3d, 0x25, 0x25, 0x3f, 0x3e, 0x00, 0x1e, 0x3f, 0x21, 0x21, 0x3f, 0x3f,
|
||||
// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
|
||||
// 0x01, 0x02, 0x02, 0x06, 0x04, 0x04, 0x04, 0x0c, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
|
||||
// 0x08, 0x08, 0x0c, 0x04, 0x04, 0x04, 0x06, 0x02, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
// };
|
||||
// oled_write_raw_P(aks_mls_logo, sizeof(aks_mls_logo));
|
||||
// }
|
||||
|
||||
// OLED_ROTATION_0 = 0
|
||||
// OLED_ROTATION_90 = 1
|
||||
// OLED_ROTATION_180 = 2
|
||||
// OLED_ROTATION_270 = 3
|
||||
// ???? work ???
|
||||
|
||||
bool oled_init(oled_rotation_t(OLED_ROTATION_0));
|
||||
|
||||
bool oled_task_user(void) {
|
||||
// not showing logo all the time
|
||||
// render_logo();
|
||||
|
||||
oled_set_cursor(0, 3);
|
||||
// oled_write(PSTR("Layer: "), false);
|
||||
|
||||
switch (get_highest_layer(layer_state)) {
|
||||
case _BASE:
|
||||
// oled_write_ln(PSTR("Base"), false);
|
||||
oled_write_ln(PSTR("Default Actions"), false);
|
||||
oled_advance_page(true);
|
||||
oled_advance_page(true);
|
||||
rgblight_sethsv_noeeprom(HSV_GREEN);
|
||||
break;
|
||||
case _SPECIAL1:
|
||||
// oled_write_ln(PSTR("Special1"), false);
|
||||
oled_write_ln(PSTR("Special Actions 1"), false);
|
||||
oled_advance_page(true);
|
||||
rgblight_sethsv_noeeprom(HSV_BLUE);
|
||||
break;
|
||||
case _SPECIAL2:
|
||||
// oled_write_ln(PSTR("Special2"), false);
|
||||
oled_write_ln(PSTR("Special Actions 2"), false);
|
||||
oled_advance_page(true);
|
||||
oled_advance_page(true);
|
||||
rgblight_sethsv_noeeprom(HSV_MAGENTA);
|
||||
break;
|
||||
case _STANDBY:
|
||||
oled_write_ln(PSTR("Standby Mode"), false);
|
||||
oled_write_ln(PSTR("Keys do nothing"), false);
|
||||
oled_write_ln(PSTR("Layer key re-engages"), false);
|
||||
rgblight_sethsv_noeeprom(HSV_RED);
|
||||
|
||||
break;
|
||||
default:
|
||||
oled_write_ln_P(PSTR("Undefined"), false);
|
||||
oled_advance_page(true);
|
||||
oled_advance_page(true);
|
||||
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
3
keyboards/aks_mls/testadapad/keymaps/mls002/rules.mk
Normal file
3
keyboards/aks_mls/testadapad/keymaps/mls002/rules.mk
Normal file
|
@ -0,0 +1,3 @@
|
|||
ENCODER_MAP_ENABLE = yes
|
||||
AUDIO_ENABLE = no
|
||||
MOUSEKEY_ENABLE = yes
|
137
keyboards/aks_mls/testadapad/keymaps/via/keymap.c
Normal file
137
keyboards/aks_mls/testadapad/keymaps/via/keymap.c
Normal file
|
@ -0,0 +1,137 @@
|
|||
/* Copyright 2022 Jose Pablo Ramirez <jp.ramangulo@gmail.com>
|
||||
*
|
||||
* 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(
|
||||
LT(1,KC_MUTE),
|
||||
KC_ENT, KC_0, KC_BSPC,
|
||||
KC_7, KC_8, KC_9,
|
||||
KC_4, KC_5, KC_6,
|
||||
KC_1, KC_2, KC_3
|
||||
),
|
||||
[1] = LAYOUT(
|
||||
_______,
|
||||
CK_TOGG, AU_TOGG, _______,
|
||||
_______, _______, _______,
|
||||
_______, _______, _______,
|
||||
_______, _______, _______
|
||||
),
|
||||
[2] = LAYOUT(
|
||||
_______,
|
||||
_______, _______, _______,
|
||||
_______, _______, _______,
|
||||
_______, _______, _______,
|
||||
_______, _______, _______
|
||||
),
|
||||
[3] = LAYOUT(
|
||||
_______,
|
||||
_______, _______, _______,
|
||||
_______, _______, _______,
|
||||
_______, _______, _______,
|
||||
_______, _______, _______
|
||||
),
|
||||
};
|
||||
|
||||
#ifdef ENCODER_MAP_ENABLE
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
||||
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||
[1] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[2] = { ENCODER_CCW_CW(_______, _______) },
|
||||
[3] = { ENCODER_CCW_CW(_______, _______) }
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
static void render_qmk_logo(void) {
|
||||
static const char PROGMEM qmk_logo[] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x3f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x3f, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f,
|
||||
0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3f,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x83, 0x83, 0x83, 0x83, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe,
|
||||
0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x83, 0x83, 0x83, 0x83, 0x03,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x81, 0x83, 0x83, 0x83, 0x83, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||
0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x83, 0x83, 0x83, 0x83, 0x81,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x01, 0x07, 0x1f, 0x3f, 0x7f, 0x7e, 0xf8, 0xf0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff,
|
||||
0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xf0, 0xf8, 0x7e, 0x7f, 0x3f, 0x1f, 0x07, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xc0, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0xff, 0xff,
|
||||
0xff, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc0,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xfc, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xfc, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc,
|
||||
0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
oled_write_raw_P(qmk_logo, sizeof(qmk_logo));
|
||||
}
|
||||
|
||||
bool oled_task_user(void) {
|
||||
render_qmk_logo();
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif
|
2
keyboards/aks_mls/testadapad/keymaps/via/rules.mk
Normal file
2
keyboards/aks_mls/testadapad/keymaps/via/rules.mk
Normal file
|
@ -0,0 +1,2 @@
|
|||
ENCODER_MAP_ENABLE = yes
|
||||
VIA_ENABLE = yes
|
25
keyboards/aks_mls/testadapad/mcuconf.h
Normal file
25
keyboards/aks_mls/testadapad/mcuconf.h
Normal file
|
@ -0,0 +1,25 @@
|
|||
/* Copyright 2022 Jose Pablo Ramirez <jp.ramangulo@gmail.com>
|
||||
*
|
||||
* 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 RP_SPI_USE_SPI1
|
||||
#define RP_SPI_USE_SPI1 TRUE
|
||||
|
||||
#undef RP_PWM_USE_PWM0
|
||||
#define RP_PWM_USE_PWM0 TRUE
|
45
keyboards/aks_mls/testadapad/readme.md
Normal file
45
keyboards/aks_mls/testadapad/readme.md
Normal file
|
@ -0,0 +1,45 @@
|
|||
# This "testadapad" setup applies to a Adafruit MacroPad RP2040.
|
||||
|
||||

|
||||
|
||||
A RP2040-powered Macropad with a 3x4 layout.
|
||||
|
||||
- Original Keyboard Maintainer: [Jpe230](https://github.com/jpe230/)
|
||||
- Hardware Supported: Adafruit MacroPad RP2040
|
||||
- Hardware Availability: [Barebones kit](https://www.adafruit.com/product/5100) [Starter Kit](https://www.adafruit.com/product/5128)
|
||||
|
||||
Make example for this board (after setting up your build environment):
|
||||
|
||||
```sh
|
||||
qmk compile -kb handwired/aks_mls/testadapad -km mls001
|
||||
|
||||
once the macropad is in flash mode (double click the side button) this will flash the macropad:
|
||||
|
||||
qmk flash -kb handwired/aks_mls/testadapad -km mls001
|
||||
|
||||
Note that flash will recompile if changes were made.
|
||||
|
||||
```
|
||||
|
||||
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).
|
||||
|
||||
## Features
|
||||
|
||||
- Raspberry Pi RP2040 Chip + 8MB Flash memory - Dual-core Cortex M0+ at ~130MHz with 264KB of RAM.
|
||||
- 3x4 Mechanical key switch sockets - accepts any Cherry MX-compatible switches. Individually tied to GPIO pins (not matrix wired)
|
||||
- One NeoPixel RGB LED per switch, on north side.
|
||||
- Rotary encoder, 20 detents per rotation, with push-switch on GPIO pin. Push switch is also used for entering bootloader mode when held down on power-up or reset.
|
||||
- 128x64 SH1106 Monochrome OLED display - On high-speed hardware SPI port for quick updates.
|
||||
- 8mm Speaker/Buzzer - With Class D amplifier and RC filter, can be used to make simple beeps and sounds effects. (Unsupported for now)
|
||||
- STEMMA QT Connector - Allows adding any I2C sensors/displays/devices with plug-and-play cables.
|
||||
- Reset button - On the side, for quick restarting, press it twice to enter bootloader.
|
||||
- Four M3 mounting bosses - Make custom enclosures easily.
|
||||
|
||||
## Bootloader
|
||||
|
||||
Enter the bootloader in 4 ways:
|
||||
|
||||
* **Bootmagic reset**: Hold down the key just below the rotary encoder push-button on power-up.
|
||||
* **Physical reset button**: Press twice the button on the side while the board is connected.
|
||||
* **BOOT button** Hold down the rotary encoder push-button on power-up or reset.
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available.
|
19
keyboards/aks_mls/testadapad/rules.mk
Normal file
19
keyboards/aks_mls/testadapad/rules.mk
Normal file
|
@ -0,0 +1,19 @@
|
|||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
# NOTE Commenting out features that are defines in keyboard.json (ie info.json).
|
||||
#
|
||||
# BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
||||
# MOUSEKEY_ENABLE = no # Mouse keys
|
||||
# EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
# NKRO_ENABLE = yes # Enable N-Key Rollover
|
||||
# BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
# AUDIO_ENABLE = yes # Audio output
|
||||
# AUDIO_DRIVER = pwm_hardware
|
||||
# ENCODER_ENABLE = yes
|
||||
# RGB_MATRIX_ENABLE = yes
|
||||
# OLED_ENABLE = yes
|
||||
OLED_TRANSPORT = spi
|
130
keyboards/aks_mls/testadapad/testadapad.c
Normal file
130
keyboards/aks_mls/testadapad/testadapad.c
Normal file
|
@ -0,0 +1,130 @@
|
|||
/* Copyright 2022 Jose Pablo Ramirez <jp.ramangulo@gmail.com>
|
||||
*
|
||||
* 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 RGB_MATRIX_ENABLE
|
||||
|
||||
#define NA NO_LED
|
||||
|
||||
/* RGB Positioning */
|
||||
led_config_t g_led_config = { {
|
||||
{ NA, NA, NA },
|
||||
{ 0, 1, 2 },
|
||||
{ 3, 4, 5 },
|
||||
{ 6, 7, 8 },
|
||||
{ 9, 10, 11 }
|
||||
}, {
|
||||
{ 0, 0 }, { 112, 0 }, { 224, 0},
|
||||
{ 0, 21 }, { 112, 21 }, { 224, 21},
|
||||
{ 0, 42 }, { 112, 42 }, { 224, 42},
|
||||
{ 0, 64 }, { 112, 64 }, { 224, 64}
|
||||
}, {
|
||||
4, 4, 4,
|
||||
4, 4, 4,
|
||||
4, 4, 4,
|
||||
4, 4, 4
|
||||
} };
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
void keyboard_pre_init_kb(void) {
|
||||
// ensure pin is set and enabled pre-audio init
|
||||
setPinOutput(SPEAKER_SHUTDOWN);
|
||||
writePinHigh(SPEAKER_SHUTDOWN);
|
||||
keyboard_pre_init_user();
|
||||
}
|
||||
|
||||
void keyboard_post_init_kb(void) {
|
||||
// set pin based on active status
|
||||
writePin(SPEAKER_SHUTDOWN, audio_is_on());
|
||||
keyboard_post_init_user();
|
||||
}
|
||||
|
||||
void audio_on_user(void) {
|
||||
writePinHigh(SPEAKER_SHUTDOWN);
|
||||
}
|
||||
|
||||
void audio_off_user(void) {
|
||||
// needs a delay or it runs right after play note.
|
||||
wait_ms(200);
|
||||
writePinLow(SPEAKER_SHUTDOWN);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
static uint32_t oled_logo_timer = 0;
|
||||
// static void render_logo(void) {
|
||||
static const char PROGMEM aks_mls_logo[] = {
|
||||
// 'mls_logo_layers_totop', 128x24px
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0x10, 0x18,
|
||||
0x08, 0xc4, 0xc4, 0x84, 0x02, 0x02, 0x02, 0x83, 0xc1, 0x01, 0x01, 0xc1, 0xc1, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x03, 0x82, 0xc2, 0x42, 0x44, 0x44, 0x84, 0x08, 0x18, 0x10, 0x20, 0xc0, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x30, 0x40, 0x80, 0x80,
|
||||
0x00, 0x3f, 0x01, 0x03, 0x07, 0x02, 0x01, 0x3f, 0x3f, 0x00, 0x00, 0x3f, 0x3f, 0x20, 0x20, 0x20,
|
||||
0x20, 0x00, 0x00, 0x13, 0x27, 0x26, 0x26, 0x3e, 0x1c, 0x00, 0x80, 0x80, 0x40, 0x30, 0x0f, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x01, 0x03, 0x07, 0x02, 0x01, 0x3f, 0x3f, 0x00, 0x00,
|
||||
0x18, 0x3d, 0x25, 0x25, 0x3f, 0x3e, 0x00, 0x00, 0x1e, 0x3f, 0x21, 0x21, 0x21, 0x00, 0x3f, 0x3f,
|
||||
0x02, 0x03, 0x03, 0x00, 0x1e, 0x3f, 0x21, 0x21, 0x3f, 0x1e, 0x00, 0xff, 0xff, 0x21, 0x21, 0x3f,
|
||||
0x1e, 0x00, 0x00, 0x18, 0x3d, 0x25, 0x25, 0x3f, 0x3e, 0x00, 0x1e, 0x3f, 0x21, 0x21, 0x3f, 0x3f,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
|
||||
0x01, 0x02, 0x02, 0x06, 0x04, 0x04, 0x04, 0x0c, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
|
||||
0x08, 0x08, 0x0c, 0x04, 0x04, 0x04, 0x06, 0x02, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
// oled_write_raw_P(aks_mls_logo, sizeof(aks_mls_logo));
|
||||
|
||||
// }
|
||||
|
||||
bool oled_init(oled_rotation_t(OLED_ROTATION_0));
|
||||
|
||||
void render_logo(void) {
|
||||
oled_write_raw_P(aks_mls_logo, sizeof(aks_mls_logo));
|
||||
}
|
||||
|
||||
// trying to render the logo only during startup
|
||||
#ifndef SHOW_LOGO
|
||||
# define SHOW_LOGO 4000
|
||||
#endif
|
||||
bool oled_task_kb(void) {
|
||||
|
||||
// if (!oled_task_user()) { return false; }
|
||||
// render_logo();
|
||||
if ((timer_elapsed32(oled_logo_timer) < SHOW_LOGO)){
|
||||
// render_logo();
|
||||
// oled_scroll_left();
|
||||
// oled_write(PSTR("Layer: "), false);
|
||||
}else{
|
||||
render_logo();
|
||||
oled_task_user();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
#endif
|
46
keyboards/aks_mls/v01/config.h
Normal file
46
keyboards/aks_mls/v01/config.h
Normal file
|
@ -0,0 +1,46 @@
|
|||
// Copyright 2023 Allan Seidel (@Allan Seidel)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
/*
|
||||
* Feature disable options
|
||||
* These options are also useful to firmware size reduction.
|
||||
*/
|
||||
|
||||
/* disable debug print */
|
||||
//#define NO_DEBUG
|
||||
|
||||
/* disable print */
|
||||
//#define NO_PRINT
|
||||
|
||||
/* disable action features */
|
||||
//#define NO_ACTION_LAYER
|
||||
//#define NO_ACTION_TAPPING
|
||||
//#define NO_ACTION_ONESHOT
|
||||
|
||||
/* OLED SPI Defines */
|
||||
#define OLED_DISPLAY_128X64
|
||||
#define OLED_IC OLED_IC_SH1106
|
||||
|
||||
/* OLED SPI Pins */
|
||||
#define OLED_DC_PIN GP11
|
||||
#define OLED_CS_PIN GP12
|
||||
#define OLED_RST_PIN GP13
|
||||
|
||||
/* Shift OLED columns by 2 pixels */
|
||||
#define OLED_COLUMN_OFFSET 2
|
||||
|
||||
/* Divisor for OLED */
|
||||
#define OLED_SPI_DIVISOR 4
|
||||
|
||||
/* ChibiOS SPI definitions */
|
||||
#define SPI_DRIVER SPID1
|
||||
#define SPI_SCK_PIN GP26
|
||||
#define SPI_MOSI_PIN GP27
|
||||
|
||||
/* Double tap the pico reset button to enter bootloader. */
|
||||
/* Pico reset button is the RUN pin (side hole #30). */
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP25
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
|
35
keyboards/aks_mls/v01/halconf.h
Normal file
35
keyboards/aks_mls/v01/halconf.h
Normal file
|
@ -0,0 +1,35 @@
|
|||
/* Copyright 2023 Allan Seidel
|
||||
*
|
||||
* 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 <halconf.h>
|
||||
|
||||
/*
|
||||
* As per the documentation ChibiOS/ARM Configuration :id=arm-configuration
|
||||
* for spi_driver.
|
||||
*
|
||||
* A modification to the mcuconf.h is also necessary to enable which spi port
|
||||
* will be used.
|
||||
*/
|
||||
#undef HAL_USE_SPI
|
||||
#define HAL_USE_SPI TRUE
|
||||
|
||||
#undef SPI_USE_WAIT
|
||||
#define SPI_USE_WAIT TRUE
|
||||
|
||||
#undef SPI_SELECT_MODE
|
||||
#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD
|
71
keyboards/aks_mls/v01/keyboard.json
Normal file
71
keyboards/aks_mls/v01/keyboard.json
Normal file
|
@ -0,0 +1,71 @@
|
|||
{
|
||||
"manufacturer": "mls_aks",
|
||||
"keyboard_name": "handwired/aks_mls",
|
||||
"maintainer": "mls_aks",
|
||||
// "url": "https://soemthing_even_bs_has_to_be_here???_learn.adafruit.com/adafruit-macropad-rp2040",
|
||||
"url": "",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
// "pid": "0x0000",
|
||||
"pid": "0x0004",
|
||||
"vid": "0xDF04"
|
||||
// "vid": "0xFEED"
|
||||
},
|
||||
"processor": "RP2040",
|
||||
"bootloader": "rp2040",
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["GP0", "GP2", "GP4", "GP5"],
|
||||
"rows": ["GP22", "GP21", "GP20", "GP28"]
|
||||
},
|
||||
"encoder": {
|
||||
"rotary": [
|
||||
{"pin_a": "GP1", "pin_b": "GP3"},
|
||||
{"pin_a": "GP6", "pin_b": "GP7"},
|
||||
{"pin_a": "GP19", "pin_b": "GP18"},
|
||||
{"pin_a": "GP17", "pin_b": "GP16"}
|
||||
]
|
||||
},
|
||||
|
||||
"bootmagic": {
|
||||
"matrix": [3, 3]
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"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": [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},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3},
|
||||
{"matrix": [3, 1], "x": 1, "y": 3},
|
||||
{"matrix": [3, 2], "x": 2, "y": 3},
|
||||
|
||||
{"matrix": [3, 3], "x": 3, "y": 3}
|
||||
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
240
keyboards/aks_mls/v01/keymaps/default/keymap.c
Normal file
240
keyboards/aks_mls/v01/keymaps/default/keymap.c
Normal file
|
@ -0,0 +1,240 @@
|
|||
// Copyright 2023 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
|
||||
enum layer_names {
|
||||
_BASE,
|
||||
_SPECIAL1,
|
||||
_SPECIAL2,
|
||||
_STANDBY
|
||||
};
|
||||
|
||||
enum custom_keycodes {
|
||||
LYR_MUL = SAFE_RANGE,
|
||||
LYR_MUR,
|
||||
LYR_MDL,
|
||||
LYR_MDR,
|
||||
NXTAPP
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/*
|
||||
* The matrix is logically this:
|
||||
* ┌─────┬─────┬─────┬───────────┐
|
||||
* │ 0,0 │ 0,1 │ 0,2 │ 0,3 Enc 1 │
|
||||
* ├─────┼─────┼─────┼───────────┤
|
||||
* │ 1,0 │ 1,1 │ 1,2 │ 1,3 Enc 2 │
|
||||
* ├─────┼─────┼─────┼───────────┤
|
||||
* │ 2,0 │ 2,1 │ 2,2 │ 2,3 Enc 3 │
|
||||
* ├─────┼─────┼─────┼───────────┤
|
||||
* │ 3,0 │ 3,1 │ 3,2 │ 3,3 Enc 4 │
|
||||
* └─────┴─────┴─────┴───────────┘
|
||||
*
|
||||
* But is physically mounted like this:
|
||||
*
|
||||
* ┌───────────┐ ┌───────────┐
|
||||
* │ 0,3 Enc 1 │ │ 1,3 Enc 2 │
|
||||
* └───────────┘ └───────────┘
|
||||
* ┌─────┬─────┬─────┬─────┐
|
||||
* │ 3,0 │ 2,0 │ 1,0 │ 0,0 │ ┌───────────┐
|
||||
* ├─────┼─────┼─────┼─────┤ │ 2,3 Enc 3 │
|
||||
* │ 3,1 │ 2,1 │ 1,1 │ 0,1 │ └───────────┘
|
||||
* ├─────┼─────┼─────┼─────┤ ┌───────────┐
|
||||
* │ 3,2 │ 2,2 │ 1,2 │ 0,2 │ │ 3,3 Enc 4 │
|
||||
* └─────┴─────┴─────┴─────┘ └───────────┘
|
||||
*
|
||||
*
|
||||
*/
|
||||
[_BASE] = LAYOUT(
|
||||
KC_P3, KC_P7, NXTAPP, KC_BSPC,
|
||||
KC_P2, KC_P6, KC_DOT, KC_DEL,
|
||||
KC_P1, KC_P5, KC_P9, KC_SPC,
|
||||
KC_P0, KC_P4, KC_P8, TO(_SPECIAL1)
|
||||
),
|
||||
[_SPECIAL1] = LAYOUT(
|
||||
KC_P7, KC_P8, KC_P9, KC_NO,
|
||||
KC_P4, KC_P5, KC_P6, KC_NO,
|
||||
KC_P1, KC_P2, KC_P3, KC_NO,
|
||||
KC_P0, KC_PENT, KC_NO, TO(_SPECIAL2)
|
||||
),
|
||||
[_SPECIAL2] = LAYOUT(
|
||||
KC_ACL0, KC_ACL1, KC_ACL2, KC_NO,
|
||||
LYR_MUR, KC_MS_R, LYR_MDR, KC_NO,
|
||||
KC_MS_U, KC_MS_BTN1, KC_MS_D, KC_NO,
|
||||
LYR_MUL, KC_MS_L, LYR_MDL, TO(_STANDBY)
|
||||
),
|
||||
[_STANDBY] = LAYOUT(
|
||||
KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO, TO(_BASE)
|
||||
)
|
||||
};
|
||||
|
||||
#if defined(ENCODER_MAP_ENABLE)
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
||||
[_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_UP, KC_DOWN),
|
||||
|
||||
ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN),
|
||||
|
||||
ENCODER_CCW_CW(KC_WH_U, KC_WH_D)
|
||||
},
|
||||
[_SPECIAL1] = { ENCODER_CCW_CW(KC_TRNS,KC_TRNS), ENCODER_CCW_CW(KC_MS_L, KC_MS_R),
|
||||
|
||||
ENCODER_CCW_CW(KC_PGUP, KC_PGDN),
|
||||
|
||||
ENCODER_CCW_CW(KC_TRNS,KC_TRNS)
|
||||
},
|
||||
[_SPECIAL2] = { ENCODER_CCW_CW(KC_TRNS,KC_TRNS), ENCODER_CCW_CW(KC_WH_U, KC_WH_D),
|
||||
|
||||
ENCODER_CCW_CW(KC_PGUP, KC_PGDN),
|
||||
|
||||
ENCODER_CCW_CW(KC_TRNS,KC_TRNS)
|
||||
},
|
||||
[_STANDBY] = { ENCODER_CCW_CW(KC_NO, KC_NO), ENCODER_CCW_CW(KC_NO, KC_NO),
|
||||
|
||||
ENCODER_CCW_CW(KC_NO, KC_NO),
|
||||
|
||||
ENCODER_CCW_CW(KC_NO, KC_NO)
|
||||
},
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case LYR_MUL:
|
||||
if (record->event.pressed){
|
||||
register_code(KC_MS_U);
|
||||
register_code(KC_MS_L);
|
||||
} else {
|
||||
unregister_code(KC_MS_U);
|
||||
unregister_code(KC_MS_L);
|
||||
}
|
||||
break;
|
||||
case LYR_MUR:
|
||||
if (record->event.pressed){
|
||||
register_code(KC_MS_U);
|
||||
register_code(KC_MS_R);
|
||||
} else {
|
||||
unregister_code(KC_MS_U);
|
||||
unregister_code(KC_MS_R);
|
||||
}
|
||||
break;
|
||||
case LYR_MDL:
|
||||
if (record->event.pressed){
|
||||
register_code(KC_MS_D);
|
||||
register_code(KC_MS_L);
|
||||
} else {
|
||||
unregister_code(KC_MS_D);
|
||||
unregister_code(KC_MS_L);
|
||||
}
|
||||
break;
|
||||
case LYR_MDR:
|
||||
if (record->event.pressed){
|
||||
register_code(KC_MS_D);
|
||||
register_code(KC_MS_R);
|
||||
} else {
|
||||
unregister_code(KC_MS_D);
|
||||
unregister_code(KC_MS_R);
|
||||
}
|
||||
break;
|
||||
case NXTAPP:
|
||||
if (record->event.pressed){
|
||||
SEND_STRING(SS_LGUI("\t"));
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
|
||||
static void render_logo(void) {
|
||||
static const char PROGMEM aks_mls_logo[] = {
|
||||
// 'mls_logo_layers_totop', 128x24px
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0x10, 0x18,
|
||||
0x08, 0xc4, 0xc4, 0x84, 0x02, 0x02, 0x02, 0x83, 0xc1, 0x01, 0x01, 0xc1, 0xc1, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x03, 0x82, 0xc2, 0x42, 0x44, 0x44, 0x84, 0x08, 0x18, 0x10, 0x20, 0xc0, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x30, 0x40, 0x80, 0x80,
|
||||
0x00, 0x3f, 0x01, 0x03, 0x07, 0x02, 0x01, 0x3f, 0x3f, 0x00, 0x00, 0x3f, 0x3f, 0x20, 0x20, 0x20,
|
||||
0x20, 0x00, 0x00, 0x13, 0x27, 0x26, 0x26, 0x3e, 0x1c, 0x00, 0x80, 0x80, 0x40, 0x30, 0x0f, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x01, 0x03, 0x07, 0x02, 0x01, 0x3f, 0x3f, 0x00, 0x00,
|
||||
0x18, 0x3d, 0x25, 0x25, 0x3f, 0x3e, 0x00, 0x00, 0x1e, 0x3f, 0x21, 0x21, 0x21, 0x00, 0x3f, 0x3f,
|
||||
0x02, 0x03, 0x03, 0x00, 0x1e, 0x3f, 0x21, 0x21, 0x3f, 0x1e, 0x00, 0xff, 0xff, 0x21, 0x21, 0x3f,
|
||||
0x1e, 0x00, 0x00, 0x18, 0x3d, 0x25, 0x25, 0x3f, 0x3e, 0x00, 0x1e, 0x3f, 0x21, 0x21, 0x3f, 0x3f,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
|
||||
0x01, 0x02, 0x02, 0x06, 0x04, 0x04, 0x04, 0x0c, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
|
||||
0x08, 0x08, 0x0c, 0x04, 0x04, 0x04, 0x06, 0x02, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
oled_write_raw_P(aks_mls_logo, sizeof(aks_mls_logo));
|
||||
}
|
||||
|
||||
bool oled_init(oled_rotation_t(OLED_ROTATION_0));
|
||||
|
||||
bool oled_task_user(void) {
|
||||
render_logo();
|
||||
|
||||
oled_set_cursor(0, 3);
|
||||
// oled_write(PSTR("Layer: "), false);
|
||||
|
||||
switch (get_highest_layer(layer_state)) {
|
||||
case _BASE:
|
||||
// oled_write_ln(PSTR("Base"), false);
|
||||
oled_write_ln(PSTR("_Base Layer"), false);
|
||||
oled_advance_page(true);
|
||||
oled_advance_page(true);
|
||||
break;
|
||||
case _SPECIAL1:
|
||||
// oled_write_ln(PSTR("Special1"), false);
|
||||
oled_write_ln(PSTR("_Special1 Layer"), false);
|
||||
oled_advance_page(true);
|
||||
break;
|
||||
case _SPECIAL2:
|
||||
// oled_write_ln(PSTR("Special2"), false);
|
||||
oled_write_ln(PSTR("_Special2 Layer"), false);
|
||||
oled_advance_page(true);
|
||||
oled_advance_page(true);
|
||||
break;
|
||||
case _STANDBY:
|
||||
oled_write_ln(PSTR("_Standby Layer"), false);
|
||||
oled_write_ln(PSTR("Keys do nothing"), false);
|
||||
oled_write_ln(PSTR("Layer key re-engages"), false);
|
||||
break;
|
||||
default:
|
||||
oled_write_ln_P(PSTR("Undefined"), false);
|
||||
oled_advance_page(true);
|
||||
oled_advance_page(true);
|
||||
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
// bool oled_task_kb(void) {
|
||||
// oled_set_cursor(0,8);
|
||||
// oled_write_ln(PSTR("Key Pressed"), false);
|
||||
// return false;
|
||||
// }
|
||||
|
||||
#endif
|
29
keyboards/aks_mls/v01/mcuconf.h
Normal file
29
keyboards/aks_mls/v01/mcuconf.h
Normal file
|
@ -0,0 +1,29 @@
|
|||
/* Copyright 2023 Allan Seidel
|
||||
*
|
||||
* 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>
|
||||
|
||||
/*
|
||||
* As per the documentation ChibiOS/ARM Configuration :id=arm-configuration
|
||||
* for spi_driver.
|
||||
*
|
||||
* A modification to the mcuconf.h is necessary to enable which spi port
|
||||
* will be used.
|
||||
*/
|
||||
#undef RP_SPI_USE_SPI1
|
||||
#define RP_SPI_USE_SPI1 TRUE
|
29
keyboards/aks_mls/v01/readme.md
Normal file
29
keyboards/aks_mls/v01/readme.md
Normal file
|
@ -0,0 +1,29 @@
|
|||
# This "handwired/aks_mls/v01" setup applies to the aks handwired macroPad that uses
|
||||
# the RP2040 pico. This setup mimics the physical layout of the ?? macropad
|
||||
# handwired/aks_mls
|
||||
|
||||

|
||||
|
||||
* A short description of the keyboard/project*
|
||||
|
||||
* Keyboard Maintainer: [Allan Seidel](<https://github.com/Allan> Seidel)
|
||||
* Hardware Supported: *The PCBs, controllers supported*
|
||||
* Hardware Availability: *Links to where you can find this hardware*
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
qmk compile -kb handwired/aks_mls/v01 -km default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
qmk flash -kb handwired/aks_mls/v01 -km default
|
||||
|
||||
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
|
21
keyboards/aks_mls/v01/rules.mk
Normal file
21
keyboards/aks_mls/v01/rules.mk
Normal file
|
@ -0,0 +1,21 @@
|
|||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
#
|
||||
# NOTE: These options are present in the info.json, so they
|
||||
# are commented out here.
|
||||
# BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
||||
# MOUSEKEY_ENABLE = no # Mouse keys
|
||||
# EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
# CONSOLE_ENABLE = no # Console for debug
|
||||
# COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
# NKRO_ENABLE = yes # Enable N-Key Rollover
|
||||
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
OLED_ENABLE = yes
|
||||
OLED_TRANSPORT = spi
|
||||
LTO_ENABLE = yes
|
||||
ENCODER_ENABLE = yes
|
||||
ENCODER_MAP_ENABLE = yes
|
46
keyboards/aks_mls/via/config.h
Normal file
46
keyboards/aks_mls/via/config.h
Normal file
|
@ -0,0 +1,46 @@
|
|||
// Copyright 2023 Allan Seidel (@Allan Seidel)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
/*
|
||||
* Feature disable options
|
||||
* These options are also useful to firmware size reduction.
|
||||
*/
|
||||
|
||||
/* disable debug print */
|
||||
//#define NO_DEBUG
|
||||
|
||||
/* disable print */
|
||||
//#define NO_PRINT
|
||||
|
||||
/* disable action features */
|
||||
//#define NO_ACTION_LAYER
|
||||
//#define NO_ACTION_TAPPING
|
||||
//#define NO_ACTION_ONESHOT
|
||||
|
||||
/* OLED SPI Defines */
|
||||
#define OLED_DISPLAY_128X64
|
||||
#define OLED_IC OLED_IC_SH1106
|
||||
|
||||
/* OLED SPI Pins */
|
||||
#define OLED_DC_PIN GP11
|
||||
#define OLED_CS_PIN GP12
|
||||
#define OLED_RST_PIN GP13
|
||||
|
||||
/* Shift OLED columns by 2 pixels */
|
||||
#define OLED_COLUMN_OFFSET 2
|
||||
|
||||
/* Divisor for OLED */
|
||||
#define OLED_SPI_DIVISOR 4
|
||||
|
||||
/* ChibiOS SPI definitions */
|
||||
#define SPI_DRIVER SPID1
|
||||
#define SPI_SCK_PIN GP26
|
||||
#define SPI_MOSI_PIN GP27
|
||||
|
||||
/* Double tap the pico reset button to enter bootloader. */
|
||||
/* Pico reset button is the RUN pin (side hole #30). */
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP25
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
|
35
keyboards/aks_mls/via/halconf.h
Normal file
35
keyboards/aks_mls/via/halconf.h
Normal file
|
@ -0,0 +1,35 @@
|
|||
/* Copyright 2023 Allan Seidel
|
||||
*
|
||||
* 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 <halconf.h>
|
||||
|
||||
/*
|
||||
* As per the documentation ChibiOS/ARM Configuration :id=arm-configuration
|
||||
* for spi_driver.
|
||||
*
|
||||
* A modification to the mcuconf.h is also necessary to enable which spi port
|
||||
* will be used.
|
||||
*/
|
||||
#undef HAL_USE_SPI
|
||||
#define HAL_USE_SPI TRUE
|
||||
|
||||
#undef SPI_USE_WAIT
|
||||
#define SPI_USE_WAIT TRUE
|
||||
|
||||
#undef SPI_SELECT_MODE
|
||||
#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD
|
49
keyboards/aks_mls/via/info.json
Normal file
49
keyboards/aks_mls/via/info.json
Normal file
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
"manufacturer": "AllanSeidel",
|
||||
"keyboard_name": "handwired/aks_mls",
|
||||
"maintainer": "AllanSeidel",
|
||||
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true
|
||||
},
|
||||
"processor": "RP2040",
|
||||
"bootloader": "rp2040",
|
||||
"diode_direction": "COL2ROW",
|
||||
"matrix_pins": {
|
||||
"cols": ["GP0", "GP2", "GP4"],
|
||||
"rows": ["GP22", "GP21", "GP20", "GP28"]
|
||||
},
|
||||
|
||||
"url": "",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x0000",
|
||||
"vid": "0x6173"
|
||||
},
|
||||
"bootmagic": {
|
||||
"matrix": [3, 2]
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1},
|
||||
{"matrix": [1, 1], "x": 1, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2, "y": 1},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2},
|
||||
{"matrix": [2, 1], "x": 1, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2, "y": 2},
|
||||
{"matrix": [3, 0], "x": 0, "y": 3},
|
||||
{"matrix": [3, 1], "x": 1, "y": 3},
|
||||
{"matrix": [3, 2], "x": 2, "y": 3}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
184
keyboards/aks_mls/via/keymaps/default/keymap.c
Normal file
184
keyboards/aks_mls/via/keymaps/default/keymap.c
Normal file
|
@ -0,0 +1,184 @@
|
|||
// Copyright 2023 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
|
||||
enum layer_names {
|
||||
_BASE,
|
||||
_SPECIAL1,
|
||||
_SPECIAL2,
|
||||
_STANDBY
|
||||
};
|
||||
|
||||
enum custom_keycodes {
|
||||
LYR_MUL = SAFE_RANGE,
|
||||
LYR_MUR,
|
||||
LYR_MDL,
|
||||
LYR_MDR
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/*
|
||||
* ┌───┬───┬───┬
|
||||
* │ 7 │ 8 │ 9 │
|
||||
* ├───┼───┼───┼
|
||||
* │ 4 │ 5 │ 6 │
|
||||
* ├───┼───┼───┼
|
||||
* │ 1 │ 2 │ 3 │
|
||||
* ├───┼───┼───┼
|
||||
* │ 0 │Ent│Lyr│
|
||||
* └───┴───┴───┘
|
||||
*/
|
||||
[_BASE] = LAYOUT(
|
||||
KC_P7, KC_P8, KC_P9,
|
||||
KC_P4, KC_P5, KC_P6,
|
||||
KC_P1, KC_P2, KC_P3,
|
||||
KC_P0, KC_PENT, TO(_SPECIAL1)
|
||||
),
|
||||
[_SPECIAL1] = LAYOUT(
|
||||
KC_P7, KC_P8, KC_P9,
|
||||
KC_P4, KC_P5, KC_P6,
|
||||
KC_P1, KC_P2, KC_P3,
|
||||
KC_P0, KC_PENT, TO(_SPECIAL2)
|
||||
),
|
||||
[_SPECIAL2] = LAYOUT(
|
||||
LYR_MUL, KC_MS_U, LYR_MUR,
|
||||
KC_MS_L, KC_MS_BTN1, KC_MS_R,
|
||||
LYR_MDL, KC_MS_D, LYR_MDR,
|
||||
KC_ACL0, KC_ACL1, TO(_STANDBY)
|
||||
),
|
||||
[_STANDBY] = LAYOUT(
|
||||
KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, TO(_BASE)
|
||||
)
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case LYR_MUL:
|
||||
if (record->event.pressed){
|
||||
register_code(KC_MS_U);
|
||||
register_code(KC_MS_L);
|
||||
} else {
|
||||
unregister_code(KC_MS_U);
|
||||
unregister_code(KC_MS_L);
|
||||
}
|
||||
break;
|
||||
case LYR_MUR:
|
||||
if (record->event.pressed){
|
||||
register_code(KC_MS_U);
|
||||
register_code(KC_MS_R);
|
||||
} else {
|
||||
unregister_code(KC_MS_U);
|
||||
unregister_code(KC_MS_R);
|
||||
}
|
||||
break;
|
||||
case LYR_MDL:
|
||||
if (record->event.pressed){
|
||||
register_code(KC_MS_D);
|
||||
register_code(KC_MS_L);
|
||||
} else {
|
||||
unregister_code(KC_MS_D);
|
||||
unregister_code(KC_MS_L);
|
||||
}
|
||||
break;
|
||||
case LYR_MDR:
|
||||
if (record->event.pressed){
|
||||
register_code(KC_MS_D);
|
||||
register_code(KC_MS_R);
|
||||
} else {
|
||||
unregister_code(KC_MS_D);
|
||||
unregister_code(KC_MS_R);
|
||||
}
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
|
||||
static void render_logo(void) {
|
||||
static const char PROGMEM aks_mls_logo[] = {
|
||||
// 'mls_logo_layers_totop', 128x24px
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0x10, 0x18,
|
||||
0x08, 0xc4, 0xc4, 0x84, 0x02, 0x02, 0x02, 0x83, 0xc1, 0x01, 0x01, 0xc1, 0xc1, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x03, 0x82, 0xc2, 0x42, 0x44, 0x44, 0x84, 0x08, 0x18, 0x10, 0x20, 0xc0, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x30, 0x40, 0x80, 0x80,
|
||||
0x00, 0x3f, 0x01, 0x03, 0x07, 0x02, 0x01, 0x3f, 0x3f, 0x00, 0x00, 0x3f, 0x3f, 0x20, 0x20, 0x20,
|
||||
0x20, 0x00, 0x00, 0x13, 0x27, 0x26, 0x26, 0x3e, 0x1c, 0x00, 0x80, 0x80, 0x40, 0x30, 0x0f, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x01, 0x03, 0x07, 0x02, 0x01, 0x3f, 0x3f, 0x00, 0x00,
|
||||
0x18, 0x3d, 0x25, 0x25, 0x3f, 0x3e, 0x00, 0x00, 0x1e, 0x3f, 0x21, 0x21, 0x21, 0x00, 0x3f, 0x3f,
|
||||
0x02, 0x03, 0x03, 0x00, 0x1e, 0x3f, 0x21, 0x21, 0x3f, 0x1e, 0x00, 0xff, 0xff, 0x21, 0x21, 0x3f,
|
||||
0x1e, 0x00, 0x00, 0x18, 0x3d, 0x25, 0x25, 0x3f, 0x3e, 0x00, 0x1e, 0x3f, 0x21, 0x21, 0x3f, 0x3f,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
|
||||
0x01, 0x02, 0x02, 0x06, 0x04, 0x04, 0x04, 0x0c, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
|
||||
0x08, 0x08, 0x0c, 0x04, 0x04, 0x04, 0x06, 0x02, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
oled_write_raw_P(aks_mls_logo, sizeof(aks_mls_logo));
|
||||
}
|
||||
|
||||
bool oled_init(oled_rotation_t(OLED_ROTATION_0));
|
||||
|
||||
bool oled_task_user(void) {
|
||||
render_logo();
|
||||
|
||||
oled_set_cursor(0, 3);
|
||||
// oled_write(PSTR("Layer: "), false);
|
||||
|
||||
switch (get_highest_layer(layer_state)) {
|
||||
case _BASE:
|
||||
// oled_write_ln(PSTR("Base"), false);
|
||||
oled_write_ln(PSTR("Default Actions"), false);
|
||||
oled_advance_page(true);
|
||||
oled_advance_page(true);
|
||||
break;
|
||||
case _SPECIAL1:
|
||||
// oled_write_ln(PSTR("Special1"), false);
|
||||
oled_write_ln(PSTR("Special Actions 1"), false);
|
||||
oled_advance_page(true);
|
||||
break;
|
||||
case _SPECIAL2:
|
||||
// oled_write_ln(PSTR("Special2"), false);
|
||||
oled_write_ln(PSTR("Mouse Moves"), false);
|
||||
oled_advance_page(true);
|
||||
oled_advance_page(true);
|
||||
break;
|
||||
case _STANDBY:
|
||||
oled_write_ln(PSTR("Standby Mode"), false);
|
||||
oled_write_ln(PSTR("Keys do nothing"), false);
|
||||
oled_write_ln(PSTR("Layer key re-engages"), false);
|
||||
break;
|
||||
default:
|
||||
oled_write_ln_P(PSTR("Undefined"), false);
|
||||
oled_advance_page(true);
|
||||
oled_advance_page(true);
|
||||
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
// bool oled_task_kb(void) {
|
||||
// oled_set_cursor(0,8);
|
||||
// oled_write_ln(PSTR("Key Pressed"), false);
|
||||
// return false;
|
||||
// }
|
||||
|
||||
#endif
|
18
keyboards/aks_mls/via/keymaps/default/via.json
Normal file
18
keyboards/aks_mls/via/keymaps/default/via.json
Normal file
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"name": "v01-via",
|
||||
"productId": "0x0000",
|
||||
"vendorId": "0x6173",
|
||||
"matrix": {
|
||||
"cols": 3,
|
||||
"rows": 4
|
||||
},
|
||||
|
||||
"layouts": {
|
||||
"keymap": [
|
||||
["0,0","0,1","0,2"],
|
||||
["1,0","1,1","1,2"],
|
||||
["2,0","2,1","2,2"],
|
||||
["3,0","3,1","3,2"]
|
||||
]
|
||||
}
|
||||
}
|
29
keyboards/aks_mls/via/mcuconf.h
Normal file
29
keyboards/aks_mls/via/mcuconf.h
Normal file
|
@ -0,0 +1,29 @@
|
|||
/* Copyright 2023 Allan Seidel
|
||||
*
|
||||
* 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>
|
||||
|
||||
/*
|
||||
* As per the documentation ChibiOS/ARM Configuration :id=arm-configuration
|
||||
* for spi_driver.
|
||||
*
|
||||
* A modification to the mcuconf.h is necessary to enable which spi port
|
||||
* will be used.
|
||||
*/
|
||||
#undef RP_SPI_USE_SPI1
|
||||
#define RP_SPI_USE_SPI1 TRUE
|
27
keyboards/aks_mls/via/readme.md
Normal file
27
keyboards/aks_mls/via/readme.md
Normal file
|
@ -0,0 +1,27 @@
|
|||
# handwired/aks_mls
|
||||
|
||||

|
||||
|
||||
*A short description of the keyboard/project*
|
||||
|
||||
* Keyboard Maintainer: [Allan Seidel](https://github.com/Allan Seidel)
|
||||
* Hardware Supported: *The PCBs, controllers supported*
|
||||
* Hardware Availability: *Links to where you can find this hardware*
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make handwired/aks_mls:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make handwired/aks_mls: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
|
20
keyboards/aks_mls/via/rules.mk
Normal file
20
keyboards/aks_mls/via/rules.mk
Normal file
|
@ -0,0 +1,20 @@
|
|||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
#
|
||||
# NOTE: These options are present in the info.json, so they
|
||||
# are commented out here.
|
||||
# BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
||||
# MOUSEKEY_ENABLE = no # Mouse keys
|
||||
# EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
# CONSOLE_ENABLE = no # Console for debug
|
||||
# COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
# NKRO_ENABLE = yes # Enable N-Key Rollover
|
||||
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
OLED_ENABLE = yes
|
||||
OLED_TRANSPORT = spi
|
||||
LTO_ENABLE = yes
|
||||
VIA_ENABLE = yes
|
6
qmk.json
6
qmk.json
|
@ -1,4 +1,6 @@
|
|||
{
|
||||
"userspace_version": "1.0",
|
||||
"build_targets": []
|
||||
"userspace_version": "1.1",
|
||||
"build_targets": [
|
||||
["adafruit/macropad", "mls_v100"]
|
||||
]
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue