Converting a DGT Pi into a Pi 4B – my build as a complete novice!

1,437 views
Skip to first unread message

Dan

unread,
Jul 23, 2022, 10:58:57 PM7/23/22
to PicoChess

Hi,

 

I’m new to Picochess, the Raspberry Pi and Linux, and am extremely interested in the project.

 

My end goal is to build a chess computer that I find attractive that I can use to a) play against the AI Maia and b) use with the latest Stockfish NNUE to analyse and explore positions.

 

Information about Picochess, the DGT Pi and the Raspberry 4b conversion is split up across many threads and seems to be mostly aimed at experts who are already familiar with the Picochess ecosystem and Linux. I feel like it would be well worth it to document my own experience as a complete novice for the benefit of any other new person unfamiliar with Picochess to save an enormous amount of searching and trying to decipher and take onboard a very large amount of information.

 

To begin, I purchased a DGT Pi, a Raspberry Pi 4b and a DGT 3000 Limited Edition. I did not purchase a DGT e-board or pieces until I was confident that I first have the chess computer as I would want it.

 

I have never been fond of the red/white look of the DGT 3000, and while the DGT 3000 LE is similarly plastic, it is more attractive to me. To swap the case upper of the DGT Pi with the DGT 3000 LE, I did the following:

 

To open the DGT Pi & DGT 3000, there are 6 small silver Philips screws holding the base plate to the case. For the DGT 3000, there are just 2 wires (1 red, 1 black) going from the case upper to the battery terminals of the base plate. For the DGT Pi, there is also a pair of cables (1 with 5 red & black wires, 1 with 6 multicoloured wires) that connect to the small PCB with the 3.5mm TRRS jack on the side of the upper case. The 6 multicoloured wire cable does not need to be unplugged from either end (yet). Detach the battery terminal wire pairs for the DGT Pi and the donor DGT3000 LE using a soldering iron quickly. Unscrew the small PCB around the 3.5mm TRRS jack from the DGT Pi and unplug from it the 5 wire (1 red 4 black wire) cable leading to the LCD. Transfer that small PCB into the DGT 3000 LE upper, reattach the cable and solder back the battery terminal wires. The two case parts clip together at the front of the unit.

 

Now, I had a DGT Pi with a DGT 3000 LE top, with the stock Raspberry Pi 3b inside. I began to install Picochess. To do so, I downloaded 4 things (on my Windows PC): SD Memory Card Formatter, Win32DiskImager, Notepad++ Portable, and the latest images of Picochess as compiled by RandyR in the thread on here titled “PicoChess v3 Desktop and Lite Images”, dated April 22nd, 2022.

 

The difference between the Desktop & the Lite image is that the Desktop has a full Desktop GUI if you attach a monitor, keyboard & mouse to the Raspberry Pi at the base of the DGT Pi. For testing purposes, I chose to run the Desktop image to be able to see what was going on. There is no information I can see on here if running the Desktop image has any significant overhead or performance cost, but for the time being I will not worry about it.

 

I used the official SD Memory Card Formatter to ensure that my microsd card was clean, and used Win32DiskImager to write RandyR’s image to the clean microsd card. If you are using Wifi, I would highly recommend that you now open Notepad++ and set the EOL to “UNIX LF”. Create a file called wpa_supplicant.conf with the content:

 

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev

update_config=1

country=<2LETTERCOUNTRYCODE>

network={

    ssid="<WIFINAME>"

    psk="<WIFIPASSWORD>"

#     scan_ssid=1

}

 

Enter your own details, and remove the # comment mark if your wifi SSID is hidden. This file can be then copied to the /boot folder of the SD card after RandyR’s image has been burnt, and will allow the Pi to connect to Wifi from the beginning.

 

My first attempt at this failed miserably, as I did not realise that the Pi 3b did not support 5Ghz Wifi and did not play nicely with hidden wifi SSIDs. I ended up with any number of “No wireless interfaces found” and "Failed to initiate sched scan" errors.

 

If you did not set up a Wifi connection in advance, Wifi settings are stored in /etc/wpa_supplicant/wpa_supplicant.conf . To edit this, you need to open a command prompt terminal and use sudo to have permissions to edit it. The text editor in RandyR’s image is Geany, so: sudo geany /etc/wpa_supplicant/wpa_supplicant.conf

 

Other terminal commands that may be helpful are:

sudo ifconfig wlan0 up This will set the Wifi interface active

sudo iwlist wlan0 scan | grep ESSID shows the Wifi networks that it can connect to.

iwconfig shows the network adapter state.

 

Once connected to the internet, you can update the Pi via the option to install the system updates which will appear on the taskbar in the top right. You can also update the raspi-config tool, which can be accessed with sudo raspi-config at the command prompt.

 

I had now a running version of Picochess 3 on the DGT Pi unit, connected to the internet. I do not know yet how to interact with the chess aspect of the software directly from the Pi Desktop GUI, without using the PicochessWeb interface. You can use iwconfig to see the Pi’s assigned IP address, and from the Pi’s internet browser or from another computer on the same LAN visit that IP address to see a display of a chessboard and the position evaluation of the chosen engine.

 

The Picochess files are stored in /opt/picochess, but frankly the sheer volume of files and possible configuration options was enough for me to leave that untouched before I created a problem.

 

Now, I progressed to the Raspberry Pi 4b swap. The Pi 3B, 3B+ and 4B all share the same 4 mounting holes and basic dimensions. However, the 4B has a different set of output ports. It lacks the standard HDMI port, and the RJ45 LAN socket is swapped with the USB sockets (and these protrude over the edge of the board). The net result is that physically the 4B will not fit in the DGT Pi base without modification.

 

I note that in this forum there are at least 2 alternative versions of the DGT Pi base available for 3D printing for those who have access to a 3D printer which may fit a Pi 4B without modification. I do not have such access. To modify the DGT Pi base for the Raspberry Pi 4B, the plastic struts between the USB & RJ45 ports as well as a little of the side by the USB 2.0 ports must be removed, and the hole for the HDMI port must be enlarged to cover the new display ports. This can be done with things like a pair of small cutting pliers, a Dremel/die grinder with a burr attachment, or a file. The first part of this modification is relatively unobtrusive, the second part is rather more noticeable if you ever look at the rear of the unit. It may be possible to tidy this second rear hole up with a product like Sugru, but I do not think it would be a good idea, for reasons I will explain shortly. I note that the left hand bank of USB2.0 ports will remain partially obstructed, and if you wished to plug in 3 bulkier USB plugs (e.g. for board, keyboard and mouse) either a fair amount more plastic would have to be removed, or a USB hub employed.

 

