]> git.armaanb.net Git - atreides.git/blob - README.org
Link to mailing list.
[atreides.git] / README.org
1 * Atreus Keyboard
2
3 The Atreus is a mechanical keyboard designed primarily to match the
4 shape of human hands and to be as portable as possible. The case
5 measures 25x11cm and lacks even a number row, relying heavily upon the
6 fn key. There is no PCB in this design, requiring [[http://wiki.geekhack.org/index.php?title=Hard-Wiring_How-To][a manual matrix
7 wiring approach]]. However, given that there are only 4 rows and 11
8 columns, the wiring process isn't as daunting as it could be.
9
10 I've seen a number of existing DIY 40% keyboard designs, but most of
11 them stagger the rows, which I find very annoying now that I've gotten
12 used to the columnar layout of the [[http://ergodox.org][Ergodox]]. In addition, many of the
13 designs I've seen waste a lot of room on the space bar, failing to
14 take into account the fact that the thumb is the strongest and most
15 versatile of the fingers. This design avoids both these problems while
16 taking a more couch-friendly single-piece approach.
17
18 [[./atreus.jpg]]
19
20 ** Kits
21
22 You can buy [[http://atreus.technomancy.us][Atreus kits]] that have all the parts you need along with
23 detailed assembly instructions from http://atreus.technomancy.us. If
24 you'd rather round up all the parts yourself, that's possible too
25 since the design is completely open source; see the bill of materials
26 below.
27
28 ** Layout
29
30 Only a handful of punctuation marks (and no digits) are available
31 unshifted, and all the modifiers are on the bottom row:
32
33  :    q     w     e     r     t       ||       y     u     i     o    p
34  :    a     s     d     f     g       ||       h     j     k     l    ;
35  :    z     x     c     v     b       ||       n     m     ,     .    /
36  :   esc   tab  super shift bksp ctrl || alt space  fn     -     '  enter
37
38 The numbers and most of the punctuation are on the fn layer with a
39 numpad-style arrangement under the right hand:
40
41  :    !     @     {     }     |       ||     pgup    7     8     9    *
42  :    #     $     (     )     `       ||     pgdn    4     5     6    +
43  :    %     ^     [     ]     ~       ||       \     1     2     3    ?
44  :   L2  insert                       ||                   .     0    =
45
46 The =L2= key switches it to the function layer, and tapping =fn= here
47 brings it back.
48
49 The firmware project includes a number of other options, including
50 colemak, dvorak, and "software dvorak" which sends keycodes assuming
51 the OS will perform the translation into dvorak. Adding new layouts or
52 changing existing ones is easy.
53
54 ** Parts
55
56 *** Switches
57
58 This layout has five modifiers and 37 non-modifiers.
59
60 I strongly prefer the feel and sound of tactile [[http://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=651][Cherry MX blue]]
61 switches for typing. However, I like having linear [[http://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=103][Cherry MX black
62 switches]] switches on the modifier keys (ctrl, alt, super, shift, and
63 fn) because the tactile effect has no benefit for keys that are held
64 down, and giving a different response helps you learn the layout more
65 quickly.
66
67 *** Diodes
68
69 In order to avoid ghosting, each switch needs a [[https://www.radioshack.com/product/index.jsp?productId=2062587][1N4148 diode]].
70
71 *** Microcontroller
72
73 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.
74
75 Be sure to get one without headers so it will fit in between the
76 bottom layer and the plate. USB micro is preferred over USB mini for
77 this reason as well.
78
79 *** Keycaps
80
81 This [[http://keyshop.pimpmykeyboard.com/product/dsa-pbt-blank-sets][DSA-shaped base set]] (spherical indentations on the key, same
82 profile for each row) from Signature Plastics has 52 1x keys plus a
83 few extras we won't use. There are two "deep dish" keys in that set
84 which you can place under your index fingers on the home row to help
85 guide your hands to the right spot without looking. However, you only
86 get a single 1.5x keycap, and the middle two thumb keys both use them,
87 so you might want to pick up an extra. You can buy a single DSA 1.5x
88 keycap from [[http://www.keycapsdirect.com/key-capsinventory.php][Signature Plastics]] as well as keys with homing bumps if
89 you prefer those to the deep dish keys for the keys under the index
90 fingers. However, note that on a board as small as the Atreus, finding
91 the home row is much easier than it is on a conventional keyboard.
92
93 ** Case
94
95 Layered laser-cut wood or acrylic. The original case (=case-mk-i.svg=)
96 is slightly less wide and has a minor asymmetry with the screws on the
97 bottom side. The [[http://geekhack.org/index.php?topic%3D54759.msg1304117#msg1304117][mark II case]] (in the =case= directory) is implemented
98 programmatically in openscad, though dxf files are available as a
99 convenience, which can be converted to SVG or EPS for laser cutting
100 with Inkscape. Mark II features 8 screw holes and a kind of "stair
101 step" design around the top and bottom of the key clusters; mark I is
102 pictured below.
103
104 [[./layers.jpg]]
105
106 The bottom and top covers (black in the photo) should be cut in 3mm.
107 The switch plate (frosted in the photo) can be cut in 4.5 or
108 3mm. The spacer should be cut in 5 or 6mm; it needs to be at least as
109 thick as the USB cable you connect to the microcontroller. I
110 recommend using a USB cable with as thin a connector as you can
111 find or sanding the connector down to the required thickness.
112
113 TODO: describe finishing process for wood.
114
115 ** Firmware
116
117 The [[https://gitlab.com/technomancy/atreus-firmware/blob/master/readme.md][custom Atreus firmware]] is a small C project which
118 implements matrix scanning and debouncing with user-customizeable
119 layers and macro functions. Another option is the much more complex
120 TMK firmware. My [[https://github.com/technomancy/tmk_keyboard/tree/atreus][fork of the tmk firmware]] has support for the Atreus
121 layout. You should be able to change into the =keyboard/atreus=
122 directory and run =make KEYMAP=atreus= (or whichever variant you want)
123 to produce a qwerty =atreus.hex= file. You will probably want to
124 create your own layout once you've gotten a chance to try it and see
125 what works for you.
126
127 In either case you would use the =.hex= file you just produced with
128 =avrdude= or the [[http://www.pjrc.com/teensy/loader.html][teensy loader]] to upload to the microcontroller.
129
130 Once the firmware is loaded and the keyboard is assembled, pressing
131 the onboard reset button to update new versions of the firmware is
132 pretty cumbersome; instead use the "reset" button on the layout, which
133 has the same effect.
134
135 ** Bill of Materials
136
137 - 50 MX Blue switches: $29.00 (mechanicalkeyboards.com)
138 - 50 diodes: $3.45 (radio shack, should be able to buy in-person)
139 - Base blank DSA keycap set: $23.00 (signatureplastics.com)
140 - Teensy 2: $16, $3 shipping (pjrc.com)
141 - Acrylic materials: ~$16, varies by source
142 - Acrylic laser cutting: 7.5 minutes on a 100W Epilog laser; varies by source
143 - USB Mini-B cable: $5, various sources
144
145 Recommended but optional:
146
147 - 5 MX Black switches: $8.50 OR 5 MX Red switches: $10.00
148 - additional 1.5x DSA keycap: $1 plus $8 shipping
149
150 The base keycap set only has one 1.5x key, which is used for the inner
151 thumb keys. You can use a 1x key for one of them, but it looks kind of
152 tacky, so I recommend getting a second 1.5x keycap separately.
153
154 *** Other Tools
155
156 You'll need a soldering iron, solder, a glue gun, a multimeter, hookup
157 wire, and wire strippers. You'll also need eight M3 machine screws
158 with nuts; the length of the screws depends on the thickness of the
159 acrylic you use. You can add rubber feet to the bottom to prevent the
160 board from sliding around when placed on a desk.
161
162 ** Assembly
163
164 See the [[http://atreus.technomancy.us/assembly.pdf][assembly instructions]] PDF
165
166 ** Inspiration
167
168 These fine projects all provided inspiration for various aspects of
169 the Atreus, as well as the folks on the =#geekhack= freenode channel.
170
171 - [[http://ergodox.org][Ergodox]]
172 - [[http://deskthority.net/workshop-f7/onehand-20-keyboard-t6617.html][OneHand]]
173 - [[http://blog.fsck.com/2013/12/better-and-better-keyboards.html][keyboard.io]]
174 - [[http://geekhack.org/index.php?topic=48718][ErgoT]]
175
176 ** Builds
177
178 If you've built an Atreus, please let us know (pull request or
179 otherwise) and get your name and link added here:
180
181 - [[http://technomancy.us/173][Phil Hagelberg]]
182 - [[http://blog.tarn-vedra.de/2014/04/reproducing-keyboard-science_1707.html][Moritz Ulrich]]
183 - [[http://geekhack.org/index.php?topic=57007.0][Constantine]]
184 - [[http://blog.mattgauger.com/blog/2014/08/19/atreus-my-custom-keyboard/][Matt Gauger]]
185 - [[http://aaronash.com.au/posts/atreus-keyboard/][Aaron Ash]]
186
187 There's also a [[http://librelist.com/browser/atreus/][mailing list]] for people who have built or ordered an
188 Atreus or are interested in doing so. To join, simply email
189 =atreus@librelist.com= with a subject of "join" and reply to the
190 confirmation.
191
192 ** Orestes
193
194 A new [[https://www.flickr.com/photos/technomancy/14654421878][experimental build]] uses the [[http://pjrc.com/store/teensy31.html][Teensy 3]] microcontroller and
195 [[https://github.com/technomancy/orestes/tree/teensy3][Forth-based]] firmware, but this is not yet suitable for general-purpose use.
196
197 ** License
198
199 Copyright © 2014 Phil Hagelberg and contributors
200
201 Released under the [[https://www.gnu.org/licenses/gpl.html][GNU GPL version 3]]