Split keyboard
You can use the keyboard.toml to define a split keyboard.
All split related configurations are defined under [split] section. The following is an example using BLE:
Split keyboard matrix configuration
When using split, the input/output pins defined in [matrix] section is not valid anymore. Instead, the input/output pins of split boards are defined in [split.central.matrix] and [split.peripheral.matrix]. The contents of the split matrix configuration is the same as for [matrix]. This means each peripheral and central keyboard also supports direct_pin.
The rows/cols in [layout] section is the total number of rows/cols of the whole keyboard. For each split(central and peripherals), rows/cols/row_offset/col_offset should be defined to indicate the current split's position in the whole keyboard's layout. Suppose we have a 2-row + 5-col split, the left(central) is 2*2, and the right(peripheral) is 2*3, the positions should be defined as:
Split keyboard connection configuration
If you're using BLE, ble_addr will be automatically generated. You can also override it if you want.
If you're using serial, in [split.central] you need to defined a list of serial ports, the number of the list should be same with the number of the peripherals:
If you're using the Programmable IO (PIO) serial port with an RP2040 chip, subsitute the UART serial port interface with the PIO block, e.g. PIO0: