Fixed multiple problems with OSI interface

- off-by-one connections to keyboard connector
- wrong demultiplexing of select signals
- 2OE on 74LS240 was not inverted, resulting in wrong circuit.
- use pre-jumpered row diodes.
- fixed off-grid errors on schematic
This commit is contained in:
Dave 2023-11-11 17:51:33 -06:00
parent ee94c8f531
commit 506db36ed8
10 changed files with 58883 additions and 26993 deletions

View File

@ -0,0 +1,74 @@
(footprint "Key_MX_DIY" (version 20211014) (generator pcbnew)
(layer "F.Cu")
(tedit 60186279)
(attr through_hole)
(fp_text reference "SW_**" (at -5.7912 -8.6106) (layer "F.SilkS") hide
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 635addc9-1212-4dd8-9025-d46a1478049c)
)
(fp_text value "Key_MX" (at -5.334 8.6614) (layer "F.SilkS") hide
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 62fcada6-d502-422d-ace5-51c40c4111e6)
)
(fp_line (start -0.889 7.239) (end 0.635 7.239) (layer "F.SilkS") (width 0.1016) (tstamp 27d3534d-16f5-4ccf-9b16-2c5732c06b4d))
(fp_line (start 0.127 6.858) (end 0.127 7.62) (layer "F.SilkS") (width 0.12) (tstamp a988bd6f-305a-49e4-a300-383210fe668e))
(fp_poly (pts
(xy 0.127 7.239)
(xy -0.381 7.493)
(xy -0.381 6.985)
) (layer "F.SilkS") (width 0.1) (fill solid) (tstamp 8d7c4863-decc-41fb-bc0f-c15564084732))
(fp_line (start -7.6962 7.874) (end -7.6962 -9.652) (layer "F.CrtYd") (width 0.12) (tstamp 1fe7f185-5c1e-4d8f-8a18-abb08d1a1e13))
(fp_line (start -7.6962 -9.652) (end 7.6962 -9.652) (layer "F.CrtYd") (width 0.12) (tstamp 6a78f426-b0f1-4a10-8b9d-203792afdc98))
(fp_line (start 7.6962 7.874) (end -7.6962 7.874) (layer "F.CrtYd") (width 0.12) (tstamp ad0afc42-584d-444a-a5d4-943137df2635))
(fp_line (start 7.6962 -9.652) (end 7.6962 7.874) (layer "F.CrtYd") (width 0.12) (tstamp cb063ba2-ba75-4d81-b6d1-01cb2c49d8e0))
(pad "" np_thru_hole circle (at 0 0.1016) (size 3.9878 3.9878) (drill 3.9878) (layers *.Cu *.Mask)
(solder_mask_margin 0.0762) (tstamp 880b494c-ee53-4f2b-8304-722863728cc3))
(pad "" np_thru_hole circle (at 5.08 0.1016) (size 1.7018 1.7018) (drill 1.7018) (layers *.Cu *.Mask)
(solder_mask_margin 0.0762) (tstamp acbb9c7e-a35c-43a0-a03c-5ae34b790b3c))
(pad "" np_thru_hole circle (at -5.08 0.1016) (size 1.7018 1.7018) (drill 1.7018) (layers *.Cu *.Mask)
(solder_mask_margin 0.0762) (tstamp e2074221-7a62-47e7-bcd1-2b33b1dec304))
(pad "1" thru_hole custom (at 0 -4.1021) (size 2.2352 2.2352) (drill 1.397) (layers *.Cu *.Mask)
(options (clearance outline) (anchor circle))
(primitives
(gr_line (start 0.1016 -0.0381) (end 1.3716 -0.0381) (width 0.2))
(gr_line (start 1.3716 -0.0381) (end 2.54 -0.8763) (width 0.2))
(gr_line (start 0 -2.8321) (end 0 0) (width 0.2))
(gr_line (start -1.397 -4.6355) (end 0 -2.8321) (width 0.2))
(gr_line (start 1.1684 -4.6355) (end -1.397 -4.6355) (width 0.2))
) (tstamp 0b082f28-afa4-4577-beca-640eeac5c49e))
(pad "1" thru_hole circle (at -1.3716 -8.7376 180) (size 1.74 1.74) (drill 1.19) (layers *.Cu *.Mask) (tstamp 99708be6-f333-4f21-8be5-7127f6ccd79c))
(pad "1" thru_hole circle (at 2.54 -4.9784) (size 2.2352 2.2352) (drill 1.5748) (layers *.Cu *.Mask) (tstamp d3fbc779-09ec-46c9-8185-2a56ff83e138))
(pad "1" thru_hole circle (at 1.1684 -8.7376 180) (size 1.74 1.74) (drill 1.19) (layers *.Cu *.Mask) (tstamp f86c79bf-77ad-4f8c-a9b7-8ca94bfc8f71))
(pad "2" thru_hole circle (at 0 3.8989) (size 1.651 1.651) (drill 1.397) (layers *.Cu *.Mask) (tstamp 3624f8ff-2425-4b82-a6fc-b0ddd7bfdf00))
(pad "2" thru_hole custom (at -3.81 -2.4384) (size 2.2352 2.2352) (drill 1.5748) (layers *.Cu *.Mask)
(options (clearance outline) (anchor circle))
(primitives
(gr_line (start 0 0) (end -0.0254 -6.3246) (width 0.2))
(gr_line (start -0.0254 -6.3246) (end -2.6416 -6.2992) (width 0.2))
(gr_line (start 1.143 1.2192) (end 0 0) (width 0.2))
(gr_line (start 1.1176 3.6322) (end 1.143 1.2192) (width 0.2))
(gr_line (start 3.8354 6.4008) (end 1.1176 3.6322) (width 0.2))
) (tstamp 43d16884-4b85-467f-a465-e8dd4ccd8dea))
(pad "2" thru_hole circle (at -6.4516 -8.7376 180) (size 1.74 1.74) (drill 1.19) (layers *.Cu *.Mask) (tstamp 8214e30f-4d6f-43d5-9e73-8e0c97659ab7))
(pad "2" thru_hole circle (at -3.9116 -8.7376 180) (size 1.74 1.74) (drill 1.19) (layers *.Cu *.Mask) (tstamp ee26d9ba-1842-4ede-9654-ad445edfaba0))
(pad "3" thru_hole custom (at 1.27 5.1816) (size 1.27 1.27) (drill 1.0668) (layers *.Cu *.Mask)
(options (clearance outline) (anchor circle))
(primitives
(gr_line (start 0 0) (end 1.4224 -1.2446) (width 0.2))
(gr_line (start 1.4224 -1.2446) (end 1.4224 -8.1534) (width 0.2))
(gr_line (start 1.4224 -8.1534) (end 3.048 -8.1534) (width 0.2))
(gr_line (start 3.048 -8.1534) (end 3.048 -12.7) (width 0.2))
(gr_line (start 3.048 -12.7) (end 2.4384 -13.9192) (width 0.2))
) (tstamp 5d7bfcfa-2c97-4dd7-ae44-67b45a5f8d95))
(pad "3" thru_hole circle (at 3.7084 -8.7376 180) (size 1.74 1.74) (drill 1.19) (layers *.Cu *.Mask) (tstamp 6094d3d6-f35d-4866-9236-9f3101638c33))
(pad "4" thru_hole custom (at -1.27 5.1816) (size 1.27 1.27) (drill 1.0668) (layers *.Cu *.Mask)
(options (clearance outline) (anchor circle))
(primitives
(gr_line (start 0 0) (end 0 0.9652) (width 0.2))
(gr_line (start 0 0.9652) (end 4.6736 0.9652) (width 0.2))
(gr_line (start 4.6736 0.9652) (end 4.6228 -7.6454) (width 0.2))
(gr_line (start 4.6228 -7.6454) (end 7.5184 -7.6454) (width 0.2))
(gr_line (start 7.5184 -7.6454) (end 7.5184 -13.9192) (width 0.2))
) (tstamp 4950c0a2-1f71-4d4a-ba69-985f703a991e))
(pad "4" thru_hole circle (at 6.2484 -8.7376 180) (size 1.74 1.74) (drill 1.19) (layers *.Cu *.Mask) (tstamp 9ae9aa26-ec22-48ae-b5f6-3ff2d7c07b90))
)

