Skip to content

Commit

Permalink
Sofle APM32 config that reports debug info
Browse files Browse the repository at this point in the history
  • Loading branch information
timbrown5 committed Jan 25, 2025
1 parent 163b894 commit 7e23b6f
Show file tree
Hide file tree
Showing 6 changed files with 322 additions and 0 deletions.
31 changes: 31 additions & 0 deletions keyboards/sofle/apm32/chconf.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
/* Copyright 2020 QMK
*
* 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/>.
*/

/*
* This file was auto-generated by:
* `qmk chibios-confmigrate -i keyboards/cannonkeys/tsukuyomi/chconf.h -r platforms/chibios/common/configs/chconf.h`
*/

#pragma once

#define CH_CFG_ST_FREQUENCY 10000

#define CH_CFG_OPTIMIZE_SPEED FALSE

#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE

#include_next <chconf.h>

49 changes: 49 additions & 0 deletions keyboards/sofle/apm32/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
/* Copyright
* 2021 solartempest
* 2021 QMK
*
* 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 SPLIT_USB_DETECT
#define SPLIT_MASTER_TIMER 2000

#define MASTER_RIGHT


// OLED settings
#undef OLED_ENABLE
#define OLED_ENABLE
#define OLED_TIMEOUT 80000
#define OLED_BRIGHTNESS 90

#define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode.
//#define SERIAL_USART_TX_PIN A2
//#define SERIAL_USART_RX_PIN A3
#define SERIAL_USART_DRIVER SD2
#define SERIAL_USART_TX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7
#define SERIAL_USART_RX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7
#define SERIAL_USART_TIMEOUT 100 // USART driver timeout. default 100
#define SERIAL_USART_SPEED 921600

#define BACKLIGHT_PWM_DRIVER PWMD3
#define BACKLIGHT_PWM_CHANNEL 1
#define BACKLIGHT_PAL_MODE 1

#define WS2812_SPI_DRIVER SPID2
#define WS2812_SPI_MOSI_PAL_MODE 0
#define WS2812_SPI_SCK_PAL_MODE 0
#define WS2812_SPI_SCK_PIN B13
34 changes: 34 additions & 0 deletions keyboards/sofle/apm32/halconf.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/* Copyright 2020 QMK
*
* 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/>.
*/

/*
* This file was auto-generated by:
* `qmk chibios-confmigrate -i keyboards/sofle/apm32/halconf.h -r platforms/chibios/common/configs/halconf.h`
*/

#pragma once

#undef HAL_USE_I2C
#define HAL_USE_I2C TRUE

#define HAL_USE_PWM TRUE

#define HAL_USE_SPI TRUE

#define HAL_USE_SERIAL TRUE

#include_next <halconf.h>

156 changes: 156 additions & 0 deletions keyboards/sofle/apm32/keyboard.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
{
"keyboard_name": "Sofle",
"manufacturer": "JosefAdamcik",
"processor": "STM32F072",
"bootloader": "stm32-dfu",
"features": {
"bootmagic": true,
"mousekey": false,
"extrakey": false,
"console": true,
"command": true,
"nkro": false,
"backlight": false,
"oled": true,
"rgblight": true
},
"usb": {
"pid": "0x1289",
"device_version": "0.0.2"
},
"rgblight": {
"led_count": 37,
"animations": {
"breathing": true,
"rainbow_mood": true,
"rainbow_swirl": true,
"snake": true,
"knight": true,
"christmas": true,
"static_gradient": true,
"rgb_test": true,
"alternating": true,
"twinkle": true
}
},
"ws2812": {
"pin": "B15",
"driver": "spi"
},
"matrix_pins": {
"cols": ["A3", "A4", "A5", "B0", "B1", "B2"],
"rows": ["B11", "B10", "A7", "A6", "C13"]
},
"encoder": {
"rotary": [
{"pin_a": "A1", "pin_b": "A0"}
]
},
"split": {
"encoder": {
"right": {
"rotary": [
{"pin_a": "A1", "pin_b": "A0", "resolution": 2}
]
}
},
"serial": {
"pin": "A2",
"driver": "usart"
},
"matrix_pins": {
"right": {
"cols": ["B9", "C13", "C14", "C15", "A6", "A7"],
"rows": ["A13", "B3", "B4", "B5", "B8"]
}
},
"transport": {
"sync": {
"matrix_state": true,
"oled": true,
"wpm": true
}
}
},
"qmk": {
"locking": {
"enabled": true,
"resync": true
}
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0.5},
{"matrix": [0, 1], "x": 1, "y": 0.375},
{"matrix": [0, 2], "x": 2, "y": 0.125},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0.125},
{"matrix": [0, 5], "x": 5, "y": 0.25},

{"matrix": [5, 5], "x": 10.5, "y": 0.25},
{"matrix": [5, 4], "x": 11.5, "y": 0.125},
{"matrix": [5, 3], "x": 12.5, "y": 0},
{"matrix": [5, 2], "x": 13.5, "y": 0.125},
{"matrix": [5, 1], "x": 14.5, "y": 0.375},
{"matrix": [5, 0], "x": 15.5, "y": 0.5},

