u/Adj_DHD

Modified Scylla (BastardKeyboards)

Modified Scylla (BastardKeyboards)

Just finished this handwired modified build of the Scylla from Bastard Keyboards.

Mods:

2 rotary enconders

2 5 direction joys sticks ( thumb cluster)

2 2.2 inch tft no touch screens

Added additional column to each half to make it 4x7

That last one was the hardest and jankiest. Basically in orcaslicer i imported 2 models. On one I cut off the pinky column and on the other I just cut off the furthest edge then I proceeded to mangle them together. And after a lot of time ( and shapes added) I managed to get it to print successfully.

I used the same screenholders in another build but this time added a bezel. Again these were just merged into the case with a negative cylinder added to ensure the wires could pass through

For the base plate I basically did similar to account for the additional column

I use single switch pcbs so it is hot swappable and its handwired. To hold the rp2040 microconroller in place I used hot glue gun to glue a usbc female to male adapter inside the case which the microcontroller then plugs into.

Both the joy sticks and encoders are wired into the matrix which meant the firmware is actually 8 x 6 (when including thumb clusters)

u/Adj_DHD — 5 days ago
▲ 214 r/olkb+1 crossposts

Long time lurker, first time poster. I built a custom Charybdis using the STLs from Bastard Keyboards and then adapted it to add a smorgasbord of additional features.

The main addition was a pair of 2.2 inch no touch tft LCD screens. I designed the screen holders in OpenSCAD, with the code entirely generated through AI and then adjusted by shouting at Chat GPT until it complied. Each holder includes a small cylindrical channel to route the wiring back into the body so everything stays contained. Once the parts were ready, I assembled them with the original case in OrcaSlicer and printed everything together as a single piece. The screens are mounted with brass PCB standoffs and screws.

Inside, the board is fully hand wired using single switch PCBs. The wiring is functional but not especially tidy. The two halves are connected with a TRS cable, with the jack itself fixed into the case using superglue. The controller is an RP2040 Pico with USB C, mounted in a modified holder and then also secured into the base with superglue. I originally wanted a cleaner mounting solution, but by that stage the priority was getting everything working rather than reworking parts again in OrcaSlicer or OpenSCAD. I figured out the matrix but working out the pin wiring for everything else was again Ai... Sorry to the environment... My bad guys.

For the trackball, I*** designed an additional internal piece to hold the PAW3360 PCB module in place. My specific module did not have a ready made adapter, so I again relied on AI generated OpenSCAD as a starting point and then adjusted it to fit. To make things easier to work on, I wired the sensor pins into pin connectors and then ran those to the MCU, so the module can be disconnected and reconnected without having to desolder anything. The fit required some manual adjustment to get everything aligned properly, but since it sits inside the case, the finish is not especially important.

On the right side, alongside the trackball, I added a five way navigation switch and a mouse scroll encoder. The nav switch uses an MX adapter I found and is mapped to the arrow keys, handling up, down, left, and right from a single switch. One pin is mapped as a col the rest i wired from the pin to a diode then connected up to r. The centre press is not used. The scroll encoder was assembled from a few different models to get something that fits the space. It works, although it does feel slightly scratchy in use.

For switches I used Akko Penguin switches, mainly to keep noise levels low enough for office use.

The displays are driven using QMK Quantum Painter. The base layer shows minimal information since the keycaps already provide legends. The right screen displays a simple WPM graph based on a rolling estimate. The left screen shows system state such as the current layer and active modifiers. When switching layers, the display changes to a keymap view that acts as a reference. There is also an idle screen.

The firmware is Vial enabled, which to get into a stable state involved a lot of trial and error.... By which I mean shouting and swearing at AI to read the documention I myself was too lazy and probably too stupid to read

I also printed a separate tenting solution using STLs from Printables, but i'm not 100% sure if i will keep them yet, though they are adjustable.

The build came together over a 3 weeks, being a parent makes hobbies hard haha... And the project took longer as I originally started with a dactyl build before deciding i wanted to do something else with a trackball, then as more items arrived the plans kept changing / growing.Not to mention soldering adding a fair chunk of effort which i'm getting better at but still by no means good and required some rework. The result is rough internally but usable.. I also accepted the trade off of larger layer lines to keep print times reasonable, hoping it will replace my cygnus (my first build) as my daily driver.... Though the itch to build something new is already growing...

u/Adj_DHD — 19 days ago