View File

@ -0,0 +1,29 @@
(module TIL311 (layer F.Cu) (tedit 587952A2)
(fp_text reference REF** (at -9.92 0 90) (layer F.SilkS)
(effects (font (size 1.2 1.2) (thickness 0.15)))
)
(fp_text value TIL311 (at 0 0) (layer F.Fab)
(effects (font (size 1.2 1.2) (thickness 0.15)))
)
(fp_line (start 8.763 -5.334) (end 8.763 -0.762) (layer F.SilkS) (width 0.15))
(fp_line (start 8.763 0.762) (end 8.763 5.334) (layer F.SilkS) (width 0.15))
(fp_arc (start 9.525 0) (end 8.763 0.762) (angle 90) (layer F.SilkS) (width 0.15))
(fp_line (start -8.763 3.175) (end -8.763 5.334) (layer F.SilkS) (width 0.15))
(fp_line (start -8.763 -1.905) (end -8.763 1.905) (layer F.SilkS) (width 0.15))
(fp_line (start -8.763 -5.334) (end -8.763 -3.175) (layer F.SilkS) (width 0.15))
(fp_arc (start -9.398 2.54) (end -8.763 1.905) (angle 90) (layer F.SilkS) (width 0.15))
(fp_arc (start -9.398 -2.54) (end -8.763 -3.175) (angle 90) (layer F.SilkS) (width 0.15))
(fp_line (start -8.72 5.309999) (end 8.72 5.31) (layer F.SilkS) (width 0.15))
(fp_line (start 8.72 -5.309999) (end -8.72 -5.31) (layer F.SilkS) (width 0.15))
(pad 14 thru_hole oval (at -7.62 -3.81) (size 1.2 2) (drill 0.8) (layers *.Cu *.Mask))
(pad 1 thru_hole oval (at -7.62 3.81) (size 1.2 2) (drill 0.8) (layers *.Cu *.Mask))
(pad 13 thru_hole oval (at -5.08 -3.81) (size 1.2 2) (drill 0.8) (layers *.Cu *.Mask))
(pad 2 thru_hole oval (at -5.08 3.81) (size 1.2 2) (drill 0.8) (layers *.Cu *.Mask))
(pad 12 thru_hole oval (at -2.54 -3.81) (size 1.2 2) (drill 0.8) (layers *.Cu *.Mask))
(pad 3 thru_hole oval (at -2.54 3.81) (size 1.2 2) (drill 0.8) (layers *.Cu *.Mask))
(pad 4 thru_hole oval (at 0 3.81) (size 1.2 2) (drill 0.8) (layers *.Cu *.Mask))
(pad 10 thru_hole oval (at 2.54 -3.81) (size 1.2 2) (drill 0.8) (layers *.Cu *.Mask))
(pad 5 thru_hole oval (at 2.54 3.81) (size 1.2 2) (drill 0.8) (layers *.Cu *.Mask))
(pad 8 thru_hole oval (at 7.62 -3.81) (size 1.2 2) (drill 0.8) (layers *.Cu *.Mask))
(pad 7 thru_hole oval (at 7.62 3.81) (size 1.2 2) (drill 0.8) (layers *.Cu *.Mask))
)

