All Projects → macroxue → keyboard-diy

macroxue / keyboard-diy

Licence: other
DIY 60% split keyboard, 3D-printed and hand-wired

Programming Languages

OpenSCAD
209 projects

Projects that are alternatives of or similar to keyboard-diy

djinn
Djinn Split Keyboard
Stars: ✭ 685 (+1145.45%)
Mutual labels:  diy, split-keyboard, ergonomic-keyboard
dometyl-keyboard
A parametric generator for designing split, concave, ergonomic keyboards written in ocaml.
Stars: ✭ 84 (+52.73%)
Mutual labels:  3d-printing, split-keyboard, ergonomic-keyboard
dactyl-deskmount
A dactyl inspired ergonomic keyboard attached to the front of my desk for a lower profile and more desk space.
Stars: ✭ 32 (-41.82%)
Mutual labels:  split-keyboard, ergonomic-keyboard
Lotus58
A 58 key split ergo linear keyboard derived from the Lily58 family
Stars: ✭ 142 (+158.18%)
Mutual labels:  split-keyboard, ergonomic-keyboard
Exomy
ExoMy - The 3D Printed Rover
Stars: ✭ 173 (+214.55%)
Mutual labels:  diy, 3d-printing
TeensyDMX
A full-featured DMX library for Teensy 3, Teensy LC, and Teensy 4. "Programmable DMX and arbitrary USB serial device emulation."
Stars: ✭ 82 (+49.09%)
Mutual labels:  teensy32, teensy-lc
Awesome Weekly Robotics
A list of projects that were or will be featured in Weekly Robotics newsletter
Stars: ✭ 255 (+363.64%)
Mutual labels:  diy, 3d-printing
Awesome Split Keyboards
A collection of ergonomic split keyboards ⌨
Stars: ✭ 2,859 (+5098.18%)
Mutual labels:  split-keyboard, ergonomic-keyboard
LipSync
An open-source mouth operated sip and puff joystick that enables people with limited hand function emulate a mouse on their computer and/or smartphone.
Stars: ✭ 27 (-50.91%)
Mutual labels:  diy, 3d-printing
mechanical-keyboard
⌨️ Resources related to my mechanical keyboard build.
Stars: ✭ 14 (-74.55%)
Mutual labels:  diy, custom-keyboard
Morpheus Stm32
A small 3D printer controller board for use with a "blue pill" STM32F1 generic board. Inspired on http://reprap.org/wiki/SinapTec
Stars: ✭ 49 (-10.91%)
Mutual labels:  diy, 3d-printing
Opensimplelidar
Open Source scanning laser rangefinder
Stars: ✭ 2,206 (+3910.91%)
Mutual labels:  diy
Reflowduino
Arduino-compatible wireless reflow oven controller ecosystem of open-source hardware
Stars: ✭ 154 (+180%)
Mutual labels:  diy
Gbridge
gBridge.io allows you to control (almost) anything with Google Assistant, by translating voice commands to MQTT messages.
Stars: ✭ 152 (+176.36%)
Mutual labels:  diy
Bbbmini
BeagleBone ArduPilot DIY Cape
Stars: ✭ 140 (+154.55%)
Mutual labels:  diy
Smart Mirror
The fairest of them all. A DIY voice controlled smart mirror with IoT integration.
Stars: ✭ 2,668 (+4750.91%)
Mutual labels:  diy
Diy Arcade
How to build your own full-size arcade machine from scratch
Stars: ✭ 188 (+241.82%)
Mutual labels:  diy
Dive Into Machine Learning
Dive into Machine Learning with Python Jupyter notebook and scikit-learn! First posted in 2016, maintained as of 2021. Pull requests welcome.
Stars: ✭ 10,810 (+19554.55%)
Mutual labels:  diy
Walter
6DOF Industrial Robot, vintage style
Stars: ✭ 113 (+105.45%)
Mutual labels:  diy
Docs
Documentation for setting up OpenAPS
Stars: ✭ 204 (+270.91%)
Mutual labels:  diy

Darknight: DIY 60% Split Keyboard

