Skip to content

280Zo/charybdis-wireless-mini-3x6-build-guide

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Wireless Charybdis Mini (3x6) Build Guide

pmw3610_pcb

Intro

This repository is a comprehensive build guide for the Charybdis keyboard, which is an open source, ergonomic keyboard created by Bastard Keyboards and graciously shared with the community.

This guide is a log of all the steps I took in my build process, and for the most part is just a long winded version of Eren Atas' supremely helpful build guide.

Join the Community

For any questions, clarifications, or simply to connect with fellow Charybdis builders, feel free to join the Bastard Keyboards Discord community.

Disclaimer

This guide serves as a resource to assist you in building your Charybdis. I assume no responsibility for any damages or malfunctions that may occur during the build process.

Build Guide

Bill of Materials

These are all the components that need to be ordered to build the keyboard. The quantity column denotes how many of each component are required for the build. Adjust the order quantity as needed.

PCBs

Part Quantity
PMW3610 Breakout 1
Nano Holder 2
Thumb Right (0.8 thickness) 1
Thumb Left (0.8 thickness) 1
Plate (0.8 thickness) 2

I ordered the PCBs from JLCPCB.

⚠️A thickness of 0.8 or less must be set for the left thumb, right thumb, and plate PCBs.

The gerber files have all been pulled from other repositories and are stored in the PCB Gerber Files directory. However, each source repository is linked in the part list above for reference.

ℹ️ An alternative to victorlucachi's PMW3610 breakout design linked above is the sensor board designed by Bastard Keyboards.

3D Case Prints

Part Quantity
Right Plate 1
Left Plate 1
Right Case 1
Left Case 1
Sensor Cover 1
Adapter Top 1
Adapter BTU Bottom 1
Ball Transfer Unit (BTU) 3

I ordered these parts from JLC3DP in SLS black 3201PA-F Nylon. After the order was reviewed I was warned that some of the parts were too thin and may bend or break during production. The risks were accepted and the parts arrived without issue.

The files for these are in the 3D Print STL Files directory, and the source repos have been linked in the parts list above.

Instead of printing static tents, I used some camera & phone equipment (see tenting section below). If you choose this method as well, you don't need to print the bottom plates.

3D Key Cap Prints

Part Quantity
r1 2
r2 2
r3 2
thumb 1

The key caps are DES profiled. These were designed by pseudoku, and the key set files in this repo will print sets of 10 keys for row one, two, and three, and a single set of ergo thumb keys. Row two will have home dots for the keys that go under each index finger.

JLC3DP SLS printed these in white 1172Pro Nylon so they could be died later on.

Note - JLC3DP charges per-part, and only allows combining a maximum of 10 small parts into a single print, which is why the sprues are included in the STL files. This means that each order is 10 keys for rows 1-3 and six keys for the thumbs.

If you have different printing requirements/capabilities, the OpenSCAD code in this fork can be changed by updating the keeb.scad file to render whatever keys you like, with or without sprues, and with or without home dots. If more than one set of rows is rendered at a time, and sprues are enabled, the sprues will be meshed in a grid.

PMW3610 Sensor

Part JLCPCB Part # MFR. Part # Quantity
PMW3610 module with lens (LM18-LSI) N/A N/A 1
LDO C79924 TLV70018DDCR 1
Thick Film Resistor C22976 0603WAF2004T5E 1
Ceramic Capacitors C15849 CL10A105KB8NNNC 1
Ceramic Capacitors C14663 CC0603KRX7R9BB104 1
Ceramic Capacitors C19666 CL10A475KO8NNNC 7

These are all the components required for the sensor breakout PCB. It's possible to have JLCPCB assemble the PCB and components for you. Just select that option at checkout and supply the bom.csv and positions.csv from the PMW3610 Breakout zip.

I chose to solder the parts on myself so I ordered the parts above. A diagram of where to solder each component on is in the assembly instructions.

ℹ️ Note that part number C79924/TLV70018DDCR is a substitute for C146366/TCR2EF19,LM(CT) which is what the designer of the PCB originally used. Either component will work, but if you plan to have JLCPCB assemble the sensor board the C146366 is what's included in the parts list and it is often out of stock. However, the replacement is normally available which is why it's used above.

