Bluetooth problems on Trixie - and especially on Pi3 like DGT3000 clock

195 views
Skip to first unread message

Johan Sjöblom

unread,
Jan 24, 2026, 3:13:02 AMJan 24
to PicoChess
Hello all.

You can post all your Bluetooth problems under this thread.

I have now installed the latest Picochess on my DGT3000 and on Pi4 and on my Debian laptop. They all work nicely with my DGT3000 board. I have received my Pi5 stuff but not unpacked the box yet. 

I did learn that Trixie and a Pi3 does have Bluetooth issues.
My assumption is therefore that the Bluetooth problems are not because of V4, its because of Trixie and Pi3. Actually the Bluetooth code has not really changed since V3.

When I re-installed my DGT3000 yesterday I created a clean Trixie 64bit image for Pi3 with no desktop. I then used the quick install instructions from the readme: https://github.com/JohanSjoblom/picochess?tab=readme-ov-file#quick-installation
I used the parameter dgt3000 like this:
sudo ./install-picochess.sh dgt3000

It worked out of the box for me after the first reboot because the dgt3000 installation now adds a service that unblocks bluetooth on every boot. But its not easy to get a DGT3000 bluetooth and wifi to work with Trixie OS. I used chatgpt to help me with the ssh  terminal commands and I recommend you to do the same.

If you have Bluetooth problems, please run the new check-bluetooth script like this:
sudo/opt/picochess/check-bluetooth.sh
It will produce a bluetooth.txt. If you post your bluetooth.txt file we should be able to fix your bluetooth issues on Trixie.

Lets fix the Bluetooth problems once and for all. And when we do find the true root cause we can automate a solution in the installer...

Javier Lux

unread,
Jan 25, 2026, 4:45:51 PMJan 25
to PicoChess
Does anyone know the correct pinning of the GPIO on an RPi 4 to connect the adapter cable to the DGT3000 clock?  On the RPi3 it is the following 
SCL 5.35 
SDA 3.12 
GND 14
but that distribution does not activate the clock on my RPi4.

Etienne Chaffanjon

unread,
Jan 26, 2026, 12:44:46 AMJan 26
to pico...@googlegroups.com
Hi Javier,
My Pi 4 is connected to DGT3000 by jack to 5-23 and 3-19 plus ground 14.
=> please wait at least for one confirmation that it is the correct wiring before testing. Best regards, Etienne

Le 25 janv. 2026 à 22:45, Javier Lux <javi...@gmail.com> a écrit :

Does anyone know the correct pinning of the GPIO on an RPi 4 to connect the adapter cable to the DGT3000 clock?  On the RPi3 it is the following 
--
You received this message because you are subscribed to the Google Groups "PicoChess" group.
To unsubscribe from this group and stop receiving emails from it, send an email to picochess+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/picochess/02d0ebcf-8a09-4172-81eb-b8e12794be13n%40googlegroups.com.

Javier

unread,
Jan 26, 2026, 6:09:37 AMJan 26
to pico...@googlegroups.com
Hi Etienne,
Thank you for your quick response. Indeed, I have just confirmed that to change from the RPi3B+ to the 4B, the red cable #35 changes to #23 and the white #12 cable changes to #19. Have you had to modify the dgtpicom and dgtpicom.so files to make it work..?



Javier

unread,
Jan 26, 2026, 7:05:08 AMJan 26
to pico...@googlegroups.com
Hi Etienne,

Picochess 4.2 working perfectly on the RPi4 connected to the DGT3000. It feels faster than the 3b+ when transmitting movements to the clock. Bluetooth working perfectly what a hell the problems I have had with the bluetooth, I don't know how many hours I have spent on this... thank you very much, the GPIO connection I had was not correct, it differs from 3 to 4.

Message has been deleted

Javier

unread,
Jan 26, 2026, 7:40:38 AMJan 26
to pico...@googlegroups.com
That page only works for the 3B model, it is a little outdated, the I2C ports change in the 4B.

Thank you Antonio


El El lun, 26 ene 2026 a las 13:23, Antonio <antonio.z...@gmail.com> escribió:
https://picochess.com/howto-turn-a-dgt3000-into-a-dgtpi/

--
You received this message because you are subscribed to the Google Groups "PicoChess" group.
To unsubscribe from this group and stop receiving emails from it, send an email to picochess+...@googlegroups.com.

