Cubitboard
[!NOTE]
This project has been on the backburner for a while, as I decided to opt to develop a custom devboard for the microcontroller
This means that to build this keyboard, you will have to obtain a Bluboard, the custom devboard I've made specifically for this project
Alternatives can be made, but there are certain requirements that need to be met, which you can find by seeing the Kicad source file regarding the pinout from the devboard
This project is a keyboard that has the potential to have many different modules attached, modules such as displays, a rotary encoder panel, potentiometers, or a numpad!
[!NOTE]
Most of the features can be added due to modularity, but will not be developed by me personally for this project
Communication interface
The core concept of modularity comes down to 1 main factor, and that is the compatibility of the communication interface.
I2C is chosen for its ability to have multiple devices share the same signal lines, high support by many microcontrollers, and a decently high signal rate for information
From the back to the front (from the perspective of using the keyboard, the pins are laid out as such:

This applies for both the left and right side of the keyboard, but they are on two different I2C connections to the nrf52840 chip
| Left | Right |
|---|
 |  |
Module development expectations and requirements
You are expected to write your code for the device and any updates to the firmware in order to support your module, and you're welcome to create pull requests for a module you have made
The modules are recommended to draw less than 100ma of power from either the 3v3 rail or the 5v rail, for the sake of preventing brownouts on the mainboard, especially with heavy RGB usage
Power decoupling has been provided at the connection points, but it is recommended to decouple your modules' power too
Schematic
The schematic is multiple pages, as a result it would be the easiest to view it here, as a pdf file
PCB
There are 11 M2 mounting holes built in throughout the pcb for a variety of mounting options, if you decide to design you own case for it

Case
The case is custom designed, and split into multiple pieces for the ease of 3d printing
The case in its current state is bottom mounted, and designed around a FR4 plate for a thocky sound, where the stabilizer on the Enter key is reversed compared to others.
There are 10 M2 screw holes around the edges of the plate for mounting to the bottom case, optionally with silicone O-rings for dampening

The top case is split down the middle, where on the underside it is held together with 3mm thick brackets, each with 6 M2 5mm screws. These brackets are also 3D-printed to save on costs, but can optionally be CNC'd
| Top View | Bottom view |
|---|
 |  |
The brackets sit inside cutouts of the top case, so they sit flush when finished assembling
The bottom case is split in a clean but structurally durable way, this is how it looks without the bracket from the top
The 10 M2 holes are visible on the walls of the case, these are set to be 3mm wide so heatsets can be used instead of direct screwing into plastic, as this part will experience multiple cycles of tightening and loosening throughout its life cycle
Here it is with the bracket, a 4mm thick 3D printed slab to reduce bending forces as much as possible in an efficient manner
[!NOTE]
It is important to note that, although at first glance the two halves of the bottom board are rotationally symmetrical, they are not because of the I2C pogo breakouts, as well as the USB-C port on the back left side of the keyboard
Lastly, to secure the top case to the bottom case, there are 2 simple m2 screw holes on each side of the keyboard

#Firmware
The Firmware is still in progress, as well as requiring the keyboard to be built first before testing, I have created a fork of QMK Firmware as that is the most likely platform I will be using, and it is likely that the firmware can be found there Link
BOM