]> git.armaanb.net Git - atreides.git/blobdiff - README.org
Link to Atreus kit selling site in readme.
[atreides.git] / README.org
index c8e0874e61e0a8a680f8a2b55024d77582afb8ab..182527b40403fe1b5cb83db91fea65f8ad45a79d 100644 (file)
@@ -23,15 +23,23 @@ take into account the fact that the thumb is the strongest and most
 versatile of the fingers. This design avoids both these problems while
 taking a more couch-friendly single-piece approach.
 
-[[atreus.jpg]]
+[[./atreus.jpg]]
 
 Having so few keys, this board is pretty idiosyncratic. It works very
 well for the kind of work that I do, but it probably wouldn't be a
 good fit for you if you do a lot of numerical data entry or make heavy
 use of function keys, arrows, or home/end. If you primarily use
-programs with good key rebinding functionality, you're probably in
-good shape. For instance, =enter= is in a bit of an awkward position,
-but many programs treat =control-m= as the same.
+[[https://github.com/technomancy/dotfiles/commit/856a638350a26b0cdb0bcc82042ed77a3fa4bdea][programs with good key rebinding functionality]], you're probably in
+good shape. For instance, =enter= and =tab= are in a bit of an awkward
+position, but many programs treat =control-m= and =control-i= as
+=enter= and =tab= respectively.
+
+** 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; see
+the bill of materials below.
 
 ** Layout
 
@@ -61,8 +69,8 @@ An alternate layout has the numbers in a more traditional row across the top:
 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. However, the =hwdv= key switches it to
-hardware dvorak mode, which is useful for attaching to computers that
-may not have software dvorak set up. The =paste= key sends
+hardware Dvorak mode, which is useful for attaching to computers that
+may not have software Dvorak set up. The =paste= key sends
 shift+insert, while the =reset= button activates the bootloader,
 allowing easy reprogramming without opening the case.
 
@@ -76,20 +84,11 @@ after the fact.
 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 switches on the
-modifier keys (ctrl, alt, super, shift, and fn). [[http://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=102][Cherry MX red switches]]
-are nice and light but are expensive and difficult to
-find. [[http://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=103][Cherry MX black switches]] are cheaper and easier to source, but
-may be too heavy, especially for keys under pinky fingers.
-
-One trick is take the springs from some of your blue switches and
-trade them with the springs from your black switches. The blacks then
-become the equivalent of reds, and the blues become MX green switches,
-which are a heavier variant of blues. These are typically used for
-space bars on boards that otherwise use blues. They could be suitable
-for non-modifier thumb keys like backspace, space, and enter. However,
-the recommended layout above has all its modifiers under the thumbs,
-so this is not an issue.
+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
 
@@ -97,8 +96,8 @@ In order to avoid ghosting, each switch needs a [[https://www.radioshack.com/pro
 
 *** Microcontroller
 
-An [[http://www.digikey.com/product-search/en/programmers-development-systems/evaluation-boards-embedded-mcu-dsp/2621773?k=arduino%20micro][Arduino Micro]] or [[http://www.pjrc.com/teensy/index.html][Teensy 2]] is recommended. Be sure to get one
-without headers so it will fit in between the bottom layer and the plate.
+A [[http://www.pjrc.com/teensy/index.html][Teensy 2]] is recommended. Be sure to get one without headers so it
+will fit in between the bottom layer and the plate.
 
 *** Keycaps
 
@@ -111,154 +110,77 @@ 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]].)
 
-If you want labels on your keycaps, you can get a full labelled
-standard 104-key set from [[http://elitekeyboards.com/products.php?sub=access#cherrymxkeys][Elite Keyboards]] as well. However, the
-modifiers in that set are larger than what the Atreus uses, so you'll
-have to place some mis-labelled caps on the bottom row.
-
 ** Case
 
-Layered laser-cut acrylic; see [[file:case.svg][case.svg]].
+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][layers.jpg]]
+[[./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 micro USB cable you
-connect to the microcontroller. The switch plate could be thinner,
-but not under 3mm.
+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.5mm or
+3mm. The spacer should be cut in 6mm; it 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.
 
-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.
 
 ** 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 cd 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. Use the =.hex= file with the [[http://www.pjrc.com/teensy/loader.html][teensy loader]] or Arduino tools to
-upload to the microcontroller.
+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 produced with 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 lower left
-of the layout which has the same effect.
-
-I'm working on an experimental Forth-based firmware in the [[https://github.com/technomancy/orestes][Orestes]]
-project, but that project is still in its infancy at the time of this
-writing.
+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: $18.00 (signatureplastics.com)
-- Teensy 2: $16 (pjrc.com or mechanicalkeyboards.com)
-- Acrylic materials: $11
-- Acrylic laser cutting: 7.5 at $3/min (varies by thickness of acrylic)
-
-- Labelled 104 keycap set: $20.00 (optional, replaces DSA set above)
-- 5 MX Black switches: $8.50 (optional)
-- 5 MX Red switches: $10.00 (optional)
-- additional 1.5x DSA keycap: $1 (optional)
+- 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
 
-=(+ 29 3.45 18 16 11 (* 3 7.5))= $99.95 plus tax/shipping
+Recommended but optional:
 
-- mechanicalkeyboards.com: free shipping in the US
-- Signature Plastics (keycaps) US shipping: $8.00
-- PJRC (teensy) shipping: $3.03
+- 5 MX Black switches: $8.50 OR 5 MX Red switches: $10.00
+- additional 1.5x DSA keycap: $1 plus $8 shipping
 
-*** Cost-saving Options
-
-There are a few ways to lower the cost further.  Using [[http://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=482][Matias]] key
-switches could save you a fair bit if you go in on a 90-pack with
-someone else, but they're a little harder to find keycaps for; the MX
-caps won't work on them. Using wood for the case will reduce both the
-materials cost as well as the amount of time needed to cut the case.
-
-Replacing the colored acrylic with transparent might also save a few
-dollars. You could also use thinner acrylic for the switch plate too;
-I cut mine in 4.5mm. A thinner spacer is inadvisable; even with 6mm
-it's pretty tight.
-
-Another common trick is scavenging keycaps and switches from used
-keyboards; something with Cherry or Alps switches should work. This
-can be time-consuming though.
+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, wire,
-wire strippers, and a USB mini cable. You'll also need seven 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 thet
-bottom to prevent the board from sliding around when placed on a desk.
+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
 
-Once you have all the parts, the first thing to do is glue the
-switches to the switch plate since there's no PCB to hold them in
-place. Be aware that the screw holes unfortunately are not
-symmetrical, so before inserting the switches it's important to ensure
-that the plate is right-side-up. Use a drop of hot glue on the top and
-bottom of each switch to affix it in place.
-
-[[wires.jpg]]
-
-Once the switches are in place, the matrix must be created. I
-recommend getting red wire for the (postitive) rows and black for the
-(negative) columns. The rows need eight wires with the insulation
-exposed at intervals matching the spacing of the switches; see the
-above photo for details. You could also just use many short stripped
-segments of wire instead of a contiguous piece.
-
-[[thumb-diagram.jpg]]
-
-Most of the row wires will need four segments of insulation, but
-you'll need two with five for the rows with the inner thumb
-keys. Physically the inner thumb keys look like two additional
-columns, but logically they are treated as if they're in the same
-column with the left one in row 3 and the right one in row 4.
-
-[[matrix.jpg]]
-
-The exposed sections of row wire should be connected to the higher of
-the pins on the switch using a diode. Be aware that diodes are
-directional! The band around the diode should point to the top of the
-board. Take care with the upper row that you don't let the wire go too
-close to the top edge of the board; avoid getting in the way of the
-spacer layer. Once the rows are wired, the remaining (negative) pin of
-each switch should be wired into the negative pin of the switch above
-and below it with black wire. This should be slightly easier since no
-diode is necessary. The photo above shows the completed matrix for one
-side. Test each row and column as you go with a multimeter. You should
-be able to get continuity from row to column when the corresponding
-switch is activated.
-
-After the matrix has been wired on both sides, the next step is to
-connect the microcontroller. The TMK firmware has the rows in pins D0,
-D1, D2, and D3 of the microcontroller. You'll need to connect the rows
-from both the left and right sides into the proper pin. There are more
-columns than rows, so I used ribbon cable to bring the column
-connections back to the microcontroller from the outside in. The
-columns go to pins F0, F1, E6, C7, C6, B6, D4, B1, B0, B5, and
-B4. It's important to realize that when you flip over the board
-in order to solder it, you have to flip over the schematic in your
-mind too. If you count your columns from the left, you'll get them
-backwards. (Which I actually did for the first half.)
-
-[[controller.jpg]]
-
-Once you've wired one side of the microcontroller in, it would be a
-good time to test it. You'll need to compile and upload as per the
-"Firmware" section above. At this point you should be reading real
-keycodes from the half of the keyboard that you've wired. Once you've
-confirmed that's working, continue with the other half. Then screw the
-other layers in place and you're all set!
+See the [[http://atreus.technomancy.us/assembly.pdf][assembly instructions]] PDF
 
 ** Inspiration
 
@@ -278,9 +200,15 @@ otherwise) and get your name and link added here:
 - [[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]]
+
+** 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.
 
 ** 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]]