]> git.armaanb.net Git - atreides.git/blobdiff - README.org
deck things.
[atreides.git] / README.org
index ef19386c722bf0b36da3bdc81b8fa764f66db1fc..28a3a7b9680a0789a67b0f33b01305e331f27109 100644 (file)
@@ -8,7 +8,7 @@ possible to [[http://wiki.geekhack.org/index.php?title=Hard-Wiring_How-To][manua
 
 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 [[http://ergodox.org][Ergodox]]. In addition, many of the
+used to the columnar layout of the [[https://geekhack.org/index.php?topic=22780.0][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 while
@@ -40,9 +40,9 @@ unshifted, and all the modifiers are on the bottom row:
 The numbers and most of the punctuation are on the fn layer with a
 numpad-style arrangement under the right hand:
 
- :    !     @     {     }     |       ||     pgup    7     8     9    *
- :    #     $     (     )     `       ||     pgdn    4     5     6    +
- :    %     ^     [     ]     ~       ||       \     1     2     3    ?
+ :    !    @     up     {    }        ||     pgup    7     8     9    *
+ :    #  left   down  right  $        ||     pgdn    4     5     6    +
+ :    [    ]      (     )    &        ||       `     1     2     3    \
  :   L2  insert super shift bksp ctrl || alt space   fn    .     0    =
 
 The =L2= key switches it to the function layer, and tapping =L0= here
@@ -50,13 +50,11 @@ brings it back to the first layer.
 
  :  insert home    ↑    end  pgup     ||       ↑     F7    F8    F9   F10
  :    del   ←      ↓     →   pgdn     ||       ↓     F4    F5    F6   F11
- :                                    ||             F1    F2    F3   F12
- :              super shift bksp ctrl || alt space   L0             reset
+ :                           reset    ||             F1    F2    F3   F12
+ :              super shift bksp ctrl || alt space   L0             
 
-The [[https://github.com/technomancy/atreus-firmware][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.
+The [[https://atreus.technomancy.us/download][firmware]] includes a number of other options, including
+colemak and dvorak. [[https://atreus.technomancy.us/qmk][Customizing your layout]] is easy to do with the QMK configurator interface.
 
 ** Parts
 
@@ -64,16 +62,20 @@ changing existing ones is easy.
 
 This layout has five modifiers and 37 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
+I strongly prefer the feel and sound of tactile [[https://deskthority.net/wiki/Matias_switch#Click][Matias Clicky]]
+switches for typing. However, I like having [[https://deskthority.net/wiki/Matias_switch#Linear][Matias Linear
 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.
 
 For users that need to operate in sound-sensitive environments like
-open offices or libraries, [[http://deskthority.net/wiki/Cherry_MX_Clear][Cherry MX Clear]] switches are a popular
-choice since they still offer tactility withut the noise.
+open offices or libraries,
+[[http://deskthority.net/wiki/Matias_switch#Quiet_click][Matias Quiet
+Click]] switches are a popular choice since they still offer tactility
+without the noise. Other users prefer switches in the
+[[http://deskthority.net/wiki/Cherry_MX][Cherry MX]] family, which use
+different keycaps and switch plates but still work fine.
 
 *** Diodes
 
@@ -83,7 +85,7 @@ readily-available choice, but nearly any signal diode would work.
 *** Microcontroller
 
 The circuit board design uses a [[http://www.pololu.com/product/3101][Pololu A-star micro]]. Hand-wired boards
-can also use a [[http://www.pjrc.com/teensy/index.html][Teensy 2]] or [[http://arduino.cc/en/Main/ArduinoBoardMicro][Arduino Pro Micro]].
+can also use a [[http://arduino.cc/en/Main/ArduinoBoardMicro][Arduino Pro Micro]].
 
 Be sure to get a microcontroller without headers so it will fit in
 between the bottom layer and the plate. USB micro is preferred over
@@ -91,18 +93,20 @@ USB mini for this reason as well.
 
 *** Keycaps
 
-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.
-
-Many keycap sets (not the one linked above) are "sculpted", meaning
-that keys that go in different rows have a different shape. While you
-can use these for an Atreus, it's unlikely you'll find a set with the
-correct number for each row, so it's more wasteful.
+Caps for Matias switches are included in the official kits. Sculpted
+caps are also available [[http://matias.ca/order/#keycaps][from Matias]] or by harvesting from old Alps
+keyboards. It's recommended that you use unlabeled keys, because due
+to the different sizes and orientations of certain keys (backspace,
+shift, enter, etc) many of the labels will be incorrect if present.
+
+Cherry switches have more options. This
+[[http://pimpmykeyboard.com/dsa-pbt-abs-blank-keycap-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.
 
 ** Circuit Board
 
@@ -110,7 +114,7 @@ The =atreus.rkt= program calculates switch and diode positions based
 on row/column counts, spacing, and rotation factors, and emits a
 =atreus.kicad_pcb= file. The board outline and traces are done by hand
 and are stored in the =header.rktd= and =traces.rktd= files
-respectively. The =atreus.kicad_pcb= file can be imported into [[http://kicad.org][Kicad]]
+respectively. The =atreus.kicad_pcb= file can be imported into [[http://kicad-pcb.org][Kicad]]
 which can export Gerber files suitable for fabrication. A copy of the
 Kicad PCB file is included in the repository if you don't want to
 recompile it using Racket. Recompiling is only required if you want to
@@ -122,78 +126,74 @@ for one-off boards it's usually more sensible to stick with a [[http://atreus.te
 
 ** Case
 
-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/dxf= directory) is
-available as a DFX file that you can convert to SVG or EPS for a laser
-cutter using 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.
+Layered laser-cut wood or acrylic. The [[http://geekhack.org/index.php?topic%3D54759.msg1304117#msg1304117][mark II case]] (EPS files in the
+=case/= directory) features 8 screw holes and a kind of "stair step"
+design around the top and bottom of the key clusters; mark I has
+straight lines.
 
-TODO: the logo is missing from some of the case files and needs to be added back in.
+The files =alps-top-plate-3mm.eps=, =alps-switch-plate-3mm.eps=, and
+=bottom-plate-3mm.eps= are to be cut in 3mm acrylic or wood. The
+=spacer.eps= file can be cut on something thicker; between 4.5mm and
+6mm is recommended. Alternatively you can cut it in 3mm twice. The
+spacer needs to be at least as thick as the connector of the USB cable
+you're using. If you are using Cherry switches, you should use
+=cherry-3mm.eps= for the top, switch, and bottom plates instead, but
+the spacer is the same.
 
 There is also a programmatically-implemented version of the case
 written in OpenSCAD; it is more flexible (you can tweak the number of
 rows/cols, etc and recompile) but it doesn't match the canonical case
 exactly; in particular the screw holes are placed differently.
 
-[[./layers.jpg]]
-
-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 6mm, especially the
-spacer, which needs to be at least as thick as the mini USB cable you
-connect to the microcontroller. I recommend using a mini USB cable
-with as thin a connector as you can find or sanding the connector
-down to the required thickness. The switch plate could be thinner, but
-not under 3mm.
+The original case (=case-mk-i.svg=) design is also included; it is
+slightly less wide and has a minor asymmetry with the screws on the
+bottom side.
 
 On a 100W Epilog laser, the 3mm layers cut in about a minute and a
 half. I did a run with 6mm acrylic of the other layers which took
 nearly 6 minutes.
 
-Wood cases should be finished with sandpaper and finishding oil/wax.
+Wood cases should be finished with sandpaper and lacquer, shellac, or polyurethane.
 
 ** Firmware
 
-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. =make
-upload= should do what you need.
-
-Once the firmware is loaded and the keyboard is assembled, activating
-the hardware reset to upload new versions of the firmware is pretty
-cumbersome; instead use the "reset" button on the layout, which has
-the same effect.
+The [[https://qmk.fm][QMK firmware]] is
+recommended. [[https://atreus.technomancy.us/download][Standard
+layouts]] are available precompiled, or you can
+[[https://atreus.technomancy.us/qmk][design your own]] in the
+configurator.
+
+There is also the older
+[[https://github.com/technomancy/atreus-firmware][atreus-firmware]]
+custom codebase which works but has fewer features. It is recommended
+mostly for learning purposes since the code is much simpler and easier
+to understand than QMK. Previously TMK was the recommended choice for
+firmware, but QMK has much better documentation and ease of use and is
+now recommended.
 
 ** 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
+If you don't want to get [[https://atreus.technomancy.us][the kit]] you can source parts yourself. (You
+can also order a partial kit if you want to customize some of the
+parts.) Using Cherry switches is cheapest unless you can find cheap
+Alps-mount keycaps:
+
+- 50 Matias or Cherry switches from mechanicalkeyboards.com
+- 50 diodes from radio shack, ebay, or whatever
+- 40 1x, 2 1.5x Keycaps from signatureplastics.com OR full keycap set from matias.ca
+- A-star micro from pololu.com
+- Case materials from various sources
 - Case laser cutting: 7.5 minutes on a 100W Epilog laser; varies by source
-- USB micro cable: $5, various sources
+- USB micro cable, get anywhere
 
 Recommended but optional:
 
-- 5 MX Red or MX Black switches: $8.50 - $10.00
-- additional 1.5x DSA keycap: $1 plus $8 shipping
+- 5 linear Matias or Cherry switches
 
-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.
+The base keycap set from Signature Plastics 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
 
@@ -202,24 +202,26 @@ can come in handy for testing the connections but is optional. 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. You'll also need sandpaper and finishing oil for the
-wooden cases unless you have bought a kit.
+placed on a desk. You'll also need sandpaper and lacquer for the
+wooden case.
 
 If you are building a hand-wired board you will also need a glue gun,
 hookup wire, and wire strippers.
 
 ** Assembly
 
-See the [[http://atreus.technomancy.us/assembly.pdf][assembly instructions]] PDF.
+See the [[https://atreus.technomancy.us/assembly.pdf][assembly instructions]] PDF.
+
+Hand-wired boards will want the [[https://atreus.technomancy.us/assembly-hand-wired.pdf][previous edition of the assembly instructions]].
 
-Hand-wired boards will want the [[http://atreus.technomancy.us/assembly-hand-wired.pdf][previous edition of the assembly instructions]].
+The LaTeX source to the assembly instructions is in the =assembly= directory.
 
 ** 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]]
+- [[https://geekhack.org/index.php?topic=22780.0][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]]
@@ -228,18 +230,16 @@ the Atreus, as well as the folks on the =#geekhack= freenode channel.
 
 If you've built an Atreus, please add your name to [[https://github.com/technomancy/atreus/wiki/BuildLogs][the build logs wiki]].
 
-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.
+There's also a [[https://atreus.technomancy.us/list][mailing list]] for people who have built or ordered an
+Atreus or are interested in doing so.
 
 ** Orestes
 
-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.
+An [[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 really suitable for general-purpose use; it's more of a curiosity.
 
 ** License
 
-Copyright © 2014 Phil Hagelberg and contributors
+Copyright © 2014-2018 Phil Hagelberg and contributors
 
 Released under the [[https://www.gnu.org/licenses/gpl.html][GNU GPL version 3]]