Retro Projekt – Bluetooth zu PS2 Adapter – esp32-bt2ps2

Last Updated on 1. November 2026 by SuffocationLink status: OK

Mit dem BT2PS2-Adapter läuft eine moderne Bluetooth- oder BLE-Tastatur an einem alten PC mit PS/2- oder AT-Anschluss. Das Herz ist ein ESP32 mit der Firmware esp32-bt2ps2 von HamberthmLink status: OK; dazu habe ich zwei Trägerplatinen entworfen, eine SMD- und eine THT-Version. Beide sind aufgebaut und laufen am PC, getestet mit einer RK-M75 am Micro 8088.

Version 1: Dieser Beitrag beschreibt die erste Version der Platinen. Die SMD- und die THT-Platine sind aufgebaut und laufen. Version 2 ist in Arbeit (SMD überarbeitet mit Auto-Reset, THT getrennt in eine Platine für den D1 mini und eine mit aufgelötetem WROOM) und ersetzt Version 1, sobald sie getestet ist. Den aktuellen Stand gibt es im RepositoryLink status: OK.

Nur zur Klarstellung: Das Projekt ist nicht mein geistiges Eigentum, sondern wurde vom Entwickler mit hohem zeitlichen Aufwand realisiert und der Allgemeinheit zur Verfügung gestellt. Sollte das Projekt gefallen, zollt dem Entwickler doch mal euren Respekt mit einem Like oder vielleicht sogar mit einer (Kaffee-)Spende.

GitHub – Original-Firmware esp32-bt2ps2 (Hamberthm)Link status: OK

GitHub – mein Fork mit den Platinen (hardware/)Link status: OK

Views

Facts

  • ESP32 mit Bluetooth Classic und BLE, zwei Kerne (kein ESP32-C3/S3, kein ESP8266)
  • Version 1: nur Tastatur; IO25/IO26 sind für die Maus (Version 2) frei gehalten
  • Anschluss am PC über J1 (JST-XH 4-polig) und ein Kabel auf PS/2 (Mini-DIN-6) oder AT (DIN-5)
  • Pegelwandler 5 V ↔ 3,3 V für CLK (IO22) und DATA (IO23), Standardpins der Firmware
  • Versorgung aus dem PC (Jumper JP1) oder über USB
  • Variante A: D1 mini ESP32 gesteckt, Variante B: ESP32-WROOM-32E aufgelötet
  • 2 Lagen, für JLCPCB-Standardprozess ausgelegt, KiCad 10
SMDTHT
ESP32A: D1 mini ESP32 / B: ESP32-WROOM-32Egleich
Pegelwandler2 × BSS138 (SOT-23) + 10 kΩ2 × 2N7000 (TO-92) + 10 kΩ
3,3-V-Regler (nur B)AP2112K-3.3LD1117V33 (TO-220)
Passive Bauteile0805bedrahtet
Size61,0 × 34,1 mm83,0 × 34,1 mm
Die beiden Platinen im Vergleich

Assembly

Variations

Entweder A oder B, nie beides. Ich habe Variante A aufgebaut.

  • A – D1 mini ESP32 gesteckt: U2, U3, D1, R5–R7, C4, SW1, SW2 weglassen. Der D1 mini hat einen eigenen 3,3-V-Regler, mit U3 liefen zwei Regler parallel. Programmiert wird über die USB-Buchse des D1 mini. Achtung: Es muss der D1 mini ESP32Link status: OK sein (4 Stiftreihen), nicht der D1 mini mit ESP8266.
  • B – ESP32-WROOM-32E aufgelötet: alles außer den Buchsenleisten U1. Programmiert wird über J3 mit einem USB-Seriell-Adapter (3,3-V-Pegel).

THT-Platine

Schematic

Record

DescriptionWorth
Gerber availableYes
Gerber fileRelease v0.1 im ForkLink status: OK
Ordered whereJLCPCB, zusammen mit der SMD-Platine in einer Bestellung (21.09.2026)
Piece5
Price + Tax and Delivery22,29 USD für beide Platinen zusammen (je 5 Stück), also etwa 2,20 USD pro Platine
Special featuresAufdruck „bt2ps2 V1 THT 2026-09“
Daten zur Platinenbestellung THT

