Hi all,
I’m hoping for some troubleshooting tips. I have a self-build split keyboard using Blackpills.
If I flash either side with ‘SPLIT_KEYBOARD = no’ in my rules.mk, then both sides work fine (but both working as the left side). If however I set ‘SPLIT_KEYBOARD = yes’, then both sides stop working.
It’s driving me insane!
These are the relevant details of rules.mk:
MCU = STM32F401
BOOTLOADER = stm32-dfu
SPLIT_KEYBOARD = yes
SERIAL_DRIVER = usart
And config.h:
#pragma once
#define HAL_USE_SERIAL TRUE
#define SOFT_SERIAL_PIN A12
#define MASTER_LEFT
#define MATRIX_ROWS 6
#define MATRIX_COLS 6
#define SERIAL_USART_DRIVER SD1
#define SERIAL_USART_TX_PAL_MODE 7
And halconf.h:
#pragma once
#define SERIAL_USB_BUFFERS_SIZE 256
#include_next
And mcuconf.h:
#pragma once
#include_next
#undef STM32_SERIAL_USE_USART1
#define STM32_SERIAL_USE_USART1 TRUE
Please help! I’ve been at this for three days.
Blackpill is defined within qmk already. You can do a search in the repo for
STM32F401
and see a number of keyboards that use it. From this, you can also see which are split keyboards. The M60 Split is a good example which uses aSPLIT_HAND_PIN
to define left and right. The Phoenix is another. This also uses theSPLIT_HAND_PIN
. Given that, I’ve tried updating, but no luck. IfSPLIT_KEYBOARD = yes
then nothing works. IfSPLIT_KEYBOARD = no
then they work but they both come through as the left side (even ifSPLIT_HAND_PIN B9
is set, and B9 is connected to GND or not).Are you tying B9 high? By default, Gnd is right, Vcc is left. Unless there are pull-ups, both sides will act as slaves.
You can try just flipping that with
#define SPLIT_HAND_PIN_LOW_IS_LEFT
See the docs at: https://github.com/qmk/qmk_firmware/blob/master/docs/feature_split_keyboard.md#handedness-by-pin