ironergo and vial port

This commit is contained in:
stanrc85 2024-04-12 05:43:21 -04:00
parent 2772f52fa5
commit 8d7223ef5c
13 changed files with 629 additions and 0 deletions

View file

@ -0,0 +1,30 @@
/*
Copyright 2023 Gondolindrim <gondolindrim@acheronproject.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
#define BACKLIGHT_PWM_DRIVER PWMD3
#define BACKLIGHT_PWM_CHANNEL 4
#define BACKLIGHT_PAL_MODE 2
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
#define WEAR_LEVELING_LOGICAL_SIZE 2048
#define WEAR_LEVELING_BACKING_SIZE 4096

View file

@ -0,0 +1,21 @@
/* Copyright 2023 Gondolindrim <gondolindrim@acheronproject.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
#define HAL_USE_PWM TRUE
#include_next <halconf.h>

View file

@ -0,0 +1,106 @@
{
"keyboard_name": "Iron Ergo",
"manufacturer": "SmithRune",
"url": "",
"maintainer": "Gondolindrim",
"usb": {
"vid": "0x8384",
"pid": "0x4945",
"device_version": "0.0.1"
},
"features": {
"extrakey": true,
"lto": true,
"mousekey": true,
"nkro": true,
"backlight": true
},
"matrix_pins": {
"cols": ["C9" , "C8" , "C7" , "C6" , "B15", "B14", "B12", "B9" , "A15" , "C3" , "C2" , "C12" , "C1" , "B4" , "B3" , "D2" ],
"rows": ["A10", "A8" , "B13", "A2" , "A1" , "C10", "C11", "B5" , "C0" ]
},
"diode_direction": "COL2ROW",
"backlight": {
"pin": "B1",
"levels": 20,
"breathing": true
},
"processor": "STM32F401",
"bootloader": "stm32-dfu",
"layouts": {
"LAYOUT": {
"layout":[
{"matrix":[0,0], "x":1.25, "y":1.25},
{"matrix":[0,1], "x":2.45, "y":1.25},
{"matrix":[0,2], "x":3.45, "y":1.25},
{"matrix":[0,3], "x":4.45, "y":1.25},
{"matrix":[0,4], "x":5.45, "y":1.25},
{"matrix":[0,5], "x":6.45, "y":1.25},
{"matrix":[0,6], "x":7.45, "y":1.25},
{"matrix":[0,7], "x":8.45, "y":1.25},
{"matrix":[5,8], "x":10.4, "y":1.25},
{"matrix":[5,9], "x":11.4, "y":1.25},
{"matrix":[5,10], "x":12.4, "y":1.25},
{"matrix":[5,11], "x":13.4, "y":1.25},
{"matrix":[5,12], "x":14.4, "y":1.25},
{"matrix":[5,13], "x":15.4, "y":1.25},
{"matrix":[5,14], "x":16.4, "y":1.25},
{"matrix":[5,15], "x":17.4, "y":1.25},
{"matrix":[1,0], "x":1, "y":2.25},
{"matrix":[1,1], "x":2.25, "y":2.25, "w":1.5},
{"matrix":[1,2], "x":3.75, "y":2.25},
{"matrix":[1,3], "x":4.75, "y":2.25},
{"matrix":[1,4], "x":5.75, "y":2.25},
{"matrix":[1,5], "x":6.75, "y":2.25},
{"matrix":[1,6], "x":7.75, "y":2.25},
{"matrix":[6,7], "x":10.25, "y":2.25},
{"matrix":[6,8], "x":11.25, "y":2.25},
{"matrix":[6,9], "x":12.25, "y":2.25},
{"matrix":[6,10], "x":13.25, "y":2.25},
{"matrix":[6,11], "x":14.25, "y":2.25},
{"matrix":[6,12], "x":15.25, "y":2.25},
{"matrix":[6,13], "x":16.25, "y":2.25},
{"matrix":[6,14], "x":17.25, "y":2.25, "w":1.5},
{"matrix":[2,0], "x":0.75, "y":3.25},
{"matrix":[2,1], "x":2.05, "y":3.25, "w":1.75},
{"matrix":[2,2], "x":3.8, "y":3.25},
{"matrix":[2,3], "x":4.8, "y":3.25},
{"matrix":[2,4], "x":5.8, "y":3.25},
{"matrix":[2,5], "x":6.8, "y":3.25},
{"matrix":[2,6], "x":7.8, "y":3.25},
{"matrix":[7,7], "x":10.65, "y":3.25},
{"matrix":[7,8], "x":11.65, "y":3.25},
{"matrix":[7,9], "x":12.65, "y":3.25},
{"matrix":[7,10], "x":13.65, "y":3.25},
{"matrix":[7,12], "x":14.65, "y":3.25},
{"matrix":[7,13], "x":15.65, "y":3.25},
{"matrix":[7,14], "x":16.65, "y":3.25, "w":2.25},
{"matrix":[3,1], "x":1.8, "y":4.25, "w":2.25},
{"matrix":[3,2], "x":4.05, "y":4.25},
{"matrix":[3,3], "x":5.05, "y":4.25},
{"matrix":[3,4], "x":6.05, "y":4.25},
{"matrix":[3,5], "x":7.05, "y":4.25},
{"matrix":[3,6], "x":8.05, "y":4.25},
{"matrix":[8,7], "x":10.35, "y":4.25},
{"matrix":[8,8], "x":11.35, "y":4.25},
{"matrix":[8,9], "x":12.35, "y":4.25},
{"matrix":[8,10], "x":13.35, "y":4.25},
{"matrix":[8,12], "x":14.35, "y":4.25},
{"matrix":[8,13], "x":15.35, "y":4.25},
{"matrix":[8,14], "x":16.35, "y":4.25, "w":1.75},
{"matrix":[8,15], "x":18.1, "y":4.25},
{"matrix":[4,2], "x":2.05, "y":5.25, "w":1.5},
{"matrix":[4,4], "x":4.35, "y":5.25, "w":1.5},
{"matrix":[4,5], "x":5.85, "y":5.25, "w":2.25},
{"matrix":[4,6], "x":8.1, "y":5.25},
{"matrix":[4,8], "x":10.25, "y":5.25, "w":2.75},
{"matrix":[4,10], "x":13.0, "y":5.25, "w":1.5},
{"matrix":[4,13], "x":16.6, "y":5.25, "w":1.5}
]
}
}
}

View file

@ -0,0 +1,35 @@
/*
Copyright 2012,2013 Jun Wako <wakojun@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(
KC_ESC , KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_BSPC,
KC_PGUP, KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS,
KC_PGDN, KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT ,
KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, MO(1) ,
KC_LCTL, KC_LALT, KC_SPC , KC_SPC , KC_SPC , KC_RALT, KC_RCTL
),
[1] = LAYOUT(
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______
)
};

View file

@ -0,0 +1,35 @@
/*
Copyright 2012,2013 Jun Wako <wakojun@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(
KC_ESC , KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_BSPC,
KC_PGUP, KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS,
KC_PGDN, KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT ,
KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, MO(1) ,
KC_LCTL, KC_LALT, KC_SPC , KC_SPC , KC_SPC , KC_RALT, KC_RCTL
),
[1] = LAYOUT(
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______
)
};

View file

@ -0,0 +1 @@
VIA_ENABLE = yes

View file

@ -0,0 +1,8 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#define VIAL_KEYBOARD_UID {0xAA, 0xC8, 0x11, 0x78, 0x6E, 0xFD, 0x1E, 0x3E}
#define VIAL_UNLOCK_COMBO_ROWS { 0, 7 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 14 }

View file

@ -0,0 +1,49 @@
/*
Copyright 2012,2013 Jun Wako <wakojun@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(
KC_ESC , KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_BSPC,
KC_PGUP, KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS,
KC_PGDN, KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT ,
KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, MO(1) ,
KC_LCTL, KC_LALT, KC_SPC , KC_SPC , KC_SPC , KC_RALT, KC_RCTL
),
[1] = LAYOUT(
KC_ESC , KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_BSPC,
KC_PGUP, KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS,
KC_PGDN, KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT ,
KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, MO(1) ,
KC_LCTL, KC_LALT, KC_SPC , KC_SPC , KC_SPC , KC_RALT, KC_RCTL
),
[2] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______
),
[3] = LAYOUT(
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______
)
};

View file

@ -0,0 +1,4 @@
VIA_ENABLE = yes
VIAL_ENABLE = yes
QMK_SETTINGS = yes
TAP_DANCE_ENABLE = yes

View file

@ -0,0 +1,291 @@
{
"name": "Smith and Rune Iron Ergo",
"vendorId": "0x8384",
"productId": "0x4945",
"keycodes": ["qmk_lighting"],
"menus": ["qmk_backlight"],
"matrix": {"rows": 9, "cols": 16},
"layouts": {
"labels": [
"Split Backspace",
"Split Right Shift",
"Split Left Space"
],
"keymap":[
[
{
"x": 16.9,
"c": "#aaaaaa"
},
"5,14\n\n\n0,1",
"5,15\n\n\n0,1"
],
[
{
"x": 4.45,
"c": "#cccccc"
},
"0,3"
],
[
{
"y": -0.8,
"x": 14.9
},
"5,12"
],
[
{
"y": -0.95,
"x": 1.25
},
"0,0",
{
"x": 0.2
},
"0,1",
"0,2",
{
"x": 11.45
},
"5,13",
{
"c": "#aaaaaa",
"w": 2
},
"5,14\n\n\n0,0"
],
[
{
"y": -0.05,
"x": 14.75,
"c": "#cccccc"
},
"6,11"
],
[
{
"y": -0.95,
"x": 1
},
"1,0",
{
"x": 0.25,
"c": "#aaaaaa",
"w": 1.5
},
"1,1",
{
"c": "#cccccc"
},
"1,2",
{
"x": 11
},
"6,12",
"6,13",
{
"c": "#aaaaaa",
"w": 1.5
},
"6,14"
],
[
{
"x": 0.75,
"c": "#cccccc"
},
"2,0",
{
"x": 0.3,
"c": "#aaaaaa",
"w": 1.75
},
"2,1",
{
"c": "#cccccc"
},
"2,2",
{
"x": 10.35
},
"7,12",
{
"x": 0
},
"7,13",
{
"c": "#777777",
"w": 2.25
},
"7,14"
],
[
{
"x": 1.8,
"c": "#aaaaaa",
"w": 2.25
},
"3,1",
{
"c": "#cccccc"
},
"3,2",
{
"x": 9.8
},
"8,12",
{
"x": 0
},
"8,13",
{
"c": "#aaaaaa",
"w": 2.75
},
"8,14\n\n\n1,0",
{
"x": 0.65,
"w": 1.75
},
"8,14\n\n\n1,1",
{
"c": "#cccccc"
},
"8,15\n\n\n1,1"
],
[
{
"x": 2.05,
"c": "#aaaaaa",
"w": 1.5
},
"4,2",
{
"x": 13.55,
"w": 1.5
},
"4,13"
],
[
{
"r": 12,
"y": -6.25,
"x": 5.8,
"c": "#cccccc"
},
"0,4",
"0,5",
"0,6",
"0,7"
],
[
{
"x": 5.35
},
"1,3",
"1,4",
"1,5",
"1,6"
],
[
{
"x": 5.6
},
"2,3",
"2,4",
"2,5",
"2,6"
],
[
{
"x": 6.05
},
"3,3",
"3,4",
"3,5",
"3,6"
],
[
{
"x": 7.1,
"w": 2.25
},
"4,5\n\n\n2,0",
"4,6\n\n\n2,0"
],
[
{
"y": -0.7999999999999998,
"x": 5.6,
"c": "#aaaaaa",
"w": 1.5
},
"4,4"
],
[
{
"y": -0.20000000000000018,
"x": 7.1,
"c": "#cccccc",
"w": 2
},
"4,5\n\n\n2,1",
{
"w": 1.25
},
"4,6\n\n\n2,1"
],
[
{
"r": -12,
"y": -1.8499999999999996,
"x": 9.95
},
"5,8",
"5,9",
"5,10",
"5,11"
],
[
{
"x": 9.55
},
"6,7",
"6,8",
"6,9",
"6,10"
],
[
{
"x": 9.7
},
"7,7",
"7,8",
"7,9",
"7,10"
],
[
{
"x": 9.25
},
"8,7",
"8,8",
"8,9",
"8,10"
],
[
{
"x": 9,
"w": 2.75
},
"4,8",
{
"c": "#aaaaaa",
"w": 1.5
},
"4,10"
]
]
}
}

View file

@ -0,0 +1,22 @@
/* Copyright 2023 Gondolindrim <gondolindrim@acheronproject.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 STM32_PWM_USE_TIM3
#define STM32_PWM_USE_TIM3 TRUE

View file

@ -0,0 +1,25 @@
# Smith and Rune Iron Ergo QMK folder
## Introduction
This is the QMK Firmware repository for the Iron Ergo PCB, a keyboard designed by [Smith and Rune](https://smithrune.com/) and PCB designed by [Gondolindrim](http://github.com/Gondolindrim).
The Iron Ergo is an Alice-layout PCB designed for the Iron Ergo keyboardt. It supports in-switch single-color LEDs.
As of June 2023, the Iron Ergo has not entered public sale.
## How to compile
After setting up your build environment, you can compile the Iron180 default keymap by using:
make smithrune/ironergo: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 (ESC key in the default layout) and plug in the keyboard
* **Physical reset button**: press and hold the button on the back of the PCB for at least 5 seconds
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available (ESC key at layer 1 in the default layout)

View file

@ -0,0 +1,2 @@
# Enter lower-power sleep mode when on the ChibiOS idle thread
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE