We’re trying to attack a different market for a bit. I’ve been trading very little. I got asome funding from Apex but I have had other interests so I haven’t been gaining on it.
But I am trying to learn how to make rare bestoke keyboards to potentially sell in small markets I can corner.
I put together instructions for an mx Totem redux from V0ID. This keyboard and the variation are particularly hard to get complete so I’m ensuring I’ve got everything I need to do it again. Enjoy fellow makers.
TOTEM BLE Keyboard — Complete Build Guide
Choc V2 / Wireless / Redux Case / Canada
Build Overview
- Keyboard: TOTEM by GEIGEIGEIST — 38-key column-staggered split
- Switches: Kailh Choc V2 (MX-compatible stems)
- Wireless: Seeed XIAO nRF52840 BLE × 2
- Firmware: ZMK
- Case: TOTEM Redux by VOID (FDM optimized, 3-part per side)
- Keycaps: MOTE Remix for Choc V2 by karue (3D printed)
1. PCBs — Order from JLCPCB
Source files: Download gerbers from github.com/GEIGEIGEIST/TOTEM (PCB/gerbers folder). Download the zip file.
Order at: jlcpcb.com
Upload the gerber zip. The TOTEM comes as one panel you snap into two halves — each PCB ordered = one full set (left + right).
Settings:
| Option | Value |
|---|---|
| Base Material | FR-4 |
| Layers | 2 |
| Thickness | 1.6mm |
| Solder Mask Color | Your choice (green is cheapest) |
| Surface Finish | HASL (with lead) |
| Copper Weight | 1 oz |
| Via Covering | Tented |
| Board Outline Tolerance | ±0.2mm (Regular) |
| Confirm Production File | No |
| Mark on PCB | Remove Mark |
| Electrical Test | Flying Probe Fully Test |
| PCB Assembly | Skip (soldering yourself) |
| Stencil | Skip |
Everything else: leave as default. No to Gold Fingers, Castellated Holes, Edge Plating, Blind Slots, UL Marking.
Quantity: 5 sets (try this first to unlock cheaper shipping. This worked fine for me, ends up being less than $5/keyboard.)
Shipping: Use “Global Standard Direct Line” if available ($1.50, 8-12 days, delivers via Canada Post = no brokerage fees). If unavailable, DHL is fastest but costs more and charges ~$10-15 brokerage on top.
Estimated cost: ~$10-15 CAD total for 5 PCB sets with cheap shipping.
2. 3D Printing — Case Parts
Printer: Bambu Lab P1S with AMS
Material: PLA
Source files: TOTEM Redux by VOID on MakerWorld or Printables
Bottom plates use Artem’s Choc V2 mod (also on MakerWorld Redux page) — these have clearance for V2’s center pin.
| Part | File Name | Color | Status |
|---|---|---|---|
| Bottom left | BLE Choc V2 bottom (Artem’s profile) | Green | ✅ Done |
| Bottom right | BLE Choc V2 bottom (Artem’s profile) | Green | ✅ Done |
| Switch plate left | Totem Left Plate | Green | Print this |
| Switch plate right | Totem Right Plate | Green | Print this |
| Top left | Left BLE No Logo M2 Insert | Black | Print this |
| Top right | Right BLE No Logo M2 Insert | Black | Print this |
Notes:
- Top plates use M2 heatset inserts (no visible screws). Need 8× M2 heatset inserts (3.2mm OD, 3-4mm long) and 8× M2×8mm countersunk screws.
- Switch plates are universal (same for V1/V2, BLE/USB).
- Bottom plates are V2-specific and BLE-specific.
- Print with enclosure open (top spacer + door cracked) for best PLA results.
PLA is okay, texture from plate is on the top of the keyboard so consider using a smooth plate and glue. Matte filament looks a lot better in my opinion. If you want to really do a bang-up job, you should be using 0.2mm to extrude the filament which will turn the print time into a good hunk of a day for the six plates.
The switch plates will be barely visible unless you use keycaps that leave a large gap like an ultra thin choc v2 cap.
3. 3D Printing — Keycaps
Source: MOTE Remix for Choc V2 (MX Stems) by karue
Link: printables.com/model/1459480
Color: Black (print the thumbs a different color).
I specifically appreciate the karue design with a rough plate because they print with the surface on the plate. I’ll probably end up printing really fine pitch for these because I do really enjoy the texture on these but I don’t want to see the slices.
Note these are angled to give a 3d effect to the keyboard like a diet kinesis advantage. I think these are ideal but you’ll have to slice these yourself. I started with Ultra thin choc v2 caps on handy just to be able to see it all together – they print on their side so you don’t get textured key tops. They’re only 2g so you can afford to make a bunch of caps for testing and playing around while you decide exactly what you want to settle on.
| File | Qty | Used For |
|---|---|---|
| mote-mx-flat | 20 | Middle two rows (alpha keys) |
| mote-mx-angled | 16 | Top row (5/side) + thumb cluster (3/side) |
| mote-mx-homing | 2 | Index finger home position (1/side) |
| Total | 38 |
Print a few extras of each as spares.
Recommended print settings (from eiga/original MOTE):
- Arachne wall generator
- Small area flow compensation
- Wall printing order: inner/outer/inner
- Only one wall on first layer
- Bottom surface pattern: Concentric
- Elephant foot compensation dialed in
4. Bill of Materials — Electronics
Amazon.ca. ble parts are really tricky to find. I gave up and am using a revision. Check for new variants vs the original bom part list.
| Part | Qty Needed | Link | Notes |
|---|---|---|---|
| Seeed XIAO nRF52840 BLE | 2 | amazon.ca/dp/B0BV9HM4T9 | Non-Sense version. Flash firmware BEFORE soldering to PCB. You’ll need the newer plus version and the legs are slightly different. You’ll need to read the spec and potentially modify the source as you don’t want to use the power detection lead. |
| 1N4148W SMD Diodes (SOD-123) | 38 (buy 100) | amazon.ca/dp/B079KJX5J9 | Chanzon 100-pack. Watch orientation when soldering. |
| MSK-12C02 Power Switch | 2 (buy 20) | amazon.ca/dp/B07SJWWYZP | Tiny SMD slide switch, 7-pin. |
Specialty Keyboard Shops
| Part | Qty Needed | Source | Notes |
|---|---|---|---|
| Kailh Choc Hotswap Sockets | 38 (buy 40+) | lowprokb.ca (Canadian) | Same socket works for V1 and V2. |
| Kailh Choc V2 Switches | 38 (buy 40+) | amazon.ca or kailhswitch.net | Red = linear, Brown = tactile, Blue = clicky. Deep Sea Mini = silent. These are mx tops. |
| Alps SKHLLCA010 Reset Button | 2 | AliExpress or included in keeb.supply kit | Right-angle tactile button. Hard to source individually. |
| LiPo Battery | 2 | AliExpress “301230 lipo” or “401230 lipo” | Max 22×15×7.5mm. Wires solder directly to PCB pads. |
Case Hardware
| Part | Qty | Notes |
|---|---|---|
| M2 Heatset Inserts (3.2mm OD, 3-4mm L) | 8 | Press into top plates with soldering iron. AliExpress. |
| M2×8mm Countersunk Screws | 8 | For assembly. AliExpress. |
| Adhesive Rubber Bumpon Feet | 8-10 | Any small rubber feet. |
5. Soldering Order
- Diodes (38×) — Easiest SMD part. Tin one pad, place with tweezers, solder second pad. Watch orientation (line on diode matches arrow on PCB).
- Hotswap sockets (38×) — Same technique as diodes. Orientation matters for case fit.
- Power switches (2×) — Tiny SMD slide switch. Knobs fit into PCB holes.
- Reset buttons (2×) — Through-hole, solder from bottom. Keep vertically aligned.
- XIAO BLE controllers (2×) — ⚠️ Flash ZMK firmware FIRST, test that it works, then solder. No sockets — soldered directly to PCB. Must sit flat or case won’t fit. Use lots of flux for the pads on the back.
- Batteries (2×) — ⚠️ Set power switch to OFF before connecting. Red = +, Black = −. Shorten and tin wires.
6. Assembly Order
- Install M2 heatset inserts into top plate holes (press in with soldering iron tip)
- Place PCB into top plate
- Snap Choc V2 switches through the switch plate into the hotswap sockets (support sockets from below)
- Install rubber feet into bottom plate
- Attach bottom plate and secure with M2 screws
- Install keycaps
7. Firmware
- Firmware: ZMK (wireless)
- Flash before soldering the XIAO to the PCB
- Precompiled: github.com/GEIGEIGEIST/zmk-config-totem
- Keymap customization: Fork the ZMK config repo on GitHub, edit the keymap, compile via GitHub Actions, download the .uf2 file, drag to the XIAO’s bootloader drive
- Testing: keyboardtester.com
8. Estimated Total Cost (CAD, approximate)
| Category | Cost |
|---|---|
| PCBs (5 sets from JLCPCB) | ~$15 |
| 2× XIAO nRF52840 BLE (you’ll need to get the newer plus version) | ~$30 |
| Diodes (100-pack) | ~$8 |
| Power switches (20-pack) | ~$8 |
| Hotswap sockets (40) | ~$10 |
| Choc V2 switches (40) | ~$20-30 |
| Reset buttons | ~$5 |
| LiPo batteries (2) | ~$8 |
| M2 inserts + screws | ~$5 |
| Rubber feet | ~$3 |
| Keycaps | Free (3D printed) |
| Case | Free (3D printed) |
| Total (one build) | ~$110-130 |
Extra PCB sets are essentially free since I ordered 5. Filament cost for case + keycaps is negligible (~$2-3 total).
EXTRA – TENTING
This keyboard deserves tenting. There are numerous approaches. I’ll try to post the solution I like which is just a solid fixed tenting that the deck sits on.
https://makerworld.com/en/models/1043816-totem-case-wired-wireless-tent#profileId-1029181
There are also magsafe tenting stands you can print as an alternative. This would work with any keyboard.
https://makerworld.com/en/models/1664105-split-keyboard-magsafe-tenting-stand#profileId-1760869
Key Links
- TOTEM GitHub: github.com/GEIGEIGEIST/TOTEM
- TOTEM Build Guide: github.com/GEIGEIGEIST/TOTEM/blob/main/docs/buildguide.md
- Redux Case (MakerWorld): makerworld.com/en/models/1251609
- Redux Case (Printables): printables.com/model/840146
- V2 Keycaps: printables.com/model/1459480
- ZMK Config: github.com/GEIGEIGEIST/zmk-config-totem
- keeb.supply (kits/PCBs from Germany): keeb.supply/products/geist-totem
- lowprokb.ca (Canadian hotswap sockets): lowprokb.ca




Leave a comment