Now that the Pi 4B is screwed to the base of the DGT Pi, the 6 pin wire that goes from the small PCB with the 3.5mm TRS jack can be attached to the Pi 4B. To do this, search for an image of “Raspberry Pi GPIO” which will give you the pin numbers of the wire connector header. The board is orientated so that Pin #2 is the furthest away from the USB ports.

 

On the Pi 3B, the wires connected as follows: Red – Pin #1 (left bank), Blue – Pin #3 (left bank), White – Pin #5 (left bank), Black – Pin #9 (left bank), Green – Pin #12 (right bank), Yellow – Pin #25 (left bank).

 

On the Pi 4B, the wires connected as follows: Red – Pin #1 (left bank), Blue – Pin #3 (left bank), White – Pin #5 (left bank), Black – Pin #9 (left bank), Green – Pin #19 (left bank), Yellow – Pin #23 (left bank).

 

Note that the pins for the Green & Yellow wires have moved, and that the Pi 4B requires a USB-C power supply and micro HDMI cable (if you wish to use the desktop without remote VNC).

 

The same SD card that was used with the Pi 3B with RandyR’s Picochess 3 image from April 22 2022 can be plugged into the Pi 4B, and the unit can be powered on and work as before without any alteration. I now have a DGT Pi with a Pi 4B inside, running Picochess V3 and with a DGT 3000 LE top.

 

Before sealing up the unit for good, some thought should be given to cooling. The Pi 3B runs warm, and the 4B can run hot. Cooling will help its performance, as both Pi units will reduce their performance if they heat up excessively. If you are uninterested in swapping the Pi out of the DGT Pi, stick-on heatsinks are available for the Pi 3B that would help it run cooler. For the 4B, large aluminium heatsinks with optional fans are available cheaply, and these will fit the DGT Pi base without interference. Given that the DGT Pi base has no natural airholes, the hole created from the HDMI port may actually be an advantage, if unsightly. If you are using a heatsink with a fan, the power wires for a 5V fan connect to Pin #4 and Pin #6, and there will be some noise but the noise is fairly minimal. If you wish to see the temperature of the unit, you can add the temperature to the taskbar at the top right. Right click on the area, select “Add / Remove Panel items”, “Add” and select “Temperature Monitor”.

 

At this point, the main hardware work on the Pi was complete. I purchased a DGT Bluetooth e-Board and a set of pieces, and tried it out. The board connected perfectly and without issue via both micro USB and Bluetooth. I have read much discussion about Bluetooth issues on this forum, but none occurred for me thankfully and both forms of connection work with no delay or stability issues.

 

To turn the board on, press the button on the side near the USB micro port. If the light is flashing, it means that there is no communication with the PC/DGT Pi. If the colour is red there is a problem, else orange means the board’s internal battery is charging and green means the battery is fully charged. Pushing and holding the button for 10s will clear the board’s internal memory if necessary.


The playing experience is broadly similar to playing on a regular board, however there is no need to touch the chess clock lever after each move. To adjust the settings of Picochess, press the Right arrow on the DGT Pi to enter the menu, +- to scroll through options, then Right arrow to select an option.

 

In particular, the most important options (for me) are “Engine” and “Position”. “Engine” allows me to change between Maia to play against and Stockfish NNUE to analyse a position. “Position - Scan Board” allows me to set up a position to explore on the board, and play it. This, for me, is much quicker to do with a board than on a computer-based chess engine client. To take back moves while exploring a position, no interface interaction is necessary and you can simply move the pieces back as needed.

 

The short 3.5mm TRRS chess clock cable included with the board was the source of considerable confusion for me. After a fair amount of experimentation and re-reading, I found out that it is used only in the scenario that the board is being remotely controlled via USB/Bluetooth from a PC/DGT Pi, and a second local display is required. The short cable can then be connected from the board to the 3.5mm TRRS jack on the upper left hand side of a DGT clock like the DGT3000, and in mode 25 it will act as a display. This jack is not an audio port, and attaching headphones to it will simply cause the display to freeze. There is an actual audio output of the DGT Pi: the 3.5mm TRS jack on the Pi itself at the bottom by the power cable. To this, a speaker/headphones can be connected if you want the DGT Pi to announce moves, and the “System” – “Voices” settings allow you to set the voices used by the DGT Pi to announce both or either it’s own moves and your moves if you wish.

 

The PicochessWeb interface is accessible from the DGT Pi itself or any other device on the same local network, by visiting the DGT Pi’s IP in a web browser. In the web interface, you can see where the DGT board thinks the pieces are, hear moves announced, see engine analysis of the position and also download a PGN file recording of the game’s moves. You can make moves on the web interface, however this appears to be only for the PicochessWeb engine analysis and is not reflected on the DGT Pi & board state?

 

There are some quirks with the PicochessWeb interface. I tried it with 4 browsers: Chrome, Edge, Firefox (all on Windows) and Safari on iOS.

 

On Chrome, there was no “Hello. Welcome to Picochess” welcoming voice message, and the Engine – Analyze button is blocked (with the cursor turning into a no symbol) and doesn’t work, except rarely sometimes (randomly?!) after refreshing the page repeatedly (I have no extensions enabled that could interfere). On Edge and Firefox, there is a welcoming voice message and the Engine – Analyze works.

 

All three browsers on Windows have completely different voices to announce moves, with Firefox the most robotic sounding, Edge sounding very human but also very much like a child and Chrome relatively neutral. On Safari on iOS, there are no voices at all, but the Analyze button does work. On all 4 browsers however, the section marked “Book” is stuck on “Processing…” and does not appear to work.

 

The PicochessWeb Engine analysis is NOT run on the DGT Pi, and instead calculated locally on whatever device used to access the interface (visible from Task Manager). It’s unclear to me what engine is being used to calculate this analysis, or how many cores of the browsing device it is able to use (2?! even if many more cores are available??).

 

I do not know how to alter the voices used within the browsers (in particular, setting to use an adult’s voice), nor do I know how to turn off the “User Voice” portion {and retain the “Pico Voice” AI move announcement) of the PicochessWeb interface, nor do I know how to fix the Analyze button not working reliably within Chrome on Windows. I do not know how to fix the “Processing…” problem of the “Book” section.

 

5 questions emerge, which I am not entirely clear about:

 