General Components

Part Quantity
Trackball 1
SuperMini NRF52840 Microcontrollers 2
Mill Max Low Profile Sockets 315-43-112-41-003000 (optional) 4
Mill Max Pins 3320-0-00-15-00-00-03-0 (optional) 48
1N4148W Signal Diodes 41
Button (4x4x1.5) 2
Mini Toggle Switch SPDT 3mm 2
3.7V 130mAh 401030 Li-Po Batteries 2
2.5mm Silicon Nitride Ceramic Ball Bearings 3
80MM Flexible Flat Cables (Flexstrip Jumper) 2 - 6 pin
2 - 5 pin
2 - 4 pin
100MM Flexible Flat Cables (Flexstrip Jumper) 2
Gateron oil king 2.0 switch three-layer pin self-lubricating linear handle 55gf Key Switches 41
M3 x D5 x L5 Brass Melt Nuts 5
M4 x D6 x L5 Brass Melt Nuts 12
M3 8mm Torx Screws 5
M4 8mm Torx Screws 12
JST plug 2-pin 2
Adhesive bumper pads 10

The standard for microcontrollers on the Charybdis wireless keyboard builds is the nice!nano v2.0. However, there are some cheaper alternatives documented on this MCU wiki. This build uses the SuperMini NRF52840.

The battery needs to be 3.7v and more than 80mAh. Make sure the dimesions match your chosen mounting location.

The cable length requirements for the flex strip cables varies between components

Component Length
Nice!Nano Holder 75mm
Thumb Plates 80mm
PMW3610 Sensor 100mm

The cables can be a bit longer or shorter, but sticking close to these lengths will make installation much easier. The parts list above uses 89mm for both the thumb plates and Nice!Nano holders, and 100mm for the sensor.

Tool List

  • Soldering iron with a fine tip and adjustable temperatures
  • Solder
  • Solder wick and desoldering pump
  • ESD safe tweezers
  • Kapton tape
  • Double sided tape
  • Torx screw drivers (T10 and T20)
  • Scissors
  • Flush cutting pliers
  • (optional) ESD mat and strap
  • (optional) filter fan
  • (optional) flux
  • (optional) heat shrink tubing for battery connection
  • (optional) self closing tweezers or kelly forceps
  • (optional) magnifying glass or microscope

Assembly

Bastard Keyboard's build guides are excellent and comprehensive. Their documentation will be linked as much as possible in the steps below.

Melt nuts

Follow BastardKB's build guide to install screw inserts on the cases.

Then follow their build guide to install screw inserts on the sensor assembly.

Diodes

BastardKB's documentation on how to solder diodes on both plates and thumb clusters.

Sensor Breakout Components (optional)

If you've chosen to solder the components on the PMW3610 breakout PCB, follow the diagram below to get them in the correct spots.

A stand with a magnifying glass, or a digital microscope are very helpful when trying to ensure the soldering is done correctly on these small components.

pmw3610_pcb

PMW3610

The lens of the sensor should be removed or covered with Kapton tape while soldering. Orient the sensor so that the back of it is on the same side as the other components, then solder it in place.

When working with the sensor and the MCU it's best to keep soldering iron temperatures below 300°C.

Nice!Nano Holder Components

Solder on the power switches, and reset buttons to the left and right nano holder PCBs. Then solder on the JST female connectors. I positioned this so the red wire on the male side would be the battery's positive connection. I also had to bend the legs out a little bit in order to get each one to fit flush with the nano holder board.

MCU

Solder the MCUs to the nano holders using the standard pin headers or the socketed pin headers, depending on what you chose to order to mount the MCU. If you use the socketed headers, make sure to put some kapton tape over the socket holes and poke the pins through to prevent solder from fusing the pin to the socket and MCU.

The MCUs should be face down (components facing towards the nano holder PCB), and the top through holes on either side of the USB connector will not have a spot on the nice!nano PCB.

⚠️ As mentioned above, do not set your soldering iron any higher than 300°C.

After the components have all been soldered, it should look something like the picture below.

alt text

Being careful to not short any connections, connect the JST battery connections, turn the switch to the on position, and confirm the MCU powers on.