Hier konserviert die Gerber- und KiCad-Dateien, bitte im RepositoryLink status: OK schauen, ob es etwas Neueres gibt.

Components

Nach Wert gruppiert und in Lötreihenfolge. Spalte „Beschreibung“ sagt, ob das Teil für Variante A, B oder beide gebraucht wird. Preise trage ich nach.

ComponentSizeNumberDescriptionPrice €Stock
Resistance10 kΩ4R1–R4, A+B
Resistance10 kΩ2R5, R6, nur B
Resistance1 kΩ1R7, nur B
Kondensator Keramik100 nF2C3, C5, A+B (bei A optional)
Kondensator Keramik1 µF1C4, nur B
Elko10 µF2C1, C2, A+B (C2 bei A optional), Polung beachten
MOSFET2N7000 (TO-92)2Q1, Q2, A+B
ESP32-WROOM-32E-N4SMD-Modul1U2, nur B
LED blau3 mm1D1, nur B, Polung beachten
Taster6 mm2SW1 BOOT, SW2 RESET, nur B
Stiftleiste + Jumper2-polig1JP1, A+B
Pen holder4-polig1J3 Programmer, B (bei A optional)
JST-XH Buchse4-polig1J1, A+B
SpannungsreglerLD1117V33 (TO-220)1U3, nur B
Buchsenleistenfür D1 mini ESP321 SatzU1, nur A
D1 mini ESP32Modul1nur A (MH-ET LIVE MiniKit, 4 Stiftreihen)
Gesamt TeileSummer€
Bauteileliste THT

Dazu die interaktive Stückliste (iBOM) und der Bestückungsplan:

Order

  1. Widerstände (R1–R4, bei B auch R5–R7)
  2. Keramik-Kondensatoren (C3, C5, bei B C4)
  3. Elkos C1, C2 (Polung)
  4. Transistoren Q1, Q2 (flache Seite laut Bestückungsdruck)
  5. Rest: bei B U2 (SMD, solange die Elkos nicht im Weg sind), D1, SW1, SW2, U3; dann JP1, J3, J1; bei A die Buchsenleisten – am besten mit gestecktem D1 mini löten, damit sie gerade sitzen

Gibt es keine 2N7000: Ein BS170 geht auch, hat aber die Pinbelegung D-G-S statt S-G-D und muss deshalb um 180° gedreht eingesetzt werden. Bipolartransistoren (BC547 o. ä.) gehen nicht.

So sieht die fertig aufgebaute THT-Platine V1 mit aufgelötetem ESP-32D (Variante B) aus.

Bestückte BT2PS2 THT-Platine V1 schräg von oben: ESP-32D-Modul links, Jumper JP1, Transistoren, Spannungsregler, Elkos, Taster BOOT und RESET, Stiftleiste J3
BT2PS2 THT V1 mit ESP-32D – Ansicht

SMD-Platine

Schematic

Die Schaltung ist dieselbe wie bei der THT-Platine, nur die Bauteile sind andere: BSS138 statt 2N7000 als Pegelwandler, AP2112K-3.3 statt LD1117V33 als Regler.

Record

DescriptionWorth
Gerber availableYes
Gerber fileRelease v0.1 im ForkLink status: OK
Ordered whereJLCPCB, zusammen mit der THT-Platine in einer Bestellung (21.09.2026)
Piece5
Price + Tax and Delivery22,29 USD für beide Platinen zusammen (je 5 Stück), also etwa 2,20 USD pro Platine
Special featuresAufdruck „bt2ps2 V1 2026-09“
Daten zur Platinenbestellung SMD

Hier konserviert die Gerber- und KiCad-Dateien, bitte im RepositoryLink status: OK schauen, ob es etwas Neueres gibt.

Components