1) Are there any configuration options specific to this setup (DGT Pi + Pi 4B 8GB) that would help maximise Picochess’s performance? If so, how/where would I set them, and to what setting? I have seen a lot of comments about adjusting core clocks, but it is very unclear to me if any of those comments are relevant to the Pi 4B when used in a DGT Pi, or how I would adjust for the available RAM. When using the Desktop interface, it does appear to be quite sluggish (I have not changed any setting in /boot/config.txt or /opt/picochess/picochess.ini).

 

2) How do I adjust the voices used by browsers for PicochessWeb? In particular, is it possible to get Edge to use a more adult voice? How can I alter the voice so that PicochessWeb does not announce the User Moves and only announces the AI moves (turning System-Voices-UserVoice off does not work)?

 

3) For PicoChessWeb, is there a trick to fixing the Analyze button to work every time with Chrome? What engine is used for PicochessWeb analysis as executed in local browsers? How do I fix the “Processing…” of the Book section?

 

4) Is there any particularly recommended speaker to connect to the DGT Pi, or is any small speaker that can plug to a 3.5mm TRS jack acceptable?

 

5) Is there a way to interact with the Picochess environment from the Raspberry Pi desktop apart from PicochessWeb?

 

Many thanks to RandyR, Scally, Lucas van der Ploeg and countless others for creating the Picochess software, and for posting their thoughts and work on this forum over the years, as well as the videos on YouTube. I hope that this guide is helpful to someone else considering putting together their own chess computer!

Scally

unread,
Jul 24, 2022, 7:41:21 AM7/24/22
to PicoChess

Hi Dan,

Nice article. The search parameter within the Google groups is very useful to see what others have done before.

I’ll add photos at the bottom as I don’t know how to imbed them, they either go at the top or bottom of the page … (help me somebody ?)

I prefer the Limited Edition top too and have done the conversion to a RPi4: RPi 4 Conversion
I strongly recommend heatsincs and a fan, mine can be switched on/off by and external switch that I added. Dirks v3 has stockfish running in the background using 1 thread, most of my engines only use 1 thread but some have coded to use the other 3 threads on their top level, that’s the only time I turn my fan on. I also added ventilation holes to the back, pictures below. With the fan in place you can overclock the RPi 4. I tend to only go to to 1.8 GHz, my master system with 2 massive external fans is overclocked to 2 GHz.

In /boot/config.txt I added these few lines::

[pi4]
# Run as fast as firmware / board allows
arm_boost=1
core_freq=500
core_freq_min=500

# Added by Scally
over_voltage=6
arm_freq=1800
gpu_frequency=750

I tend to use a Lite version and a terminal emulation program on my iPad rather than connect a keyboard and monitor. I only use a desktop version when I want to connect a PC to make use of the MAME graphics. However my system is different than Randy’s, I don’t like using sudo so have an Al user rather than a Pi user that doesn’t need sudo. I also have several scripts so I can switch to other versions of Picochess to answer any queries.

My new ‘Scally Pi’ base was kindly provided by Wilhelm, it has an inbuilt speaker, but I can’t find the link, but I’ll add photos to the bottom ….

The speaker I used before the inbuilt one was from Amazon as per This Link

Trying to answer your questions:

1) Overclocking has already been covered above. Any changes you make with the DGT Pi menus are automatically saved within your picochess.ini file, but there’s nothing stopping you manually adding changes, but beware as any typos could produce a crash at boot.

2) I have no idea if you can change the browser voices, I only use my iPad for a Webserver, no voices are present there. Within the DGT Pi & picochess.ini you only control the spoken voice on any connected speaker to your DGT Pi.

3) The ‘processing’ part of the book section is because the Shiv’s software running on his server is down, we have asked him to fix this.

4) I have shown a speaker I use above.

5) I use a terminal emulation app called Termius on my iPad, but there’s plenty of other ways to connect and make changes to Picochess.

In trying to add photos and sending, The message was ‘too big’,  I’m now attempting to answer without photos and adding them in the next reply ….

Cheers for now,

Al.




Scally

unread,
Jul 24, 2022, 7:47:04 AM7/24/22
to PicoChess
10B86C85-7420-4C27-9744-62DD1611EDA0.jpeg76A6BF6C-16A1-455C-9502-D75A57F376B1.jpeg

Photo’s above …

Please ask for any more that I may have missed etc ….

Al.

Scally

unread,
Jul 24, 2022, 7:52:28 AM7/24/22
to PicoChess
0CDC58C5-D970-4AD8-A570-67278A8C0D70.jpeg

It appears I can only add up to 2 at a time ….

Al.

Mark HL

unread,
Jul 24, 2022, 10:04:47 AM7/24/22
to pico...@googlegroups.com
Cool stuff Al....

Not a 4b but  3b+ with a fan and ventilation. The 3b+ max temperature with Stockfish using 4 cores is 51.5° C, while the 4b (running  Picochess with the tower cooler)  is 40.5°C.


Sent from my Samsung Tab S7

From: pico...@googlegroups.com <pico...@googlegroups.com> on behalf of Scally <scall...@gmail.com>
Sent: Sunday, July 24, 2022 4:52:28 AM
To: PicoChess <pico...@googlegroups.com>
Subject: Re: Converting a DGT Pi into a Pi 4B – my build as a complete novice!
 
0CDC58C5-D970-4AD8-A570-67278A8C0D70.jpeg

It appears I can only add up to 2 at a time ….

Al.

--
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 on the web visit https://groups.google.com/d/msgid/picochess/fd57426c-b27d-427b-a7ca-1cdb0647aa84n%40googlegroups.com.
processed-a2aa5cb7-df2a-447b-985a-b887cc06e41f_LJy9dAGO.jpeg
processed-ecdc010c-04aa-4f0d-a371-eb3237f35139_gl1ayzzy.jpeg
processed-fd813f24-610f-4f18-928e-fbbe0de580d7_rbalhCDj.jpeg

Dan

unread,
Jul 24, 2022, 1:49:53 PM7/24/22
to PicoChess

Hi Scally,

  

Thank you for your reply, and for your help to this whole community.

 

I have seen your DGT Pi before, it was one of the biggest inspirations that set me off on this project. Thank you for sharing pictures of it here, it would be deeply helpful for another novice. There’s just so very much information to take in at once as a newcomer, and collating it into one place was my aim!

 

Your DGT Pi has a lot more cooling than mine has! Mine has a “ZP-0042” made by “52Pi” on it, and I didn’t make any holes in the upper shell (yet).

 

Regarding my questions from before:

 

1) Re. the performance, I’ve just spent quite a bit of time researching config.txt and I think I understand quite a lot more.

 

The slightly confusing aspect was that RandyR’s image comes with the following clock-related settings written in config.txt:

 