Ergonomic Design - Layout - Parts - Tools - Construction - Updates

Ergonomic Design

  • 60% keyboard for programmers, especially vim users
  • Symmetric ortholinear / matrix layout
  • Split and tentable
  • Tenting angle quickly adjustable by moving the tenting racks inwards or outwards
  • Mild contour to adapt to finger lengths, with z-staggering and cherry-profile keycaps

Layout

  • Fn key is at the home position of left thumb, which makes cursor moving keys on the right half easily accessible.
  • Ctrl and Fn keys are dual-role modifiers. When tapped, they produce Escape, Enter and Backspace instead. The only downside is that they can’t auto-repeat because they are modifiers when pressed and held. (Hint: Use Ctrl-Backspace to delete words.)
  • Left-click and right-click are at the bottom row of the left half. One can move the mouse with right hand and click on the keyboard with left hand.
  • Brackets and Backslash are at the bottom row of the right half. Single-quote is right above Enter. These changes allow the right half to have only 6 columns and mirror the left half.
  • The blue keys are the home keys of fingers at rest.

Parts

  • 6 3D-printed case pieces and 2 tenting racks
    • Front piece, back piece and chip cover for each case
    • 8 M2x16 screws and 8 M2 nuts for assembling the cases
  • 60 Gateron red switches (or any Cherry MX compatible switches), plate mounted
  • 60 Blank PBT keycaps from a 120-piece set
    • 60 O-rings for dampening
  • One Teensy 3.2 or Teensy LC as controller
  • For handwired matrix
    • 22 AWG 6-color stranded hook-up wires
    • One 0.25mm copper sheet, 6x6 inches
    • 60 1N4148 diodes
  • One USB-C gen 2 cable (with plugs cut off) for connecting halves. See issue #1.
  • One USB mini cable for connecting the keyboard to computer

Tools

  • 3D printer
  • Soldering iron
  • Tweezers
  • Wire stripper
  • Heavy duty scissors
  • Knife
  • Nails and hammer
  • Filer
  • Multimeter

Construction

Printing cases and tenting racks: 17 hours

  • Print cases: 16 hours with PLA and 12 hours with ABS
  • Print tenting racks: 2 hours with PLA and 1.5 hours with ABS
  • Print chip covers: 10 minutes

3D models in STL format as well as the OpenSCAD file producing them are in models directory. I use FlashPrint for FlashForge Creator Pro to convert STL files to X3G files before printing them from a SD card.

There are three choices of racks. rack-rigid.stl is quick to print and rigid for high tenting angle. rack-curvy.stl is good looking but not rigid. rack-blend.stl is good looking and rigid.

Installing switches and keycaps: 20 minutes

  • Install switches: 10 minutes
  • Orient switches: pins are at the top half
  • Install O-rings and keycaps: 10 minutes

Wiring diagrams

  • Use any of the digital pins except pin 13 (LED)
  • Feel free to use pins different than what are in the diagrams

Wiring switch columns: 2 hours, 1 for each split

  • Mark on stranded wire where column pins are
  • Use wire stripper to cut at each mark and 5mm to the right of the mark, i.e. two horizontal cuts 5mm apart at each mark
  • Make a vertical cut between the two horizontal cuts with a knife and remove the insulation to expose the strands
  • Split strands into two parts so a column pin can get through
  • Solder the wire to the pins

Wiring switch rows and diodes: 4 hours, 2 for each split

  • Cut 3~4mm wide stripe off copper sheet with heavy-duty scissors
  • Mark positions of row pins on the stripe
  • Drill small holes (D~=1mm) at the marks and an extra hole at the end toward the center for wiring the row to the controller
    • Use hammer and nail if no drill at hand
  • Diodes with black terminal oriented downward
    • The black terminal is inserted into a hole on the stripe and bent upward
    • The other terminal is wrapped around a row pin for at least one complete circle
  • Make sure the stripe doesn’t touch any exposed part of column wires
  • Solder diodes to row pins
  • Solder diodes to copper stripe. When solder is applied with the side (not the tip) of the iron touching the stripe, a small “flooding” area of solder creates a strong solder joint.
  • Cut off extra length of diode terminals