Ro Bert

unread,
Jan 28, 2026, 3:31:15 AM (12 days ago) Jan 28
to PicoChess
Hi,
just tested to connect my chesslink board again after a pause and playing via webinterface.
unfortunately the board refused to connect to picochess. here is my check-blutooth.sh output:
bluetooth.txt

Ro Bert

unread,
Jan 28, 2026, 3:37:44 AM (12 days ago) Jan 28
to PicoChess
ps:
after a "Restart and update picochess" the board is connected.
so as i assumed before there must be something in the script 
that do fix the connection.
Robert

RAP

unread,
Jan 28, 2026, 5:03:41 AM (12 days ago) Jan 28
to pico...@googlegroups.com
I don't know if this is related. The other day, the speaker I have connected via Bluetooth wasn't working properly, and after connecting and disconnecting it for a while, I discovered the problem was interference from the Wi-Fi module. I disconnected the Wi-Fi, and now everything is working fine. I had to connect to the internet via a LAN cable. I hope you can find the problem. Best regards.


Johan Sjöblom

unread,
Jan 28, 2026, 11:44:53 AM (12 days ago) Jan 28
to PicoChess
On a Pi 4 I recommend to use 5GHz wifi and not 2.4GHz wifi. Not because of radio interference but because of software module interference on some Broadcomm chips

Johan Sjöblom

unread,
Jan 29, 2026, 12:33:18 AM (11 days ago) Jan 29
to PicoChess
Robert, thanks for the bluetooth.txt. Can you test the following to get more information:

Reboot, but do NOT run install-picochess. This is what should give us the "bad Bluetooth state".
Run these commands in this state to see what is wrong. I suspect the first line here will show that you do not have setcap on bluepy-helper, and the install-script always fixes that.
sudo getcap -v /opt/picochess/venv/lib/python3.*/site-packages/bluepy/bluepy-helper
ls -ld /var/lib/bluetooth
sudo journalctl -u bluetooth -b
sudo journalctl -u picochess -b

I am pretty sure that this is a case of lost setcap... If that is the case I am thinking that something that could help many installations is that I add a small boot-startup service to picochess that always sets these setcap rights (same as the install-picochess does). Its a small service and would not take any significant time at each boot, and it cannot cause any problems either... But first it would be interesting to see what your first test line above says...

-- Johan

Ro Bert

unread,
Jan 29, 2026, 2:54:56 AM (11 days ago) Jan 29
to PicoChess
Hi Johan,

thanks for your lines. here is what i get after a reboot with the board in the state ready to pair:

pi@pico:~ $ sudo getcap -v /opt/picochess/venv/lib/python3.*/site-packages/bluepy/bluepy-helper

/opt/picochess/venv/lib/python3.13/site-packages/bluepy/bluepy-helper cap_net_admin,cap_net_raw=eip

pi@pico:~ $ ls -ld /var/lib/bluetooth

drwx------ 3 root root 4096 28. Jan 09:13 /var/lib/bluetooth


sudo journalctl -u bluetooth -b

Jan 29 08:37:58 pico systemd[1]: Starting bluetooth.service - Bluetooth service...

Jan 29 08:37:58 pico (uetoothd)[700]: bluetooth.service: ConfigurationDirectory 'bluetooth' already exists but the mode is different. (File system: 755 ConfigurationDirectoryMode: 555)

Jan 29 08:37:58 pico bluetoothd[700]: Bluetooth daemon 5.82

Jan 29 08:37:58 pico bluetoothd[700]: Starting SDP server

Jan 29 08:37:58 pico systemd[1]: Started bluetooth.service - Bluetooth service.

Jan 29 08:37:58 pico bluetoothd[700]: Bluetooth management interface 1.23 initialized

Jan 29 08:37:58 pico bluetoothd[700]: Battery Provider Manager created

Jan 29 08:38:01 pico bluetoothd[700]: Endpoint registered: sender=:1.31 path=/MediaEndpoint/A2DPSource/ldac

Jan 29 08:38:01 pico bluetoothd[700]: Endpoint registered: sender=:1.31 path=/MediaEndpoint/A2DPSink/aptx_hd

