Welcome to Certabo forum

Both posts in italian and in english are accepted on the forum to help everybody to provide contribution irrespective to geographical location. Object of the forum is to provide technical information on various items and help developer and users to personalise software for Certabo chessboards. User explicitly accepts the conditions of use of this forum here reported.

A brief introduction of user is always appreciated in section Welcome to….

Benvenuti nel forum di Certabo

Sul forum possono essere postati articoli sia in lingua italiana che inglese per permettere a tutti di dare il proprio contributo da diversi luoghi geografici. Il forum ha come scopo fornire informazioni tecniche in generale e aiutare gli sviluppatori ed utenti a personalizzare software per le scacchiere Certabo. L’utente accetta esplicitamente le condizioni del presente forum consultabili qui.

Un breve saluto del nuovo utente è sempre gradito nella sezione Benvenuti a….

Please or Register to create posts and topics.

python based UCI engine

I've started to work on a python based UCI engine. It uses the python code provided by Certabo wrapped into an UCI interface (inspired by the sunfish engine). The latest code can be found here: https://github.com/haklein/certabo-playground/tree/master/certabo-uci

It works fine so far on my Linux system together with pychess and also the official python lichess-bot. It's pretty new and probably still has rough edges. Promotion is still untested. I didn't play a lot of full games on the arduino board simulator. But my real board has arrived today, so more testing will happen in the next weeks.

br Hari

I've committed a number of enhancements on github. The latest code now uses an internal thread for the serial communication. The port can be specified on the commandline and also via an UCI option. It defaults to 'auto', which uses serial port auto-detection. It skips all devices with different vendor id & pid. So false detection chance is minimized. The latest version also fixes a bug in concert with lichess-bot.py, as that one sends two "isready" commands. This caused behavior where two serial threads were spawned, interfering with each other. Also the port is now locked exclusively. The new thread based serial communication does also handle reconnects to a different serial device (e.g. on linux the USB serial adapter might get assigned a different device on reconnect). In 'auto' port config it will just do an additional scan before attempting to reconnect. Board rotation has been added as option, but that's untested. Calibration is also an option, and apparently works fine. The current master branch did play nicely with pychess and lichess-bot.py

What next: I've added a full board comparison routine, irregardless of valid moves. That will be used to light all fields that differ between the real board and the internal board representation. Currently only two fields are lit (e.g. if king and queen are swapped). This helps to point out mistakes on initial position to the user.

The full board comparison triggering LED is now implemented. The feature can be seen in this short video: https://youtu.be/qETHjeTY-SY

certabo-uci.py also works fine on Mac (tested with latest python3, installed via pyenv)

Uploaded files:
  • You need to login to have access to uploads.
Quote from hari on January 1, 2020, 9:57 pm

certabo-uci.py also works fine on Mac (tested with latest python3, installed via pyenv)

Hello Hari

Thank you very much for update! Great video and very professional too. Will check on Mac.

Have you tried to run the Python3 version of standard code on Mac installing via pip? We used Miniconda at least for pyhton2 as there were some issues with pygame module on Mojave installed via pip.

All the best and have a great new 2020!


Hi Pietro,

currently it doesn't work with python2, as I'm using e.g. a lot of f-string formatting.

Wish you a happy 2020, health and plenty of board sales 🙂

br Hari

@pietro-mandurino I've created a pyinstaller binary based on python 3.7 (installed via brew): http://vt100.at/files/certabo/

I've commited plenty of enhancements/fixes over the last days. certabo-uci.py did also receive a lot of testing. Not only with lichess-bot and pychess. I've also done plenty of testing with SCID vs PC, jcchess and Arena for Linux (3.9 beta). This was helpful to identify flaws in my UCI handling (e.g. neither lichess-bot nor pychess do send a 'position fen <fen>' but just startpos). Also wanted to try Shredder 5 Classic demo, but that apparently doesn't have an engine tournament mode.

I finally managed to test (and fix) the board rotation feature ('rotate' option in the UCI engine settings). Currently I don't have any new features on the list, as I'm very happy with the current implementation. The latest code is on github (as always). I'll give it a few more days of testing and will then call it a release.

Hello again Harald

That's great news! Will you make some binary for Mac? We can eventually make for Windows and arrange for user who want to use straight forward.

We have recently modified our sw to which is now compatible with Catalina too. This has required some small modifiications will release that too.

All the best