Hallo allerseits,
am Certabo Bluetooth-Modul hat mich die relativ lange Bootzeit von Beginn an etwas gestört.
Das ist zwar nicht wichtig, weil es sowieso dauert, bis alle Figuren aufgestellt sind. Trotzdem irgendwie störend.
Nach langem Herumexperimentieren mit dem Betriebssystem und meinem alten RaspberryPi 3B bin ich auf ca. 30 Sekunden Bootzeit gekommen.
Das war mir immer noch zu viel, weshalb ich nach anderen Lösungen Ausschau gehalten habe und dann bin ich auf
die ESP32 Entwicklerboards gestoßen. Sie sind billiger als Raspberry Pis, laufen mit einem Echtzeitbetriebssystem
und es wird die Software direkt in die Firmware gepackt.
Also habe ich mir letztes Jahr ein Entwicklerboard gekauft und siehe da - ein Bluetooth-Adapter war damit extrem einfach, mit wenigen Zeilen programmiert.
Nur leider hat das ESP32-Board, das ich gekauft habe, keinen USB-Host-Anschluss (USB OTG) und so ein USB-Host-Anschluss
wird für die Verbindung mit dem Certabo-Brett benötigt.
Seit einigen Monaten gibt es Entwicklerboards mit dem neuen ESP32-S3 Chip mit USB-Host-Unterstützung. Großer Nachteil dieses Chips ist,
dass kein klassisches Bluetooth mehr unterstützt wird, sondern nur noch Bluetooth LE (BLE). Das Certabo-Modul verwendet aber klassisches Bluetooth
und alle Softwareentwickler haben dieses Protokoll in ihren Programmen implementiert.
Und dann kam mir die Idee: warum nicht einfach ein anderes E-Board-Protokoll, das BLE unterstützt, nehmen und im Bluetooth-Modul für das Certabo-Brett übersetzen?
Ich habe mich für das Chessnut-Protokoll entschieden, weil es ähnlich dem Certabo-Protokoll ist. Ein weiterer Vorteil ist, dass
theoretisch in Zukunft das Modul mit dem Offline-Speichern von Partien erweitert werden könnte.
Das Resultat dieser Idee ist hier zu sehen:
Code und Firmware zum Flashen auf Github:
https://github.com/gkalab/cer2nut
Benutzte Hardware: FREENOVE ESP32-S3-WROOM, Anker 321 Powerbank
Wie funktioniert das ganze?
Beim Anschließen des ESP32-Moduls an das Certabo-Brett wird erst einmal die übliche Kalibrierung der Figuren durchgeführt. Das passiert jedesmal,
wenn das Modul Strom bekommt und das Brett zum ersten Mal angeschlossen wird. Die zwei zusätzlichen Damen sind optional.
Nach der Kalibrierung leuchten die mittleren vier LEDs und das Modul ist bereit für die Verbindung.
Es gibt sich nun als "Chessnut Air" aus und Programme, die mit einem Chessnut Air/Pro kommunizieren können,
können sich mit dem Adapter verbinden und glauben, mit einem Chessnut Brett verbunden zu sein.
Der Adapter übersetzt LED-Befehle in Certabo-LED-Befehle und Positionen der Figuren in Positionsangaben für Chessnut.
Ich habe folgende Software damit getestet:
* Android
** Chessnut
** Chess Dojo
** Chess PGN Master
** Chess for Android
** White Pawn
* Picochess
* Grahams Chessnut-Treiber
** Arena
** Shredder Classic 4 ct 2012
Unter BearChess (v0.9.12.1) habe ich leider keine ordentliche Verbindung via BLE zusammengebracht, das ging mit einem originalen Chessnut Air allerdings auch nicht.
Ach ja, die Bootzeit beträgt nun inklusive Kalibrierung der Figuren < 8 Sekunden :-)
Gruß,
Gerhard