]> git.armaanb.net Git - atreides.git/blobdiff - README.org
Link to mailing list.
[atreides.git] / README.org
index 4741a5fc60edb26d13d1f26cf5a5678ef28de63e..b7ccc98b94e34202ecab294ab70886af1dfabba7 100644 (file)
 * 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 10 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.
-
-I've seen a number of existing DIY 40% keyboard designs, but all of
+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, all 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.
 
-[[preview.png]]
+[[./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     ,     .    /
+ :   esc   tab  super shift bksp ctrl || alt space  fn     -     '  enter
 
- :    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  tab  super ctrl  bksp  || space  alt  enter  esc  fn
+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
- :    !     @     #     $    %    ||   ^     &     *     (    )
- :    _     -     =     +    /    ||   ?     {     }     [    ]
- :          ~                \    ||   `         pgup   pgdn
+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
 
 *** Switches
 
-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.
+This layout has five modifiers and 37 non-modifiers.
 
-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 difficult to find. Cherry black switches are cheaper and
-easier to source, but may be too heavy, especially for keys under
-pinky fingers.
-
-This layout has five modifiers and 35 non-modifiers.
+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/product/dsa-pbt-blank-sets][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]]. 2mm for the bottom and top
-layers, 6mm for the others.
+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]]
+
+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.
+
+TODO: describe finishing process for wood.
 
 ** Firmware
 
-TODO: Uhhh...
+The [[https://gitlab.com/technomancy/atreus-firmware/blob/master/readme.md][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)
+- Acrylic materials: ~$16, varies by source
+- Acrylic 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]]
 
-- 35 MX Blues @ $1.00
-- 5 MX Reds @ $2.00
-- 40 diodes @ $0.052
-- Base keycap set: $18.00
-- Teensy 2: $16
+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.
 
-=(+ 35 10 (* 40 0.052) 18 16)= -> $81.08 plus shipping and acrylic
+** Orestes
 
-- Digikey (blues and diodes) shipping: $5.32 in the US
-- WASD (red switches) shipping: ??
-- Signature Plastics (keycaps) shipping: ??
-- Acrylic materials: ??
-- Acrylic laser cutting: ??
+A new [[https://www.flickr.com/photos/technomancy/14654421878][experimental build]] uses the [[http://pjrc.com/store/teensy31.html][Teensy 3]] microcontroller and
+[[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]]