SharpKeyQ

SharpKeyQ

このプロジェクトは、SharpKey Multi-HID Interfaceオリジナルコードについて、ビルド可能な状態にソースを加えたものです。 機能は全てオリジナルに準じます。
また、回路図や基板デザインはDIY可能な設計に置き換えられています。

オフィシャルの情報源は下記のとおりです。

engineers@work (https://eaw.app/)
SharpKey Multi-HID Interface (https://eaw.app/sharpkey/)
ユーザーマニュアル (https://eaw.app/sharpkey-usermanual/)
テクニカルガイド (https://eaw.app/sharpkey-technicalguide/)
GitHub (https://github.com/pdsmart)

配布物

全ての配布物は、GitHubにて公開されています。

NoriQtech SharpKeyQ (https://github.com/NoriQtech/SharpKeyQ/)

git clone または Download ZIP してください。

PCB

/kicad 内に、KiCadプロジェクトとDIY用の回路図、PCBパターンがあります。

回路は、DIY向けに ESP32-DevKitC-32 を使用するように変更しています。動作はオリジナルと同等です。


また、PCBデザインは扱いやすいように Raspberry Pi 4 基板と同サイズになっています。取付穴も同じなので、Raspberry Pi 4 用のケースが使用できます。

 

組み立て時の注意点として、ESP32-DevKitCモジュールは基板直付けではなくソケット化を推奨します。

/gerber ディレクトリ内にガーバーデータが含まれます。
ZIPファイルは Fusion PCB の製造サービスでそのまま使用できます。

部品表はこちらです。

ファームウェアのビルド

必要であれば、各自でソースファイルをビルドしてください。
注意点はソース内にある components 内に /arduino-esp32 と /esp_littlefs の2つの外部コンポーネントが必要になります。
忘れずソースコードを配置してください。

ビルド手順はオフィシャルと同じです。
Ubuntu 22.04, ESP-IDF 4.4 にてビルドを行いました。
オフィシャルのドキュメントは前身の mz25key (https://eaw.app/mz25key/) 内に記述があります。

ビルド済みバイナリ

配布物内にお試し用のビルド済みバイナリが含まれます。
/build 内のバイナリを下記の手順で転送することによって、SharpKey Multi-HID Interface が動作します。機能制限はありません。ビルド作業が不要です。
  1. ESPRESSIF サイトより 開発環境 ESP-IDF をダウンロードしてインストールする。
    ESP-IDFバージョンは 4.4.x を使用する。
  2. Windowsの場合、ESP-IDF環境をコマンドラインまたはPowerShell から起動する。
    Linuxの場合、シェルよりESP-IDF ビルドツールへのパスを通す。(export.sh コマンド)
  3. コマンドラインよりダウンロードしたファイルの buildフォルダへ移動する。
    cd hogehoge/SharpKeyQ/build
  4. ESP32-DevKitC をUSB接続する。
    シリアルポート名を調べておく。(Ex, win:COM3, linux:/dev/ttyUSB0)
  5. ファームウェアを転送する。
    コマンドラインより下記を実行。
    esptool.py --chip esp32 -p [シリアルポート名] -b 460800 --before=default_reset --after=hard_reset write_flash --flash_mode dio --flash_freq 40m --flash_size 4MB 0x1000 bootloader/bootloader.bin 0x10000 main.bin 0x8000 partition_table/partition-table.bin 0x9000 ota_data_initial.bin
    ※オプションなどは環境に合わせて。
  6. ファイルシステムを転送する。
    コマンドラインより下記を実行。
    esptool.py -p [シリアルポート名] write_flash 0x350000 filesys.bin
  7.  ESP32-DevKitC を取り外し、SharpKeyQ PCBへ取り付ける。

以上

使い方など

オフィシャルのドキュメントを参照してください。

PC本体との接続

SharpKeyとPC本体を接続するピンアサインはオフィシャルのテクニカルガイド (https://eaw.app/sharpkey-technicalguide/)にある通りです。


SharpKeyQ では J4 の10ピンヘッダのうち9ピンまでを使用しています。
1ピンから8ピンまではテクニカルガイドの Host Interface Cables 項、SharpKey Plug View の対応するピンに該当します。9ピンはシェルでGNDに接続されています。

各機種毎の接続用ケーブル配線は下記のとおりです。

MZ-2500用ケーブル


MZ-2520用ケーブル


PC-9801シリーズ用ケーブル


X1シリーズ用ケーブル


※X1に接続する場合、ホストPCからの電力供給が不足する場合があります。その場合、ESP32のmicroUSB端子より外部電源5Vを供給してください。

MZ-5500/5600/6500/6550 用ケーブル


MZ-5665モジュール対応について

MZ-5665モジュールとは、MZ-5500/5600/6500/6550 に対応したキーボードモジュールです。このモジュールを利用する場合の注意事項をまとめておきます。

回路の変更

本体へのI/F J4 にある、3-6ピンの抵抗(R9, R10, R13, R14)を10オームに変更してください。実機のキーボード回路上、100オームでは大きすぎて信号が正常に伝わりません。必ず変更する必要があります。


ファームウェア書き込み時の注意

旧ファームウェアで書き込まれているMZ5665用のキーテーブルを削除する必要があります。
新しいファームウェアを書き込む前に、下記のコマンドでESP32内のフラッシュメモリを消去してください。

esptool.py --chip esp32 -p [シリアルポート名] erase_flash

消去後、手順に従ってファームウェアの書き込みを行ってください。


MZ-5665モジュールの解説

工学社発行の「MZ-5500/6500テクニカル・マニュアル」に記載の回路図ならびにキーボードI/Oの解説を元にコーディングしています。

4本の信号線(/DC, /STC, /DK, /SRK)でCPUとキーボード間のシリアル通信を行っています。通信タイミングは/STCのストローブ信号に合わせます。

キーボード側の回路は下記のとおりです。

MZ-5500系のキーボードは出力がオープンコレクタになっています。

オリジナルの SharpKey Multi-HID Interface の回路では出力のLOWが0.8Vに収まらず正しい通信ができません。そのため、100オームの抵抗値を十分下げる必要がありました。

また実機では、CPU側からキーボードのインジケータLEDをON/OFFするコマンド通信も行っていますが、今回は実装していません。

 

ライセンス

オリジナルライセンスに基づき、SharpKey Multi HID Interface の設計、ハードウェアおよびソフトウェアは、GNU Public License v3 に基づいてライセンスされています。

The Gnu Public License v3

The source and binary files in this project marked as GPL v3 are free software: you can redistribute it and-or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

The source files are distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

 

QooQ