]> git.armaanb.net Git - atreides.git/blobdiff - README.org
Update position of backslash in readme.
[atreides.git] / README.org
index d0b5b3374097634de531088e308da25208019e8c..14653e79b5545bdfc7da441024f11706a17cfc2c 100644 (file)
@@ -2,10 +2,9 @@
 
 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.
+measures 26x12cm and lacks even a number row, relying heavily upon the
+=fn= key. There is a circuit board for this design, but it's also
+possible to [[http://wiki.geekhack.org/index.php?title=Hard-Wiring_How-To][manually wire the matrix]].
 
 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
@@ -17,6 +16,9 @@ taking a more couch-friendly single-piece approach.
 
 [[./atreus.jpg]]
 
+See [[./changelog.md][the changelog]] for the various revisions made to the design since
+its initial release.
+
 ** Kits
 
 You can buy [[http://atreus.technomancy.us][Atreus kits]] that have all the parts you need along with
@@ -40,13 +42,18 @@ numpad-style arrangement under the right hand:
 
  :    !     @     {     }     |       ||     pgup    7     8     9    *
  :    #     $     (     )     `       ||     pgdn    4     5     6    +
- :    %     ^     [     ]     ~       ||       \     1     2     3    ?
- :   L2  insert                       ||                   .     0    =
+ :    %     ^     [     ]     ~       ||       &     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
+brings it back to the first layer.
 
-The =L2= key switches it to the function layer, and tapping =fn= here
-brings it back.
+ :  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
 
-The firmware project includes a number of other options, including
+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.
@@ -64,57 +71,86 @@ 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 without the noise.
+
 *** Diodes
 
-In order to avoid ghosting, each switch needs a [[https://www.radioshack.com/product/index.jsp?productId=2062587][1N4148 diode]].
+In order to avoid ghosting, each switch needs a diode. The [[https://www.radioshack.com/product/index.jsp?productId=2062587][1N4148]] is a
+readily-available choice, but nearly any signal diode would work.
 
 *** Microcontroller
 
-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.
+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]].
 
-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.
+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
+USB mini for this reason as well.
 
 *** Keycaps
 
-This [[http://keyshop.pimpmykeyboard.com/product/dsa-pbt-blank-sets][DSA-shaped base set]] (spherical indentations on the key, same
+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.
+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.
+
+** Circuit Board
+
+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]]
+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
+make changes to the procedurally-generated portions of the board.
+
+Unfortunately most PCB fabricators require a minimum order of 10 or
+so, making this impractical for one-offs. The PCB is not required, so
+for one-off boards it's usually more sensible to stick with a [[http://atreus.technomancy.us/assembly-hand-wired.pdf][hand-wired build]] instead.
 
 ** 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= 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
+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 is
 pictured below.
 
-[[./layers.jpg]]
+The =3mm.eps= file contains the top plate, bottom plate, and switch
+plate. These can all be cut on 3mm acrylic or wood. The =spacer.eps=
+file should be cut on something thicker; between 4.5mm and 6mm is
+recommended. The spacer needs to be at least as thick as the connector
+of the USB cable you're using.
+
+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.
+
+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.
 
-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.
+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.
 
-TODO: describe finishing process for wood.
+Wood cases should be finished with sandpaper and finishing oil/wax.
 
 ** Firmware
 
-The [[https://gitlab.com/technomancy/atreus-firmware/blob/master/readme.md][custom Atreus firmware]] is a small C project which
+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
@@ -125,12 +161,13 @@ 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.
+=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, 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.
+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.
 
 ** Bill of Materials
 
@@ -138,13 +175,13 @@ has the same effect.
 - 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
+- Case materials: ~$16, varies by source
+- Case laser cutting: 7.5 minutes on a 100W Epilog laser; varies by source
+- USB micro cable: $5, various sources
 
 Recommended but optional:
 
-- 5 MX Black switches: $8.50 OR 5 MX Red switches: $10.00
+- 5 MX Red or MX Black switches: $8.50 - $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
@@ -153,15 +190,24 @@ 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.
+You'll need a soldering iron, solder, and a wire cutter. A multimeter
+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.
+
+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 [[http://atreus.technomancy.us/assembly.pdf][assembly instructions]] PDF.
+
+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
 
@@ -175,22 +221,20 @@ the Atreus, as well as the folks on the =#geekhack= freenode channel.
 
 ** Builds
 
-If you've built an Atreus, please let us know (pull request or
-otherwise) and get your name and link added here:
+If you've built an Atreus, please add your name to [[https://github.com/technomancy/atreus/wiki/BuildLogs][the build logs wiki]].
 
-- [[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]]
+There's also a [[http://atreus.technomancy.us/list][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.
 
 ** Orestes
 
 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.
+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 and contributors
+Copyright © 2014-2015 Phil Hagelberg and contributors
 
 Released under the [[https://www.gnu.org/licenses/gpl.html][GNU GPL version 3]]