
Type f
google/mozc-devices
Circuit diagrams and firmware source code for Gboard DIY keyboards

A handheld PCB spell tome for tabletop RPGs, the cringiest text adventures you'll ever play and mini games no one asked for. Built around a tiny OLED for minimal gaming and a Seeed Studio XIAO RP2040 for maximum reprogramming comfort.
Spell tome bottom is an open-source printed circuit board by bitshiftcrazy, from the bitshiftcrazy/spell_tome repository on GitHub. It is a 2-layer board of 69.9 × 100 mm with 25 parts on 33 nets, routed with 137 tracks and 6 vias.
Its parts include 8 capacitors, 6 resistors, 5 switches, 2 ICs and 2 connectors. It belongs with the RP2040 boards of this library.
A handheld fantasy-themed PCB spell tome designed for tabletop RPGs and other shenanigans.
The Spell Tome is a sandwiched, book-like PCB build consisting of a functional electronics PCB and a decorative top PCB. Originally it was designed as a magical artifact for a custom text adventure and small games.
Right now it's evolving into anything that can be done with a tiny OLED and 4 buttons (stay tuned!).
The Spell Tome is designed around a Seeed Studio XIAO RP2040 to make it easy to customise, reprogram, and repurpose. It consists of two separate PCBs that together form a small handheld device, no additional case needed.
The bottom PCB holds all the electronics, meaning the schematics only refer to the bottom PCB. Buttons and RGB LED parts are flat so that the handheld stays slim overall.
The top PCB functions as a decorative cover for the handheld. It has an eye-shaped keepout zone so the status LED's light shines through. Very magic. Much wow.
It also has cutouts for 4 3D printed buttons.
The parts selection is mainly influenced by "I have this at home already" and "I want people to be able to easily assemble and program it":
Of course the project also uses standard components such as resistors, capacitors, and passive power circuitry. You'll find them and their respective values in the BOM files in:
fabrication/bom/
Since the Spell Tome uses a layered PCB construction, you'll need to fit these parts together:
To assemble the Tome you'll need M2.5 screws and spacers/standoffs (6 mm worked well for me here).
Detailed soldering instructions follow.
Assuming you already soldered the parts:
3D printable parts are available in:
mechanical/Print the buttons without supports.
spell_tome/
├── artwork/ # Source artwork and SVG files
├── fabrication/ # BOMs and fabrication outputs
├── libraries/ # Local KiCad symbol and footprint libraries
├── mechanical/ # 3D printable parts
├── pics/ # Images and renders
├── *.kicad_* # Main KiCad project files
└── README.mdFirmware was hacked together in one long weekend and is currently under cleanup (guess "a little messy" is fine for personal projects, "wtf even is that" is not ;)) and will be published in this repo soon.
Features:
Gerbers and manufacturing files can be generated directly from the KiCad project files. The current Gerbers are the tested and working version.
Please make sure to regenerate them before sending something to fabrication, I cannot be trusted to remember to do this after every change I make.
Pre-generated fabrication outputs belong and are available in:
fabrication/gerbers/
Hardware design files are licensed under the CERN Open Hardware Licence Version 2 - Strongly Reciprocal (CERN-OHL-S-2.0).
See the LICENSE file for details.
Copyright (c) 2026 miss.molerat
| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | 0.1uF | Capacitor_SMD:C_0603_1608Metric | C2(CIN_HF)1, C4(COUT_HF)1, C5(C_RGB)1, C7(C_OLED)1 |
| 4 | SW_Push_my | tome:SW-SMD_4P-L3.4-W3.4-P2.15-LS4.2 | SW1, SW3, SW4, SW5 |
| 3 | 10uF | Capacitor_SMD:C_0805_2012Metric | C1(CIN)1, C3(COUT)1, C3(COUT)2 |
| 2 | 150 Ohm | Resistor_SMD:R_0603_1608Metric | R2(green)1, R3(blue)1 |
| 1 | 390kOhm | Resistor_SMD:R_0603_1608Metric | R5(R_bottom)1 |
| 1 | 470 Ohm | Resistor_SMD:R_0603_1608Metric | R1(red)1 |
| 1 | 47pF | Capacitor_SMD:C_0603_1608Metric | C6(Cff)1 |
| 1 | 680kOhm | Resistor_SMD:R_0603_1608Metric | R4(R_top)1 |
| 1 | Conn_01x02_Pin | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J2 |
| 1 | Conn_01x04_Pin | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J1 |
| 1 | L | tome:IND-SMD_L6.0-W6.0_NR6028T2R2N | L1 |
| 1 | LED_RABG | tome:LED-ARRAY-SMD_4P-L1.6-W1.5-TL_NH-B1515RGBA | D1 |
| 1 | MCP1640x-xCHY | tome:SOT-23-6_L2.9-W1.6-P0.95-LS2.8-BR | U2 |
| 1 | R | Resistor_SMD:R_0603_1608Metric | R6 |
| 1 | SW_SPDT_321 | tome:SW-SMD_SSSS810701 | SW2 |
| 1 | XIAO-RP2040-DIP | seeed_xiao:XIAO-RP2040-DIP | U1 |
It measures 69.9 × 100 mm and has 2 copper layers, 1.6 mm thick.
25 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the bitshiftcrazy/spell_tome repository on GitHub, at the commit this page was made from: the board is spell_tome_bottom.kicad_pcb and its schematic spell_tome_bottom.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask bitshiftcrazy before reusing the design.

google/mozc-devices
Circuit diagrams and firmware source code for Gboard DIY keyboards

davidphilipbarr/Sweep
Sweep - a small promicro based keyboard inspired by the Ferris.


hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

xyphro/UsbGpib
Versatile, cheap and portable USB to GPIB converter (USBTMC class based)


jes/scamp-cpu
A homebrew 16-bit CPU with a homebrew Unix-like-ish operating system.