Bis auf die Taster, die Stift- und Buchsenleisten und J1 sind alle Teile SMD in 0805 bzw. SOT-23; die 10-µF-Kondensatoren sind hier Keramik, also ohne Polung.

ComponentSizeNumberDescriptionPrice €Stock
Resistance10 kΩ · 08054R1–R4, A+B
Resistance10 kΩ · 08052R5, R6, nur B
Resistance1 kΩ · 08051R7, nur B
Kondensator Keramik100 nF · 08052C3, C5, A+B (bei A optional)
Kondensator Keramik1 µF · 08051C4, nur B
Kondensator Keramik10 µF · 08052C1, C2, A+B (C2 bei A optional)
MOSFETBSS138 (SOT-23)2Q1, Q2, A+B
ESP32-WROOM-32E-N4SMD-Modul1U2, nur B
SpannungsreglerAP2112K-3.3 (SOT-23-5)1U3, nur B
LED blau08051D1, nur B, Polung beachten
Taster6 mm, bedrahtet2SW1 BOOT, SW2 RESET, nur B
Stiftleiste + Jumper2-polig1JP1, A+B
Pen holder4-polig1J3 Programmer, B (bei A optional)
JST-XH Buchse4-polig, B4B-XH-A1J1, A+B
Buchsenleistenfür D1 mini ESP321 SatzU1, nur A
D1 mini ESP32Modul1nur A (MH-ET LIVE MiniKit, 4 Stiftreihen)
Gesamt TeileSummer€
Bauteileliste SMD

Bestückungspläne der Ober- und Unterseite:

Order

  1. SMD-Widerstände R1–R4, bei B auch R5–R7
  2. SMD-Kondensatoren C1–C5 (C4 nur bei B; alle Keramik, ohne Polung)
  3. Transistoren Q1, Q2 (SOT-23)
  4. Bei B: U3 (SOT-23-5), LED D1 (Polung laut Bestückungsdruck), dann U2 (WROOM)
  5. Bedrahtet zum Schluss: bei B SW1, SW2; dann JP1, J3, J1; bei A die Buchsenleisten – am besten mit gestecktem D1 mini löten, damit sie gerade sitzen

0805 lässt sich gut mit dem Lötkolben löten: ein Pad vorverzinnen, Bauteil mit der Pinzette anlegen, anheften, dann die zweite Seite.

So sieht die fertig bestückte SMD-Platine V1 mit dem ESP-32D aus. Bei V1 liegen R5, R6, C4 und C5 noch auf der Rückseite, die Sockelreihen für den D1 mini bleiben leer.

Cable

J1 ist mit 5V G D C bedruckt. Meine Adern: 5V rot, G (GND) schwarz, D (DATA) lila, C (CLK) grau.

J1PS/2 Mini-DIN-6AT DIN-5Ader
1 +5V45rot
2 GND34schwarz
3 DATA12lila
4 CLK51grau
Zuordnung J1 zu PS/2 und AT
Pinbelegung AT-DIN-5 und PS/2-Mini-DIN-6, jeweils Buchse von vorn und Stecker von der Kontaktseite, mit Zuordnung zu J1
Belegung AT-DIN-5 und PS/2-Mini-DIN-6 mit Anschluss an J1

Tipp: Beim Löten schaut man auf die Rückseite des Steckers. Die Lötseite ist das Spiegelbild der Kontaktseite und sieht damit genauso aus wie die Buchse am PC von vorn – also nach dem Bild „Buchse (am PC)“ verdrahten. Die Pinnummern stehen meist klein im Isolierkörper; nach dem Löten mit dem Durchgangsprüfer gegenchecken.

Krimpen wollte ich mir sparen. Ich hab mir deshalb fertige Kabel besorgt, die an beiden Enden schon gekrimpte JST-XH-Kontakte haben, und sie einfach in der Mitte geteilt. Das offene Ende kommt an den PS/2- oder DIN-Stecker, die Kontakte schiebt ihr nur noch ins vierpolige XH-Gehäuse. Spart Krimpzange und Nerven.

