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