#uncomment to overlock the arm. 700mhz is the default.

#arm_freq=800

 

# For Picochess on the DGTPi (overridden by the [pi4] section below when using the RPi4b wired to the DGT3000)

core_freq=250

core_freq_min=250

 

[all]

[pi4]

# Run as fast as firmware / board allows

arm_boost=1

core_freq=500

core_freq_min=500

[all]

 

Looking at the Raspberry Pi config.txt manufacturer’s documentation tables in detail,  and if I understand this correctly, it seems to say that “arm_freq” controls the CPU core speed, “core_freq” controls the GPU core speed, and “gpu_freq” controls all the GPU related clock speeds together.

 

For a Raspberry Pi 4B revision 1.5 like mine, the standard performance according to the documentation should be 1800 for the arm_freq CPU core clock (with arm_boost =1 set) and 500 for all the GPU related clock speeds. This can be exceeded beyond manufacturer’s recommendation, as you describe, as an “overclock” but will require cooling.

 

The current arm_freq is visible through the terminal command “vcgencmd measure_clock arm” (read as divided by 1,000,000) and the configured clocks are visible through “vcgencmd get_config int”. Looking at the result of running this using RandyR’s image straight without modification, the arm_freq is already set to 1800 and the core_freq to 500 as per the manufacturer’s spec, so the Pi4B was already running at it’s correct speed! I may look to overclock later myself once I am more familiar with everything.

 

Two further questions:

 

1 A) Does GPU clock speeds (core_freq gpu_freq) actually alter Picochess performance, or is Picochess & chess engine running on CPU only?


1 B)  Using the command “free -h” I note that that the majority of my Pi 4B’s 8GB of RAM is unused. Are there any settings which would instruct Picochess to make more use of the available memory?


2 & 3) Re the voices & engine of Picochess, it has taken me most of the afternoon to investigate this, but I believe I’ve found something interesting. There’s only 3 real references to the functionality that I can find on here after a lot of searching:


 Dirk’s comment on Picochess v3 here that he created it:

25. Synthesized voice support for moves in WebServer (unfortunately works only in desktop browsers and in Android Firefox browser): Big thanks to Martin (author of the ingenious TuroChamp python engine) and deletion of the non working remote room button functionality.


 A comment from 2021 here: “understand this is TTS and requires the browser to support the Web Speech API


 And a comment from Tom Emmelot here.


 The discussion is correct – the PicochessWeb voices are powered from the “Web Speech API” supported by many browsers, and the relevant code that powers this is located at “/opt/picochess/web/picoweb/static/js/app.js”.


 The key line of code that controls this is the “if (voices[i].lang == "en-US") {“ which looks for the first voice on your system with the language set, in this case “en-US” as set by Dirk.


 To find what voices are present on your browser, I found this link to test the speech synthesis voices available (unique to each browser) https://embed.plnkr.co/WjmlDnxcXX5dqlQI/


 For example, I found that in Microsoft Edge, the child’s voice that I found very human was “Microsoft Ana”, and this is only available in Edge. After some experimentation, I think that:


For Chrome, the best en-GB voice would be Google UK English Female


For Edge, the best en-GB voice would be Microsoft Libby


For Firefox, the best en-GB voice would be Microsoft Hazel Desktop


For Safari iOS, the best voice would be Moira, and Web Speech does actually work!


I then replaced the following section (via the terminal command sudo Geany)


for (i = 0; i < voices.length; i++) {

    if (voices[i].lang == "en-US") {

        myvoice = voices[i];

        break;

    }

}


With:


for (i = 0; i < voices.length; i++) {

    if (voices[i].name == "Google UK English Female") {

        myvoice = voices[i];

        break;

    }

    else if (voices[i].name == "Microsoft Libby Online (Natural) - English (United Kingdom)") {

        myvoice = voices[i];

        break;

    }

    else if (voices[i].name == "Microsoft Hazel Desktop - English (Great Britain)") {

        myvoice = voices[i];

        break;

    }

    else if (voices[i].name == "Moira") {

        myvoice = voices[i];

        break;

    }

}


This should set voices for all 4 of the major browsers nicely, and even fix the voices for iOS! In the same place, the introduction message can be changed from “Hello, welcome to picochess” to any voice message of your choosing.


However, after updating the file, there is no change to the Picochess webserver, even after restarting the Pi.


Three further questions:


 2 A) Is there some form of caching, or do I have to somehow build/compile the script, or is there another location where the script would need to be changed? Some assistance would be really helpful, it has been a very long time since I last tried anything like this!


 2 B) The “function saymove” governs the text-to-speech of what is announced on each move. It is sadly beyond my very limited knowledge yet on how to alter this to only announce if it is the AI’s move, but if part of “move.flags” that includes a flag to indicate that it is an AI move, nesting the whole saymove function within something like if (move.flags.includes(“<AIMOVEFLAG>”)) {…. } should fix it? I can’t find any documentation about how this works or what comprises “move.flags”, but something similar must exist already for the Pico/User Voices setting for the regular voice output.


 3 A) I note that there is a copy of “stockfish.-pexe” in /opt/picochess/web/picoweb/static/stockfish, and references to window.stockfish and windows.stockfishmodule in app.js. From that, I think it is fair to conclude that the engine used in the local browser for analysis with PicochessWeb is Stockfish, regardless of the setting the engine of the DGT Pi is on. It is well beyond my ability to diagnose why the “Analyze” button is non-cooperative with Google Chrome sometimes - if anyone has any ideas, it would be welcome!


4) Thank you for the speaker recommendation – I will buy that now!


 Again, many thanks!

Scally

unread,
Jul 24, 2022, 3:50:10 PM7/24/22
to PicoChess

Hi Dan,

You don’t believe in short messages 😉

I’d forgotten that the newer RPi4’s were automatically set at 1.8 GHz, mine are earlier models. For Picochess I’m using the 4gb ram version, my 8gb model is for the compiles, and compiling mame does use the full 8gb, in fact I added a RAM disk to help too.

The only chess engines that use the GPU are the NNUE Engines, including Maia & Lc0. That’s why I overclock my GPU to 750 MHz. 

I’m not interested in voices on the Webserver as I get what I want from the DGT Pi speaker. Before the MAME engines came along, I had dabbled with a voice synthesiser and added a Voice Challenger voice and a Borg voice with v3 with lots of ‘assimilate’ messages on various pieces:

