You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

103 lines
5.3 KiB

# -*- fill-column:78 -*-
#+TITLE: Build log for the space-cadet
[[./space-cadet-logo.png]]
* Design principles
- non-split keyboard with a centered “thumb cluster” and side ~Fn~ keys.
- Heavy usage of dual role modifiers (I currently employ a combination of ~xcape~ and a patched ~evdev~ driver to make it work also on other keebs).
- Symmetry: e.g. capslock is enter; both capslock and enter are dual ~CTRL~,
together with the spacebar
- Compose key accessibility
- ISO-Shift accessibility (quick math | greek | LaTeX)
- Space Cadet aesthetics
** KLE
[http://www.keyboard-layout-editor.com/#/gists/8cf0cf258ae6fa748e577d7ed8d71517]
[[./watch-the-gap.png]]
* Sourcing the material
** Switches
I ordered 100 tactile gray from [http://www.doyustudio.com] and 100 super-heavy (150g) SPRiTs springs from [http://www.switchtop.com]
I will use regular tactile gray for rows R1-R4, while the modded switches will be used for R5
** Stabilizers
It was tricky to find Plate mounted stabs for the spacebar; I ordered a 60% set from
[http://www.switchtop.com] and some OEMs from Vincent on AliExpress; he had 3u plate-mounted stabs!
Hopefully they fit and I won't need to do any fiddling
** Case
The case is a regular cheap acrylic case from KBDfans; it is 5 deg and I plan to 3dprint some feet to make
it level
** Plate
The plate was ordered through [http://www.lasergist.com]; ordered on [2017-11-06 Mon], shipped on [2017-11-08 Wed] and
received on [2017-11-29 Wed]. The plate was received in the mail a bit warped; a bit of manipulation to
straighten it up made it usable.
** Controller
Teensy 2.0 ordered from [http://www.pjrc.com] on [2017-11-21 Tue], shipped on [2017-11-21 Tue], arrived on
[2017-12-04 Mon]
** Cabling
Re-purposing an ethernet cable (I guess it came with the Rogers router)
** Keycaps
Round 5/6 leftovers from ~7bit~
Last batch arrived on [2017-12-04 Mon]
*** Order #1176
Order-ID |Description |Price|Qt|Pcs| Total
HONEYG/SHIFT225/BLUE|SHIFT (row 4, 2.25u) | 3.00| 1| 1| 3.00
HONEYG/SHIFT275/BLUE|SHIFT (row 4, 2.75u) | 4.00| 1| 1| 4.00
HONEYG/R1U100/SPH |blank key | 0.50|13| 13| 6.50
HONEYG/R2U100/SPH |blank key (same as row4) | 0.50|22| 22| 11.00
HONEYG/R3U100/SPH |blank key | 0.50| 9| 9| 4.50
HONEYG/R3U100D/SPH |blank key (deep dish) | 2.00| 2| 2| 4.00
HONEYG/R1U100/BLUE |blank key | 0.50| 1| 1| 0.50
HONEYG/R3U125/BLUE |blank key | 1.00|10| 10| 10.00
HONEYG/R2U150/BLUE |blank key | 2.00| 3| 3| 6.00
HONEYG/R3U175/BLUE |blank key | 2.00| 2| 2| 4.00
HONEYG/R3U225/BLUE |blank key | 2.00| 1| 1| 2.00
HONEYB/SPACE625/BLUE|Space (6.25u; blue) | 5.00| 1| 1| 5.00
HONEYB/R1U200/BLUE |blank key (blue) | 4.00| 1| 1| 4.00
HONEYG/R2U100/BLUE |blank key (same as row4) | 0.50| 1| 1| 0.50
HONEYG/R3U100/BLUE |blank key | 0.50| 6| 6| 3.00
HONEYG/R3U150/BLUE |blank key | 1.00| 2| 2| 2.00
HONEYB/SHIFT125/BLUE|SHIFT (row 4, 1.25u) | 3.00| 2| 2| 6.00
HONEYB/SPACE300/BLUE|Space (3u; blue) | 8.00| 1| 1| 8.00
HONEYB/R3U100D/BLUE |blank key (blue; deep dish)| 3.00| 2| 2| 6.00
* Programming the controller
** Tools for flashing
There is a CLI interface available at
[https://github.com/PaulStoffregen/teensy_loader_cli] and a GUI at
[https://www.pjrc.com/teensy/loader_linux.html]; unclear if the sources are
available.
*** Binary blob
the binary blob found at [https://www.pjrc.com/teensy/loader_linux.html]
seems to work. There is a disclaimer that says that the toolchain for
gentoo does not work; it appears to work in fact.
** Emerging the cross-compilation
Following the guide at [https://wiki.gentoo.org/wiki/Arduino#Install_the_toolchain_using_crossdev]
We need to set up a cross-compilation environment; this can be done by emerging the package ~sys-devel/crossdev~, which seems to be just a wrapper script to emerge the right things
Let us see if this actually works; after emerging one supposedly has to run
#+BEGIN_SRC sh
crossdev -s4 --stable --portage --verbose --target avr
#+END_SRC
and everything should be emerged…
It FAILS, claiming that the avr-gcc cannot create executables; the workaround described in
[https://bugs.gentoo.org/147155#c14] works
#+BEGIN_SRC sh
ln -s /usr/x86_64-pc-linux-gnu/avr/lib/ldscripts /usr/avr/lib/ldscripts
#+END_SRC
** Customizing qmk-firmware
Clone the repository [https://github.com/wilderjds/qmk_firmware]
*** Issues
It turns out that crossdev needs to have its own overlay; we follow the recipies at
[https://wiki.gentoo.org/wiki/Custom_repository#Crossdev]
#+BEGIN_SRC sh
mkdir -p /usr/local/portage-crossdev/{profiles,metadata};
echo 'crossdev' > /usr/local/portage-crossdev/profiles/repo_name
echo 'masters = gentoo' > /usr/local/portage-crossdev/metadata/layout.conf
chown -R portage:portage /usr/local/portage-crossdev
#+END_SRC
* Build
** DONE Modding the springs in 10 switches
** TODO assembling stabilizers (to lube or not to lube?)
** TODO fixing switches to the plate
** TODO Testing diodes
** TODO tape them together