ArenaSwiss

I've always found it interesting watching two chess programs play each other, and the Arena Chess GUI provides a good way of doing this. However it only allows for round robin (all play all) and gauntlet (one plays many) type competitions. In chess it is very common to have Swiss style tournaments where each round has players paired against others with the same number of points. Arena doesn't provide for this, but I found a program called ArenaSwiss by Eberhard Jiritschka from 2009 that interfaced with Arena. I took his program and updated it to create this new version.
It runs in a text based DOS style window, and at first I was thinking of changing it to a more modern graphics based screen. After using it for a while I have found the current screen works reasonably well so I might not bother.

Current version: 0.4a       Released: 12 November 2019

The download contains the program, source code and GPL license. You should look at the README.TXT file as it provides all the information you need to amend the ArenaSwiss.ini file for your PC.

Note: If you are using an older version of ArenaSwiss complete any running tournaments before loading this new program.

ArenaCup

Having provided for Swiss tournaments I thought I'd create a program to run knockout Cup tournaments too. The program allows for random and seeded pairings, multiple games per pairing and so on. It also runs in a text based DOS style window, which will change if I ever get around to changing ArenaSwiss!

Current version: 0.2       Released: 22 May 2019

The download contains the program, source code and GPL license. You should look at the README.TXT file as it provides all the information you need to amend the ArenaCup.ini file for your PC.

Chessmaster in Arena

One of the programs I wanted to use in Arena was TheKing from Chessmaster, but you can't just copy the file TheKing.exe into Arena due to its copy protection. I found out online how extract the security code ("OPK") using log files created by the Crafty chess engine, but doing this manually each time I wanted to use TheKing was too much work. So I wrote this program to automate it.
In January 2016 I finally managed to test it with the Grandmaster Edition (Chessmaster 11) and made a few small changes to my program and the instructions.

Current version: 1.5       Released: 24 April 2021

The download contains the program, source code and GPL license. You should look at the README.TXT file as it provides all the information you need to amend the CM_opk.ini file for your PC. Of course, you also need a (licensed!) copy of Chessmaster.

Opening book conversion (OBK, ABK, BIN)

The opening book editor in Chessmaster is very good but it only saves files in its own OBK format. These programs allow you to convert opening book files between Chessmaster OBK, Arena ABK and Polyglot BIN formats for use in other programs. During the conversion you can also output PGN and TXT versions of the files.

Note that converting from Polyglot files, which contain records for each position, to any of the other formats, which contain lists of moves, will always be difficult and is unlikely to be successful on large files.

Current version: 1.0       Released: 22 September 2017

The download contains the various programs, source code and GPL license. You should look at the README.TXT file for details about how to use the programs.

 

Background

My first drivers were Winboard and UCI engines for my board, a Novag UCB. I used these in Arena, CB-Emu (which can use Arena) and Chessmaster and they worked well, but I soon found the problems with controlling a board using an engine. For example, GUIs don't allow engines to take back moves, you can't play "rated" games in engine vs. engine matches and so on. The open source program LucasChess and Arena supported DGT boards by using the file DGTEBDLL.dll in DGT's Rabbit Plugin so I realised that if I could convert my engines into this file I would be able to control my UCB board directly. DGT kindly gave me permission to duplicate the API for this library in my own program. In April 2017 I completed a working driver and used it happily in Arena and LucasChess for a few years.

Then in early 2020 I saw that Lars Nowak had written UCI engines for Certabo and Millennium boards. I thought it shouldn't be too hard to convert these to DLL files too so contacted Lars, who sent me the technical information for the boards. The communication protocols turned out to be more complicated than the Novag, but also the boards had no built in chess knowledge so I had to add move validation and take back procedures that weren't required for the UCB. He helped me test my Millennium version as I didn't have a board, but was unable to test the Certabo one. So I contacted Pietro at Certabo who was extremely helpful in getting my driver to work.

While working on these programs I had another look at other GUIs and found I could also add support for Shredder (Classic 5 and Shredder/Deep 13).

The next development was that Lucas released a Linux version of LucasChess. I had never used Linux before so converting my drivers was quite a learning exercise. But that meant LucasChess could support the Novag, Certabo and Millennium boards on Linux but not DGT boards as the Rabbit Plugin has never been released for Linux. So I then wrote my own version of Rabbit that would work on both Windows and Linux in these GUIs.

In March 2022 I finally solved a problem I had been having with Arena, which was stopping my drivers from being activated more than once per Arena session. The drivers can now be activated and deactivated as much as required.

Fritz and ChessBase

