Add some debug, reorder json to be similar order to tsukuyomi, got keys working after timeout waiting for other half

This commit is contained in:
Tim Brown 2025-01-25 21:54:03 +00:00
parent 7e23b6f507
commit 67c60c8c38
6 changed files with 75 additions and 28 deletions

View File

@ -18,27 +18,37 @@
#pragma once
#define SPLIT_USB_DETECT
#define SPLIT_MASTER_TIMER 2000
#define DEBUG_TO_SCREEN 1
#define EE_HANDS
//#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 OLED_IC OLED_IC_SSD1306
#define OLED_DC_PIN B6
#define OLED_CS_PIN B7
#define I2C1_SCL_PIN B6
#define I2C1_SDA_PIN B7
#define I2C_DRIVER I2CD1
#define SERIAL_USART_HALF_DUPLEX // Enable full duplex operation mode.
#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

View File

@ -21,13 +21,16 @@
#pragma once
#undef HAL_USE_I2C
// For OLED?
#define HAL_USE_I2C TRUE
// Backlight
#define HAL_USE_PWM TRUE
// For RGB?
#define HAL_USE_SPI TRUE
// For split comms?
#define HAL_USE_SERIAL TRUE
#include_next <halconf.h>

View File

@ -3,23 +3,23 @@
"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"
},
"matrix_pins": {
"cols": ["A2", "A4", "A5", "B0", "B1", "B2"],
"rows": ["B10", "B10", "A7", "A6", "C13"]
},
"diode_direction": "COL2ROW",
"rgblight": {
"led_count": 37,
"led_count": 76,
"default": {
"on": true
},
"driver": "ws2812",
"split": true,
"split_count": [37, 37],
"animations": {
"breathing": true,
"rainbow_mood": true,
@ -37,9 +37,16 @@
"pin": "B15",
"driver": "spi"
},
"matrix_pins": {
"cols": ["A3", "A4", "A5", "B0", "B1", "B2"],
"rows": ["B11", "B10", "A7", "A6", "C13"]
"features": {
"bootmagic": false,
"mousekey": false,
"extrakey": false,
"console": true,
"command": true,
"nkro": false,
"backlight": false,
"oled": true,
"rgblight": true
},
"encoder": {
"rotary": [
@ -47,6 +54,7 @@
]
},
"split": {
"enabled": true,
"encoder": {
"right": {
"rotary": [
@ -60,8 +68,8 @@
},
"matrix_pins": {
"right": {
"cols": ["B9", "C13", "C14", "C15", "A6", "A7"],
"rows": ["A13", "B3", "B4", "B5", "B8"]
"cols": ["B9", "C13", "C14", "C15", "A7", "A6"],
"rows": ["A15", "B3", "B4", "B5", "B8"]
}
},
"transport": {

View File

@ -18,6 +18,7 @@
#include_next <mcuconf.h>
// TX on A2
#undef STM32_SERIAL_USE_USART2
#define STM32_SERIAL_USE_USART2 TRUE
@ -30,9 +31,13 @@
#undef STM32_I2C_USE_DMA
#define STM32_I2C_USE_DMA FALSE
// For OLED?
#undef STM32_I2C_USE_I2C1
#define STM32_I2C_USE_I2C1 TRUE
#undef STM32_I2C_USE_I2C2
#define STM32_I2C_USE_I2C2 TRUE
//undef STM32_SPI_USE_SPI2
//#define STM32_SPI_USE_SPI2 TRUE

View File

@ -1,6 +1,2 @@
# Wildcard to allow APM32 MCU
DFU_SUFFIX_ARGS = -v FFFF -p FFFF
I2C_DRIVER_REQUIRED = no
WS2812_DRIVER_REQUIRED = yes

View File

@ -18,6 +18,31 @@ enum custom_keycodes {
KC_LEND
};
// Debug function, should be removed in working config.
void keyboard_post_init_user(void) {
// Customise these values to desired behaviour
debug_enable=true;
debug_matrix=true;
//debug_keyboard=true;
//debug_mouse=true;
printf("Keyboard booting up...\n");
wait_ms(2000);
oled_init(OLED_ROTATION_0);
printf("OLED initialised...\n");
}
void i2c_init(void) {
printf("In I2C init...\n");
gpio_set_pin_input(B6); // Try releasing special pins for a short time
gpio_set_pin_input(B7);
wait_ms(10); // Wait for the release to happen
palSetPadMode(GPIOB, 6, PAL_MODE_ALTERNATE(4) | PAL_STM32_OTYPE_OPENDRAIN | PAL_STM32_PUPDR_PULLUP); // Set B6 to I2C function
palSetPadMode(GPIOB, 7, PAL_MODE_ALTERNATE(4) | PAL_STM32_OTYPE_OPENDRAIN | PAL_STM32_PUPDR_PULLUP); // Set B7 to I2C function
printf("I2C initialised...\n");
}
#define KC_QWERTY PDF(_QWERTY)
#define KC_COLEMAK PDF(_COLEMAK)