Selbst gebautes Kabel von JST-XH-Stecker auf AT-DIN-5-Stecker mit roter, schwarzer, lila und grauer Ader
BT2PS2 – Kabel JST-XH auf AT-DIN-5
Selbst gebautes Kabel von JST-XH-Stecker auf PS/2-Mini-DIN-6-Stecker
BT2PS2 – Kabel JST-XH auf PS/2

Case

Für beide Platinen gibt es ein 3D-Druck-Gehäuse (OpenSCAD und STL) im Ordner hardware/caseLink status: OK. Gedruckt habe ich es noch nicht.

Commissioning

Prüfen vor dem ersten Einschalten

  • Sichtprüfung: Lötbrücken, Polung C1/C2/D1, Q1/Q2
  • Ohne Modul messen: +5 V ↔ GND und +3,3 V ↔ GND kein Kurzschluss, J1 Pin 1 ↔ Pin 2 kein Kurzschluss
  • J1 Pin 3 und 4 gegen +5 V je ca. 10 kΩ (R3/R1)

Erste Spannung

Mit Labornetzteil 5 V und Strombegrenzung ~100 mA, JP1 offen. 5 V an J3 Pin 4 (+) und Pin 1 (GND), bei A auch einfach per USB am D1 mini.

  • A ohne Modul: J1 Pin 3/4 ≈ 5 V, +3,3 V ≈ 0 V (kommt erst vom Modul).
  • A mit Modul: +3,3 V ≈ 3,3 V, CLK (IO22) und DATA (IO23) ≈ 3,3 V.
  • B: Ausgang U3 ≈ 3,3 V, Leerlaufstrom grob 30–80 mA.
  • Pegelwandler: J1 Pin 4 kurz auf GND → IO22 ≈ 0 V, J1 Pin 3 auf GND → IO23 ≈ 0 V.
  • Geht der Pegel nicht sauber runter: Die Schaltschwelle des 2N7000 kann bis 3 V liegen, dann den Transistor tauschen.

Firmware

Firmware selbst bauen (VS Code und ESP-IDF)

So hab ich es zuletzt gemacht: Firmware mit ESP-IDF 6.1 bauen und direkt mit idf.py flash aufspielen. Wer nur flashen will, nimmt die fertige Datei weiter unten und esptool. Die Grundlagen habe ich in eigenen Beiträgen beschrieben: VS Code InstallationLink status: OK, VS-Code Espressif IDFLink status: OK and Espressif IDF – Projekt erstellenLink status: OK.

  1. In VS Code die Erweiterung ESP-IDFLink status: Broken installieren.
  2. „ESP-IDF: Configure ESP-IDF Extension“ → Express → Version v6.1.0 oder v5.3.0 (beide getestet; 5.3.3 bis 5.x laufen laut Original-Projekt nicht).
  3. RepositoryLink status: OK klonen und den Ordner öffnen, die mitgelieferte sdkconfig nicht ersetzen (1000-Hz-Tick ist wichtig).
  4. Bauen mit Strg+E B, flashen mit Strg+E F, serieller Monitor mit Strg+E M.

Auf der Kommandozeile geht es genauso:

git clone -b v6.1.0 --recursive https://github.com/espressif/esp-idf.git
cd esp-idf && ./install.sh esp32 && . ./export.sh
git clone https://github.com/sfambach/esp32-bt2ps2.git
cd esp32-bt2ps2 && idf.py build
idf.py -p /dev/ttyUSB0 -b 115200 flash monitor

Die fertige Datei im ZIP ist noch der erste Stand vom 08.10.2026 (ESP-IDF v5.3.0, FreeRTOS 1000 Hz, Bluetooth Classic + BLE, CLK IO22, DATA IO23). Die Korrekturen für ISO-Tasten, AltGr am Micro 8088 und das schnelle Wiederverbinden fehlen darin, für den aktuellen Stand also selbst bauen. Das ZIP enthält eine zusammengefasste Datei für Adresse 0x0, die Einzeldateien, Prüfsummen und die Lizenz. Alternativ gibt es fertige Dateien bei den Releases des OriginalsLink status: OK; die Pins sind Standard, eine Änderung ist nicht nötig.

