SharpKey Interface Multi-HID Guide du Firmware
Presentation
Un probleme majeur avec les ordinateurs Sharp vintage tardifs est les claviers. Pour diverses raisons -- perdus, stockes ou achetes par des collectionneurs -- une grande majorite des machines MZ-2500/2800/3500/X1/X68000 sont maintenant vendues sans clavier. Sans clavier, la machine n'est qu'un presse-papiers. Les vendeurs le savent et ceux qui sont mis en vente peuvent couter GBP100-200 ou plus.
Des developpeurs japonais ingenieux (classicpc.org, ou Youkan) et Martin chez 8bity.cz ont developpe des interfaces pour convertir des claviers PS/2 ou USB courants pour ces machines Sharp sans clavier.
La section suivante decrit le materiel et son protocole en detail.
Protocole clavier MZ-2500
L’interface materielle comprend 7 signaux, 5V et GND, utilisant une prise mini-DIN blindee a 8 broches.

| Signal | Direction | Etat logique | Description |
|---|---|---|---|
| RTSN Row Strobe |
Main Unit -> Keyboard | HIGH (‘1’) | Adresse de rangee transmise. |
| LOW (‘0’) | Le clavier transmet les donnees. | ||
| KD4 Type Strobe |
Main Unit -> Keyboard | HIGH (‘1’) | Donnees matricielles reelles. |
| LOW (‘0’) | AND logique de toutes les touches. | ||
| MPX Nibble MUX Strobe |
Main Unit -> Keyboard | HIGH (‘1’) | Nibble superieur. |
| LOW (‘0’) | Nibble inferieur. | ||
| KD[3:0] Bi-dir bus |
Main Unit -> Keyboard | Numero de rangee sur 4 bits. | |
| Keyboard -> Main Unit | 4 bits des donnees de colonne. |
Deux modes principaux : STROBEALL (detection de touche) et recuperation de donnees de touche. Le protocole detaille est identique a la version anglaise avec les temporisations de 660nS/320nS.


Protocole clavier MZ-2800
Le MZ-2800 est le successeur du MZ-2500 avec un mode Z80 8 bits et un mode 80286 16 bits. Le protocole est similaire mais avec un timing different et l’ajout d’une 14e rangee.


ESP-32S AI Thinker
Schema electrique

Circuit imprime

Interface assemblee

Interface MZ-2800 assemblee

Firmware
Le firmware est ecrit sous le systeme de build Espressif IDF (gcc(++), git, CMake, Ninja) en C/C++.
Configuration et build automatises (recommande)
macOS / Linux / WSL — setup_SharpKey.sh
chmod +x setup_SharpKey.sh
./setup_SharpKey.sh
espressif/idf:v4.4 (~3 Go de telechargement unique) — aucune chaine d'outils sur l'hote, identique partout. Si Docker n'est pas disponible, il bascule vers une installation ESP-IDF v4.4 native (Python 3.8–3.11, CMake, Ninja, etc. via apt/dnf/pacman ou Homebrew sous macOS). Sous Linux/WSL, il peut installer Docker Engine pour vous.
Windows 10 / 11 — setup_SharpKey_windows.ps1 (natif — sans WSL, sans Docker). Depuis une invite PowerShell (une invite utilisateur normale suffit ; winget peut demander une elevation) :
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\setup_SharpKey_windows.ps1
Questions posees par la configuration, et que faire. Chaque invite a une valeur par defaut securisee entre crochets — la lettre majuscule est la valeur par defaut, donc appuyer sur Entree l’accepte.
macOS / Linux / WSL (setup_SharpKey.sh) :
| Invite | Defaut | Que faire |
|---|---|---|
Install Docker Engine now? [Y/n] (Linux/WSL uniquement, si Docker est absent) |
Oui | Entree pour installer Docker (peut necessiter sudo), ou n pour utiliser la chaine d’outils ESP-IDF native. |
Install now? [Y/n] (pour les paquets OS / ESP-IDF manquants) |
Oui | Entree — installe les outils manquants via apt/dnf/pacman ou Homebrew ; peut demander sudo. |
Repo URL [https://git.eaw.app/eaw/SharpKey.git] |
depot public | Entree pour le depot public, ou collez une autre URL (par ex. un depot de dev prive). |
Install directory [~/SharpKey] (lors du clonage) |
~/SharpKey |
Entree pour ~/SharpKey, ou saisissez un chemin. |
Remove <dir> and re-clone? [y/N] (uniquement si ce repertoire contient un depot different ou incomplet) |
Non | y uniquement si vous etes sur ; sinon N et choisissez un autre repertoire. |
Build the SharpKey firmware now? [Y/n] |
Oui | Entree pour compiler immediatement (verifie l’environnement). |
Windows (setup_SharpKey_windows.ps1) :
| Invite | Defaut | Que faire |
|---|---|---|
Repo URL [https://git.eaw.app/eaw/SharpKey.git] |
depot public | Entree pour le depot public, ou collez une autre URL. |
SharpKey checkout directory [%USERPROFILE%\SharpKey] |
%USERPROFILE%\SharpKey |
Entree pour le defaut, ou saisissez un chemin. |
Build the SharpKey firmware now? [Y/n] |
Oui | Entree pour compiler immediatement. |
SHARPKEY_REPO_URL pour choisir le depot sans invite, et (macOS/Linux/WSL) definissez SHARPKEY_BUILD a docker ou native pour forcer la methode de build.
Sortie et recompilation. Un build reussi ecrit le firmware dans build/main.bin (avec une copie versionnee sous release/ sous macOS/Linux). Pour recompiler ensuite sans relancer le script de configuration :
# Docker (macOS / Linux / WSL) docker run --rm -it -v "$PWD":/project -w /project espressif/idf:v4.4 idf.py build # ESP-IDF natif (macOS / Linux) . "$IDF_PATH/export.sh" && idf.py build # Windows (ESP-IDF natif, depuis un nouveau PowerShell) & "$HOME\esp\esp-idf-v4.4\export.ps1"; idf.py build

Build avec Docker
git clone https://git.eaw.app/eaw/SharpKey.git cd SharpKey git submodule update --init --recursive chmod +x build_webfs.sh && ./build_webfs.sh docker run --rm -v $PWD:/project -w /project espressif/idf:v4.4 idf.py build
Integration continue (Jenkins)
Utilisation

| Hot Key | Mode |
|---|---|
| ALT+F1 | Correspondance clavier MZ-2500 |
| ALT+F2 | Correspondance clavier MZ-2000 |
| ALT+F3 | Correspondance clavier MZ-80B |
Prix
Voir la version anglaise pour les tableaux de prix detailles.