It took me a long time to get my drivers to work in Fritz and I finally succeeded in June 2022. They need to be 64 bit and that is why they are different files to the other drivers which are all 32 bit. This means they will only run in Fritz versions 15 and above and ChessBase 13 and above (although I think 12 also had an option for 64 bit).

UCI and Winboard engines

I had a few requests to make my drivers work in the old Chessmaster program and in November 2022 I released versions of my programs that run as chess engines. The engine is compatible with both UCI and Winboard so can be used in many other GUIs, not just Chessmaster. Of course, controlling an eBoard using a chess engine is less than ideal as you need to use it in an engine vs engine match, but for GUIs that would otherwise have no support it's better than nothing!

In December 2022 I compiled these engines for use in Linux, and in January 2023 SCIDvsPC was amended to handle my UCI engines, but in a way that also allows take back moves to be made.

Downloads

There is a Setup program for each driver that will allow you to install it for Arena, CB-Emu, ChessBase, Fritz and Shredder. You can also install the UCI/Winboard engine. There used to be separate downloads for the DLLmanager and DLLfritz programs that manage the drivers but those are now included in the setup programs.

There is no install for LucasChess since Lucas includes the drivers in his program downloads already. The Linux UCI engines are in a separate download at the bottom of this page.

Anti-virus programs

Some anti-virus programs (e.g. Norton) don't like my drivers. Because DGT install their drivers into the Windows\System32 folder I need to as well. I also include both 32bit and 64bit versions in one installation file. At the end of the installation I run a program (DLLfritz) which renames files in the Windows folder. My driver is marked as "Publisher: Unknown" since I'm not about to spend $400 per year on a certificate. All of this combined does make my setup programs look suspicious! If you are worried you should check my file out on an online scanner such as VirusTotal before telling your anti-virus program to exclude it.

BluetoothLE in Windows

The Pegasus and Square Off boards need to connect using BluetoothLE, and the Millennium, Chessnut and iChessOne boards can also use it if you want to. This requires Windows 10 (from the 2017 version or later) or Windows 11 and also a Visual C++ Redistributable (x86 version for Arena, LucasChess and Shredder and the x64 version for Fritz and ChessBase). You can download these from Microsoft's website (under "All Downloads" > "Other Tools, Frameworks, and Redistributables"):

https://visualstudio.microsoft.com/downloads/

You will then have a file called VC_redist.xNN.exe which you should run to install the library. You can install both the x86 and x64 versions if you need them.


To use my driver you must first install the official Certabo software as that includes the main driver software for the board.

The Certabo board can communicate using either a USB cable, which will create a serial COM port for communications, or the Certabo Bluetooth or BluetoothLE modules. The Bluetooth option doesn't work by providing a virtual serial port like the other boards, so for this driver I had to write my own code using Windows and Linux commands to access the BT port directly. This might not work on old versions of Windows or in all versions of Linux. For BluetoothLE on Windows see the requirements described above. The Certabo BluetoothLE module doesn't currently work on Linux.
The Certabo board also allows you to adapt your own pieces. Here is a description of how I created my set.

Current version: 4.4       Released: 5 May 2024

Windows setup program:

User manual: ReadMe (Certabo).pdf

This driver will allow the Chessnut Air, Air+ and Pro boards to be used with GUIs in Windows and Linux. It will first try to connect using the USB cable and if that fails then it will try BluetoothLE. For BluetoothLE on Windows see the requirements described above.

Current version: 2.5       Released: 27 April 2024

Windows setup program:

User manual: ReadMe (Chessnut).pdf

Chessnut Evo

The Evo board connects differently to the other Chessnut boards so needs its own driver. It doesn't use BluetoothLE though, so you don't need to worry about BLE support on your PC. Instead, it uses your local network and accesses the board using the IP address of the Evo, which means that your PC and Evo must be on the same LAN. You also need to use the Chessnut Socket connection app on your Evo.

Current version: 1.2       Released: 27 April 2024

Windows setup program:

User manual: ReadMe (Chessnut Evo).pdf