Fertige Datei flashen mit esptool (Browser)

  1. Chrome oder Edge öffnen: esptool-jsLink status: OK
  2. JP1 offen, kein PS/2-Kabel. Board per USB anschließen (A: USB am D1 mini, B: USB-Seriell-Adapter an J3, beim Verbinden BOOT halten und RESET tippen).
  3. Baudrate 115200 wählen (höhere Werte machten bei mir Verbindungsprobleme), „Connect“ und den Port freigeben.
  4. Prüfen: „Connected to device: ESP32…“ – steht dort ESP8266, ist das falsche Modul angesteckt.
  5. Flash Address von der Voreinstellung 0x1000 auf 0x0 ändern, Datei bt2ps2-merged-0x0.bin wählen, „Program“.
  6. Nach „Hash of data verified“ RESET drücken.

Bei der SMD-Platine und THT-Variante B kommt der USB-Seriell-Adapter (3,3-V-Pegel) an J3: Pin 1 GND, Pin 2 TXD des ESP → RX am Adapter, Pin 3 RXD des ESP → TX am Adapter, Pin 4 +5 V. BOOT halten, RESET tippen, BOOT loslassen, flashen, danach RESET.

Tipp: Ein nacktes Modul (ESP-WROOM-32/-32E, ESP-32S) lässt sich schon vor dem Auflöten flashen, mit einem Programmieradapter: einer Klemmfassung mit Federkontakten, USB-C und USB-Seriell-Wandler CH9102. Der Adapter schaltet Reset und Boot-Modus selbst, die Taster BOOT/RESET und der Stecker J3 werden dann nur noch für spätere Updates gebraucht. Die Fassung muss zur Modulgröße passen (18 × 25,5 mm bei WROOM-32 und ESP-32S). Unter Linux erscheint der Adapter meist als /dev/ttyACM0:

python -m esptool --chip esp32 -p /dev/ttyACM0 -b 460800 write-flash 0x0 bt2ps2-merged-0x0.bin

Und die Arduino IDE?

Die Firmware ist ein ESP-IDF-Projekt und kein Arduino-Sketch, in der Arduino IDE lässt sie sich deshalb nicht kompilieren. Nützlich ist die IDE trotzdem (Grundlagen: Arduino IDELink status: OK, ESP32/ESP8266 in der Arduino GUI einrichtenLink status: OK):

  • Der serielle Monitor auf 115200 Baud zeigt Startmeldungen, BT-Scan und den Pairing-Code.
  • Wer den ESP32-Core installiert hat, hat esptool schon auf dem Rechner und kann die fertige Datei damit flashen – unter Windows in %LOCALAPPDATA%\Arduino15\packages\esp32\tools\esptool_py\<Version>, unter Linux in ~/.arduino15/packages/esp32/tools/esptool_py/<Version>.
esptool --chip esp32 -p COM5 -b 115200 write_flash 0x0 bt2ps2-merged-0x0.bin

Am PC

Am PC ist kein Treiber nötig, der Adapter meldet sich wie eine normale PS/2- bzw. AT-Tastatur. Wichtig: PS/2 ist nicht hot-plug-fähig, also nur bei ausgeschaltetem PC anstecken.

  1. PC aus, USB abziehen, JP1 stecken (5 V kommen dann aus dem PC).
  2. Kabel an den PC, PC einschalten.
  3. Im BIOS testen (z. B. Num-Lock-LED, Setup aufrufen).
  4. Zum Debuggen: JP1 offen, USB dran – GND über das Kabel bleibt verbunden.

Configuration