Al@PicoChess:/opt/picochess/talker/voices/en $ ls
al    boris    christina  dmitri       fritz       GLaDOS   james    maurice_pico  oldman  testoggfile.sh   testoggvoices.sh
borg  CCvoice  daniel     dmitri_pico  fritz_pico  hal9000  maurice  mum           scally  testoggfiles.sh

I had my son James & my Mum record voices too. Obviously the Al voice is mine, but these were all before v3 came along.

It’s now near my bed time in the UK (21:00) as I still have to wake up every 3hrs or so to empty my Stoma bag. However I’m normally up by 07:30 to answer my overnight queries or something I’ve missed here.

Below are pictures of my 8gb ram model that I use for compiles etc. It boots from a SSD drive and has a M.2 NVMe backup drive running at 2 GHz. My 2 Compute Model 4’s can be clocked higher, but that’s another story …


Al.
6A00814A-A876-4735-AF6F-BAD0EB2BC50A.jpeg
C310D72C-DACE-488C-9B05-157AE7563DE9.jpeg

Dan

unread,
Jul 24, 2022, 4:20:26 PM7/24/22
to PicoChess
Hi Scally,

I'm sorry if you feel I've been a bit long winded, but I am just trying to be as clear as possible for the potential benefit of anyone else who is completely new to this. I am grateful for any advice that you or anyone else could provide.

Thank you for telling me about the GPU, and I will follow your advice with regards to the GPU overclocking.

Could I please ask if you've any insight into two in particular of my further questions in particular, 1B and 2A? Paraphrasing for brevity:

1B) Are there any settings to tell Picochess to use more of the available memory?

2A) After altering a .js script file for the webserver, how do I build/compile? it or clear cache? so that the changes made to the script are actually present in the webserver output? I am not very much of a computer person.

Dan.

Randy Reade

unread,
Jul 24, 2022, 10:04:58 PM7/24/22
to pico...@googlegroups.com
Hi Dan,

I suppose you could increase the hash table size in the <engine>.uci file but it may slow down the engine over a certain amount. You'd need to experiment with different values. Also, near the end of the game, if tablebases are reached it might use more memory. Not sure.

As for the Javascript, no compiling is required. It's executed in the client browser. You would need to clear the browser cache to see your changes.

Randy


Scally

unread,
Jul 25, 2022, 3:03:08 AM7/25/22
to PicoChess
Hi Dan,

It was a tongue in cheek quip about your lengthy posts, hence the smiley at the end of my comment 😉

That’s what I love about our group, whilst one part of the world is sleeping, other parts are awake and can answer any queries.

As Randy says, any code alterations do not need compiling which is always handy, I’ll let you try this out.

I cannot think of any way to use more of the available memory on a RPi4 apart from the hash tables and maybe when using the syzygy end game tablebases. I’ll conduct a few experiments today and see what I can find out. I do remember fine tuning the hash tables way back in November 2016 with Luigi, where we concluded that 192 mb was correct for a RPi 3. As most people still have these in their DGT Pi’s I never thought to test the RPi 3b+ or RPi 4 & CM4 further. You will see in the engine.uci files for the top engines that I specify 192 as the hash tables, if this was left out, the default is used, which is much lower, Stockfish is 16:

Al@Pico-CM4:/opt/picochess/engines/armv7l $ ./a-stockf

Stockfish 15 by the Stockfish developers (see AUTHORS file)
Compiled for Picochess by Scally
uci
id name Stockfish 15
id author the Stockfish developers (see AUTHORS file)
Compiled for Picochess by Scally
option name Debug Log File type string default
option name Threads type spin default 1 min 1 max 512
option name Hash type spin default 16 min 1 max 2048
option name Clear Hash type button
option name Ponder type check default false
option name MultiPV type spin default 1 min 1 max 500
option name Skill Level type spin default 20 min 0 max 20
option name Move Overhead type spin default 10 min 0 max 5000
option name Slow Mover type spin default 100 min 10 max 1000
option name nodestime type spin default 0 min 0 max 10000
option name UCI_Chess960 type check default false
option name UCI_AnalyseMode type check default false
option name UCI_LimitStrength type check default false
option name UCI_Elo type spin default 1350 min 1350 max 2850
option name UCI_ShowWDL type check default false
option name SyzygyPath type string default <empty>
option name SyzygyProbeDepth type spin default 1 min 1 max 100
option name Syzygy50MoveRule type check default true
option name SyzygyProbeLimit type spin default 7 min 0 max 7
option name Use NNUE type check default false
option name EvalFile type string default nn-6877cd24400e.nnue
uciok

quit
Al@Pico-CM4:/opt/picochess/engines/armv7l $

Maybe I should add a Clear Hash to each level too.

I’ll come back later with my findings ….

Al.

Scally

unread,
Jul 25, 2022, 5:42:53 AM7/25/22
to PicoChess
Hi Danny,

Changing the size of the Hash Tables definitely uses the equivalent amount of free RAM space

On my RPi 4 8gb model from boot I have 7.3gb free RAM:

Al@RPi4-SSD:~ $ free -h
                      total        used        free      shared  buff/cache   available
Mem:          7.8Gi       118Mi       7.3Gi       9.0Mi       323Mi       7.4Gi
Swap:         9.7Gi          0B       9.7Gi
Al@RPi4-SSD:~ $

Once I’ve started StockfishNN natively via ./StockfishNN I have 7.2gb free RAM

Bear in mind you should never use more than half your free RAM for hash tables, but Stockfish max is 2048gb, so that’s fine.

When I then enter these uci commands and check again:

uci

setoption name Threads value 3

setoption name Clear Hash value true

setoption name Hash value 2048

got depth 25

The free RAM is now 5.1gb


Next I’ll experiment with the syzygy end game tablebases.

I have 3-4-5 piece tablebases on my DGT Pi, but have 3-4-5-6 on my CM4, I’ll try both

More later ….

Al.

Scally

unread,
Jul 25, 2022, 5:44:43 AM7/25/22
to PicoChess
That’s  ‘go depth 25’ not the  ‘got depth 25’ typo …

Scally

unread,
Jul 25, 2022, 6:51:54 AM7/25/22
to PicoChess
Hi all,

Using the SYZYGY Endgame Tablebases only uses around 4mb of RAM with the 145 3-4-5 piece tablebases 

However it uses around 83mb of RAM for the 510 3-4-5-6 piece tablebases.

Both are very small amounts that hardly make a difference.

Al.

Dan

unread,
Jul 26, 2022, 12:34:51 AM7/26/22
to PicoChess
Hi Scally & Randy,