View File

@ -0,0 +1,82 @@
(footprint "diode-combined-DIY" (version 20211014) (generator pcbnew)
(layer "F.Cu")
(tedit 5F23BF4D)
(descr "Diode, DO-35_SOD27 series, Axial, Horizontal, pin pitch=7.62mm, , length*diameter=4*2mm^2, , http://www.diodes.com/_files/packages/DO-35.pdf")
(tags "Diode DO-35_SOD27 series Axial Horizontal pin pitch 7.62mm length 4mm diameter 2mm")
(attr smd)
(fp_text reference "REF**" (at 1.3462 3.9742) (layer "B.SilkS")
(effects (font (size 1 1) (thickness 0.15)) (justify mirror))
(tstamp 9a5031ed-ec12-4b1a-ae77-88564238f6fa)
)
(fp_text value "D_DO-35_SOD27_P7.62mm_Horizontal" (at -2.921 -16.4474) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp a3d628b6-e450-4e14-a382-ea42b01e5e46)
)
(fp_text user "${REFERENCE}" (at -1.8288 3.8862) (layer "F.SilkS")
(effects (font (size 0.8 0.8) (thickness 0.12)))
(tstamp 91433c11-a5d3-4c05-b727-fdf95e7fa55a)
)
(fp_line (start 3.4544 0.889) (end 4.064 0) (layer "F.Cu") (width 0.2) (tstamp 02b92bb8-7e53-41a2-b05f-a65905b81c9b))
(fp_line (start 1 0.95) (end 3.4544 0.889) (layer "F.Cu") (width 0.2) (tstamp 5bc5c3fb-5dbf-4870-88b0-362cabea70c3))
(fp_line (start -2.516 0) (end -1.866 0) (layer "B.SilkS") (width 0.12) (tstamp 2ebfa4c0-52f6-477d-84ae-fde44362e12d))
(fp_line (start 3.024 0) (end 2.374 0) (layer "B.SilkS") (width 0.12) (tstamp 319a4a95-c418-4326-a8b7-8a6c7430ffaf))
(fp_line (start 2.374 -1.12) (end 2.374 1.12) (layer "B.SilkS") (width 0.12) (tstamp 57f9526e-4c99-4072-97b8-066d0a57bbfa))
(fp_line (start -1.146 1.12) (end -1.146 -1.12) (layer "B.SilkS") (width 0.12) (tstamp 65d199a4-3f39-4027-92d8-8b96a11565c3))
(fp_line (start -1.266 1.12) (end -1.266 -1.12) (layer "B.SilkS") (width 0.12) (tstamp 9cfee364-0a36-4168-9a03-9e2b8aa1532c))
(fp_line (start -1.866 -1.12) (end 2.374 -1.12) (layer "B.SilkS") (width 0.12) (tstamp acd118ef-5003-4a76-b509-9118820b4c3a))
(fp_line (start -1.866 1.12) (end -1.866 -1.12) (layer "B.SilkS") (width 0.12) (tstamp b46bc59c-2358-4b59-a25d-fbb3cb16df2e))
(fp_line (start 2.374 1.12) (end -1.866 1.12) (layer "B.SilkS") (width 0.12) (tstamp f31b7a91-9d17-405c-9333-5c2c7b64a125))
(fp_line (start -1.026 1.12) (end -1.026 -1.12) (layer "B.SilkS") (width 0.12) (tstamp ffc7539d-4080-44cf-b011-f3b2023c7bdd))
(fp_line (start -0.76 -1.58) (end -0.76 -0.65) (layer "F.SilkS") (width 0.12) (tstamp 400aa8b9-525e-4b74-8431-08f160c18c9a))
(fp_line (start -0.76 1.58) (end 1.4 1.58) (layer "F.SilkS") (width 0.12) (tstamp 7dc4b7e6-40cd-4d0c-af62-f4afd387d198))
(fp_line (start -0.76 1.58) (end -0.76 0.65) (layer "F.SilkS") (width 0.12) (tstamp 82c6902a-689e-4107-a05f-01e99ead1a0a))
(fp_line (start -0.76 -1.58) (end 0.7 -1.58) (layer "F.SilkS") (width 0.12) (tstamp d79dc885-3d55-4139-9cfe-95a99b1b887f))
(fp_line (start -4.606 1.25) (end -4.606 -1.25) (layer "B.CrtYd") (width 0.05) (tstamp 4cbd7873-db33-4daf-831f-89f5cb785cd7))
(fp_line (start -4.606 -1.25) (end 5.114 -1.25) (layer "B.CrtYd") (width 0.05) (tstamp 6bacd9ba-ac8c-4654-85ad-a3b2e6b1883b))
(fp_line (start 5.114 1.25) (end -4.606 1.25) (layer "B.CrtYd") (width 0.05) (tstamp 8a2ceddd-9c30-4506-a364-2858aefa41cd))
(fp_line (start 5.114 -1.25) (end 5.114 1.25) (layer "B.CrtYd") (width 0.05) (tstamp fbd02659-b43a-4653-ac5b-34a3e6ec113e))
(fp_line (start 1.7 -1.75) (end 1.7 1.75) (layer "F.CrtYd") (width 0.05) (tstamp 5b422957-e485-42a4-b147-9fbfb29d049b))
(fp_line (start -1.7 -1.75) (end 1.7 -1.75) (layer "F.CrtYd") (width 0.05) (tstamp 854b32ac-58cf-4638-9cec-37e2c2e892fb))
(fp_line (start -1.7 1.75) (end -1.7 -1.75) (layer "F.CrtYd") (width 0.05) (tstamp a4a5cb02-dc58-40a9-82b8-82ddeefd8d40))
(fp_line (start 1.7 1.75) (end -1.7 1.75) (layer "F.CrtYd") (width 0.05) (tstamp b649cec8-89c4-4cab-b1cc-6d9e01037f63))
(fp_line (start 2.254 -1) (end 2.254 1) (layer "B.Fab") (width 0.1) (tstamp 0146e898-aeba-4624-b172-4002d1b7e289))
(fp_line (start -1.146 1) (end -1.146 -1) (layer "B.Fab") (width 0.1) (tstamp 4be72ddf-e3fd-435f-9c6b-1ab5d5e469a6))
(fp_line (start -1.246 1) (end -1.246 -1) (layer "B.Fab") (width 0.1) (tstamp 50603d47-6d27-4c8b-9d77-0efd2aebd9ac))
(fp_line (start -3.556 0) (end -1.746 0) (layer "B.Fab") (width 0.1) (tstamp 6e580d05-e9c9-4854-8b1a-75c75f6abc9e))
(fp_line (start -1.746 -1) (end 2.254 -1) (layer "B.Fab") (width 0.1) (tstamp a6cf9898-6005-45e9-96bb-3732f4d4f5bf))
(fp_line (start -1.046 1) (end -1.046 -1) (layer "B.Fab") (width 0.1) (tstamp b327189d-ef01-441d-9738-e90f2400c9ef))
(fp_line (start 4.064 0) (end 2.254 0) (layer "B.Fab") (width 0.1) (tstamp e105655b-06c9-4456-981a-9fb7f072f2f6))
(fp_line (start -1.746 1) (end -1.746 -1) (layer "B.Fab") (width 0.1) (tstamp ea82f956-26e9-49c2-b514-26649aff04be))
(fp_line (start 2.254 1) (end -1.746 1) (layer "B.Fab") (width 0.1) (tstamp f776b4a5-601c-4dd0-a822-65b1a7ca85ea))
(fp_line (start 0.7 1.52) (end 0.7 -1.52) (layer "F.Fab") (width 0.1) (tstamp 0538aa2a-99c5-43eb-83e9-ea71514cd641))
(fp_line (start 0.15 0.65) (end 0.15 0.25) (layer "F.Fab") (width 0.1) (tstamp 100d5a18-682a-4558-93e2-5a8dd299ab9d))
(fp_line (start 0.15 0.25) (end -0.15 0.45) (layer "F.Fab") (width 0.1) (tstamp 110b6b8b-3d9a-49d9-a651-062dc12fd279))
(fp_line (start -0.15 0.65) (end -0.15 0.25) (layer "F.Fab") (width 0.1) (tstamp 261fd709-b119-45e9-aff5-04154ebd9314))
(fp_line (start 0.15 0.45) (end 0.4 0.45) (layer "F.Fab") (width 0.1) (tstamp 389cedd3-c41f-4b55-b21a-f799d09847f4))
(fp_line (start 0.7 1.52) (end -0.7 1.52) (layer "F.Fab") (width 0.1) (tstamp 3b026976-d908-4912-bba2-893c5a17c51c))
(fp_line (start -0.15 0.45) (end 0.15 0.65) (layer "F.Fab") (width 0.1) (tstamp 43d7e843-b9cb-4123-8cac-3b3a3f192e82))
(fp_line (start -0.15 0.45) (end -0.4 0.45) (layer "F.Fab") (width 0.1) (tstamp 85ec75d8-d66b-4275-b3ab-be08ddca07df))
(fp_line (start -0.7 1.52) (end -0.7 -1.52) (layer "F.Fab") (width 0.1) (tstamp b88b8d93-4be3-48cb-af37-0763f35118ac))
(fp_line (start 0.7 -1.52) (end -0.7 -1.52) (layer "F.Fab") (width 0.1) (tstamp f13bbe1d-3f04-49c6-8270-639b62b4252f))
(pad "1" thru_hole custom (at -3.556 0) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)
(options (clearance outline) (anchor rect))
(primitives
(gr_line (start 2.556 0) (end -5.08 0) (width 0.2))
) (tstamp 025dd152-58ec-477d-aeeb-143880b94e0e))
(pad "1" thru_hole circle (at -6.096 0) (size 1.7272 1.7272) (drill 1.1684) (layers *.Cu *.Mask) (tstamp 88896acf-590d-49f0-9331-286027ca28f9))
(pad "1" smd rect (at -1 0) (size 0.89916 0.8001) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp c37308cf-ac2d-4fd1-9cee-f82f99ba8b51))
(pad "1" thru_hole circle (at -8.636 0) (size 1.7272 1.7272) (drill 1.1684) (layers *.Cu *.Mask) (tstamp c79a5ae3-bc28-4583-949d-37757a447707))
(pad "2" thru_hole circle (at 4.064 0) (size 1.6002 1.6002) (drill 0.8128) (layers *.Cu *.Mask) (tstamp ffd110d8-3669-49c3-9fc9-32a7868c2705))
(pad "NC" smd rect (at 1 0.95 180) (size 0.9 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 186d1410-c595-46e9-8d97-a7f39beed9db))
(pad "NC" smd rect (at 1 -0.95 180) (size 0.9 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp ba3a84a4-76f0-4b7f-a7e3-771a7ac6e6a5))
(model "${KISYS3DMOD}/Diode_THT.3dshapes/D_DO-35_SOD27_P7.62mm_Horizontal.wrl"
(offset (xyz -3.556 0 -1.4986))
(scale (xyz 1 1 1))
(rotate (xyz 180 0 0))
)
(model "${KISYS3DMOD}/Diode_SMD.3dshapes/D_SOT-23.wrl"
(offset (xyz 0 0.0762 0.0508))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 180))
)
)