Die Tastatur am besten vor dem Anschluss an den PC koppeln, mit Versorgung über USB und offenem JP1.

  • BLE-Tastatur: Tastatur in den Pairing-Modus, Board einschalten, verbindet ohne Code.
  • Bluetooth Classic: Der Code wird per LED geblinkt (Anzahl Blinks = Ziffer, Dauerlicht = 0) oder steht im seriellen Monitor; Ziffern tippen, Enter.
  • Alte Tastaturen (Legacy): Wenn im Monitor „Waiting pairing code entry…“ steht, 1234 und Enter tippen.
  • LED an = Normalbetrieb, LED aus = Pairing-Modus. BOOT startet ein neues Pairing.
  • Test: Die LED blinkt bei jedem Tastendruck.

Miscellaneous

Documentation

Die PS/2-Schnittstelle im Überblick:

Data sheets

ESP32: ESP32-Datenblatt (Espressif)Link status: OK

ESP32-WROOM-32E: ESP32-WROOM-32E-Datenblatt (Espressif)Link status: OK

Licence

Firmware und Platinen stehen unter der MIT-Lizenz: Firmware © Humberto Möckel u. a., Bluetooth-Teil © Guy Turcotte, Platinen © Stefan Fambach. Bei Weitergabe Copyright- und Lizenztext beilegen; die Lizenz liegt im Firmware-ZIP.

Generelle Tipps

Soldering points

Lötstellen gerade an den ICs nochmal genau, am besten mit dem Mikroskop oder Lupe, auf Kurzschlüsse und Kontakt prüfen. Durchmessen mit Multifunktionsmeter bzw. Durchgangsprüfer.

For small solder joints on through-hole components, use flux if possible; it makes life easier and increases the quality of the connection.

Problems

Falsches Modul geflasht

Beim ersten Versuch hing noch ein D1 mini mit ESP8266 am PC, esptool-js meldete „ESP8266EX“. Der hat kein Bluetooth, die Firmware läuft darauf nicht.

Lösung: Vor dem Flashen prüfen, dass „Connected to device: ESP32…“ angezeigt wird. Kaputt geht dabei nichts, der ESP8266 kann einfach neu geflasht werden.

ESP32 bootet nach dem Flashen nicht

esptool-js schlägt als Flash Address 0x1000 vor. Die zusammengefasste Datei enthält den Bootloader aber schon an der richtigen Stelle; auf 0x1000 geschrieben landet er auf 0x2000.

Lösung: Flash Address auf 0x0 ändern und neu flashen.

Verbindungsabbrüche beim Flashen

Lösung: Baudrate auf 115200 heruntersetzen.

Firmware lässt sich unter Linux nicht bauen

Im Original standen Windows-Pfade in den #include-Zeilen, und serial_mouse.cpp fehlte in der CMakeLists.txt.