Jan 29 08:38:01 pico bluetoothd[700]: Endpoint registered: sender=:1.31 path=/MediaEndpoint/A2DPSource/aptx_hd

Jan 29 08:38:01 pico bluetoothd[700]: Endpoint registered: sender=:1.31 path=/MediaEndpoint/A2DPSink/aptx

Jan 29 08:38:01 pico bluetoothd[700]: Endpoint registered: sender=:1.31 path=/MediaEndpoint/A2DPSource/aptx

Jan 29 08:38:01 pico bluetoothd[700]: Endpoint registered: sender=:1.31 path=/MediaEndpoint/A2DPSink/opus_g

Jan 29 08:38:01 pico bluetoothd[700]: Endpoint registered: sender=:1.31 path=/MediaEndpoint/A2DPSource/opus_g

Jan 29 08:38:01 pico bluetoothd[700]: Endpoint registered: sender=:1.31 path=/MediaEndpoint/A2DPSink/sbc

Jan 29 08:38:01 pico bluetoothd[700]: Endpoint registered: sender=:1.31 path=/MediaEndpoint/A2DPSource/sbc

Jan 29 08:38:01 pico bluetoothd[700]: Endpoint registered: sender=:1.31 path=/MediaEndpoint/A2DPSource/aptx_ll_1

Jan 29 08:38:01 pico bluetoothd[700]: Endpoint registered: sender=:1.31 path=/MediaEndpoint/A2DPSource/aptx_ll_0

Jan 29 08:38:01 pico bluetoothd[700]: Endpoint registered: sender=:1.31 path=/MediaEndpoint/A2DPSource/aptx_ll_duplex_1

Jan 29 08:38:01 pico bluetoothd[700]: Endpoint registered: sender=:1.31 path=/MediaEndpoint/A2DPSource/aptx_ll_duplex_0

Jan 29 08:38:01 pico bluetoothd[700]: Endpoint registered: sender=:1.31 path=/MediaEndpoint/A2DPSource/faststream

Jan 29 08:38:01 pico bluetoothd[700]: Endpoint registered: sender=:1.31 path=/MediaEndpoint/A2DPSource/faststream_duplex

Jan 29 08:38:01 pico bluetoothd[700]: Endpoint registered: sender=:1.31 path=/MediaEndpoint/A2DPSink/opus_05

Jan 29 08:38:01 pico bluetoothd[700]: Endpoint registered: sender=:1.31 path=/MediaEndpoint/A2DPSource/opus_05

Jan 29 08:38:01 pico bluetoothd[700]: Endpoint registered: sender=:1.31 path=/MediaEndpoint/A2DPSink/opus_05_duplex

Jan 29 08:38:01 pico bluetoothd[700]: Endpoint registered: sender=:1.31 path=/MediaEndpoint/A2DPSource/opus_05_duplex

Jan 29 08:38:32 pico bluetoothd[700]: src/adapter.c:btd_adapter_store_conn_param() Unable to load key file from /var/lib/bluetooth/88:A2:9E:05:7D:25/34:81:F4:E8:80:4A/info: (No such file or directory)

~


pi@pico:~ $ sudo journalctl -u picochess -b

Jan 29 08:38:05 pico systemd[1]: Started picochess.service - PicoChess Chess Program.


The adress of the board is 34:81:F4:E8:80:4A

In this case the board was connected after the reboot.

Should i repeat the lines with the board in the state "i don't like picochess"?

Robert



Ro Bert

unread,
Jan 29, 2026, 3:02:26 AM (11 days ago) Jan 29
to PicoChess
Here the same commands after a shutdown and power on, the board is switched on:

pi@pico:~ $ sudo getcap -v /opt/picochess/venv/lib/python3.*/site-packages/bluepy/bluepy-helper

/opt/picochess/venv/lib/python3.13/site-packages/bluepy/bluepy-helper cap_net_admin,cap_net_raw=eip


pi@pico:~ $ ls -ld /var/lib/bluetooth

drwx------ 3 root root 4096 28. Jan 09:13 /var/lib/bluetooth


pi@pico:~ $ sudo journalctl -u bluetooth -b

Jan 29 08:55:42 pico systemd[1]: Starting bluetooth.service - Bluetooth service...

