Description

A chess e-board is a chess board which can be connected to a computer and provide information about current position and its changes. In practice it is used either for online broadcasting of tournaments or for playing online.

DGT, the best known vendor, provides a software that can be used to access the board but it is a big and complex software with many unnecessary features. It's also available for Linux but it's closed source written in Java which brings compatibility issues. An alternative is a browser extension chessconnect but that only works in chrome/chromium browsers.

Goals

Write a lightweight software which can be used instead of DGT Livechess for online play on Lichess. It should be written in a modular way so that more features can be added easily. Preferred way is to connect to the site directly via Lichess Board API.

More ideas for the future:

  • broadcasting OTB games
  • support more boards: Chessnut, Millenium, ...
  • chess.com support (if someone playing there is also interested)

Looking for hackers with the skills:

Nothing? Add some keywords!

This project is part of:

Hack Week 25

Activity

  • about 4 hours ago: mkubecek originated this project.

  • Comments

    • mkubecek
      about 4 hours ago by mkubecek | Reply

      Some challenges:

      1. While the the boards, whether old ones with serial port or newer ones with USB (micro or Type C), are presented as serial device on Linux, the communication protocol is not publicly documented. Parts of the reverse engineering made by other projects can be reused and I was also able to recover a previously published documentation which disappeared from the DGT site but some extensions for new devices still need to be found by trial and error.

      2. The board itself does not identify moves but only events like "e2 is now empty" or "a white pawn appeared on e4". Translating these events has to be done by software which is a non-trivial task, especially for complex moves (capture, castling, promotion) and some specifics of the board implementation make it even trickier. For example, the squares are scanned in certain order and this scan takes a non-trivial time so that events may be sent in order different order than they actually happened. (E.g. for a move a2-a4, the "white pawn appeared on a4" event may precede the "a2 is now empty" one.) Also, when a piece is shifted from the initial square to destination one, it may be seen on intermediate squares for a short moment.

    Similar Projects

    This project is one of its kind!