You are both quite right about my PicochessWeb confusion being a client browser cache issue. I was unable to get any proof-of-concept test change to the script reflected on any client browser after refresh, and my suspicion was that it was something to do with the Flask underlying webserver for Picochess that I had no understanding of. Seeing references to Yeoman, the Yeoman-Flask generator and Grunt in the PicochessWeb files, about all of which I knew nothing, rather led me up the wrong garden path. Manually reloading http://<PicochessWebIP>/static/js/app.js in the client browser is enough to update the cache and allow changes to be reflected! Thanks for the advice, and I will continue trying to work with the Speech Synthesis voices to the best of my limited ability.

This discussion about improving engine performance is fascinating!

What is the command to benchmark engine performance - it would be nice to test how setting changes reflect performance? If the NNUE engines use the GPU core as you say, would performance be improved by allocating more RAM to the GPU in the Pi settings?

I've been looking at the /opt/picochess/engines/armv7l/ files to try to understand more. I note that StockfishNN is set to use 3 threads at level 20, but Maia is set to at max use 2 threads? Is it safe to increase that to 3? I note the 150GB storage size of the SYZYGY 6 tablebase compared to the ~0.94GB size of the (3-4-5?) tablebase in /opt/picochess/tablebases/syzygy/ - is there enough improvement to be worth buying a new microSD card for?

Also, is it possible to upgrade the Stockfish (10?) Stockfish.pexe portable found in /opt/picochess/web/picoweb/static/stockfish/ that PicochessWeb uses for engine analysis in client browsers, to the latest Stockfish.wasm or Stockfish-NNUE.wasm ?

Dan.

Scally

unread,
Jul 26, 2022, 10:05:56 AM7/26/22
to PicoChess
Hi Dan,
Some engines have an inbuilt bench command …

Taking Stockfish as an example, you can start it in armv7 via  ./a-stockf bench  but that would only use the default 1 core

So it’s best to start it manually and apply some uci commands:

./StockfishNN
setoption name Threads value x (where x is 1 to 4)
bench

You can stop it via CTRL-C or let it run to its conclusion

On other engines you will need to set the path to its NNUE file if it has one, engines like HoneyNN accept shortened commands but I can’t remember the format.

On a RPi4 the maximum RAM you can add to the GPU is 128mb via adding a line  gpu_mem=128  into file  /boot/config.txt

If an engine has an associated .uci file you can give it any cores from 1-4 as long as the engine supports it, some only support 1 core.
I purposely gave Maia only 2 cores because of the low elo levels, but you can set it to 3 if you like, just leave 1 core for stockfish that runs in the background.

The 3-4-5 syzygy tablebases use little space but won’t be used until there’s 5 or more pieces left on the board.

The 3-4-5-6 syzygy tables bases will be used as soon as there’s 6 or less pieces on the board. I have mine on a separate thumb drive rather than use a larger sd card, but the choice is yours.

I’ve not dabbled with .pexe files or *.wasm files, that’s more Shiv’s domain.


Cheers,

Al.

RandyR

unread,
Jul 26, 2022, 10:47:39 AM7/26/22
to PicoChess
You can also add options to the stockfish benchmark command. The syntax is:

./stockfish bench hash(MB) threads limit fenFile limitType evalType

where
limit is a number (depending on limitType)
fenFile is a file containing a list of fens to test (or use default for the built-in ones)
limitType can be depth, perft, nodes and movetime (in millisecs)
evalType can be mixed (default), classical or NNUE
 
e.g. ./stockfishNN bench 128 2 10000 default movetime classical
or    ./stockfishNN bench 128 2 12 /home/pi/fentest depth NNUE

Randy

Dan

unread,
Jul 26, 2022, 11:47:54 PM7/26/22
to PicoChess
Hi Scally & Randy,

Thanks for the information about the benchmarking command. I've been running extensive benchmark combinations repeatedly on my Pi 4B 8Gb Rev1.5 , testing with StockfishNN in both classical and NNUE mode.

My findings were as follows:
1) Increasing the hash table size has no statistically significant impact on the new nodes/second searched (perhaps obviously) for NNUE or classical.
2) The max hash table for StockfishNN is 2044MB, any higher gives "Failed to allocate <>MB for transposition table". It does not appear to hurt speed to have a larger hash table either, so if you have the spare RAM unused, go for it?
3) Increasing the # of cores used from 3 to 4 does improve nodes/second speed by ~20% for NNUE and ~10% for classical.
4) Setting gpu_mem in /boot/config.txt has no statistically significant impact on NNUE or classical performance.
5) Unexpectedly, setting Scally's GPU overclocking settings in /boot/config.txt of over_voltage=6, gpu_freq=700, gpu_freq_min=700, core_freq=700, core_freq_min=700 actually reduced nodes/second performance of both NNUE and classical by about ~2% compared to no over_voltage and a forced frequency of 500. Unscientifically measured, the temperature monitoring also ran about 3C hotter during repeated benchmarking. Setting the frequency of 750 resulted in unstable video output, so I reduced it to 700 for the benchmarking.

I've downloaded the  3-4-5-6 SYZYGY tables and will order a new microSD card to put them in. I hope this benchmarking helps others!

I will continue to explore modifying PicochessWeb, but this is proving a very tough learning experience. 

Dan.

Scally

unread,
Jul 29, 2022, 9:43:53 AM7/29/22
to PicoChess

Hi all,

I’ve been chatting to a couple of chess authors via email:

John Stanbeck the Author of Wasp. He has told me that v6 will be available around the end of August, his latest official version is v5.50 but v5.58 was sent to TCEC and he has given me v5.60 to test which I can’t share. He said it should be around 60-70 elo stronger than v5.50 but in a Cutechess tournament I ran on my Raspberry Pi 4b 8gb ram at 2GHz it performed at 114 to 117 better than v5.50 depending on wether you prefer using getelo or ordo to do the calculations.

One interesting point it that his bench command shows a different UCI_ELO max value depending on what RPi and clock speed it runs at. Starting the Engine via ./WaspNN and typing in uci will show you the value for your set-up, I’ll list my finding’s on an attachment below.

Also his bench command is different but very informative, it’s as follows:

./WaspNN -bench -d 14 -hash 32 -threads 4
where the -d is the search depth for all 20 positions, the other fields are self explanatory.

My scores on a RPi4 are attached.

Ed Shroder, the author of Rebel15 and co author of Rodent4-NN. He provides the source code for these engines but they are for Windows only and don’t come with Makefile’s to try and compile them on Linux. I have managed to get Rebel v15.2 running as a Windows Remote Engine on Picochess, but it’s too strong and has no levels. Rodent4-NN starts but crashes when I try to use the uci commands. When I compiled Rodent for Picochess I had to hard code the paths for the books and personalities within Picochess, so I expect it’s wanting these folders in certain folders on my Windows tablet, this is still a work in progress.