Jan 29 08:55:42 pico (uetoothd)[701]: bluetooth.service: ConfigurationDirectory 'bluetooth' already exists but the mode is different. (File system: 755 ConfigurationDirectoryMode: 555)

Jan 29 08:55:43 pico bluetoothd[701]: Bluetooth daemon 5.82

Jan 29 08:55:43 pico bluetoothd[701]: Starting SDP server

Jan 29 08:55:43 pico systemd[1]: Started bluetooth.service - Bluetooth service.

Jan 29 08:55:43 pico bluetoothd[701]: Bluetooth management interface 1.23 initialized

Jan 29 08:55:43 pico bluetoothd[701]: Battery Provider Manager created

Jan 29 08:55:45 pico bluetoothd[701]: Endpoint registered: sender=:1.27 path=/MediaEndpoint/A2DPSource/ldac

Jan 29 08:55:45 pico bluetoothd[701]: Endpoint registered: sender=:1.27 path=/MediaEndpoint/A2DPSink/aptx_hd

Jan 29 08:55:45 pico bluetoothd[701]: Endpoint registered: sender=:1.27 path=/MediaEndpoint/A2DPSource/aptx_hd

Jan 29 08:55:45 pico bluetoothd[701]: Endpoint registered: sender=:1.27 path=/MediaEndpoint/A2DPSink/aptx

Jan 29 08:55:45 pico bluetoothd[701]: Endpoint registered: sender=:1.27 path=/MediaEndpoint/A2DPSource/aptx

Jan 29 08:55:45 pico bluetoothd[701]: Endpoint registered: sender=:1.27 path=/MediaEndpoint/A2DPSink/opus_g

Jan 29 08:55:45 pico bluetoothd[701]: Endpoint registered: sender=:1.27 path=/MediaEndpoint/A2DPSource/opus_g

Jan 29 08:55:45 pico bluetoothd[701]: Endpoint registered: sender=:1.27 path=/MediaEndpoint/A2DPSink/sbc

Jan 29 08:55:45 pico bluetoothd[701]: Endpoint registered: sender=:1.27 path=/MediaEndpoint/A2DPSource/sbc

Jan 29 08:55:45 pico bluetoothd[701]: Endpoint registered: sender=:1.27 path=/MediaEndpoint/A2DPSource/aptx_ll_1

Jan 29 08:55:45 pico bluetoothd[701]: Endpoint registered: sender=:1.27 path=/MediaEndpoint/A2DPSource/aptx_ll_0

Jan 29 08:55:45 pico bluetoothd[701]: Endpoint registered: sender=:1.27 path=/MediaEndpoint/A2DPSource/aptx_ll_duplex_1

Jan 29 08:55:45 pico bluetoothd[701]: Endpoint registered: sender=:1.27 path=/MediaEndpoint/A2DPSource/aptx_ll_duplex_0

Jan 29 08:55:45 pico bluetoothd[701]: Endpoint registered: sender=:1.27 path=/MediaEndpoint/A2DPSource/faststream

Jan 29 08:55:45 pico bluetoothd[701]: Endpoint registered: sender=:1.27 path=/MediaEndpoint/A2DPSource/faststream_duplex

Jan 29 08:55:45 pico bluetoothd[701]: Endpoint registered: sender=:1.27 path=/MediaEndpoint/A2DPSink/opus_05

Jan 29 08:55:45 pico bluetoothd[701]: Endpoint registered: sender=:1.27 path=/MediaEndpoint/A2DPSource/opus_05

Jan 29 08:55:45 pico bluetoothd[701]: Endpoint registered: sender=:1.27 path=/MediaEndpoint/A2DPSink/opus_05_duplex

Jan 29 08:55:45 pico bluetoothd[701]: Endpoint registered: sender=:1.27 path=/MediaEndpoint/A2DPSource/opus_05_duplex

Jan 29 08:58:01 pico bluetoothd[701]: src/adapter.c:btd_adapter_store_conn_param() Unable to load key file from /var/lib/bluetooth/88:A2:9E:05:7D:25/34:81:F4:E8:80:4A/info: (No such file or directory)


pi@pico:~ $ sudo journalctl -u picochess -b

Jan 29 08:55:52 pico systemd[1]: Started picochess.service - PicoChess Chess Program.


Hope this helps to nail down the bluetooth errors.


Thanx

Robert


Johan Sjöblom