View File

@ -0,0 +1,61 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Keyboard_build.html</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
</head>
<body>
<h1 id="keyboard-build-notes">Keyboard build notes</h1>
<h2 id="preparing-the-keyboard-pcb">Preparing the Keyboard PCB</h2>
<h2 id="preparing-the-aligner">Preparing the Aligner</h2>
<h2 id="combining-the-pcb-and-aligner">Combining the PCB and aligner</h2>
<h3 id="the-spacebar-stabilizer">The Spacebar Stabilizer</h3>
<h4 id="cherry-mx-keys">Cherry MX keys</h4>
<h5 id="stabilizer-hardware">Stabilizer hardware</h5>
<p>The keyboard is designed to accommodate PCB-mounted Cherry-MX compatible Spacebar aligner hardware. Most standard aligner kits come with pre-bend rods for a 6.25u spacebar. Since the 8u spacebar in the retro-keyboards, you will need to bend your own rod. I have included some sources for the rods below (1). ##### Bending the stabilizer rod The aligner PCB includes a guide for bending the stabilizer.</p>
<ol type="1">
<li><p>Start by creating a 90 degree bend about 2 cm from the end of the rod. This allows enough room to clip the end down to the correct length later.</p>
<p><img alt="First Bend" src="build-images/rod_first_bend.jpg" height=50% width=50%></p></li>
<li><p>Insert the bent end into one guide hole, and, keeping the rod as flat to the board as possible, use the second guide hole to estimate the position of the second bend. Your estimate should be about 1mm short to allow for a bending radius. Once you have the pliers positioned on the rod, make your 90 degree bend.</p>
<p><img alt="Insert Rod in Guide" src="build-images/rod_insert_first_arm.jpg" height=50% width=50%></p></li>
<li><p>Look along the length of the rod to make sure that both “arms” are in line. If necessary, align the two arms by twisting about the axis of the axis of the rod.</p></li>
<li><p>Test the fit of the rod by inserting it into the guide holes. Adjust as needed.</p>
<p><img alt="Test Fit" src="build-images/test_fit_too_long.jpg" height=50% width=50%></p></li>
<li><p>Clip the arms of the rod to about 11 mm.</p>
<p><img alt="Clip Arms to Length" src="build-images/stabilizer_rod_timmed_arms.jpg" height=50% width=50%></p></li>
<li><p>Install the Cherry MX stabilizers to the board.</p></li>
<li><p>Install the spacebar and insert the rod.</p></li>
</ol>
<h4 id="futaba-md4-pcs-keys">Futaba MD4-PCS keys</h4>
<h5 id="stabilizer-hardware-1">Stabilizer hardware</h5>
<p>See the Cherry MX section above for notes on installing the Cherry MX stabilizer hardware and bending the spacebar stabilizer rod.</p>
<h5 id="longer-stabilizer-posts-for-futaba">Longer Stabilizer posts for Futaba</h5>
<p>The Futaba aligner PCB includes two stabilizer posts, allowing the futaba keys to be used with the Cherry MX PCB-mount stabilizers.</p>
<p><img alt="Futaba stabilizer adapter posts" src="build-images/pre-breakaway.jpg" height=50% width=50%></p>
<ol type="1">
<li><p>Remove both posts from the PCB. Newer revisions of the aligner board include perforations for easier break-away of the posts.</p>
<p><img alt="Break away posts from aligner" src="build-images/cutting_post.jpg" height=50% width=50%></p></li>
<li><p>Be sure to file away any excess material from the breakaway tab.</p>
<p><img alt="Broken offfiling" src="build-images/futaba_posts_before_filing.jpg" height=38% width=38%> <img alt="Removed breakaway tabs" src="build-images/futaba_posts_breakaway_filed_off.jpg" height=38% width=38%></p></li>
<li><p>File away the area marked “File to 1.5mm”. The aligner includes a thickness gauge to test fitting, but it turns out that manufacturing tolerances are not adequate, and the gauge is not reliable. Use a spare key cap to test the thickness. The post should require some pressure to inert into the keycap base.</p></li>
<li><p>The post should be just under 4mm wide. The post in this example is an early revision that was specified at 4mm, and ended being a sliver too wide to fit the keycap base. It required a alittle extra filing along one side to fit properly. The posts on newer revs are thinner and should not require extra filing to narrow side-to-side width.</p>
<p><img alt="Posts before and after filing" src="build-images/futaba_posts_before_and_after.jpg" height=50% width=50%></p>
<p><img alt="Posts ready to install" src="build-images/filed_futaba_posts.jpg" height=50% width=50%></p></li>
<li><p>The posts should be just tight enough to require a pair of pliers to insert. Use pliers to insert both posts fully. Use a ruler or caliper to ensure the prodruding portions of both posts are the same length.</p></li>
</ol>
<p><img alt="Press the posts into the spacebar" src="build-images/futaba_posts_press_into_spacebar.jpg" height=50% width=50%></p>
<ol type="1">
<li><p>Install the spacebar center mount on the spacebar key, aligning the posts so that they slide into the PCB-mounted stabilizers.</p></li>
<li><p>Holding down the spacebar, align the arms stabilizer rod with the holes in the posts, and then snap the rod into place at the front of the stabilizer mounts.</p></li>
</ol>
<p><img alt="Stabilizer installed" src="build-images/stabilizer_installed_futaba.jpg" height=50% width=50%></p>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,563 @@
{
"board": {
"3dviewports": [],
"design_settings": {
"defaults": {
"board_outline_line_width": 0.049999999999999996,
"copper_line_width": 0.19999999999999998,
"copper_text_italic": false,
"copper_text_size_h": 1.5,
"copper_text_size_v": 1.5,
"copper_text_thickness": 0.3,
"copper_text_upright": false,
"courtyard_line_width": 0.049999999999999996,
"dimension_precision": 4,
"dimension_units": 3,
"dimensions": {
"arrow_length": 1270000,
"extension_offset": 500000,
"keep_text_aligned": true,
"suppress_zeroes": false,
"text_position": 0,
"units_format": 1
},
"fab_line_width": 0.09999999999999999,
"fab_text_italic": false,
"fab_text_size_h": 1.0,
"fab_text_size_v": 1.0,
"fab_text_thickness": 0.15,
"fab_text_upright": false,
"other_line_width": 0.09999999999999999,
"other_text_italic": false,
"other_text_size_h": 1.0,
"other_text_size_v": 1.0,
"other_text_thickness": 0.15,
"other_text_upright": false,
"pads": {
"drill": 3.9878,
"height": 3.9878,
"width": 3.9878
},
"silk_line_width": 0.12,
"silk_text_italic": false,
"silk_text_size_h": 1.0,
"silk_text_size_v": 1.0,
"silk_text_thickness": 0.15,
"silk_text_upright": false,
"zones": {
"45_degree_only": false,
"min_clearance": 0.508
}
},
"diff_pair_dimensions": [
{
"gap": 0.0,
"via_gap": 0.0,
"width": 0.0
}
],
"drc_exclusions": [],
"meta": {
"filename": "board_design_settings.json",
"version": 2
},
"rule_severities": {
"annular_width": "error",
"clearance": "error",
"connection_width": "warning",
"copper_edge_clearance": "error",
"copper_sliver": "warning",
"courtyards_overlap": "error",
"diff_pair_gap_out_of_range": "error",
"diff_pair_uncoupled_length_too_long": "error",
"drill_out_of_range": "error",
"duplicate_footprints": "warning",
"extra_footprint": "warning",
"footprint": "error",
"footprint_type_mismatch": "error",
"hole_clearance": "error",
"hole_near_hole": "error",
"invalid_outline": "error",
"isolated_copper": "warning",
"item_on_disabled_layer": "error",
"items_not_allowed": "error",
"length_out_of_range": "error",
"lib_footprint_issues": "warning",
"lib_footprint_mismatch": "warning",
"malformed_courtyard": "error",
"microvia_drill_out_of_range": "error",
"missing_courtyard": "ignore",
"missing_footprint": "warning",
"net_conflict": "warning",
"npth_inside_courtyard": "ignore",
"padstack": "error",
"pth_inside_courtyard": "ignore",
"shorting_items": "error",
"silk_edge_clearance": "warning",
"silk_over_copper": "warning",
"silk_overlap": "warning",
"skew_out_of_range": "error",
"solder_mask_bridge": "error",
"starved_thermal": "error",
"text_height": "warning",
"text_thickness": "warning",
"through_hole_pad_without_hole": "error",
"too_many_vias": "error",
"track_dangling": "warning",
"track_width": "error",
"tracks_crossing": "error",
"unconnected_items": "error",
"unresolved_variable": "error",
"via_dangling": "warning",
"zones_intersect": "error"
},
"rule_severitieslegacy_courtyards_overlap": true,
"rule_severitieslegacy_no_courtyard_defined": false,
"rules": {
"allow_blind_buried_vias": false,
"allow_microvias": false,
"max_error": 0.005,
"min_clearance": 0.0,
"min_connection": 0.0,
"min_copper_edge_clearance": 0.049999999999999996,
"min_hole_clearance": 0.25,
"min_hole_to_hole": 0.25,
"min_microvia_diameter": 0.19999999999999998,
"min_microvia_drill": 0.09999999999999999,
"min_resolved_spokes": 1,
"min_silk_clearance": 0.0,
"min_text_height": 0.7999999999999999,
"min_text_thickness": 0.08,
"min_through_hole_diameter": 0.3,
"min_track_width": 0.19999999999999998,
"min_via_annular_width": 0.049999999999999996,
"min_via_diameter": 0.39999999999999997,
"solder_mask_to_copper_clearance": 0.0,
"use_height_for_length_calcs": true
},
"teardrop_options": [
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 5,
"td_on_pad_in_zone": false,
"td_onpadsmd": true,
"td_onroundshapesonly": false,
"td_ontrackend": false,
"td_onviapad": true
}
],
"teardrop_parameters": [
{
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_target_name": "td_round_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_target_name": "td_rect_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_target_name": "td_track_end",
"td_width_to_size_filter_ratio": 0.9
}
],
"track_widths": [
0.0,
0.254,
0.508,
1.27
],
"via_dimensions": [
{
"diameter": 0.0,
"drill": 0.0
},
{
"diameter": 1.27,
"drill": 0.7112
}
],
"zones_allow_external_fillets": false,
"zones_use_no_outline": true
},
"layer_presets": [],
"viewports": []
},
"boards": [],
"cvpcb": {
"equivalence_files": []
},
"erc": {
"erc_exclusions": [],
"meta": {
"version": 0
},
"pin_map": [
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
1,
0,
1,
2
],
[
0,
1,
0,
0,
0,
0,
1,
1,
2,
1,
1,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2
],
[
1,
1,
1,
1,
1,
0,
1,
1,
1,
1,
1,
2
],
[
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
1,
2,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
0,
2,
1,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2
]
],
"rule_severities": {
"bus_definition_conflict": "error",
"bus_entry_needed": "error",
"bus_to_bus_conflict": "error",
"bus_to_net_conflict": "error",
"conflicting_netclasses": "error",
"different_unit_footprint": "error",
"different_unit_net": "error",
"duplicate_reference": "error",
"duplicate_sheet_names": "error",
"endpoint_off_grid": "warning",
"extra_units": "error",
"global_label_dangling": "warning",
"hier_label_mismatch": "error",
"label_dangling": "error",
"lib_symbol_issues": "warning",
"missing_bidi_pin": "warning",
"missing_input_pin": "warning",
"missing_power_pin": "error",
"missing_unit": "warning",
"multiple_net_names": "warning",
"net_not_bus_member": "warning",
"no_connect_connected": "warning",
"no_connect_dangling": "warning",
"pin_not_connected": "error",
"pin_not_driven": "error",
"pin_to_pin": "error",
"power_pin_not_driven": "error",
"similar_labels": "warning",
"simulation_model_issue": "ignore",
"unannotated": "error",
"unit_value_mismatch": "error",
"unresolved_variable": "error",
"wire_dangling": "error"
}
},
"libraries": {
"pinned_footprint_libs": [],
"pinned_symbol_libs": []
},
"meta": {
"filename": "interface-osi.kicad_pro",
"version": 1
},
"net_settings": {
"classes": [
{
"bus_width": 12,
"clearance": 0.2,
"diff_pair_gap": 0.254,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.2032,
"line_style": 0,
"microvia_diameter": 0.3048,
"microvia_drill": 0.1016,
"name": "Default",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.254,
"via_diameter": 0.8128,
"via_drill": 0.4064,
"wire_width": 6
},
{
"bus_width": 12,
"clearance": 0.254,
"diff_pair_gap": 0.254,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.2032,
"line_style": 0,
"microvia_diameter": 0.3048,
"microvia_drill": 0.1016,
"name": "power1",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 1.27,
"via_diameter": 1.27,
"via_drill": 0.7112,
"wire_width": 6
},
{
"bus_width": 12,
"clearance": 0.2032,
"diff_pair_gap": 0.254,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.2032,
"line_style": 0,
"microvia_diameter": 0.3048,
"microvia_drill": 0.1016,
"name": "signal",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.254,
"via_diameter": 0.8128,
"via_drill": 0.4064,
"wire_width": 6
}
],
"meta": {
"version": 3
},
"net_colors": null,
"netclass_assignments": null,
"netclass_patterns": [
{
"netclass": "power1",
"pattern": "+5V"
},
{
"netclass": "signal",
"pattern": "/Col0"
}
]
},
"pcbnew": {
"last_paths": {
"gencad": "",
"idf": "",
"netlist": "unikbd.net",
"specctra_dsn": "",
"step": "",
"vrml": ""
},
"page_layout_descr_file": ""
},
"schematic": {
"annotate_start_num": 0,
"drawing": {
"dashed_lines_dash_length_ratio": 12.0,
"dashed_lines_gap_length_ratio": 3.0,
"default_line_thickness": 6.0,
"default_text_size": 50.0,
"field_names": [],
"intersheets_ref_own_page": false,
"intersheets_ref_prefix": "",
"intersheets_ref_short": false,
"intersheets_ref_show": false,
"intersheets_ref_suffix": "",
"junction_size_choice": 3,
"label_size_ratio": 0.25,
"pin_symbol_size": 25.0,
"text_offset_ratio": 0.08
},
"legacy_lib_dir": "",
"legacy_lib_list": [],
"meta": {
"version": 1
},
"net_format_name": "",
"ngspice": {
"fix_include_paths": true,
"fix_passive_vals": false,
"meta": {
"version": 0
},
"model_mode": 0,
"workbook_filename": ""
},
"page_layout_descr_file": "",
"plot_directory": "",
"spice_adjust_passive_values": false,
"spice_current_sheet_as_root": false,
"spice_external_command": "spice \"%I\"",
"spice_model_current_sheet_as_root": true,
"spice_save_all_currents": false,
"spice_save_all_voltages": false,
"subpart_first_id": 65,
"subpart_id_separator": 0
},
"sheets": [
[
"50196238-bbf7-4088-9344-c43b4f7afe2f",
""
],
[
"00000000-0000-0000-0000-00006013a2e7",
"Sound"
],
[
"00000000-0000-0000-0000-00005d770c6b",
"special_keys"
]
],
"text_variables": {}
}

File diff suppressed because it is too large Load Diff