Lösung: In meinem Fork korrigiert (Pull Request #1Link status: OK), danach baut es mit ESP-IDF v5.3.0 ohne Änderung.

Build brach mit ESP-IDF 6.x ab

Mit ESP-IDF 6.x (Compiler esp-15.2.0) meldete der Linker undefined reference to `esp_ble_gap_set_scan_params', esp_ble_gap_start_scanning and esp_ble_resolve_adv_data. In ESP-IDF 6 gibt es die alten BLE-Scan-Funktionen, die die Firmware nutzt, nur, wenn BLE 4.2 in der Konfiguration eingeschaltet ist. Das alte sdkconfig aus 5.3 hatte es aus.

Lösung: Im Fork behoben (Commit 74eb970Link status: OK): sdkconfig.defaults schaltet jetzt CONFIG_BT_BLE_42_FEATURES_SUPPORTED and CONFIG_BT_BLE_42_SCAN_EN ein, das sdkconfig ist mit 6.1 neu erzeugt. Die Firmware baut damit mit ESP-IDF 6.1 und weiterhin mit 5.3. Wer ein eigenes, altes sdkconfig hat, löscht es vor dem Bauen oder setzt es mit git checkout sdkconfig zurück.

# und <> fehlen auf deutschen Tastaturen

Mit einer deutschen Bluetooth-Tastatur (Royal Kludge RK-M75) kamen die Tasten #' and <>| am PC nicht an. Diese beiden Tasten gibt es nur auf ISO-Tastaturen, die Original-Firmware hatte für sie keine Zuordnung.

Lösung: Im Fork ergänzt (PR #2Link status: OK), die aktuelle Firmware enthält den Fix.

AltGr unzuverlässig und Zeichen verschluckt am Micro 8088

Am Kiselev Micro 8088 (Tastatur-Konverter XTATKEY auf PIC) kam AltGr mal an und mal nicht und blieb danach hängen. Einzelne Zeichen gingen verloren, Strg oder Shift blieben gedrückt. Ursache war die PS/2-Senderoutine der Bibliothek: Hielt der PC den Takt fest, um eine Übertragung zu unterbrechen, bemerkte sie das nicht und beantwortete Resend-Anforderungen falsch. Dabei ging vor allem das E0 vor AltGr verloren. Ohne E0 sieht der PC beim Loslassen nur „linkes Alt los“, AltGr bleibt gedrückt. Eine echte PS/2-Tastatur funktionierte am selben Rechner.

Lösung: Im Fork behoben (Commit 62f9feaLink status: OK). Die Firmware prüft vor jedem Bit, ob der PC den Takt festhält, sendet abgebrochene Bytes erneut, beantwortet Resend richtig und lässt wie das Projekt HIDmanLink status: OK 1 ms Pause zwischen den Bytes.

Tastatur verbindet sich nach dem Einschalten erst nach 20 Sekunden

Nach dem Einschalten oder wenn die Tastatur aus dem Schlaf kam, dauerte es lange, bis wieder getippt werden konnte. Im Log war die gekoppelte Tastatur schon nach 11,7 s zu sehen, verbunden war sie aber erst nach 21,7 s. Der Scan beim Start lief stur 5 s BLE und danach 5 s BT Classic durch, erst dann wurde verbunden; der Hintergrund-Scan wartete ähnlich.

Lösung: Beide Scans brechen ab, sobald die gekoppelte Tastatur sendet, BT Classic entfällt dann, und die Dienstliste der Tastatur liegt im Flash. Jetzt ist die RK-M75 rund 1 s nach dem Aufwachen verbunden (Firmware ab 1.11.2026 im Repository).

Conclusion

DescriptionWorth
SuccessfulJa, beide Platinen aufgebaut und am PC getestet (RK-M75 am Micro 8088)
Preis pro StückEtwa 6,50 € mit aufgelötetem ESP32-WROOM-32D (Variante B), etwa 7,50 € mit D1 mini (Variante A). Davon Platine rund 1,90 €, ESP32 3,45 € bzw. D1 mini 5,06 €, der Rest sind Cent-Teile.
Soldering timeTHT etwa 30 Minuten, SMD etwa 1 Stunde
DifficultyLeicht (nur bedrahtete Bauteile bei Variante A)
FunctionTastatur läuft, auch ISO-Tasten und AltGr
Is it worth itJa. Wer am alten PC keine PS/2-Tastatur hat, ist damit günstig dabei.
RestrictionsVersion 1 nur Tastatur; nur ESP32 mit BT Classic + BLE
Conclusion to the project

Related Posts

Sources

To the project

Retro pages

https://archive.orgLink status: OK – Alte Software, Magazine, Handbücher und viele mehr.

https://theretroweb.comLink status: Broken – PC Hardwareverzeichnis.

https://www.winhistory.de/index.phpLink status: OK – Dos, Windows Versions Beschreibungen.

http://www.win31.de/links.htm – Win 3.1x Tools und Tricks

Retro Forensics

https://forum.classic-computing.de/forumLink status: Unknown – Deutsch/Englische Forum mit vielen Retro-Computer Enthusiasten.

https://www.vogons.orgLink status: Unknown – Hier habe ich schon viele Tipps zu Hardware gefunden, sie haben auch eine Treiber Verzeichnis.

https://www.dosforum.deLink status: Unknown – Forum mit strikten Regeln und sehr hilfreich in Bezug zu DOS, Windows-Fragen werden nicht gerne gesehen.

https://dosreloaded.deLink status: Unknown – Dos, Hardware Reparatur, Bios Dateien und mehr.

https://www.winhistory-forum.netLink status: Unknown DOS and Windows history.

Retro Shops

https://ram-co-shop.deLink status: Unknown – PC Teile auch neuere, schon viel dort bestellt hat immer funktioniert.

http://www.amoretro.deLink status: Unknown – Verkauft auf EBay und hat ein nettes Verzeichnis alter Hardware

https://retroreiz.deLink status: Unknown – Atari, Nintendo, Sega und anderes.

https://www.retroworld.info/deLink status: Unknown – Aufkleber, Schilder und mehr.

https://retesa-nb.deLink status: Unknown – Alte Hardware rund um den PC

https://www.retro8bitshop.comLink status: Unknown – C64 lastig

Logbook

DateChangeAuthor
01.11.2026Preis pro Stück aus Taxmod-Stückpreisen berechnet
Fazit und Bestelldaten der Platinen ausgefüllt
Firmware-Abschnitt: idf.py flash zuerst, ZIP als erster Stand
Foto PS/2-Kabel, Tipp vorgekrimpte JST-XH-Kabel ergänzt
Auf Version 1 zurückgesetzt, Fotos THT-Platine, Hinweis auf V2, veröffentlicht
Problem langsame Wiederverbindung mit Lösung ergänzt
Suffocation
31.10.2026SMD-Stückliste auf V2, Schaltplan, Gerber, KiCad, 3D aktualisiert
SMD V2: J3 6-polig mit DTR/RTS-Auto-Reset (Q3, Q4)
Fotos bestückte SMD-Platine V1 mit ESP-32D ergänzt
Firmware-Abschnitt: erst bauen, dann flashen
Firmware-Bauanleitung: ESP-IDF v6.1.0, Abschnitt umbenannt
SMD-3D-Ansicht, Gerber und KiCad-Projekt auf V2
Schaltpläne SMD und THT aktualisiert
SMD-Platine V2: ohne D1-Sockel, WROOM quer, 49 × 31 mm
Suffocation
25.10.2026Gliederung: Zusammenbau getrennt nach THT- und SMD-Platine (Schaltplan, Platine, Bauteile, Reihenfolge), Varianten, Kabel und Gehäuse gemeinsam; PS/2-Dokumentation nach Sonstiges; SMD-Bestückungspläne ergänztSuffocation
24.10.2026Bauteile: Stückliste der SMD-Platine ergänztSuffocation
21.10.2026Firmware: Tipp Programmieradapter für nackte Module (Variante B)Suffocation
20.10.2026Probleme: Build mit ESP-IDF 6.x (behoben), fehlende ISO-Tasten # und <> (Fix im Fork), AltGr/verschluckte Zeichen am Micro 8088 (behoben)Suffocation
10.10.2026Rechtschreibung korrigiert: Komma, Groß-/Kleinschreibung, Zusammenschreibung, BindestricheSuffocation
08.10.2026Fotos der unbestückten Platinen, J1-Belegungstabelle, Erste Spannung, J3-Anschluss für Variante B, LED-Test ergänzt
Beitragsbild gesetzt, Template-Reste entfernt
Probleme: falsches Modul, Flash-Adresse 0x0, Baudrate, Build unter Linux
Inbetriebnahme: Prüfen, Firmware-Download, Flashen im Browser mit Screenshots, VS Code/ESP-IDF, Arduino IDE, Pairing
Aufbau: Varianten A/B, Lötreihenfolge, Kabel mit Belegungsbild und Löttipp, Gehäuse
Fakten, Schaltpläne, Gerber, KiCad-Projekte, Stückliste nach Wert gruppiert, iBOM
Ansichten mit Fotos der aufgebauten THT-Platine und 3D-Ansichten
Einleitung, Links zum Original und zum Fork
Suffocation
03.10.2026Log-Liste eingefügtSuffocation
18.09.2026Post createdSuffocation
Changelog