
Base promicro
google/mozc-devices
Circuit diagrams and firmware source code for Gboard DIY keyboards

Katsumiさんが公開してくださっているNEC TK-80互換機 ZK-80miniにSDカードによるLOAD、SAVEとスピーカーを追加します。
ZK80 is an open-source printed circuit board by yanataka60, from the yanataka60/ZK80mini_SD repository on GitHub, published under the GPL-2.0 licence. It is a 2-layer board of 100 × 70 mm with 30 parts on 31 nets, routed with 416 tracks and 26 vias.
It is built around the PIC32MX150F128B-I/ML. Its parts include 9 resistors, 6 capacitors, 4 ICs, 4 connectors and 2 switches. It belongs with the PIC boards of this library.
Katsumiさんが公開してくださっている素晴らしいNEC TK-80互換機 ZK-80miniにSDカードによるLOAD、SAVEとスピーカーを載せてみました。
KZ-80mini
http://www.recfor.net/blog/mycom/index.php?itemid=883
SDカードのアクセスには、ケンケンさんが公開してくださっているSDカードアクセスライブラリを用いています。
SDカードアクセスライブラリ
http://www.ze.em-net.ne.jp/~kenken/bootloader/index.html

| 番号 | 品名 | 数量 | 備考 |
|---|---|---|---|
| U1 | 4桁7セグメントLED アノードコモン アノード共通接続 | 1 | 秋月電子通商 OSL40562-IRA |
| U2 | 4桁7セグメントLED カソードコモン カソード共通接続 | 1 | 秋月電子通商 OSL40562-LRA |
| U3 | PIC32MX150F128B | 1 | マルツオンライン等 |
| U4 | 低消費電力LDO 7333-A | 1 | オレンジピコショップ 秋月電子通商 S-812C33AY-B-Gでも可 |
| J1 | 6Pinコネクタ | 1 | |
| J2 | Micro SD Card Kit | 1 | 秋月電子通商 AE-MICRO-SD-DIP |
| J3 | マイクロUSBコネクタ 電源供給用 | 1 | 秋月電子通商 MRUSB-2B-D14NI-S306 |
| J4 | 14P(2×7P) コネクタ | 1 | ケーブルで繋ぐならボックスヘッダー、直差しするならピンソケット |
| S1 S2 | 3Pスライドスイッチ | 2 | |
| R1 | カーボン抵抗 1/6W 330Ω | 1 | |
| R2 R3 R4 R5 | カーボン抵抗 1/6W 100Ω | 4 | |
| R6 R7 R8 R9 | カーボン抵抗 1/6W 10kΩ | 4 | |
| C1 | 電解コンデンサ 16v10μF | 1 | |
| C2 C3 C4 | 積層セラミックコンデンサ 0.1μF | 3 | |
| C5 C6 | 積層セラミックコンデンサ 10μF | 2 | |
| LS1 | 圧電スピーカー(圧電サウンダ)(13mm) | 1 | 秋月電子通商 PKM13EPYH4000-A0 |
| キーボード | 1 | オレンジピコショップ ZK-80-KB 組立てキット |
| 品名 |
|---|
| Microchip社のPICマイコン書き込み機 PICKit3等 |
| 名称 |
|---|
| MPLAB X IDE |
| MPLAB XC32compiler V1.21 |
MPLABフォルダに2通りのコンパイル済みバイナリを用意しています。
zk80mini_8080.hex(CPU 8080)
zk80mini_z80.hex(CPU Z80)
このバイナリを使うのであればMPLAB X IDE付属のMPLAB X IPEにより書き込んでください。
コンパイルしたい方はMPLAB/zk80mini_SDフォルダのプロジェクトをMPLAB X IDEでコンパイルして書き込んでください。
ZK80miniオリジナルに含まれるTK-80互換モニタープログラムをそのまま使用しています。
詳しくはオリジナルのreadme.txtを参照してください。
使い方の基本はTK-80と同様です。
ROM $0000-$02FF(768Byte)
RAM $8000-$F1FF(28KByte)
SDカードのファイルシステムは、FAT32対応ですが、8.3形式のファイル名のみ使用可です。
本システムでのファイルネームは16進数4桁のファイルNoに3文字の拡張子です。
スピーカーは、TK-80 8255 PC1に接続をエミュレートしています。
注)互換モニターでSDカードからのロード直後にRUNキーで実行すると音が出ない場合があるようです。その時には一回RESETを押し、ADRS SETをし直してRUNしてください。
なお、rom.hをTK-80正規モニターに差し替えてコンパイルすれば音の出ない不具合は解消されます。
また、ICSPに繋ぐピンをLED、キーボードと兼用していますのでPICKit3をICSPに接続したままキーボード操作をすると誤動作します。(2、7、LOAD DATAのキーが効きません。書き込みは正常に行えます。)
00D5: AF XOR A
00D6: D3 9E OUT (9Eh),A
00D8: CD A1 01 CALL 01A1h
00DB: C3 51 00 JP 0051h
0107: 3E 01 LD A,01h
0109: D3 9E OUT (9Eh),A
010B: CD A1 01 CALL 01A1h
010E: C3 51 00 JP 0051h
ファイルNo(xxxx)を8000~FFFFの16進数4桁で入力して「STORE DATA」キーを押します。
メモリ 8000h~F1FFhまでをxxxx.ZK8としてセーブします。セーブ範囲は固定となっていて指定はできません。
SDカードには、ファイルNo(xxxx).ZK8という名前で保存されます。
SDカードに同じファイルNoのZK8ファイルがあった場合には上書きされます。
ファイルNo、0000~7FFFまでは上書きによる消失を防ぐため読み出し専用のファイルNoになっています。
ファイルNo、8000~FFFFは読み書き自由です。
ZK8形式は、ヘッダ情報等が付加されていないファイル長28,672Byteのベタなバイナリファイルです。
ファイルNo(xxxx)を0000~FFFFの16進数4桁で入力して「LOAD DATA」キーを押します。
正常にLOADされた場合は、LED ADDRESS表示部にLOAD開始アドレス、LED DATA表示部にLOAD終了アドレスが表示されます。
LOADするファイルの拡張子はZK8、TK8、BIN、BTK、HEXに対応しており、違う拡張子で同じファイルNoのファイルがSDカードに保存されていた場合には次の順に検索されます。
検索順:ZK8 -> TK8 -> BIN -> BTK -> HEX
すべて、ヘッダ情報等が付加されていないベタなバイナリファイル。
SDカードから読み込まれたファイルはメモリの8000hからファイル長分LOADされます。
ただし、メモリへの書き込みアドレスが83B0h~83D0h、83E0h~83FFh、F200h~FFFFHまでの範囲の読み出しデータはメモリに書き込まれません。
バイナリファイル本体データの先頭に2Byteの開始アドレス、2Byteの終了アドレス合計4Byteを付加した形になっているファイル。
SDカードから読み込まれたファイルは開始アドレスから終了アドレスまでLOADされます。
ただし、メモリへの書き込みアドレスが83B0h~83D0h、83E0h~83FFh、F200h~FFFFHまでの範囲の読み出しデータはメモリに書き込まれません。
インテルHEX形式のファイル。
SDカードから読み込まれたファイルはインテルHEX形式に基づいてLOADされます。
ただし、メモリへの書き込みアドレスが83B0h~83D0h、83E0h~83FFh、F200h~FFFFHまでの範囲の読み出しデータはメモリに書き込まれません。
SDカードにアクセスしていなければ電源ON時でもSDカードの抜き差しは可能ですが、再挿入後にはZK80miniをリセットしてください。
このツールを参考にして行った事による、いかなる不具合に関しても、私は責任を持ちません。各自、自己責任のもとで作業を行ってください。
KUT KiCad Connector footprint libraryは、The MIT License (MIT)。
SDカードライブラリのlibsdfsio.a、SDFSIO.hについては、ケンケンさんが公開しているMicrochip社のライブラリを利用。(SDFSIO.hにライセンスの記載在り)
それ以外は、ZK-80miniのライセンスと同様にすべてLGPL v2.0の元配布します。
ZK80miniを公開してくださったKatsumi様
SDカードアクセスライブラリを公開してくださったケンケン様
ありがとうございました。
2022.5.5
LOAD除外範囲を修正、著作権表記を修正。
部品表 J2 Micro SD Card Kitの品番を修正。
コメントを追加したところ、コンパイル後、動作が不安定になることがあるためコメント一部削除2022.5.6
コメント再追加
SDカードからLOAD直後にスピーカーから音が出ない場合への対処を付記。2022.5.11
TK-80正規モニターに差し替える場合の修正点を追記。| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | 100 | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R2, R3, R4, R5 |
| 4 | 10k | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R6, R7, R8, R9 |
| 4 | MountingHole_3.2mm_M3 | MountingHole:MountingHole_3.2mm_M3 | MH1, MH2, MH3, MH4 |
| 3 | 0.1uF | Capacitor_THT:C_Rect_L4.0mm_W2.5mm_P2.50mm | C2, C3, C4 |
| 2 | 10uF | Capacitor_THT:C_Rect_L4.0mm_W2.5mm_P2.50mm | C5, C6 |
| 1 | 10uF | Capacitor_THT:CP_Radial_D5.0mm_P2.50mm | C1 |
| 1 | 330 | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R1 |
| 1 | 7333-A | Package_TO_SOT_THT:TO-92_Inline_Wide | U4 |
| 1 | AE-MICRO-SD-DIP | KUT_Connector:AE-MICRO-SD-DIP | J2 |
| 1 | ICSP | Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Horizontal | J1 |
| 1 | KeyBoard | Connector_PinHeader_2.54mm:PinHeader_2x07_P2.54mm_Vertical | J4 |
| 1 | MRUSB-2B-D14NI-S306 | vsrAkizuki:MRUSB-2B-D14NI-S306 | J3 |
| 1 | OFF ON | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | S2 |
| 1 | OSL40562-IRA | Display_7Segment:CA56-12EWA | U1 |
| 1 | OSL40562-LRA | Display_7Segment:CA56-12EWA | U2 |
| 1 | PIC32MX150F128B | Package_DIP:DIP-28_W7.62mm_LongPads | U3 |
| 1 | STEP AUTO | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | S1 |
| 1 | Speaker | Package_TO_SOT_THT:TO-5-2 | LS1 |

google/mozc-devices
Circuit diagrams and firmware source code for Gboard DIY keyboards


VoronDesign/Voron-Hardware
Cool Hardware designed by the Voron Design group

hoglet67/RGBtoHDMI
Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

tenderlove/initial-v
It's a BMW shifter converted to a Bluetooth Keyboard that you use with Vim

hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!


It measures 100 × 70 mm and has 2 copper layers, 1.6 mm thick.
30 parts, built around the PIC32MX150F128B-I/ML. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the yanataka60/ZK80mini_SD repository on GitHub, at the commit this page was made from: the board is KiCad/ZK80.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the GPL-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).