Testing and fixing: 20 minutes

  • Use a multimeter. Turn the dial to diode sign.
  • Red on column, black on row
  • Press the key at the column-row. Multimeter should read current.

Connecting the right matrix to controller: 2 hours

  • Avoid pin 13 which is for the built-in LED
  • Figure out how to route the wires before soldering
  • Rows are routed with fairly short wires so either solid or stranded wires work
  • Columns are routed with stranded wires for flexibility
  • The controller has its program/reset button facing down so it's accessible without opening the case

Connecting the left matrix to USB-C: 1 hour

  • Prepare USB-C cable
    • Cut the plugs off
    • Insert the cable into a few O-rings, which can act as stoppers
    • Mark the length to reach the furthest column
    • Make a round cut at the mark with a knife and remove the insulation
    • Remove the silver-colored mesh and paper wrap to expose wires
    • Observe 4 thin wires and 10 thick wires (2 from a twisted pair)
    • Solder 4 thin wires into one
  • Pin or tape USB-C cable so it doesn’t move around
  • Decide which wire for which column/row
  • Color coding helps, e.g. red USB-C wire to red column wire
  • Cut wires to proper lengths
  • Use soldering iron to remove insulation at the end of each wire
  • Wrap strands around a soldering joint and solder

Connecting left and right rows: 30 minutes

  • Prepare USB-C cable to expose wires at the other end
  • Pin or tape USB-C cable so it doesn’t move around
  • Cut wires to proper lengths
  • Use soldering iron to remove insulation at the end of each wire
  • Wire rows of the left half to rows of the right half, so logically there are 5 rows.

Connecting left columns to controller: 30 minutes

  • Ground the silver-colored mesh to GND pin of the controller. Ghost keys can pop up without this.
  • Wire columns of the left half to the controller

Uploading firmware

  • Note down which controller pin each row/column is wired to. There are 5 rows and 12 columns. Column 0 is where left shift is and column 11 is where right shift is.
  • Plug in USB mini cable to the controller and connect the keyboard to a computer.
  • Download Teensyduino which extends Arduino to support Teensy controllers.
  • Clone firmware repo on the computer.
  • Update keyboards/darknight/darknight.ino with above-noted row pins and column pins.
  • Create a symbolic link in Arduino's libraries directory to the cloned firmware directory.
  • Open darknight.ino in Arduino IDE.
  • In the IDE, change "Tools > Board" setting to be "Teensy LC" or "Teensy 3.2/3.1" depending on the controller chip, and change "Tools > USB Type" setting to "Keyboard + Mouse + Joystick".
  • Use "Sketch > Verify/Compile" to make sure the firmware compiles fine, then use "Sketch > Upload" to upload the firmare to the controller.
  • Test the new keyboard!

It happened once that pressing any two keys among Q, W, E, R and T at the same time would also produce Tab. It was fixed by swapping the wires connecting to the first row and the second row. The exact cause is still unknown but a guess is along the line of induced current.

Closing the cases: 10 minutes

  • Make sure USB mini cable and USB C cable fit in the cable hole
    • May need to enlarge the cable hole with a filer
  • Insert screws and fasten the cases with nuts

Installing tenting racks: 5 minutes

  • Cut 8mm pieces from USB-C insulation and insert rack feet into the pieces to increase friction on surface
  • Slide each case into a rack and adjust tenting angle

Updates

New build on 7/7/2019

Change of color scheme. Maybe call it WhiteKnight.

New build on 12/30/2020

What else is better than building another keyboard in these holidays! I call this one RedBaron.

Now I have three such keyboards, Darknight trapped at work due to the pandemic, WhiteKnight for working at home and RedBaron for personal use.

For this build, I just used stranded wires for the matrix. It turns out to be simpler since the wires can be routed to the controller directly.

High-angle tenting on 11/12/2021

A bridge connecting the two halves turns out to be a good solution for high-angle tenting. The bridge is simply the two tenting racks joined together, with small adjustments in size.

With a little more engineering, the entire structure can be locked by tension so it can be easily moved around.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].