kbjunky / Chordie

A chording keyboard you shouldn't be scared of
MIT License
235 stars 11 forks source link

Chordie

A chording keyboard you shouldn't be scared of

Chordie "It" inspired picture courtesy of Sean Yin

Chordie is a chording keyboard heavily inspired by gBoards' Ginny keyboard running on awesome chording engine by DennyTom. It supports all 104 keys found on normal keyboards and much more in large part thanks to ASETNIOP layout. For a complete experience it's also equipped with trackball. Except for the mouse sensor module whole assembly can be handwired in about 6 hours.

BOM

Item Count Example
MCP23017 I2C Expander Breakout Board 2 Link
Pro Micro 5V 16MHz 1 Link
TRRS Socket PJ-320A 2 Link
TRRS Cable Male to Male 0.5m 1 Link
Enameled copper wire 0.2mm 10m 1 Link
5mm kapton tape 1 Link
EVQ-WGD001 encoder with switch 1 Link
Kailh Choc V1 25g or 20g MX switch 16 Link
Choc/MX keycaps 1u 10 Link
Choc/MX keycaps 1.5u 6 Link
8mmx1mm antislip pads 14 Link
ZrO2 bearing ball 3 Link
M570/Ergo 34mm trackball ball 1 Link
M2x3mm heat insert (optional) 15 Link
M2x15mm screw (trackball) 3 Link
M2x4mm screw 12 Link
PMW3360 sensor module 1 Link

IrDA (optional)

Item Count Example
TCRT5000 sensor 2 Link
680/10k Ohm resistor 2 each Link

Tools

Item Count Example
Soldering iron 80W 1 Link
Tin wire 0.5 to 1mm will do 1 Link
Hot glue gun (optional) 1 Link
Solder flux/paste 1 Link
Digital multimeter with diode test 1 Link

Remarks

Build guide

Chordie OpenSCAD generator

Chordie comes with OpenSCAD generator that allows for easy cutomization of:

How to customize your Chordie:

3D printing

Recommended settings:

Wiring

Before you start make sure your Chordie suits your hands well. Play with it for a while with just switches placed into the sockets. Wiring takes some time and last thing you want to do is to start over because some part isn't properly setup. For example you might find out that encoder is too low etc. Check if canals for the wires aren't filled with plastic. Check if all parts (switches/audio jacks/encoder/I2C exapanders etc.) fit into their sockets.

While routing check every connection with continuity meter!

If you're using heat inserts start with them. Once done try if the bottom plate fits etc.

Attach kepton tape to the bottom side of ProMicro and top side of I2C expanders(cover the pads). This way you will avoid tin blobs.

Setup the address pins on I2C expanders following the diagram.

It should look something like this.

Next you will have to prepare the switches. Put some tin on every switch pin then place the switches into the sockets. Make sure pins are facing the same way as on the photo/diagram. At this point you can also attach the I2C expander. Use small amount of hot glue to lock it in place. Be sure not to cover any of the pads.

Once this is done follow the below diagram and connect all the GND pins for the switches. For now skip the rotary encoder/audio jack part. These will be done later. Route the enameled wire through the canals. For this part use one wire that will connect every switch GND pin and then connect to the nearest GND on the I2C Expander.

It should look more or less like this (don't mind the encoder and audio jack, it's not important at this stage).

Now you can move to connecting switches to the I2C Expander. Refer to the diagram. Avoid routing over 'B' pads on I2C Expander. Check the photo below on how to properly route the wires.

Wiring should look like this. Note how wires mostly go up, it's OK even if it means goind around.

Now it's time to connect the encoder. Attach long pieces of wire to it's pins. There are 2 pins that are GND (refer to the diagram). Connect them with one long wire. When routing, those GND pins can be connected to any nearest GND either to a switch or just directly to the wire.

Refer to the diagram when connecting encoder to the I2C Exapnder.

Now it's time for audio jacks. They should fit quite tight. Use some tool to push them inside. Use the 3D printed spacers to prevent sockets from sliding out when connecting the TRRS cable.

Now follow the diagram and connect all pins accordingly. Routing start from I2C Expander towards the audio socket and then leave some wire that will later on be connected to Pro Micro. It's easier this way compared to later on trying to solder additional wire to the audio socket pin.

If you've decided on using IrDA here's how it should be wired.

At this point you should have a working mouse sensor and be able to connect it to the ProMicro as well as connecting SDA (ProMicro pin 2)/SCL (ProMicro pin 3)/VCC/GND lines from the keyboard to the ProMicro. For connecting sensor to the ProMicro you can use the same enameled wire. Sandwich it with the ProMicro. There's a dedicated space for ProMicro on the bottom plate to hold it in place, in between the studs that hold mouse sensor.

Mouse sensor wiring

ProMicro Pin Sensor pin
A0 NCS
15 SCLK
14 MISO
16 MOSI

Congratulations!

Now it's flashing time, check src folder for flashing/layout information.

And that's it. Congratulations!