unread,
Jan 29, 2026, 11:38:53 AM (11 days ago) Jan 29
to PicoChess
Thanks Robert.
Still no definite root cause. We need to iterate one more time. Now we know that the setcap is not a problem. But it looks like your pairing info in /var/lib/bluetooth disappears when you boot. That should not happen. That is now the primary suspect: Namely: that your bluetooth pairing info gets lost on reboot. 

Could you check after a reboot what you have in these directories, before you start picochess or any other program:
sudo ls -la /var/lib/bluetooth
sudo ls -la /var/lib/bluetooth/88:A2:9E:05:7D:25
sudo ls -la /var/lib/bluetooth/88:A2:9E:05:7D:25/34:81:F4:E8:80:4A

I would expect that if you are missing these, then Picochess (or any other program) cannot find your board after boot.

What could cause the loss of this information?

Do you have /var/lib on a temporary file system (tmpfs), or do you have a ramdisk defined?

You could check that you dont have any cleanup scripts that clear your /var/lib/bluetooth data...
rg -n "bluetooth" /etc/tmpfiles.d /usr/lib/tmpfiles.d /etc/rc.local /etc/init.d /etc/systemd/system -S
(rg is like a fast grep command for text information, option -n will show the line number if it finds one)

-- Johan

Javier

unread,
Jan 30, 2026, 9:25:11 AM (10 days ago) Jan 30
to pico...@googlegroups.com
Hello,
Yesterday  I tested a new RPi3B+ that I just acquired. As usual with the 3, it did not connect to the board via Bluetooth, in this case a Chessnut. I ran the script that Antonio created (Fix_bluetooth.sh) and after restarting the bluetooth it worked correctly and linked the board. I then switched to a ChessLink bluetooth board and it also worked without problems. I have done different tests and I have not had any problems again. It would be nice to implement this script in the Picochess code so that it would run automatically on the first installation.


Johan Sjöblom

unread,
Jan 31, 2026, 1:10:27 PM (9 days ago) Jan 31
to PicoChess
Hello Javier

Happy that it works. Your idea to run it on first installation is good, but its too risky. The Fix_bluetooth should only be run if you have bluetooth problems. The reasons are that the script is actually changing things and it could make a system that works to stop working. The script does these things that I dont want to run if everything is ok:
  • edits override.conf
  • wipes /var/lib/bluetooth which removes bluetooth pairings
  • it changes bluetoothd to --compat
But what I did was that I made the check-bluetooth script run on any instllation where a bluetooth.txt diagnostic file does not exist from before. If someone has bluetooth problems that file can then be checked. I think we need to know the problem before applying a fix.

This was commit number 1.000.

Johan Sjöblom

unread,
Feb 1, 2026, 2:26:13 AM (8 days ago) Feb 1
to PicoChess
I also did another improvement based on learning from your testing. I added a pi3 improvement. You can now use the parameter pi3 to install-picochess.sh and it will install a Bluetooth‑unblock service needed for fresh Pi3 + Trixie installs.

Examples, the parameters are added after the install-picochess like this:
sudo /opt/picochess/install-picochess.sh pi3
→ normal Pi3 install + Bluetooth unblocked on every boot.
sudo /opt/picochess/install-picochess.sh dgt3000
→ DGTPi install, includes the Bluetooth unblock service, and sets picochess.ini with the DGT3000 settings.

If you want the larger engine pack from the start, add lite, e.g.
sudo /opt/picochess/install-picochess.sh pi3 lite or sudo /opt/picochess/install-picochess.sh dgt3000 lite
The default install will only install the small package.

To switch from small to lite engine package later on an existing installation, just rerun:
sudo /opt/picochess/install-picochess.sh lite
This will back up the current engines and install the lite pack.. But notice that downloads do take quite long. Be patient.

-- Johan

Javier

unread,
Feb 1, 2026, 3:25:08 AM (8 days ago) Feb 1
to pico...@googlegroups.com
Hello Johan,
 I am very happy and I appreciate that you are advancing on this topic, thank you for your time and your talent. I'm going to try it as soon as I can by doing a new installation with a RPi3B and a RPi3B+ and I'll tell you the results. On this occasion I will try to save all the log reports in case you need them in case of an error.


Reply all
Reply to author
Forward
0 new messages