X-Git-Url: https://git.armaanb.net/?a=blobdiff_plain;f=README.org;h=f2b0065e88ac5ec1a04767abafe80433ca48c8cf;hb=0cb327b58e79c168a1f9240aa3a6be6d9c72065e;hp=3a489499b771990b2b4c6101847bcbfa5d05aaf9;hpb=e84153586bd34a7d4fc08258e16e731e7550d711;p=atreides.git diff --git a/README.org b/README.org index 3a48949..f2b0065 100644 --- a/README.org +++ b/README.org @@ -1,50 +1,55 @@ * Atreus Keyboard -The [[http://ergodox.org][Ergodox]] keyboard is an absolutely fantastic design; I use it every -day at my office. However, I like to work away from the office -frequently, and I thought I might try my hand at designing something a -little more portable. The great thing about assembling my Ergodox is -that it taught be there's really nothing magical about it; it's just a -piece of circuitry with a bunch of switches read by a microcontroller -that speaks the USB HID interface. - -The Atreus is meant to be complementary to the Ergodox as something -smaller, cheaper, and more travel-friendly. The case measures 25x11cm -and lacks even a number row, relying heavily upon the fn key. There is -no PCB in this design, requiring [[http://deskthority.net/workshop-f7/brownfox-step-by-step-t6050.html][a manual matrix wiring approach]]. -However, given that there are only 4 rows and 11 columns, this isn't -as daunting as it could be. It also allows for quicker iteration on -design changes since alterations only require cutting a new case. +The Atreus is a mechanical keyboard designed primarily to match the +shape of human hands and to be as portable as possible. The case +measures 25x11cm and lacks even a number row, relying heavily upon the +fn key. There is no PCB in this design, requiring [[http://wiki.geekhack.org/index.php?title=Hard-Wiring_How-To][a manual matrix +wiring approach]]. However, given that there are only 4 rows and 11 +columns, the wiring process isn't as daunting as it could be. I've seen a number of existing DIY 40% keyboard designs, but most of them stagger the rows, which I find very annoying now that I've gotten -used to the columnar layout of the Ergodox. In addition, many of the +used to the columnar layout of the [[http://ergodox.org][Ergodox]]. In addition, many of the designs I've seen waste a lot of room on the space bar, failing to take into account the fact that the thumb is the strongest and most -versatile of the fingers. This design avoids both these problems. +versatile of the fingers. This design avoids both these problems while +taking a more couch-friendly single-piece approach. -[[atreus.jpg]] +[[./atreus.jpg]] + +** Kits + +You can buy [[http://atreus.technomancy.us][Atreus kits]] that have all the parts you need along with +detailed assembly instructions from http://atreus.technomancy.us. If +you'd rather round up all the parts yourself, that's possible too +since the design is completely open source; see the bill of materials +below. ** Layout -Only a handful of punctuation marks (and no digits) available -unshifted, and all the modifiers are on the bottom row. +Only a handful of punctuation marks (and no digits) are available +unshifted, and all the modifiers are on the bottom row: : q w e r t || y u i o p : a s d f g || h j k l ; : z x c v b || n m , . / - : shift esc tab fn bksp ctrl || alt space enter pgup pgdn super + : esc tab super shift bksp ctrl || alt space fn - ' enter + +The numbers and most of the punctuation are on the fn layer with a +numpad-style arrangement under the right hand: -The numbers and most punctuation are on the fn layer: + : ! @ { } | || pgup 7 8 9 * + : # $ ( ) ` || pgdn 4 5 6 + + : % ^ [ ] ~ || \ 1 2 3 ? + : L2 insert || . 0 = - : 1 2 3 4 5 || 6 7 8 9 0 - : - + ( ) = || / [ ] { } - : ! @ # $ % || ^ & * ? ~ - : || ` _ \ +The =L2= key switches it to the function layer, and tapping =fn= here +brings it back. -I type in Dvorak but prefer to do the remapping in software rather than -hardware so I don't have to change layouts when I switch to my -laptop's internal keyboard. +The firmware project includes a number of other options, including +colemak, dvorak, and "software dvorak" which sends keycodes assuming +the OS will perform the translation into dvorak. Adding new layouts or +changing existing ones is easy. ** Parts @@ -52,83 +57,146 @@ laptop's internal keyboard. This layout has five modifiers and 37 non-modifiers. -I strongly prefer the feel and sound of tactile [[http://www.digikey.com/product-detail/en/MX1A-E1NW/CH197-ND/20180][Cherry MX blue]] -switches for typing. However, I like having linear switches on the -modifier keys (ctrl, alt, super, shift, and fn). [[http://www.wasdkeyboards.com/index.php/products/keyboard-parts/cherry-mx-red-keyswitch-mx1a-l1nn-linear.html][Cherry MX red -switches]] are nice and light but are expensive and difficult to -find. [[http://www.digikey.com/product-detail/en/MX1A-11NW/CH160-ND/91134][Cherry MX black switches]] are cheaper and easier to source, but -may be too heavy, especially for keys under pinky fingers. - -One trick is take the springs from some of your blue switches and -trade them with the springs from your black switches. The blacks then -become the equivalent of reds, and the blues become MX green switches, -which are a heavier variant of blues. These are typically used for -space bars on boards that otherwise use blues. They could be suitable -for non-modifier thumb keys. - -**** Recommended switch types for bottom row -- shift: red -- super: red -- tab: blue -- bksp: green -- ctrl: black -- fn: black -- space: green -- alt: black -- enter: blue -- esc: blue -- page up: blue -- page down: blue - -If you don't bother with the spring replacement step mentioned above, -use blues instead of greens and blacks instead of reds. Or just use -whatever switches you want; it's your board! +I strongly prefer the feel and sound of tactile [[http://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=651][Cherry MX blue]] +switches for typing. However, I like having linear [[http://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=103][Cherry MX black +switches]] switches on the modifier keys (ctrl, alt, super, shift, and +fn) because the tactile effect has no benefit for keys that are held +down, and giving a different response helps you learn the layout more +quickly. *** Diodes -In order to avoid ghosting, each switch needs a [[http://www.digikey.com/product-detail/en/1N4148TR/1N4148FSTR-ND/458811][diode]]. +In order to avoid ghosting, each switch needs a [[https://www.radioshack.com/product/index.jsp?productId=2062587][1N4148 diode]]. *** Microcontroller -I'll be using a Teensy 3 since I have one on hand, but an [[https://www.adafruit.com/products/1315][Arduino -Micro]] or [[http://www.pjrc.com/teensy/index.html][Teensy 2]] would work too. +A [[http://www.pjrc.com/teensy/index.html][Teensy 2]], [[http://www.pololu.com/product/3101][Pololu A-star micro]], or [[http://arduino.cc/en/Main/ArduinoBoardMicro][Arduino Micro]] is recommended. + +Be sure to get one without headers so it will fit in between the +bottom layer and the plate. USB micro is preferred over USB mini for +this reason as well. *** Keycaps -This [[http://keyshop.pimpmykeyboard.com/product/dsa-pbt-blank-sets][DSA-shaped base set]] has 52 1x keys plus a few extras we won't use. +This [[http://keyshop.pimpmykeyboard.com/products/full-keysets/dsa-blank-sets-1][DSA-shaped base set]] (spherical indentations on the key, same +profile for each row) from Signature Plastics has 52 1x keys plus a +few extras we won't use. There are two "deep dish" keys in that set +which you can place under your index fingers on the home row to help +guide your hands to the right spot without looking. However, you only +get a single 1.5x keycap, and the middle two thumb keys both use them, +so you might want to pick up an extra. You can buy a single DSA 1.5x +keycap from [[http://www.keycapsdirect.com/key-capsinventory.php][Signature Plastics]] as well as keys with homing bumps if +you prefer those to the deep dish keys for the keys under the index +fingers. However, note that on a board as small as the Atreus, finding +the home row is much easier than it is on a conventional keyboard. ** Case -Layered laser-cut acrylic; see [[file:case.svg][case.svg]]. +Layered laser-cut wood or acrylic. The original case (=case-mk-i.svg=) +is slightly less wide and has a minor asymmetry with the screws on the +bottom side. The [[http://geekhack.org/index.php?topic%3D54759.msg1304117#msg1304117][mark II case]] (in the =case= directory) is implemented +programmatically in openscad, though dxf files are available as a +convenience, which can be converted to SVG or EPS for laser cutting +with Inkscape. Mark II features 8 screw holes and a kind of "stair +step" design around the top and bottom of the key clusters; mark I is +pictured below. + +[[./layers.jpg]] -[[layers.jpg][layers.jpg]] +The bottom and top covers (black in the photo) should be cut in 3mm. +The switch plate (frosted in the photo) can be cut in 4.5 or +3mm. The spacer should be cut in 5 or 6mm; it needs to be at least as +thick as the USB cable you connect to the microcontroller. I +recommend using a USB cable with as thin a connector as you can +find or sanding the connector down to the required thickness. -The first two shapes in the case file are the top and bottom covers; -these should be cut on 3mm acrylic (black in the photo). The third is -the spacer that goes under the fourth, which is the plate on which the -switches are mounted. These should be cut in 4.5mm. +TODO: describe finishing process for wood. ** Firmware -TODO: Uhhh... +The [[https://github.com/technomancy/atreus-firmware/][custom Atreus firmware]] is a small C project which +implements matrix scanning and debouncing with user-customizeable +layers and macro functions. Another option is the much more complex +TMK firmware. My [[https://github.com/technomancy/tmk_keyboard/tree/atreus][fork of the tmk firmware]] has support for the Atreus +layout. You should be able to change into the =keyboard/atreus= +directory and run =make KEYMAP=atreus= (or whichever variant you want) +to produce a qwerty =atreus.hex= file. You will probably want to +create your own layout once you've gotten a chance to try it and see +what works for you. + +In either case you would use the =.hex= file you just produced with +=avrdude= or the [[http://www.pjrc.com/teensy/loader.html][teensy loader]] to upload to the microcontroller. + +Once the firmware is loaded and the keyboard is assembled, pressing +the onboard reset button to update new versions of the firmware is +pretty cumbersome; instead use the "reset" button on the layout, which +has the same effect. + +** Bill of Materials + +- 50 MX Blue switches: $29.00 (mechanicalkeyboards.com) +- 50 diodes: $3.45 (radio shack, should be able to buy in-person) +- Base blank DSA keycap set: $23.00 (signatureplastics.com) +- Teensy 2: $16, $3 shipping (pjrc.com) +- Case materials: ~$16, varies by source +- Case laser cutting: 7.5 minutes on a 100W Epilog laser; varies by source +- USB Mini-B cable: $5, various sources + +Recommended but optional: + +- 5 MX Black switches: $8.50 OR 5 MX Red switches: $10.00 +- additional 1.5x DSA keycap: $1 plus $8 shipping + +The base keycap set only has one 1.5x key, which is used for the inner +thumb keys. You can use a 1x key for one of them, but it looks kind of +tacky, so I recommend getting a second 1.5x keycap separately. + +*** Other Tools + +You'll need a soldering iron, solder, a glue gun, a multimeter, hookup +wire, and wire strippers. You'll also need eight M3 machine screws +with nuts; the length of the screws depends on the thickness of the +acrylic you use. You can add rubber feet to the bottom to prevent the +board from sliding around when placed on a desk. + +** Assembly + +See the [[http://atreus.technomancy.us/assembly.pdf][assembly instructions]] PDF + +** Inspiration + +These fine projects all provided inspiration for various aspects of +the Atreus, as well as the folks on the =#geekhack= freenode channel. + +- [[http://ergodox.org][Ergodox]] +- [[http://deskthority.net/workshop-f7/onehand-20-keyboard-t6617.html][OneHand]] +- [[http://blog.fsck.com/2013/12/better-and-better-keyboards.html][keyboard.io]] +- [[http://geekhack.org/index.php?topic=48718][ErgoT]] + +** Builds + +If you've built an Atreus, please let us know (pull request or +otherwise) and get your name and link added here: -** BOM +- [[http://technomancy.us/173][Phil Hagelberg]] +- [[http://blog.tarn-vedra.de/2014/04/reproducing-keyboard-science_1707.html][Moritz Ulrich]] +- [[http://geekhack.org/index.php?topic=57007.0][Constantine]] +- [[http://blog.mattgauger.com/blog/2014/08/19/atreus-my-custom-keyboard/][Matt Gauger]] +- [[http://aaronash.com.au/posts/atreus-keyboard/][Aaron Ash]] +- [[http://hackedpotatoes.com/2014/11/atreus-my-first-mechanical-keyboard/][Jesse Roberts]] -- 37 MX Blues @ $1.00 -- 5 MX Blacks @ 0.80 -- 42 diodes @ $0.052 -- Base keycap set: $18.00 -- Teensy 2: $16 -- Acrylic materials: $11 (cheaper if transparent acrylic is used) -- Acrylic laser cutting: $18 at $3/min +There's also a [[http://librelist.com/browser/atreus/][mailing list]] for people who have built or ordered an +Atreus or are interested in doing so. To join, simply email +=atreus@librelist.com= with a subject of "join" and reply to the +confirmation. -=(+ 37 (* 5 0.8) (* 42 0.052) 18 16 11 18)= -> 106.18 plus shipping and cutting +** Orestes -- Digikey (switches and diodes) shipping: $5.32 in the US -- Signature Plastics (keycaps) shipping: ?? +A new [[https://www.flickr.com/photos/technomancy/14654421878][experimental build]] uses the [[http://pjrc.com/store/teensy31.html][Teensy 3]] microcontroller and +ARM [[https://github.com/technomancy/orestes/tree/teensy3][Forth-based]] firmware, but this is not yet suitable for general-purpose use. ** License -Copyright © 2014 Phil Hagelberg +Copyright © 2014 Phil Hagelberg and contributors Released under the [[https://www.gnu.org/licenses/gpl.html][GNU GPL version 3]]