You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Just finished building my Sofle Choc and after running into the nightmare that QMK has become + RMK's inability to handle encoders and OLEDs I decided to write my own Embassy-based firmware from scratch. You can find it at https://github.com/Qix-/alchemist-sofle-firmware.
A small modding tip for anyone who got the RP2040 with them who also wants to have bidirectional comms (meaning either side) is to put a small lead wire between pin 7 and the i2c_c hole.
Left Lead Wire
Right Lead Wire
The lead wire becomes the second TX/RX line for a UART. However as you'd notice pin GP4 (the lead wire) is a different UART peripheral, but with the RP2040's PIO (programmable IO) subsystem, I was able to use the existing trace from pin GP1 (which is hardwired to the other TRRS ring) as the other UART line and have the PIO subsystem use them for bidirectional comms.
Now both sides of the keyboards can talk to one another freely, and it no longer matters which side the USB is plugged into. It's also quite fast and (after stripping out the poor attempt at bidirectional i2c, and even after considering making my own PIO program before realizing I could do this) quite stable!
Just wanted to share this with anyone who maybe wanted to do this with their RP2040.
Bonus pictures of the build! Note that the resistors were from the I2C experiments (which worked, by the way, but required even more lead wires on the right side and caused a ton of firmware hangs). The lead wires were removed but the resistors were giving me desoldering trouble so instead of tearing up the board I figured I'd just leave them. Plus, extra pullups for the OLED I suppose (even though they aren't needed, the modules already have the 4.7k's).
VID_20241203_141156.mp4
The text was updated successfully, but these errors were encountered:
Just finished building my Sofle Choc and after running into the nightmare that QMK has become + RMK's inability to handle encoders and OLEDs I decided to write my own Embassy-based firmware from scratch. You can find it at https://github.com/Qix-/alchemist-sofle-firmware.
A small modding tip for anyone who got the RP2040 with them who also wants to have bidirectional comms (meaning either side) is to put a small lead wire between pin 7 and the i2c_c hole.
The lead wire becomes the second TX/RX line for a UART. However as you'd notice pin GP4 (the lead wire) is a different UART peripheral, but with the RP2040's PIO (programmable IO) subsystem, I was able to use the existing trace from pin GP1 (which is hardwired to the other TRRS ring) as the other UART line and have the PIO subsystem use them for bidirectional comms.
Now both sides of the keyboards can talk to one another freely, and it no longer matters which side the USB is plugged into. It's also quite fast and (after stripping out the poor attempt at bidirectional i2c, and even after considering making my own PIO program before realizing I could do this) quite stable!
Just wanted to share this with anyone who maybe wanted to do this with their RP2040.
Bonus pictures of the build! Note that the resistors were from the I2C experiments (which worked, by the way, but required even more lead wires on the right side and caused a ton of firmware hangs). The lead wires were removed but the resistors were giving me desoldering trouble so instead of tearing up the board I figured I'd just leave them. Plus, extra pullups for the OLED I suppose (even though they aren't needed, the modules already have the 4.7k's).
VID_20241203_141156.mp4
The text was updated successfully, but these errors were encountered: