DXF added, hole sizes, moved images
39
README.md
|
|
@ -20,6 +20,8 @@ for starting this all off.
|
||||||
2. [Other notes](#other-notes)
|
2. [Other notes](#other-notes)
|
||||||
4. [KiCad files](#kicad-files)
|
4. [KiCad files](#kicad-files)
|
||||||
2. [Hardware (case/plate)](#hardware-caseplate)
|
2. [Hardware (case/plate)](#hardware-caseplate)
|
||||||
|
1. [Hole sizes](#hole-sizes)
|
||||||
|
2. [Warning about Realforce](#warning-about-realforce)
|
||||||
3. [Firmware](#firmware)
|
3. [Firmware](#firmware)
|
||||||
1. [Basic read procedure](#basic-read-procedure)
|
1. [Basic read procedure](#basic-read-procedure)
|
||||||
2. [Normalisation](#normalisation)
|
2. [Normalisation](#normalisation)
|
||||||
|
|
@ -49,7 +51,7 @@ range 0 ~ 6 pF (roughly). The strobe lines are just digital signals from a
|
||||||
digital out pin of the microcontroller. The read lines are dealt with in the
|
digital out pin of the microcontroller. The read lines are dealt with in the
|
||||||
following schematic:
|
following schematic:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
Each read line is pulled to ground with an individual 22k resistor, and fed
|
Each read line is pulled to ground with an individual 22k resistor, and fed
|
||||||
into an analog multiplexer. After selecting a read line on the multiplexer, the
|
into an analog multiplexer. After selecting a read line on the multiplexer, the
|
||||||
|
|
@ -136,19 +138,44 @@ voltage mound, making reading unpredictable.
|
||||||
See `kicad` folder, it contains an example switch footprint and schematic
|
See `kicad` folder, it contains an example switch footprint and schematic
|
||||||
library file.
|
library file.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
# Hardware (case/plate)
|
# Hardware (case/plate)
|
||||||
|
|
||||||
The stackup is fairly simple, and is determined by the housing dimensions:
|
The stackup is fairly simple, the spacer size is determined by the housing
|
||||||
|
dimensions:
|
||||||
|
|
||||||
```
|
```
|
||||||
1.2 mm thick steel plate
|
1.2 mm thick steel plate
|
||||||
3/16 inch spacers
|
3/16 inch spacers
|
||||||
PCB
|
PCB
|
||||||
```
|
```
|
||||||
TODO: hole sizes drawings, warn about Realforce control key rotation, dealing
|
|
||||||
with clones, dome cutting.
|
## Hole sizes
|
||||||
|
|
||||||
|
Single unit wide key housings require a hole of size 14.6 mm x 14 mm, they are
|
||||||
|
wider horizontally. The corners can be chamfered 1 mm along each edge, as Topre
|
||||||
|
does.
|
||||||
|
|
||||||
|
Double unit key housings (backspace, shift keys, ANSI enter key) should be 32.4
|
||||||
|
mm x 14 mm. I made mine 32.6 mm but they are slightly too large. The bottom
|
||||||
|
edge can have chamfers in the corners, like Topre does: around 3 mm along the
|
||||||
|
bottom edge with a 30 degree angle.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
See example-split-hhkb.dxf for example sizes (The double unit keys are too wide
|
||||||
|
though, as I mention above).
|
||||||
|
|
||||||
|
## Warning about Realforce
|
||||||
|
|
||||||
|
Realforce keyboards (I don't know if this is true of all of them, but certainly
|
||||||
|
the ANSI 55g 87u that I have) have a strange bottom left control key. The stem
|
||||||
|
is rotated by 90 degrees, and so a housing which can hold this keycap must be
|
||||||
|
rotated as well. Since they are not square this is a problem! If you want to
|
||||||
|
support moving the control key around (swapping with alt, for example) both
|
||||||
|
should be made 14.6 x 14.6 mm. The PCB will hold the housing when the keyboard
|
||||||
|
is built.
|
||||||
|
|
||||||
# Firmware
|
# Firmware
|
||||||
|
|
||||||
|
|
@ -236,7 +263,7 @@ uint8_t normalise(strobe, read, uint8_t value):
|
||||||
|
|
||||||
Repeated readings from the ADC for a single key might look something like this:
|
Repeated readings from the ADC for a single key might look something like this:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
This shows a full key press and release as the ADC reading crosses above the
|
This shows a full key press and release as the ADC reading crosses above the
|
||||||
actuation depth, and later below the release depth. We are interested in
|
actuation depth, and later below the release depth. We are interested in
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 109 KiB After Width: | Height: | Size: 109 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 198 KiB After Width: | Height: | Size: 198 KiB |
|
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 37 KiB |