{"matrix": [1, 0], "x": 0, "y": 1.5},
{"matrix": [1, 1], "x": 1, "y": 1.375},
{"matrix": [1, 2], "x": 2, "y": 1.125},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [1, 4], "x": 4, "y": 1.125},
{"matrix": [1, 5], "x": 5, "y": 1.25},

{"matrix": [6, 5], "x": 10.5, "y": 1.25},
{"matrix": [6, 4], "x": 11.5, "y": 1.125},
{"matrix": [6, 3], "x": 12.5, "y": 1},
{"matrix": [6, 2], "x": 13.5, "y": 1.125},
{"matrix": [6, 1], "x": 14.5, "y": 1.375},
{"matrix": [6, 0], "x": 15.5, "y": 1.5},

{"matrix": [2, 0], "x": 0, "y": 2.5},
{"matrix": [2, 1], "x": 1, "y": 2.375},
{"matrix": [2, 2], "x": 2, "y": 2.125},
{"matrix": [2, 3], "x": 3, "y": 2},
{"matrix": [2, 4], "x": 4, "y": 2.125},
{"matrix": [2, 5], "x": 5, "y": 2.25},

{"matrix": [7, 5], "x": 10.5, "y": 2.25},
{"matrix": [7, 4], "x": 11.5, "y": 2.125},
{"matrix": [7, 3], "x": 12.5, "y": 2},
{"matrix": [7, 2], "x": 13.5, "y": 2.125},
{"matrix": [7, 1], "x": 14.5, "y": 2.375},
{"matrix": [7, 0], "x": 15.5, "y": 2.5},

{"matrix": [3, 0], "x": 0, "y": 3.5},
{"matrix": [3, 1], "x": 1, "y": 3.375},
{"matrix": [3, 2], "x": 2, "y": 3.125},
{"matrix": [3, 3], "x": 3, "y": 3},
{"matrix": [3, 4], "x": 4, "y": 3.125},
{"matrix": [3, 5], "x": 5, "y": 3.25},
{"matrix": [4, 0], "x": 6, "y": 2.75},

{"matrix": [9, 5], "x": 9.5, "y": 2.75},
{"matrix": [8, 5], "x": 10.5, "y": 3.25},
{"matrix": [8, 4], "x": 11.5, "y": 3.125},
{"matrix": [8, 3], "x": 12.5, "y": 3},
{"matrix": [8, 2], "x": 13.5, "y": 3.125},
{"matrix": [8, 1], "x": 14.5, "y": 3.375},
{"matrix": [8, 0], "x": 15.5, "y": 3.5},

{"matrix": [4, 1], "x": 1.5, "y": 4.375},
{"matrix": [4, 2], "x": 2.5, "y": 4.125},
{"matrix": [4, 3], "x": 3.5, "y": 4.15},
{"matrix": [4, 4], "x": 4.5, "y": 4.25},
{"matrix": [4, 5], "x": 6, "y": 4.25, "h": 1.5},

{"matrix": [9, 4], "x": 9.5, "y": 4.25, "h": 1.5},
{"matrix": [9, 3], "x": 11, "y": 4.25},
{"matrix": [9, 2], "x": 12, "y": 4.15},
{"matrix": [9, 1], "x": 13, "y": 4.125},
{"matrix": [9, 0], "x": 14, "y": 4.375}
]
}
}
}
46 changes: 46 additions & 0 deletions keyboards/sofle/apm32/mcuconf.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
/* Copyright 2021 QMK
*
* 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 3 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 <https://www.gnu.org/licenses/>.
*/

#pragma once

#include_next <mcuconf.h>

#undef STM32_SERIAL_USE_USART2
#define STM32_SERIAL_USE_USART2 TRUE

#undef STM32_PWM_USE_TIM3
#define STM32_PWM_USE_TIM3 TRUE

#undef STM32_SPI_USE_SPI2
#define STM32_SPI_USE_SPI2 TRUE

#undef STM32_I2C_USE_DMA
#define STM32_I2C_USE_DMA FALSE

#undef STM32_I2C_USE_I2C1
#define STM32_I2C_USE_I2C1 TRUE

//undef STM32_SPI_USE_SPI2
//#define STM32_SPI_USE_SPI2 TRUE

/*
#undef STM32_I2C_USE_DMA
#define STM32_I2C_USE_DMA FALSE
#undef STM32_PWM_USE_TIM3
#define STM32_PWM_USE_TIM3 YES
*/
6 changes: 6 additions & 0 deletions keyboards/sofle/apm32/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Wildcard to allow APM32 MCU
DFU_SUFFIX_ARGS = -v FFFF -p FFFF

I2C_DRIVER_REQUIRED = no

WS2812_DRIVER_REQUIRED = yes

0 comments on commit 7e23b6f

Please sign in to comment.