Skip to content

cjakma/wood-case-keyboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

99 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

look0 look1 look2

Brief

This is a hobby project, to make a copy of HHKB made of wood, but not limited to it. It is fully customizable, parameterized toolchain to generate a keyboard case.

Features

  • Made of wood
  • Nice curved shape
  • Customizable layout and shape (compatible with https://www.keyboard-layout-editor.com/)
  • Open bottom (it minimizes overall height and you can show off your beautiful PCB!)
  • Compatible with most PCBs built with SMD components(?)

BOM

Name Quantities Price Note
36x130x330mm walnut block 1 2,080 JPY https://shop.woodworks-marutoku.com/products/muku/item/m003.php
Cherry mx brown switches 60 4,640 JPY
PCB 1 2,908 JPY DIY https://github.com/jinhwanlazy/hhkb-pcb
Keycaps 1 50 USD Special order from https://www.maxkeyboard.com/

Dependancies

Build

Open model/common.sacd and modify parameters. You have to set block_size properly even if you don't want to change anything. See Customization section for details.

Following command will generate all 3D and 2D models you need, in stl and dxf format, under out directory. Once you excecute make successfuly, you can open model/preview.scad and see how it will look like.

git clone https://github.com/jinhwanlazy/wood-case-keyboard
cd wood-case-keyboard
make

In OSX, you have to specify full path of openscad.

make SCAD=/Applications/OpenSCAD.app/Contents/MacOS/OpenSCAD

Customization

Layout

Layout definitions are located under layout directory. They are compatible with https://www.keyboard-layout-editor.com/. You can feed one of them like this.

make clean
make LAYOUT=layout/plank.layout

layouts

Parameters

preparing...

Instruction

I used a Shapeoko1 for milling , and PyCam to generate toolpaths. And it was painfull job. I have spent a lot of time to properly calibrate machine but still encountered number of hardware problems(slipping bits, burning wood, missing steps, etc). I had to manually edit gcodes generated by PyCam. sometimes I forgot to do it, and it came back with disasters. Most of them are covered with sanding process, but some were unreversible, especially, you can see a hole at bottom right corner of the case in the first picture. I had to make monkeypatchs everytime something goes wrong. I highly recommend you to use commercial grade toolchain or just talk with manufacturer. I'll leave here very brief steps I have followed, rather than full instruction.

  1. I started with 330x130x34mm walnut block.
  2. Print back_holder.stl and tilt_holder.stl with 3D printer.
  3. Fix wood block on CNC mill, and carve it with base.stl. I had to split it two pieces, due to limitaion of build space. ins2
  4. Fix a pair of tilt_holder with screw at bottom of the wood block. ins3
  5. Place wood block again, and cut it with top_cutout.dxf. Cut depth is lip_depthmm from the highest point of the woodblock. It is defined in common.scad. The size of the model is arbitrary. Ignore the contour. You have to cutout only pockets of the model. The origin of the model is set to bottom leftmost key position. ins4
  6. Cut with plate.dxf. Again, ignore contour, cutout pockets. Cut down 6mm from the surface of previous cut. ins5
  7. Take off the block and fix it with back_holder, then cut it with bottom_cutout.dxf. Cut down until the thickness of top becomes 5mm. ins6 ins7
  8. Take off the result.
  9. Make a hole at back, so that USB connector can show up. I did it by hand with dremel. ins8
  10. Sand and finish it with oil stain and varnish.

Caveats

  • The bottom surface is not flat. I started with flat wood block, but it distorted itself while milling.
  • Open bottom may not a good idea in a long term. You always have to worry about conductive things on your desk.
  • Layout support is quite limited at this point. It can parse only subset of keyboard-layout-editor's syntax. Result maybe ugly with layouts other than 60% board.
  • There seems to be errors in base.stl model. They are automatically fixed in most tools but it can be problametic in some cases.
  • You have to source PCB yourself unless you like HHKB layout.
  • Note that the result on the pictures became smaller than 3D model. I had to cut it little more to hide my mistakes.
  • There are some different types of 6u spacebar. I hardcoded one of them in model/plate.scad. You have to manually modify it if you want something else.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published