I have emailed Larry Kaufman the co author of Komodo several times to see if he would provide us with a Komodo binary of the free version at the time (currently Komodo v13) but he doesn’t see why he should provide it. So apart from old versions Komodo Beekay & Komodo v2.03 which I have on Picochess, I have Komodo v13.2 running as a Windows Remote Engine, but all 3 are too strong and have no levels.


Cheers,

Al.
83578B87-C947-41A7-971C-2AB300C2C15D.jpeg
D575A80A-26F7-4796-A55C-299138097610.jpeg

Dan

unread,
Jul 29, 2022, 10:05:20 PM7/29/22
to PicoChess
Hi Scally,

That's very interesting. Is that UCI_Elo string calculated somehow, or estimated? All the nodes/s benchmarking I performed earlier were with my Pi 4B 8GB v1.5, running at stock 1800Mhz. Out of curiosity, I went back and performed another set of tests at over_voltage=6 and arm_freq=2100, a 16.7% increase in CPU clock speed. 

Unlike increasing the GPU clock speed, this 16.7% CPU clock speed increase did actually translate into increased StockfishNN nodes/s speed, with an average gain of ~9.7% in NNUE mode and ~9.9% in classical. Operating temperature was noticeably higher by about ~4-6C, but I did not monitor this scientifically.

My new larger microSD card came today, as well as that amusingly named "mini wireless speaker" (that needs 2 wires!) you recommended. The speaker is a little dinky, but the speech is clear and it is acceptably loud, and I cannot imagine that the power draw would be excessively onerous for the Pi either. I burnt the image onto the SD card, and have been setting everything up again, after replacing all the files in the /opt/picochess/tablebases/syzygy/ folder with the 150GB 3-4-5-6 SYZYGY tables I downloaded. I am unsure how to test the new tablebase is working correctly? 

My free time to explore PicochessWeb has been very limited, I'm hoping that I get some good free time to delve over the weekend.

Dan.

Scally

unread,
Jul 30, 2022, 5:08:54 AM7/30/22
to PicoChess
Hi Dan,

John Stanback’s comment:

“Wasp does a short fixed-node search upon startup to get a nodes/second and then uses a formula to estimate the Elo”

Some test positions for syzygy tablesbases can be found here:

http://dhanish.epizy.com/Chess/egtbtest.html?i=1

Using the first 6 piece test and Stockfish (a-stockf) as an example:

Al@Pico-CM4:/opt/picochess/engines/armv7l $ ./a-stockf
Stockfish 15 by the Stockfish developers (see AUTHORS file)
Compiled for Picochess by Scally

setoption name SyzygyPath value /opt/picochess/tablebases/syzygy  
info string Found 510 tablebases - response from above command

setoption name Threads value 3

position fen 8/2p4P/8/kr6/6R1/8/8/1K6 w - -

go depth 10

info string classical evaluation enabled
info depth 1 seldepth 1 multipv 1 score cp 15265 nodes 1 nps 15 tbhits 5 time 65 pv b1a2
info depth 2 seldepth 2 multipv 1 score cp 15265 nodes 10 nps 153 tbhits 5 time 65 pv b1a2 c7c6
info depth 3 seldepth 3 multipv 1 score cp 15265 nodes 39 nps 600 tbhits 5 time 65 pv b1a2 c7c5 h7h8q
info depth 4 seldepth 4 multipv 1 score cp 15265 nodes 212 nps 3261 tbhits 5 time 65 pv b1a2 b5c5 g4g1
info depth 5 seldepth 5 multipv 1 score cp 15265 nodes 338 nps 5121 tbhits 5 time 66 pv b1a2 b5h5 h7h8q h5h8
info depth 6 seldepth 6 multipv 1 score cp 15265 nodes 1841 nps 27073 tbhits 5 time 68 pv b1a2 b5h5 g4g7 a5b6 a2b3 h5h3 b3b2
info depth 7 seldepth 9 multipv 1 score cp 15265 nodes 13725 nps 157758 tbhits 5 time 87 pv b1a2 b5h5 g4g5 h5g5 h7h8q a5b6 h8b2 b6c6
info depth 8 seldepth 10 multipv 1 score cp 15265 nodes 14496 nps 164727 tbhits 5 time 88 pv b1a2 b5h5 g4g5 h5g5 h7h8q a5b6 h8b2 g5b5 b2c3
info depth 9 seldepth 10 multipv 1 score cp 15265 nodes 18790 nps 197789 tbhits 5 time 95 pv b1a2 b5h5 g4g5 h5g5 h7h8q a5b6 h8d4 b6c6 a2b3
info depth 10 seldepth 14 multipv 1 score cp 15265 nodes 35544 nps 296200 tbhits 5 time 120 pv b1a2 b5h5 g4g5 h5g5 h7h8q g5b5 h8f6 c7c5 f6c6 a5b4 c6f3 b4c4 a2a3 b5b4
bestmove b1a2 ponder b5h5
quit
Al@Pico-CM4:/opt/picochess/engines/armv7l $

Straight away you can see that b1a2 is the correct answer with lots of tablebase hits.

Cheers,

Al

Scally

unread,
Jul 30, 2022, 1:29:56 PM7/30/22
to PicoChess

Hi all,

With the release of Komodo 13.2 as a free engine, it does have levels from 0-20 (even though the doc says 0-25).
So I have set levels and played against Komodo on Level 5 as a Windows remote Engine on Picochess and won easily.
No longer will it thrash me, I’ll have fun trying to find the right level for me …..

Cheers,

Al.

Dan

unread,
Jul 31, 2022, 10:59:01 PM7/31/22
to PicoChess

Hi Scally,


Thanks for that info, it's a good thing I double checked that! I'd deleted the 3-4-5 tables in the assumption that they were included with the 150GB 6 table, and on running the test got a completely different result than what should have been. I downloaded the 3-4-5 tables again and added them to the 6 tables, and everything works as yours does with the same commands.


I think I'm now reasonably happy that I've extracted the maximum performance out of the DGT Pi hardware, as upgraded, and consider all my questions relating to the Pi hardware & it's configuration settings closed.


What remains are my 3 queries about PicochessWeb:


A) Can the PicochessWeb speechSynthesis announcement voices be changed?


