People have mentioned remote engines, engines running on remote computers. That sounded useful, so I decided to try to run picochess on my Raspberry Pi 5, but use an engine running on my Windows PC. It wasn't clear how to do this, but I found some hints here in this group.
If you want to run Stockfish 16 on a Windows PC, I think you have to do the following.
- Add a remote engine to /opt/picochess/engines/aarch64/engines.ini on the Pi. The name in engines.ini must start with [remote_. For instance [remote_stockfish].
- Place remote_stockfish.uci in the same folder. Use the same name.
- Place a copy of the Windows version of Stockfish 16 engine in a folder, for instance C:\picochess\remote_engines. Use the same name again, so it has to be called remote_stockfish.exe.
- Edit picochess.ini on the PI, and enter the server, the engine folder, the username, and the password for the Windows PC.
- Start picochess on the Pi and select the remote engine.
But it isn't working. When I select the remote engine, I get Server Error and Engine Error.
The log shows error
2025-12-08 15:59:44.178 ERROR engine - open_engine: OS error in starting engine /opt/picochess/engines/aarch64/remote_stockfish
and
FileNotFoundError: [Errno 2] No such file or directory: '/opt/picochess/engines/aarch64/remote_stockfish'
It looks like the remote engine isn't recognised.
I've also read here that the remote engine uses SSH, but it's installed on the Windows PC and I've created user pi with password picochess. I can even use this to SSH from the Pi to the Windows PC, start remote Stockfish, and for instance enter bench to run a benchmark.
Am I doing something wrong?
Aldo
/opt/picochess/engines/aarch64/engines.ini:
[remote_stockfish]
name = Remote Stockfish 16 64-bit
web = Remote Stockfish 16 64-bit
small = R SF
medium = R SF16
large = R Stockfish 16
elo = 3310
ccrl = 3541
levels = 21
ponder/brain = y
fischer chess960 support = y
comments: NNUE embedded and enabled.
/opt/picochess/engines/aarch64/remote_stockfish.uci:
[DEFAULT]
Hash = 192
Threads = 1
SyzygyPath = /opt/picochess/tablebases/syzygy
Slow Mover = 33
Move Overhead = 2000
Use NNUE = true
;EvalFile = nn-82215d0fd0df.nnue
[Elo@1350]
UCI_LimitStrength = true
UCI_Elo = 1350
...
[Elo@2850]
UCI_LimitStrength = false
UCI_Elo = 2850
Threads = 3
/opt/picochess/picochess.ini:
engine-remote-server = 192.168.178.21
engine-remote-home = C:\picochess\remote_engines
engine-remote-user = pi
engine-remote-pass = picochess