If all goes well, unplug the battery and continue the assembly.

Cables

If you want the cables a different color, make sure to paint them before this step. Use some tape to cover the pins so they can still be soldered.

Use BastardKB's documentation on how to cut and solder the ribbon cables.

Then follow the BastardKB docs on how to connect all of the PCBs together.

Make sure to use the flush cut pliers to remove any protruding pins and solder from the back side of the PCBs so that they can sit flat against the cases when the switches are being soldered in.

Battery

Instead of the traditional mounting point under the MCU, this build mounts the battery on the top lip of each case with some double sided tape so it is away from compnents that could be damaged with excessive heat or expansion.

alt text

Testing

Now that everything is connected follow BastardKB's documentation to test the switch pads and internal connections.

Switches

Once all the switch pads have been confirmed to work, solder in the switches by following BastardKBs documentation.

Sensor PCB

Put the sensor cover into the right case, install the BTUs into the Adapter BTU Bottom, then screw the Adapter BTU Bottom into the sensor cover.

Make sure to push the BTUs all the way into the Adapter BTU Bottom. It should something like this.

alt text

Finally, install the sensor PCB and sensor cover by screwing them into the BTU bottom adapter.

Pads

Install the anti-slip pads on to the bottom of each plate.

Final Test

Install the key caps, then connect each half to the computer the same way you did for the previous test. Confirm that each key still works.

Tenting

A tenting solution that's stable, adjustable, and re-usable across multiple keyboards requires a few additional components:

Parts List

Part Quantity
Quick Release Plate 2
55mm Magnetic Phone Mount 2
Ferromagnetic Right Plate 1
Ferromagnetic Left Plate 1

To 3D print the bottom plates use the STL files in /Magnet Plates/3D STL/.

To have the plates laser/water jet cut, use the dxf files in /Magnet Plates/2D DXF/. You'll need to have the screw holes chamfered as well. Depending on what type of steel is used, you may want to have them powder coated to prevent rusting.

To make changes to any of the files (e.g. to accomodate different size magnets), the SVG files has been included in the same directory.

alt text

alt text

alt text

Dye the Key Caps

alt text

Rit DyeMore synthetic fiber dyes are an effective way to color the white nylon key caps to any color you'd like. You'll need a few things before you get started.

Tools & Supplies

  • Rit DyeMore dye(s)
  • A container to hold the water and dye while it's at temperature
  • Something to hold the parts in the dye (the nylon keys will float without this)
  • Tongs to get the parts out of the hot dye solution
  • Stove or cooktop
  • Thermometer

Process

  1. Mix the dye and water according to the color formula and dye instructions. Adjust the ratios to match the volume of your container.
  2. Heat the solution up to 60°C/140°F. Be careful not to go above 70°C/160°F or the nylon parts might start to deform.
  3. Put the parts into the solution, and make sure they stay submerged.
  4. Wait for five minutes, then pull one out and check the color. If it's not dark enough, keep the parts in another five minutes. Most of the keys I dyed took 15-20 minutes to get to the color I wanted.
  5. While the parts are being dyed, fill a separate container with cold water.
  6. When the parts are ready, remove them from the hot solution and put them in the cold water.
  7. After the parts have cooled, dry them off

Notes

  • I recommend making small batches of the dye solution and testing the color on a couple of keys to make sure you like it. I used four cups of water for each batch, so the dye measurements were very small.
  • To keep the dye batches small, and to have an easy way to keep the keys in the solution, I used a small tempura deep frying pot. The mesh basket has enough space under the bottom to fit several keys, but if you're doing large batches you can take the handle off and turn it upside down so it will hold parts in a bigger batch of the color solution.
  • You'll want to make sure the key caps are clean from dirt before dying them. Otherwise you'll get uneven color or dark/light spots.

ZMK Firmware

The firmware can be downloaded from my charybdis-wireless-mini-zmk-firmware repo by opening the Actions Workflows and downloading the latest successful build. Follow the instructions on the repo readme for more details, including how to flash the firmware.

Credits

This was my first keyboard build, and I couldn't have done it without the hard work from many others:

Releases

No releases published

Packages

No packages published