B) Can the engine used in the client browser for analysis be updated from the (Stockfish 10?) Stockfish.pexe portable to the latest Stockfish.wasm or Stockfish-NNUE.wasm ?


C) Can the PicochessWeb voice announcement of the user's moves (akin to System-Voice-UserVoice-Off for those using a speaker) be disabled, leaving just the computer's moves to be voice announced?


I have solved (C) now! To make this change, open /opt/picochess/web/picoweb/static/js/app.js in Geany and remove from line #981 "saymove(lastmove, tmp_board);". Manually reload http://<PicochessWebIP>/static/js/app.js in the client browser, then Shift+F5 refresh the PicochessWeb page and the change should be reflected. Only the computer's moves will be announced. It would be nice to have it as a toggle for the web interface, but I wouldn't know how to create that.


I am making a little progress with (A), but my lack of knowledge of javascript is not helping matters. More often than not, my attempts to change the speechSynthesis voice result in PicochessWeb failing to work at all, and requiring a revert. I have managed to change the voices, but not in a way that is as I would like yet, nor in a way that will fix iOS Safari yet either. This will need much more effort, and free time is a little short for me right now. The speechSynthesis demo code is proving to be a very helpful testbed for my experiments.


Solving (B) will, at minimum, require someone with knowledge of Flask to help add the necessary HTTP headers of "Cross-Origin-Embedder-Policy: require-corp"  & "Cross-Origin-Opener-Policy: same-origin" to the webserver.


Dan.

Scally

unread,
Aug 1, 2022, 3:20:52 AM8/1/22
to PicoChess
Hi Danny,

Lol, you had 6 pieces only … they’re not called 3-4-5-6 piece tablebases for nothing 😉

I can’t help you with A) & C) and to be honest I’m happy with the Picochess voices, I don’t need voices on the Webserver too. however it looks as though you’ve mostly solved these.

As for B) I’ll contact Shiv on Skype and email and see if he can help, I’ll also remind him about the Webserver Books.


Cheers,

Al

RandyR

unread,
Aug 1, 2022, 10:48:34 AM8/1/22
to PicoChess
I wonder if Shiv would be willing to integrate his ChessUI code into PicoChess so that the game data could be served locally on the RPi. That way Shiv wouldn't need to keep the remote server running, and we could update the database with newer games. I had a look at the code and although I got it running by itself, integrating it into PicoChess doesn't seem trivial and is well beyond my abilities.

Randy

Scally

unread,
Aug 1, 2022, 12:12:10 PM8/1/22
to PicoChess
Hi Randy,

I emailed Shiv and got an almost immediate response.

I asked if he could update his remote server or integrate the Webserver books into Picochess. I also asked wether he could update the Stockfish Engine that resides within the Picochess code for the Webserver.

His response was that he can look at both next week 👍

Al

Randy Reade

unread,
Aug 1, 2022, 12:13:57 PM8/1/22
to pico...@googlegroups.com
Sounds good, AL. Thanks.

Randy

--
You received this message because you are subscribed to a topic in the Google Groups "PicoChess" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/picochess/MQL3GQ8E_C0/unsubscribe.
To unsubscribe from this group and all its topics, send an email to picochess+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/picochess/19b2d57d-c7bc-4b17-bb93-45ddec931ac0n%40googlegroups.com.

Dan

unread,
Aug 1, 2022, 12:25:01 PM8/1/22
to PicoChess
Hi Al,


Haha, I didn't claim I knew anything about these endgame tablebases before, let alone any other aspect of this! 


That's brilliant that Shiv is willing to help next week, thank you sincerely for reaching out to him and him as well for being willing to help. Should he have any understanding of (A) it would be amazing to have the little voice-choosing option drop-down that the speechSynthesis demo code has as an setting within the PicochessWeb interface - "mostly solved" may be quite the stretch to describe my efforts so far on that.


Dan.

Dirk

unread,
Aug 1, 2022, 12:32:45 PM8/1/22
to PicoChess
I would welcome a local Webserver books/games for picochess because I often use this information (at least it is helpful for me) when playing with my picochess Webserver and my Dgt board.
That sounds really great…
Dirk 

Dirk

unread,
Aug 2, 2022, 1:27:54 AM8/2/22
to pico...@googlegroups.com
I would welcome a local Webserver books/games for picochess because I often use this information (at least it is helpful for me) when playing with my picochess Webserver and my Dgt board.
That sounds really great…
Dirk 



Am 01.08.2022 um 18:25 schrieb Dan <samaf...@gmail.com>:

Hi Al,
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 on the web visit https://groups.google.com/d/msgid/picochess/27057f1e-ceb9-422d-8cd1-a2643e2cfcban%40googlegroups.com.

Dan

unread,
Aug 12, 2022, 12:15:25 PM8/12/22
to PicoChess
Hi Scally,

I hope you're well. 

I note that the "Mini Wireless Speaker" you recommended has an unbranded lithium battery inside of it even though it is always wired to the Pi for 3.5mm TRS audio & USB power. If, like me, you would be slightly concerned about the quality of such a battery from such a cheap product (especially given that it is perpetually charging!), it can be easily removed to avoid any potential lithium swelling & fire risk. Simply gently twist the two halves of the speaker to pull it apart, then remove a few PH0 screws around the mini hose? around the speaker. The battery then falls straight out from under the PCB, and cutting/unsoldering the pair of connecting wires disconnects it without in any way changing the mini speaker's performance or ability to turn off/on. 

My work on PicochessWeb's Voices has completely stalled due to my lack of javascript knowledge. Did Shiv give any clearer timeframe about when he'd have a little free time to kindly investigate the PicochessWeb issues?

Dan.

Scally

unread,
Aug 12, 2022, 1:25:16 PM8/12/22
to PicoChess

Hi Dan,

Although I still have the speaker I no longer use it as my “Scally Pi” has an inbuilt speaker, thanks for the info.

As for when Shiv will fix the book problems, unfortunately he does let us down now and then, so I’m sorry but I don’t know when he’ll find the time.

As for my health, my Doctor’s Surgery has let me down and refused my repeat prescriptions and Stoma supplies. It couldn’t have happened at a worse time, so I’ve had to register with a new Doctors.

Al

vogelmann...@gmail.com

unread,
Nov 3, 2022, 10:00:31 AM11/3/22
to PicoChess
Hallo, I need an .img picochess for RPi 4B Modell with Stockfish 15. Can enybody help me and post an source where it is possible to download it? But not for DGTPI Clock. I use it seperated clock and RPI 4B.

Thanks
Reply all
Reply to author
Forward
Message has been deleted
0 new messages