Rename crkbd to corne classic and some fix

This commit is contained in:
foostan
2018-08-24 20:59:19 +09:00
parent d88f115f85
commit 09adc4774f
24 changed files with 14716 additions and 2153268 deletions

Binary file not shown.

16732
corne-classic/case/crkbd.dxf Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -0,0 +1,206 @@
# Build Guide
## 部品
### 必須
| 名前 | 数 | 備考 |
|:-|:-|:-|
| PCB | 2枚 | |
| プレート | 2セット | |
| ProMicro | 2枚 | |
| TRRSジャック | 2個 | |
| TRS(3極)ケーブル | 1本 | TRRS(4極)ケーブルでも可 |
| タクトスイッチ | 2個 | |
| ダイオード | 42本 | ロープロの場合は表面実装のみ可 |
| キースイッチ | 42個 | |
| キーキャップ | 42個 | 1u 40個、1.5u 2個 |
| スペーサー M2 6mm | 10本 | ロープロの場合は 3mm |
| スペーサー M2 8mm or 10mm | 4本 | |
| ネジ M2 | 28本 | |
| クッションゴム | 10個 | |
### オプション
| 名前 | 数 | 備考 |
|:-|:-|:-|
| OLEDモジュール | 1 ~ 2枚 | |
| ピンヘッダ 4連 | 2つ | OLEDモジュールを使用する場合 |
| ピンソケット4連 | 2つ | OLEDモジュールを使用する場合 |
| SK6812MINI | 54個 | 上向き実装 42個、下向き実装 12個 |
| シリアルLEDテープ | 2本 | SK6812MINI との併用は想定していません |
![image](https://user-images.githubusercontent.com/736191/40734610-e1ca0136-6473-11e8-8ac7-7bfa4b843f93.png)
## 実装
PCBはリバーシブルになっているので、最初にどちらを左用/右用にするか決めます。
### ダイオード
__ロープロファイルのキースイッチを使わない場合__
写真の位置にダイオードを実装します。
どちらの面に実装するかは好みですが、Undergrow LEDを実装する場合は、干渉をさけるため表面に実装することをおすすめします。
なお、ロープロファイルのキースイッチを使う場合と同様に表面実装タイプを利用しても問題ありません。
![image](https://user-images.githubusercontent.com/736191/40736513-306a0976-6479-11e8-8f98-a88073919a71.png)
ダイオードには向きがあるので注意してください。
<- 実装前 | 実装後 ->
![image](https://user-images.githubusercontent.com/736191/40735282-bac94180-6475-11e8-96f9-1d1cc43b1ee9.png)
__ロープロファイルのキースイッチを使う場合__
ロープロファイルスイッチを利用する場合は、表面実装タイプのダイオードを利用し、必ず __裏面に実装してください__ 。表面に実装してしまうとトッププレートがダイオードと干渉してしまいます。
### LED(オプション)
キースイッチ裏のLED(7 ~ 27)は表面側が光るように実装し、その他(1 ~ 6)は裏面側が光るようにします。
下記がLEDを実装する位置です。
![image](https://user-images.githubusercontent.com/736191/40731604-62cee61e-646c-11e8-865f-829a48fa6be0.png)
下記のように __裏面から各LEDを実装します__ 。○印を基準としLEDの向きに注意して実装してください。
![image](https://user-images.githubusercontent.com/736191/40731605-62f840a4-646c-11e8-99d5-b3bdff709e9d.png)
1 ~ 6のLEDは側面のわずかに出ているパターン(写真上のピンク色)とPCBのパターン(写真上の青色)をはんだ付けします。
フラックスを塗った上で少量のはんだを半田ごてで取ってパターンの境目に押し付けるとうまくいきます。
![image](https://user-images.githubusercontent.com/736191/40733058-c0558402-646f-11e8-9718-e579fab4aaf5.png)
LEDの点灯チェックを行う場合は、上記写真の番号どおりにつながっているため、途中までしか点灯しない場合は点灯しないLEDか、その一つ手前のLEDの実装ミスの可能性が高いので確認してみてください。
### OLEDモジュールのためのジャンパ(オプション)
OLEDモジュールを利用する場合は下記のようにジャンパします。
なお __表面のみジャンパしてください__
![image](https://user-images.githubusercontent.com/736191/40734778-56ded514-6474-11e8-8da7-3ebba048d62d.png)
### TRRSジャック、リセットスイッチ、OLEDピンソケット(オプション)
下記の写真通りにTRRSジャック、リセットスイッチを実装します。
またOLEDモジュールを使用する場合は、ピンソケットを実装します。
![image](https://user-images.githubusercontent.com/736191/40736856-1bda2b84-647a-11e8-988b-dc45f2c76a38.png)
### ProMicro
ピンヘッダを白い枠に当てはめるように実装し、そこにProMicroの裏面を上にして実装します。
なお下記の写真は右手用ですが、左手用も同様に白枠にピンヘッダを実装し、ProMicroの裏面を上にして実装します。
![image](https://user-images.githubusercontent.com/736191/40737973-3f404de4-647d-11e8-84fe-37f3a34e4c53.png)
### OLEDモジュール
OLEDモジュールにピンヘッダを実装し、ピンソケットに差し込みます。
![image](https://user-images.githubusercontent.com/736191/40888530-7420d1aa-6793-11e8-8813-9681c1411a21.png)
ピンソケットとピンヘッダの高さによって利用するスペーサーの高さを調節してください。
写真では電子部品店で入手可能な一般的なピンソケットとピンヘッダと10mmのスペーサーを利用した例となります。
### ProMicroのソケット化
ProMicroをソケット化をすることでProMicroが故障してしまった場合に用意に取り替えが可能になります。
2パターンのソケット化を紹介します。
#### スプリングヘッダを利用したソケット化
ソケット化を可能とする特殊なピンヘッダを利用する方法です。
利用方法はHelixのビルドガイドを参考にしてください。
https://github.com/MakotoKurauchi/helix/blob/master/Doc/buildguide_jp.md#pro-micro
スプリングヘッダとProMicroのセットは遊舎工房にて購入することが可能です。
https://yushakobo.jp/shop/promicro-spring-pinheader/
同じく遊舎工房で購入可能なOLEDについてくるピンヘッダを利用すると以下のように隙間なくきれいに収まります。また8mmのスペーサーを利用することができるのでより薄い仕上がりとなります。
![img_4141](https://user-images.githubusercontent.com/736191/41304818-2b65511e-6eac-11e8-9357-999ff14080ed.png)
#### ピンソケットを利用したソケット化
秋月電子等で購入可能な背の低いピンソケットを利用した方法です。
多少の工作が必要となります。
http://akizukidenshi.com/catalog/g/gC-03138/
12個連結ピンソケット2つ用意し、ブレッドボード等に固定します。
![img_4130](https://user-images.githubusercontent.com/736191/41305246-4d63b7a0-6ead-11e8-8dbe-16c75d8b55e3.png)
ProMicroに付属しているピンヘッダProMicroを挟むようにして上からしっかりと差し込みます。
![img_4131](https://user-images.githubusercontent.com/736191/41305247-4fbd3e5e-6ead-11e8-8c4d-5feea5a026d3.png)
ピンヘッダとProMicroをはんだ付けした後に余分なピンヘッダを切り取れば完了です。
![img_4132](https://user-images.githubusercontent.com/736191/41305251-5198439a-6ead-11e8-80f4-bd1769915bc9.png)
#### 比較
下記はスプリングヘッダを利用した場合とピンソケットを利用した場合の比較になります。
スプリングヘッダを利用したほうが高さを抑えることができます。
![img_4134](https://user-images.githubusercontent.com/736191/41305254-53bc4522-6ead-11e8-83ed-c4c7c2787828.png)
下記はOLEDに利用するピンヘッダの比較となります。遊舎工房で購入可能なOLEDは左のように若干低くなっています。
![img_4137](https://user-images.githubusercontent.com/736191/41305263-57e53dac-6ead-11e8-9b5d-5667bca5599e.png)
### 動作確認
キースイッチを付けると何か問題があった場合に修正が難しくなるため、ProMicroとOLEDモジュールを付けた段階で動作確認をすることをおすすめします。
動作確認をする場合は先に下記の「ファームウェア」の章を参考にしてcrkbd用のファームウェアをProMicroに入れてください。
![image](https://user-images.githubusercontent.com/736191/40888832-0d793c3a-6798-11e8-93b4-55ec7e180748.png)
デフォルトのキーマップを適用するとOLEDに押したキーに関する情報が表示されます。ピンセット等でスイッチ部分をショートさせることで動作確認ができます。
LEDを実装した場合はすべて点灯することを確認します。
![image](https://user-images.githubusercontent.com/736191/40888868-73028d36-6798-11e8-8246-0c9ca32711d6.png)
### キースイッチおよびトッププレート
キースイッチとPCBの間にトッププレートを挟んで表面に実装します。
![image](https://user-images.githubusercontent.com/736191/40888597-8a5bf7a0-6794-11e8-89e2-535c3f8381b9.png)
### ボトムプレート
ロープロの場合は3mmのスペーサー、それ以外は6mmのスペーサーを取り付けたあとにボトムプレートを取り付けます。
またクッションゴムを6つ付けます。
![image](https://user-images.githubusercontent.com/736191/40888724-2892c24a-6796-11e8-8f38-a0a3d5e5440e.png)
### キーキャップ
最後にキーキャップを付けて実装は完了です。
![lrg_dsc03895](https://user-images.githubusercontent.com/736191/40888756-c371e264-6796-11e8-8fc5-e842e8baf2b8.png)
## ファームウェア
https://docs.qmk.fm/#/newbs_getting_started こちらを参照して頂き、ファームウェアを書き込む環境を用意します。
環境ができましたら、下記コマンドで Let's Split 用にファームウェアをビルドします。
```
make crkbd:default
```
ビルドが完了したら下記コマンドを実行します。
```
make crkbd:default:avrdude
```
実行すると下記のようなログがでて、`.` が増えていくことが確認出来ると思います。
この間にリセットスイッチを __2回__ 押すとファームウェアの書き込みが完了します。
```
<省略>
Checking file size of crkbd_rev1_default.hex [OK]
* File size is fine - 27328/28672
Copying crkbd_rev1_default.hex to qmk_firmware folder [OK]
Detecting USB port, reset your controller now........
```
片側のProMicroにファームウェアの書き込みが完了したら、もう片方も同じ手順で書き込みを行います。
以上で完成です。

View File

@@ -0,0 +1,263 @@
EESchema-LIBRARY Version 2.4
#encoding utf-8
#
# Connector_Generic:Conn_01x01
#
DEF Connector_Generic:Conn_01x01 J 0 40 Y N 1 F N
F0 "J" 0 100 50 H V C CNN
F1 "Connector_Generic:Conn_01x01" 0 -100 50 H V C CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
$FPLIST
Connector*:*
$ENDFPLIST
DRAW
S -50 5 0 -5 1 1 6 N
S -50 50 50 -50 1 1 10 f
X Pin_1 1 -200 0 150 R 50 50 1 1 P
ENDDRAW
ENDDEF
#
# Connector_Generic:Conn_01x03
#
DEF Connector_Generic:Conn_01x03 J 0 40 Y N 1 F N
F0 "J" 0 200 50 H V C CNN
F1 "Connector_Generic:Conn_01x03" 0 -200 50 H V C CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
$FPLIST
Connector*:*_1x??_*
$ENDFPLIST
DRAW
S -50 -95 0 -105 1 1 6 N
S -50 5 0 -5 1 1 6 N
S -50 105 0 95 1 1 6 N
S -50 150 50 -150 1 1 10 f
X Pin_1 1 -200 100 150 R 50 50 1 1 P
X Pin_2 2 -200 0 150 R 50 50 1 1 P
X Pin_3 3 -200 -100 150 R 50 50 1 1 P
ENDDRAW
ENDDEF
#
# Connector_Generic:Conn_01x04
#
DEF Connector_Generic:Conn_01x04 J 0 40 Y N 1 F N
F0 "J" 0 200 50 H V C CNN
F1 "Connector_Generic:Conn_01x04" 0 -300 50 H V C CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
$FPLIST
Connector*:*_1x??_*
$ENDFPLIST
DRAW
S -50 -195 0 -205 1 1 6 N
S -50 -95 0 -105 1 1 6 N
S -50 5 0 -5 1 1 6 N
S -50 105 0 95 1 1 6 N
S -50 150 50 -250 1 1 10 f
X Pin_1 1 -200 100 150 R 50 50 1 1 P
X Pin_2 2 -200 0 150 R 50 50 1 1 P
X Pin_3 3 -200 -100 150 R 50 50 1 1 P
X Pin_4 4 -200 -200 150 R 50 50 1 1 P
ENDDRAW
ENDDEF
#
# Device:D
#
DEF Device:D D 0 40 N N 1 F N
F0 "D" 0 100 50 H V C CNN
F1 "Device:D" 0 -100 50 H V C CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
$FPLIST
TO-???*
*_Diode_*
*SingleDiode*
D_*
$ENDFPLIST
DRAW
P 2 0 1 8 -50 50 -50 -50 N
P 2 0 1 0 50 0 -50 0 N
P 4 0 1 8 50 50 50 -50 -50 0 50 50 N
X K 1 -150 0 100 R 50 50 1 1 P
X A 2 150 0 100 L 50 50 1 1 P
ENDDRAW
ENDDEF
#
# Device:Jumper
#
DEF Device:Jumper JP 0 30 Y N 1 F N
F0 "JP" 0 150 50 H V C CNN
F1 "Device:Jumper" 0 -80 50 H V C CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
DRAW
A 0 -26 125 1426 373 0 1 0 N -98 50 99 50
C -100 0 35 0 1 0 N
C 100 0 35 0 1 0 N
X 1 1 -300 0 165 R 50 50 0 1 P
X 2 2 300 0 165 L 50 50 0 1 P
ENDDRAW
ENDDEF
#
# Device:Jumper_NO_Small
#
DEF Device:Jumper_NO_Small JP 0 30 N N 1 F N
F0 "JP" 0 80 50 H V C CNN
F1 "Device:Jumper_NO_Small" 10 -60 50 H V C CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
DRAW
C -40 0 20 0 1 0 N
C 40 0 20 0 1 0 N
X 1 1 -100 0 40 R 50 50 0 1 P
X 2 2 100 0 40 L 50 50 0 1 P
ENDDRAW
ENDDEF
#
# Device:R
#
DEF Device:R R 0 0 N Y 1 F N
F0 "R" 80 0 50 V V C CNN
F1 "Device:R" 0 0 50 V V C CNN
F2 "" -70 0 50 V I C CNN
F3 "" 0 0 50 H I C CNN
$FPLIST
R_*
$ENDFPLIST
DRAW
S -40 -100 40 100 0 1 10 N
X ~ 1 0 150 50 D 50 50 1 1 P
X ~ 2 0 -150 50 U 50 50 1 1 P
ENDDRAW
ENDDEF
#
# kbd:MJ-4PP-9
#
DEF kbd:MJ-4PP-9 J 0 40 Y Y 1 F N
F0 "J" 0 150 50 H V C CNN
F1 "kbd:MJ-4PP-9" 0 -150 50 H V C CNN
F2 "" 275 175 50 H I C CNN
F3 "" 275 175 50 H I C CNN
DRAW
S -75 -75 -125 50 0 1 0 N
S 125 100 -150 -100 0 1 12 N
P 3 0 1 0 -100 50 -100 75 125 75 N
P 4 0 1 0 -50 -75 -25 -50 0 -75 125 -75 N
P 4 0 1 0 0 -25 25 0 50 -25 125 -25 N
P 4 0 1 0 50 25 75 50 100 25 125 25 N
X ~ A 200 75 79 L 28 20 1 1 I
X ~ B 200 -75 79 L 28 20 1 1 I
X ~ C 200 -25 79 L 28 20 1 1 I
X ~ D 200 25 79 L 28 20 1 1 I
ENDDRAW
ENDDEF
#
# kbd:ProMicro
#
DEF kbd:ProMicro U 0 40 Y Y 1 F N
F0 "U" 0 950 60 H V C CNN
F1 "kbd:ProMicro" 0 -550 60 H V C CNN
F2 "" 100 -1050 60 H V C CNN
F3 "" 100 -1050 60 H V C CNN
DRAW
S -500 850 500 -450 0 1 0 N
X TX 1 -700 750 200 R 50 50 1 1 B
X E6 10 -700 -150 200 R 50 50 1 1 B
X B4 11 -700 -250 200 R 50 50 1 1 B
X B5 12 -700 -350 200 R 50 50 1 1 B
X B6 13 700 -350 200 L 50 50 1 1 B
X B2 14 700 -250 200 L 50 50 1 1 B
X B3 15 700 -150 200 L 50 50 1 1 B
X B1 16 700 -50 200 L 50 50 1 1 B
X F7 17 700 50 200 L 50 50 1 1 B
X F6 18 700 150 200 L 50 50 1 1 B
X F5 19 700 250 200 L 50 50 1 1 B
X RX 2 -700 650 200 R 50 50 1 1 B
X F4 20 700 350 200 L 50 50 1 1 B
X VCC 21 700 450 200 L 50 50 1 1 W
X RST 22 700 550 200 L 50 50 1 1 I
X GND 23 700 650 200 L 50 50 1 1 W
X RAW 24 700 750 200 L 50 50 1 1 w
X GND 3 -700 550 200 R 50 50 1 1 W
X GND 4 -700 450 200 R 50 50 1 1 W
X SDA 5 -700 350 200 R 50 50 1 1 B
X SCL 6 -700 250 200 R 50 50 1 1 B
X D4 7 -700 150 200 R 50 50 1 1 B
X C6 8 -700 50 200 R 50 50 1 1 B
X D7 9 -700 -50 200 R 50 50 1 1 B
ENDDRAW
ENDDEF
#
# kbd:SK6812MINI
#
DEF kbd:SK6812MINI L 0 40 Y Y 1 F N
F0 "L" 0 0 51 H V C CNN
F1 "kbd:SK6812MINI" 0 -50 16 H V C CNN
F2 "" 0 0 60 H I C CNN
F3 "" 0 0 60 H I C CNN
DRAW
S -150 150 150 -150 0 1 0 N
X DOUT 1 -200 100 47 R 28 28 1 1 O
X VSS 2 -200 -100 47 R 28 28 1 1 W
X DIN 3 200 -100 47 L 28 28 1 1 I
X VDD 4 200 100 47 L 28 28 1 1 W
ENDDRAW
ENDDEF
#
# kbd:SW_PUSH
#
DEF kbd:SW_PUSH SW 0 40 N N 1 F N
F0 "SW" 150 110 50 H V C CNN
F1 "kbd:SW_PUSH" 0 -80 50 H V C CNN
F2 "" 0 0 50 H V C CNN
F3 "" 0 0 50 H V C CNN
DRAW
S -170 50 170 60 0 1 0 N
P 4 0 1 0 -40 60 -30 90 30 90 40 60 N
X 1 1 -300 0 200 R 50 50 0 1 P I
X 2 2 300 0 200 L 50 50 0 1 P I
ENDDRAW
ENDDEF
#
# power:GND
#
DEF power:GND #PWR 0 0 Y Y 1 F P
F0 "#PWR" 0 -250 50 H I C CNN
F1 "power:GND" 0 -150 50 H V C CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
DRAW
P 6 0 1 0 0 0 0 -50 50 -50 0 -100 -50 -50 0 -50 N
X GND 1 0 0 0 D 50 50 1 1 W N
ENDDRAW
ENDDEF
#
# power:PWR_FLAG
#
DEF power:PWR_FLAG #FLG 0 0 N N 1 F P
F0 "#FLG" 0 75 50 H I C CNN
F1 "power:PWR_FLAG" 0 150 50 H V C CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
DRAW
P 6 0 1 0 0 0 0 50 -40 75 0 100 40 75 0 50 N
X pwr 1 0 0 0 U 50 50 0 0 w
ENDDRAW
ENDDEF
#
# power:VCC
#
DEF power:VCC #PWR 0 0 Y Y 1 F P
F0 "#PWR" 0 -150 50 H I C CNN
F1 "power:VCC" 0 150 50 H V C CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
DRAW
C 0 75 25 0 1 0 N
P 2 0 1 0 0 0 0 50 N
X VCC 1 0 0 0 U 50 50 1 1 W N
ENDDRAW
ENDDEF
#
#End Library

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,30 @@
update=2018年08月24日金曜日 18:16:26
version=1
last_client=kicad
[pcbnew]
version=1
LastNetListRead=
UseCmpFile=1
PadDrill=0.600000000000
PadDrillOvalY=0.600000000000
PadSizeH=1.500000000000
PadSizeV=1.500000000000
PcbTextSizeV=1.500000000000
PcbTextSizeH=1.500000000000
PcbTextThickness=0.300000000000
ModuleTextSizeV=1.000000000000
ModuleTextSizeH=1.000000000000
ModuleTextSizeThickness=0.150000000000
SolderMaskClearance=0.000000000000
SolderMaskMinWidth=0.000000000000
DrawSegmentWidth=0.200000000000
BoardOutlineThickness=0.100000000000
ModuleOutlineThickness=0.150000000000
[cvpcb]
version=1
NetIExt=net
[general]
version=1
[eeschema]
version=1
LibDir=

File diff suppressed because it is too large Load Diff

108
corne-classic/pcb/pcbnew.py Normal file
View File

@@ -0,0 +1,108 @@
# execfile '/tmp/pcbnew.py'
import pcbnew
OFFSET_X = float(70)
OFFSET_Y = float(70)
PITCH = float(19)
def set_position(ref, xp, yp, orientation = 0):
module = pcb.FindModuleByReference(ref)
module.SetPosition(pcbnew.wxPointMM(xp + OFFSET_X, yp + OFFSET_Y))
module.SetOrientation( orientation * 10.0 )
def set_matrix_position(ref_prefix, matrix):
i = 0
for yi, rows in enumerate(matrix):
for xi, p in enumerate(rows):
i += 1
ref = "%s%s" % (ref_prefix, i)
xp = xi * PITCH + p[0]
yp = yi * PITCH + p[1]
orientation = p[2]
set_position(ref, xp, yp, orientation)
xp = xi * PITCH + p[0]
yp = yi * PITCH + p[1]
orientation = p[2]
set_position(ref, xp, yp, orientation)
module = pcb.FindModuleByReference(ref)
module.SetPosition(pcbnew.wxPointMM(xp + OFFSET_X, yp + OFFSET_Y))
module.SetOrientation( orientation * 10.0 )
#-------------
pcb = pcbnew.GetBoard()
# ProMicro
#set_position('U1', 115.25, 20.25, 0)
# OLED
#set_position('J2', 110.75, 38.5, 0)
# OLED JP
#set_position('JP2', 118.375, 35.25, -90)
#set_position('JP3', 115.875, 35.25, -90)
#set_position('JP4', 113.375, 35.25, -90)
#set_position('JP5', 110.875, 35.25, -90)
#set_position('JP6', 118.375, 35.25, -90)
#set_position('JP7', 115.875, 35.25, -90)
#set_position('JP8', 113.375, 35.25, -90)
#set_position('JP9', 110.875, 35.25, -90)
# Undergrow LED
#set_position('J3', 102, 29.5, 0)
# TRRS Jack
#set_position('J1', 124.75, 45, -90)
# Reset Switch
#set_position('RSW1', 120, 51, 0)
# R
#set_position('R1', 105.5, 46, 90)
#set_position('R2', 108, 46, 90)
# JP1
#set_position('JP1', 105.5, 41, 0)
# Switch
set_matrix_position('SW', [
[[0, 0.375*PITCH, 180], [0, 0.375*PITCH, 180], [0, 0.125*PITCH, 180], [0, 0*PITCH, 180], [0, 0.125*PITCH, 180], [0, 0.25*PITCH, 180]],
[[0, 0.375*PITCH, 180], [0, 0.375*PITCH, 180], [0, 0.125*PITCH, 180], [0, 0*PITCH, 180], [0, 0.125*PITCH, 180], [0, 0.25*PITCH, 180]],
[[0, 0.375*PITCH, 180], [0, 0.375*PITCH, 180], [0, 0.125*PITCH, 180], [0, 0*PITCH, 180], [0, 0.125*PITCH, 180], [0, 0.25*PITCH, 180]],
[[3.5*PITCH, 0*PITCH+3, 180], [3.5*PITCH+2, 0.25*PITCH+1, 160], [3.5*PITCH+5.25, 0.25*PITCH+4.75, 240]]
])
# Diode
set_matrix_position('D', [
[[-8, 0.375*PITCH, 270], [8, 0.375*PITCH, 270], [8, 0.125*PITCH, 270], [8, 0*PITCH, 270], [8, 0.125*PITCH, 270], [-8, 0.25*PITCH-2.375, 270]],
[[-8, 0.375*PITCH, 270], [8, 0.375*PITCH, 270], [8, 0.125*PITCH, 270], [8, 0*PITCH, 270], [8, 0.125*PITCH, 270], [-8, 0.25*PITCH-2.375, 270]],
[[-8, 0.375*PITCH, 270], [8, 0.375*PITCH, 270], [8, 0.125*PITCH, 270], [8, 0*PITCH, 270], [8, 0.125*PITCH, 270], [-8, 0.25*PITCH-2.375, 270]],
[[3.5*PITCH-8, 0*PITCH+3, 270], [3.5*PITCH-11, 0.25*PITCH-2, 270], [3.5*PITCH-27, 0.25*PITCH-2, 270]]
])
# LED
set_matrix_position('L', [
[[0, 0.375*PITCH-5.5, 0], [0, 0.375*PITCH-5.5, 0], [0, 0.125*PITCH-5.5, 0], [0, 0*PITCH-5.5, 0], [0, 0.125*PITCH-5.5, 0], [0, 0.25*PITCH-5.5, 0]],
[[0, 0.375*PITCH-5.5, 0], [0, 0.375*PITCH-5.5, 0], [0, 0.125*PITCH-5.5, 0], [0, 0*PITCH-5.5, 0], [0, 0.125*PITCH-5.5, 0], [0, 0.25*PITCH-5.5, 0]],
[[0, 0.375*PITCH-5.5, 0], [0, 0.375*PITCH-5.5, 0], [0, 0.125*PITCH-5.5, 0], [0, 0*PITCH-5.5, 0], [0, 0.125*PITCH-5.5, 0], [0, 0.25*PITCH-5.5, 0]],
[[3.5*PITCH, 0*PITCH-5.5+3, 0], [3.5*PITCH+3.5, 0.25*PITCH-5.25+1, 165], [3.5*PITCH+0.5, 0.25*PITCH+8.5-6.5, 240]]
])
#hole_xn = 8
#hole_yn = 6
#hole_ox = float(60.5)
#hole_oy = float(60.5)
#pitch = float(19)
#
#for hole_i in range(0, hole_xn * hole_yn):
# hole_xi = (hole_i / hole_yn)
# hole_yi = (hole_i % hole_yn) - 1
#
# hole_px = hole_ox + pitch * hole_xi
# hole_py = hole_oy + pitch * hole_yi
#
# hole_module = pcb.FindModuleByReference("H%s" % (hole_i+1))
# hole_module.SetPosition(pcbnew.wxPointMM(0, 0))

View File

@@ -0,0 +1,3 @@
(sym_lib_table
(lib (name kbd)(type Legacy)(uri /Users/adachi-kousuke/src/github.com/foostan/kbd/labrary/kbd.lib)(options "")(descr ""))
)