(I'm not allowed to use their logo! DGT know about my program and provided technical information while I was writing it but, in case there is any doubt, this software was not written by DGT. It is not supported by DGT so if there are any problems contact me not them!)

Although I originally wrote this to allow the DGT USB and Bluetooth boards to be used in LucasChess for Linux, the Windows version can also be used as a replacement for the DGT Rabbit Plugin.

I use the driver with a SmartBoard and DGT3000 clock but it is programmed to work with the other DGT boards, including the Revelation, and the DGT XL clock. I haven't been able to test those though.

Current version: 3.1       Released: 27 April 2024

Windows setup program:

User manual: ReadMe (DGT).pdf

DGT Pegasus

The Pegasus board connects differently to the other DGT boards so needs its own driver. Since it connects using BluetoothLE you will need to check the requirements described above.

Current version: 4.0       Released: 27 April 2024

Windows setup program:

User manual: ReadMe (Pegasus).pdf

This driver will allow the HOS Sensory Board to be used with GUIs in Windows and Linux. It can connect using either a USB cable or BluetoothLE, so for BluetoothLE in Windows please see the requirements described above.

Current version: 1.0       Released: Pending

This driver will allow the iChessOne board to be used with GUIs in Windows and Linux. It can connect using either a USB cable or BluetoothLE, so for BluetoothLE in Windows please see the requirements described above.

Current version: 1.2       Released: 5 May 2024

Windows setup program:

User manual: ReadMe (iChessOne).pdf

This driver, like any program trying to link a Millennium board to a computer, requires you to use the Millennium Chess Link box. Note that the eOne board also requires a special driver to be loaded for its USB support. It can be downloaded from the "USB drivers" tab on this page: eOne USB driver

The driver can connect to the board using a USB cable or Bluetooth (which both create a virtual serial COM port) or, in Windows, using BluetoothLE. For BluetoothLE see the requirements described above.

Current version: 5.3       Released: 27 April 2024

Windows setup program:

User manual: ReadMe (Millennium).pdf

I wrote some documentation of the UCB communications and used this to write the engines and drivers for the UCB board. I added the Citrine driver later as its communications are similar to the UCB.

Neither the UCB nor Citrine has piece recognition which really limits what my driver can do. So although I sometimes release updates to these drivers the changes are normally just internal code amendments to keep the source code for all of my drivers in synch.

Novag Citrine

Current version: 3.8       Released: 27 April 2024

Windows setup program:

User manual: ReadMe (Citrine).pdf

Novag UCB

Current version: 4.8       Released: 27 April 2024

Windows setup program:

User manual: ReadMe (UCB).pdf

I was asked about writing a driver for the Saitek boards that use OSA (the Leonardo, Galileo and Renaissance boards) and found Achim Pietig had written a program called OSA for Arena. I contacted him and he was very helpful in providing documentation and help. Both Achim and Lars Nowak spent a lot of time testing my driver - since I don't have a Saitek board this wouldn't have been possible without them. You will need an OSA Cable to use your board with the computer, although I believe it is possible to make your own - see the ReadMe file below for details.

Current version: 1.4       Released: 27 April 2024

Windows setup program:

User manual: ReadMe (Saitek).pdf

I had no plans to write a driver for the Square Off Pro as Square Off didn't release their API and didn't reply to my emails for technical information. But then I saw that Gerhard Kalab had worked out how to talk to the board so I used his information to write this driver. Since it connects using BluetoothLE you will need to check the requirements described above.

In early 2023 Square Off released a firmware update for the Pro board that significantly changed how the board talks to other devices. My updated driver should now handle this but it will use more battery power than before, and the Pro's battery isn't good to start with. I recommend using the Pro board with it plugged into a wall power supply.

Note that there are some differences in how this driver works compared to my other drivers and also compared to the official Square Off app. Please read the manual!

Current version: 3.0       Released: 27 April 2024

Windows setup program:

User manual: ReadMe (SOP).pdf

This is a driver for the Tabutronic Sentio board. Note that it is not for the Cerno board: that board uses the Certabo driver above. The driver works with the Certabo Bluetooth and BluetoothLE modules but you might need to update the software in it using the BT Sentio Cerno image. The Certabo BluetoothLE module doesn't currently work on Linux.

Current version: 3.1       Released: 5 May 2024

Windows setup program:

User manual: ReadMe (Tabutronic).pdf


Linux UCI engines

I compiled the UCI/Winboard engines for the boards for use in Linux. There are some additional requirements for this such as libraries that need to be loaded, udev rules that need to be set and so on so please read the README.MD file included in the download.

The download contains the latest version of the drivers, so the "version" number below relates to the file containing the whole set of engines.

Current version: 18       Released: 5 May 2024

List COM & Bluetooth Ports

This program allows you to identify the COM ports on your PC that are used by the drivers above. The Certabo can connect using Bluetooth so there is also an option to list the discovered Bluetooth devices. A button is provided to copy the list into the Windows clipboard so that it can be pasted into an eMail, for example, and also a button to start Windows Device Manager so you can compare the ports my program thinks exist to those Windows has.

For Bluetooth you can set the time to search for devices (between 1 and 30 seconds). For each device it finds it will also search for an extra few seconds to determine what ports it uses, so the total search time will depend on how many devices you have. For BluetoothLE see the requirements described above.

If your board is working with no problems you do not need this program, but if you are having trouble connecting your board it might help identify the problem.

Current version: 5.0       Released: 7 January 2024