You can read the other parts of my dream computer project in these threads:
1. The hardware I use: https://groups.google.com/g/picochess/c/jC-EEwEd15M
2. More about the features of the PicoChess V3 software: https://groups.google.com/g/picochess/c/HM2Dtzt6gic
3. More about my „enhanced uci engine“ concept which allows to easily integrate my PGN replay engine and online engines: https://groups.google.com/g/picochess/c/czHRxH9HLw4
Obviously there are some people who really seem to look forward to the enhancements of my Picochess 3 version so I thought I try to shorten the waiting time and share some information about the upcoming image.
Because of all the broad hints to my V3 I could not resist to ask the apple marketing team for support in order to keep the excitement alive ;-)))
https://www.dropbox.com/s/jbhkw74dlair3d2/PicoChess%20Personal%20Version%203.0.mp4?dl=0
This is the (probably incomplete) feature list of my V3 - actually I lost track of all the things I changed :-(
############################################################################################
#-------------------------------------------------------------------------------------------
# Personal Picochess versions
#-------------------------------------------------------------------------------------------
# The following enhancements to the 0.9N version have been implemented:
# 0. Version set to 1.0 (finally ;-)
# 1. Voice announcements even if time < 1 minute
# 2. Possibility to continue playing even if one player runs out of time
# 3. Pre-Moves: Computer and user moves can be done in rapid sequence
# (no need to wait for registration of computer move). Even the
# own move could be played before computer move - it doesn't matter
# 4. New flexible ponder mode: no more checks if valid moves, position can
# be setup without any restrictions (of course it must be a legal one)
# Makes analysis and playing differenet variants much easier
# 5. Remote mode working again (without room handling, see menue.py)
#
#-------------------------------------------------------------------------------------------
# 6. Version set to 2.0
# 7. Framework for adding (more or less funny) speech comments based on
# various events
# 8. Rolling display of time/score/depth/hintmove in Ponder On or Normal Mode
# 9. Continue directly after start with an interrupted game if board still shows
# last position by reading the last games pgn file
# 10. New cool training mode with training options (with big thanks to Wilhelm!!!)
# 11. Configuration parameters for all 1.00/2.00 enhancements in picochess.ini
# 12. Various bug fixes (eg. pressing the outer buttons for quick restart
# instead of shutdown like it was intended, calc. error in evaluation)
# Again: big thanks to Wilhelm!
# 13. Renaming of the play modes! Now we have:
# New mode name Old mode name
# a5 NORMAL (rolling info display off by default) NORMAL
# b5 PONDER ON (rolling info display on by default) BRAIN
# c5 MOVE HINT ANALYSIS
# d5 EVAL.SCORE KIBITZ
# e5 OBSERVE OBSERVE
# f5 ANALYSIS (flexible option on by default) PONDER
# g5 TRAINING (this is new in 2.00) -
# h5 REMOTE (working again from 1.00 on) REMOTE
#
#-------------------------------------------------------------------------------------------
# 14. Version set to 2.01
# 15. Added possibility to change voice volume via menu and picochess.ini
#
#-------------------------------------------------------------------------------------------
# 16. Version set to 3.0 (a really big one ;-)
# I think most of the enhancements only make sense running on a Revelation II (or at least
# a DGTPI with better display capabilities. Especially on a Revelation II it is really fun
# to read game comments or the opening name etc. while this is exhausting on a DGTPI and awful
# on a standalone DGT Clock with its 8 chars)
# Some features (like tournament control or PicoTutor) even wouldn't correctly work on stand
# alone clocks together with picochess because the display can not show the correct time control
# setting.
# Furthermore additional libraries must be installed, a bug must be fixed in the python-chess
# code itself(!) for the tournament control option and you need additional engines for some
# of the new feature (don't ask me where to get them or where you can get an image etc.)
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
# !!! Keep in mind: I did these enhancements in this Personal Version for my own pleasure
# !!! in order to have fun & play with picochess on my Revelation 2 - so it might be not
# !!! your cup of tea...
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
# 17. Support for Online Engines
# - Switch to Online Mode if online engine is choosen (engine name starts with
# Prefix 'Online')
# - Time control settings are taken from the online server challenge and are
# applied automatically as current time control settings
# - Clocks start after first white and black moves. After this the player's time already
# starts with the annoucement of the best move and no longer when
# the computer move has been done by the user (other than that no real sync with server
# times has been implemented)
# - Online decrement: In order to better "sync" picochess times with online server times
# you can subtract X seconds after each own move from your remaining game time in
# picochess.ini, default value is 0.9s
# - additional online info messages (login, seeking, opponent name, game result)
# - new online seek in case of 'start new game' event
# - Online move is automatically played in case of white = online opponent and clock starts
# - last move is published to online engine in case of game ending to inform the online
# server
# - online player names in pgn file(s) instead of engine or pico user name only
# - Online engines won't be saved in picochess.ini as last engine
# - picochess.ini "Online decrement" parameter can be overwritten in online uci files via parameter
# OnlineDecrement (just add "[DEFAULT] OnlineDecrement = X"
# - still work in progress (don't ask me when they are ready to play...):
# - basic FICS online engine (for this TELNET must have been installed, default!?)
# - very basic lichess online engine (for this the BESERK package must have been installed, still in early beta and not released yet)
# 18. (Better) support for MAME emulated chess engines
# - requirement: new SDL libraries (probably different for BUSTER)
# and Q5 library must have been installed
# - newer mame/mess versions do need BUSTER!
# - longer startup time for mame engines necessary, voice/sound end messages from mame engine
# last ending move is published to emulator engine in case of game end for specific engines
# - "engine setup" message because of longer initializing phase of mame chess engines
# - support for pico timecontrol setting in uci file settings according to mame engine levels
# (just define the UCI parameter PicoTimeControl X Y Z in your level settings) and time is set
# automatically after choosing a level
# - When switching back to non mame engine time settings are reset to last setting before it has been
# eventually changed by the uci setting (default time setting can be defined in picochess.ini
# via parameter def-timectrl when having a mame engine as last engine after startup)
# - automatic reset of the original time control settings after choosing a non mame/mess engine
# - mame engine should not be saved as last used engine on a DGTPI because of possible clock problems when
# starting mame engine directly after boot (very strange maybe a sync problem with dgtpicom lib!?)
# 19. Finally: practical support of remote engines and local engines at the same time(!)
# - IMPORTANT! For windows server access an update of the spur and paraminko packages and a
# modification of the spur package are necessary (ssh.py must be replaced from a different repository)
# - name in engine.ini must start with prefix 'remote_'
# - implemented via standard ssh connection, just add the remote login infos
# in the corresponding parameters of picochess.ini and your remote engine in engines.ini
# and make sure SSH server is running on your remote computer (default on MacOS)
# 20. Automatic takeback mode (only for mame engines) in case of a blunder move with active PicoTutor
# (PicoWatcher must be switched on)
# - Normally taking back moves when using mame engine is not possible so this is a nice feature for
# beginners (like me ;-) who often play against mame engines.
# - only the last blunder move can be taken back when using mame (of course this restriction is not
# valid for other native uci engines!)
# 21. Bugfix: Set correct (old) engine (name) in case of engine error (very important for
# new remote/online engines which sould easily fail if server is not available)
# 22. Taking back moves: Now the next move which could be taken back is shown in display and
# in long notation format (good for old people like me ;-)
# 23. After start up and new game events the current chosen engine is shown in the display
# (setting in display menu & config parameter in picochess.ini)
# 24. Support for correct remaining game times for continued games from version 2 (finally!)
# 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
# Of course you can still use the remote play mode functionality (re)introduced since 2.0 and
# the new handling of remote engines)
# 26. Replay of PGN games (semi automatic) via new engine
# - Semi automatic replay of saved pgn games with hint move/score evaluation by an analysis engine
# for a specific thinking period (time settings will be changed according to uci file and changed
# back automatically)
# - "Guess that move" game option for white or black (switch "guessing" sides by pressing the lever)
# - Additionally this pgn replay mode can be used to train opening books when setting
# an empty pgn file with name 'Book Test' and choosing a specific book in menu: just try and play
# a move you think belongs to the chosen book opening (makes more sense when you create specific books
# with a specific theme or famous player moves)
# - Furthermore an audio comment file for the pgn file can be specified and will be automatically
# played during the pgn game replay and can be manually started and stopped during the match
# (I did this because I have a (german) genious radio play "Nahrungsaufnahme während der Zeitnotphase"
# which is playing in real time during a tournament game. Now I can listen to the radio play and
# watch the game at the same time with picochess - how cool is that!?
# - PGN Replay engine settings won't be saved in picochess.ini as last engine
# 27. Enhancement of supported tags in pgn file: opening eco code, pico remaining times, pico time
# control setting
# 28. For online-, emulation- and pgn-mode: Automatically switch off opening books (setting "no book"
# as book option)
# 29. Override pgn location from picochess.ini in case the parameter 'location' is set to
# something different than 'auto' (you can use this if you always get a wrong auto
# location).
# 30. Basic chess tutor functionality (even in case the choosen engine does not support
# score & hint moves like almost all mame emulated engines) with the following 3
# functions (disabled in Online mode)
# a) Pico Watcher (checks your moves and returns ??, ?, !?, ?!, !, !!)
# You can change the control limits for the evalutations in file picotutor_constants.py
# b) Pico Coach (gives position score and move hint(s) - just lift a piece and put it back into
# the same position)
# c) Pico Opening Explorer (displays current opening name (alternative) independet of the
# used opening book
# 31. Tournament time control settings:
# Possible time control settings in picochess v3.0:
# time = m, time = g i, time = n g i or time = n g1 i g2
# Examples:
# time = ... 7 (time per move, eg. m = 7 seconds)
# 5 0 (game time, eg. Blitz g = 5 min. and 0 seconds increment)
# 5 3 (game time g= 5 min. plus I = 3 sec. increment)
# Tournament time control settings: n moves in g1 minutes (plus I increment seconds) and rest
# of the game in g2 minutes
# time = ...
# new: 40 5 0 (n = 40 moves in g = 5 minutes)
# new: 40 5 3 ((n = 40 moves in g= 5 minutes with I = 3s Fischer inc.)
# new: 40 60 0 30 (n = 40 moves in g1 = 90 minutes, I = 0 seconds increment and rest of the game in g2 = 30 minutes)
# **************
# * Important: *
# **************
# for this a python-chess bug in 22.1 version must have been fixed to support the
# movestogo go command option correctly!
# If you have a higher python version look there (eg. 3.7 on BUSTER)
# (in file /usr/local/lib/python3.7/dist-packages/chess/uci.py:
# line 949 original: if movestogo is not None and movestogo > 0:
# changed to: if movestogo is not None and int(movestogo) > 0:
# That was not so easy to figure out...)
# 32. Possibility to directly play an alternative move for the engine on the board after the engine move
# has been displayed in NORMAL mode (like in TRAINING mode or the DGT CENTAUR chess computer)
# (setting in menu and config para)
# 33. Menu for saving, reading and continuing a game from pgn files (yes, finally!)
# *** IMPORTANT ***
# In order to load and continue a saved game you will need to use the webserver in order to set up
# the correct starting position of the game. For this you must open the webserver page BEFORE
# you read and restore the game or if not just use the sync button!
# 34. Display of the book opening name(s) (function of the PicoTutor)
# 35. New time control setting: Support of a specific max. search depth (with a fixed
# countdown movetime of 11:11 (unfortunately counting up the clock is not possible)
# 36. Support of written game comments like it used to be in Boris or Sargon 2.5 MGS old chess computers
# 37. Display of pgn event, players & result when loading an existing game
# 38. Enhancements of REV2 and webserver display of moves/evaluation/depth/score
# 39. Display of „new position“ message in case of analysis mode and user sets up
# a new position instead of playing an legal move (or in case he plays an illegal
# move which is seen as a new position)
# 40. Removed the use of vorbis ogg player because of audio play conflicts with sound from
# mame chess engines in picotalker.py and OS update problems and missing start/stop/pause
# functions(now pygame.mixer is used instead), see <https://www.pygame.org/docs/ref/mixer.html>
# install additional lib via: "sudo apt-get install python3-pygame"
# 50. Three new voices (one with commentary): Daniel (eng.), Boris (eng. with commentary)
# and Gust (german). Additinal voice samples (eng./german) for the new picochess V3.0
# feature which can be put additionally in all existing voice folders
# 51. Specific 'set pieces' sound (no voice) so you hear when something wrong with the board position
# 52. Set opponent pgn player to 'Player B' instead of engine name and user name ro 'Player A'
# in case of 'Observe Mode'
# 53. No more searchmoves in UCI 'go' command for the engine in case normal moves (exception:
# Alternative moves), otherwise this might cause problems with the use of internal
# engine books etc.(thanks to Rasmus for the hint)
# 54. BugFix for Buster: Change of voice volume working again (big thanks to Wilhelm!)
# 55. New (Fischer) "simulated" median move time levels: 5s, 10s, 15s, 20s, 30s, 60s, 90s
# (thanks to the schachcomputer.info Forum for this idea!)
# 56. New "favorite engines" options: It is nice to have all 60 and more engines installed
# but it is a pain to select one out of these many engines...
# => new Favorite menu to keep your main and most often used engine separately.
# just put your favorite engines into the favorite.ini file liek you would do for the
# main engine list in engine.ini and put it in the correct egine directory - that's it
# *** IMPORTANT ***
# Engines in favorite.ini must also appear in engines.ini!!!
# 57. BugFix: Continue game/load saved game and play in opposite board direction fixed
# 58. Support of engine subfolders: you can now organize your engines in subfolders
# within the main engine folder (just specify the subfolder path in engines.ini in
# in front of the filename eg. [MAME/mm5] where MAME is a subfolder within the armv7l
# folder (thanks to Wilhelm for supporting the correct engine startup loading procedure!)
# 59. Fix for the strange clock times reset "bug" when playing without a clock with just a board,
# PI and the webserver. With the voice move announcements of the webserver in V3.0 we even
# don't have to look at the webserver screen when playing... (thanks to Marcel Swidde for
# the fix in the picochess google groups forum)
# 60. Position correction message after the "Set pieces" error message occurs the second time:
# assuming that you are lost and don't know where to put the piece to its correct position,
# picochess will tell you what is wrong and how to correct (if you have your PI hooked up
# into your WLAN you could just check the correct position with the webserver board display
# by just pressing the Sync button of the webserver).
# Picochess will stop the clocks and check its internal game position against the external
# DGT board position and will display two kind of correction messages:
# - Put w N f3 (=> put white night on f3)
# - Clear h5 (=> remove piece from h5)
# This will continue as long as the correct position has been set up.
#
############################################################################################
FAQs, Tipps & Tricks
1. As there is no dedicated manual for my V3 version please read about the features in my above mentioned threads. I will just put my 3 part thread forum description into a pdf/ePub format, you will find these (as well as all other documents) in the manual folder of the main picochess directory
2. So what’s in this image? The V3 image will be based on Marcels picochess 10 image (see https://groups.google.com/g/picochess/c/hvBMzyGwKOA thanks to Marcel for this) which means you have a Desktop OS and also a samba and VNC server preinstalled (Henri will like this ;-). I have testet the VNC connection with the TigerVNC Viewer for Mac because the internal VNC client of macOS did not work for that.
Bluetooth and WLAN are of course activated - you just have to set your home SSID and password. I myself do this directly after I flashed the image to the sd card by copying my wpa_supplicant.conf file with my win info into the main boot directory. The wpa_spplicant.conf file should look like this (for Germany DE as country)
country=DE
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="WLAN NAME"
psk="PASSWORT"
key_mgmt=WPA-PSK
}
3. Compressed image size is about 7,5 GB and uncompressed it will fit on a 16GB sd card. Unfortunately it won’t fit on a 8GB card. Keep in mind that different manufacturers could have small differences in sd card sizes so eventually you must use an even bigger card when you get a warning when trying to write the image. As some of my enhanced uci engines use a file transfer for communication the faster the sd card the better.
4. I will test the images on a DGTP with PI3B+ inside, on a standalone PI3 and PI4 all connected to a DGT eBoard and the Revelation II.
5. The engines: Newest versions of all the standard engines including stockfish 12 (greetings to Peter ;-), updated NNUE engines (again big thanks to Al), all historic engines from the paper engines of Alan Turing and SOMA up to one of the first chess programs running on a real IBM computer Bernstein (thanks to Martin, see https://github.com/mdoege/PyTuroChamp ). Mame is preinstalled, see below. Some more python and lua script engines like the original Sargon 1 program and my own engines: PGN Replay and FICS Online engine (yes I decided to include my FICS engine despite the time syncing issues. The lichess engine has more problems and I need some help from some python experts I guess).
6. Voices: New voices for supporting all new V3 features (sorry only in German and English) but the new feature samples are added to every English and German existing voice. Also some voices with basic commentary like GLaDOS (thanks to Jon in this forum!) or my BORIS or Dimitri voice (try Dimitri with a quick online game - that’s fun)
7. Regrading the DGTPI button and the two queens handling )to switch off picochess: This has slightly changed so that standby mode with bluetooth reconnection is possible: Pressing the button the first time when Picochess runs will shutdown the PI but the display stays on. Just wait until the computer connection icon vanishes and press the button a second time to switch off the display. Now the DGTPI is in standby mode. Pressing the button a third time will startup the PI again and bluetooth connection should be successful. So you don’t have to cut the power supply for a successful reboot and bluetooth reconnection.
… to be continued.
--
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/a7a3f734-8716-4e0d-b1da-c615db7ecafbn%40googlegroups.com.
@Adrain: Thanks for your suggestions but with this image I will close the „picochess development“ chapter for me and move on… (that’s does not mean I won’t use Picochess and my DGT hardware anymore - quite the opposite!)
@Shiv: Thanks for welcome my changes but as I have stated several times before I really think that my code quality is too bad for this (really: I almost can’’t understand my own code anymore when I haven’t looked at it for a longer time). But as the code is no secret anybody can use it, improve it and push to the official repository or whatever… I won’t do this.
Always late but (hopefully) always great ;-)
Starting with an almost fresh new image for my V3 takes longer than expected. These are the things I had to do in addition to the standard Picochess set-up (see the Picochess 09N documentation) for my V3 version and I almost forgot them because I did them long time ago on my system:
Python Chess is installed on my system: /usr/local/lib/python3.7/dist-packages/chess
in file uci.py (for tournament setting):
def go
…
Bug fix:
if movestogo is not None and int(movestogo) > 0:
Instead of
if movestogo is not None and movestogo > 0:
We are now roughly testing the image which will take some time… (it’s almost like waiting for x-mas, isn’t it? ;-)
https://www.dropbox.com/s/fchldsa2aekkwzk/preparing_v3_image.MOV?dl=0
This V3 image is based on my V1 and V2.01 forks of the last official Picochess V09N version, now running on RaspianOS32 with newest OS update.
Use the upcoming image at your own risk as I don’t know if these images will really run on all your device without any problems.
I am (still) a python programming beginner and my V3 definitely still contains several bugs which may or may not occur with your set up - so keep that in mind. The software quality of my V3 enhancement is definitely not the best (lots of global variables, bad software structure etc.) but it is the best I could do and as nobody else tried it I just did it. Maybe some ideas of my code will find its way back into an updated later „official“ version of the main picochess repository…
I don’t offer any guarantee or support for this version - so if you don’t like something or something does not work for you or you would expect: just fix it, yourself or use a different image/version - Picochess V09N still works fine
BIG THANK YOU…
This Version would not be possible without the great work of the picochess inventors, all developers and the great community which made all this possible - thank you guys!
After all these years I am still impressed of what has been created with such a small computer and only a chess clock and a chess board, incredible.
Big thanks to Al & Wilhelm for endless hours of testing and using my V3 in their daily chess life.
Special thanks to Al for providing a fresh compile of a really fine selection of the most interesting engines (at least in my opinion) and all the mame uci files with detailed automatic time settings for picochess (a new V3 feature).
The mame emulation of the old chess computers wouldn’t be possible without the mame dev team (esp. „hap“)“ and all the lua scripts (what an endless work) which provide an UCI wrapper for our chess computer so that we can against them with Picochess (thanks to Sandro Ronco and Franz with his CBEmu project and all the help I got from Franz!)
Observations so far:
a) When I tested the images I had to boot initially twice before the clock display was ok - don’t know why this happened but after the second boot it was alright each time I started Picochess again
b) I had no problems with bluetooth connection to my eboard or Rev II but Al had to use the bluetoothctl tool to pair and trust the connection to his Rev2 initially for some reason…
c) I don’t know if I really like the new shutdown behavior: pressing the bottom button or putting the two white queens beside each other ) will shutdown the PI but no longer the display of the DGTPI. For that we have to press the bottom button a second time. Then the PI can be restarted with successful bluetooth reconnection.Before this change the Pi and the display have been shut down/off with the first button press/putting the queens beside each other but it was not possible to restart and reconnect via bluetooth without taking the PI from the power supply.
Maybe I will change it later in an update (or someone else) - what do you think?
d) I have activated almost all new V3 features so that you will easily see what might be new ;-) You can switch off and customize almost all options via the clock menu
e) The image files are about 8 GB in size zip-compressed each to download but will fit only on a at least 16 GB card.
Al was so kind to provide both images for the picochess community in his dropbox account (thank you so much for all, buddy) :
DGTPI / DIY DGTPI (preferred for V3)
PicoChesssV3_DGTPI.zip
https://www.dropbox.com/s/bdplysz6ix6sz0d/PicoChesssV3_DGTPI.zip?dl=0
Non DGTPI (although this only makes sense in combination with a Revelation II because of the enhanced display of 11 characters which you otherwise miss)
PicoChesssV3_NonDGTPI.zip
https://www.dropbox.com/s/e1syzpd0xdikpam/PicoChesssV3_NonDGTPI.zip?dl=0
Enjoy (hopefully)!
Dirk
(this last picture is for Al ;-)
To view this discussion on the web visit https://groups.google.com/d/msgid/picochess/e57cfbd7-995b-4b6c-8479-1d35c9b74f1en%40googlegroups.com.
sudo cp -r /opt/picochess_v09N/talker/voices/nl /opt/picochess_v30/talker/voices/
sudo cp -r /opt/picochess_v09N/talker/voices/es /opt/picochess_v30/talker/voices/
sudo cp -r /opt/picochess_v09N/talker/voices/fr /opt/picochess_v30/talker/voices/
sudo cp -r /opt/picochess_v09N/talker/voices/it /opt/picochess_v30/talker/voices/
--
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/f71c796f-6795-43cb-90e8-e531ef519b55n%40googlegroups.com.
<it.zip>
To view this discussion on the web visit https://groups.google.com/d/msgid/picochess/9badb231-1f0e-44a4-9ca2-b3c522df2a5cn%40googlegroups.com.