DGT Centaur: My findings and modifications
Moderators: Harvey Williamson, Steve B, Watchman
Forum rules
This textbox is used to restore diagrams posted with the fen tag before the upgrade.
This textbox is used to restore diagrams posted with the fen tag before the upgrade.
- Scally
- Full Member
- Posts: 970
- Joined: Sun Jun 05, 2016 5:44 pm
- Location: Bermondsey, London
- Contact:
DGT Centaur: My findings and modifications
Hi all,
I’ve had my Centaur since Monday and before I played a game I copied the micro sd card.
I played a game on the default friendly level and won a long 70 move game which I thoroughly enjoyed.
Then I wanted to see how it ticks and whether I could connect to it. I made slots for the micro sd connector and the micro hdmi connector. Next I purchased a micro sd card extender and made a slot for that.
I tried booting the supplied micro sd card in a RPi zero W, a RPi2, RPi3b and a RPi3b+ but it doesn’t boot, it’s obviously a restriction placed on the micro sd card.
Next I booted the Centaur connected to a monitor and keyboard and got the Centaur logon screen, I tried various combinations of obvious login and passwords but was unsuccessful.
I used another method to connect to the Centaur, the micro sd card is split into 2 volumes (E & F drive for me). The book files are identical to the DGT Pi books, so it must select them at random. There are 3 engines present, 1 is for an x86 processor, both the others namely stockfish and stockfish_pi are RPi versions. I copied these to my my Picochess system and they both boot as Stockfish 310118:
./stockfish_pi
Stockfish 310118 by T. Romstad, M. Costalba, J. Kiiski, G. Linscott
So it’s not Stockfish10. Stockfish9 was released on the 1st of February 2018, 1 day after this was compiled, so this engine is probably the last dev version of Stockfish8, so in effect, Stockfish9.
Other than that most of the files are encrypted, so instead of .py (python) files, they are .so (shared object) files which are very difficult to decode.
A few pictures follow showing my modifications, I will take pictures of the extended sd card cable next time I open up my Centaur.
Click on each photo for a larger image.
Cheers,
Al.
I’ve had my Centaur since Monday and before I played a game I copied the micro sd card.
I played a game on the default friendly level and won a long 70 move game which I thoroughly enjoyed.
Then I wanted to see how it ticks and whether I could connect to it. I made slots for the micro sd connector and the micro hdmi connector. Next I purchased a micro sd card extender and made a slot for that.
I tried booting the supplied micro sd card in a RPi zero W, a RPi2, RPi3b and a RPi3b+ but it doesn’t boot, it’s obviously a restriction placed on the micro sd card.
Next I booted the Centaur connected to a monitor and keyboard and got the Centaur logon screen, I tried various combinations of obvious login and passwords but was unsuccessful.
I used another method to connect to the Centaur, the micro sd card is split into 2 volumes (E & F drive for me). The book files are identical to the DGT Pi books, so it must select them at random. There are 3 engines present, 1 is for an x86 processor, both the others namely stockfish and stockfish_pi are RPi versions. I copied these to my my Picochess system and they both boot as Stockfish 310118:
./stockfish_pi
Stockfish 310118 by T. Romstad, M. Costalba, J. Kiiski, G. Linscott
So it’s not Stockfish10. Stockfish9 was released on the 1st of February 2018, 1 day after this was compiled, so this engine is probably the last dev version of Stockfish8, so in effect, Stockfish9.
Other than that most of the files are encrypted, so instead of .py (python) files, they are .so (shared object) files which are very difficult to decode.
A few pictures follow showing my modifications, I will take pictures of the extended sd card cable next time I open up my Centaur.
Click on each photo for a larger image.
Cheers,
Al.
Re: DGT Centaur: My findings and modifications
Thanks Al, based on the commits - it is Stockfish 9 - no functional difference. Run bench and you should get 5023629 which is the bench for SF 9.Scally wrote:Hi all,
I’ve had my Centaur since Monday and before I played a game I copied the micro sd card.
I played a game on the default friendly level and won a long 70 move game which I thoroughly enjoyed.
Then I wanted to see how it ticks and whether I could connect to it. I made slots for the micro sd connector and the micro hdmi connector. Next I purchased a micro sd card extender and made a slot for that.
I tried booting the supplied micro sd card in a RPi zero W, a RPi2, RPi3b and a RPi3b+ but it doesn’t boot, it’s obviously a restriction placed on the micro sd card.
Next I booted the Centaur connected to a monitor and keyboard and got the Centaur logon screen, I tried various combinations of obvious login and passwords but was unsuccessful.
I used another method to connect to the Centaur, the micro sd card is split into 2 volumes (E & F drive for me). The book files are identical to the DGT Pi books, so it must select them at random. There are 3 engines present, 1 is for an x86 processor, both the others namely stockfish and stockfish_pi are RPi versions. I copied these to my my Picochess system and they both boot as Stockfish 310118:
./stockfish_pi
Stockfish 310118 by T. Romstad, M. Costalba, J. Kiiski, G. Linscott
So it’s not Stockfish10. Stockfish9 was released on the 1st of February 2018, 1 day after this was compiled, so this engine is probably the last dev version of Stockfish8, so in effect, Stockfish9.
Other than that most of the files are encrypted, so instead of .py (python) files, they are .so (shared object) files which are very difficult to decode.
A few pictures follow showing my modifications, I will take pictures of the extended sd card cable next time I open up my Centaur.
Click on each photo for a larger image.
Cheers,
Al.
https://www.dropbox.com/s/jhxwquiusf3hh ... 6.png?dl=0
-
- Member
- Posts: 488
- Joined: Mon May 22, 2017 8:05 pm
Hello Scally,
good work! It looks like DGT has changed a few things in the release version. That should not be a problem. SO files are shared objects, such as those used in C for example. You could disassemble these files (libraries), but that's not necessary.
Since the program of the DGT Centaur is quite simple, I recommend the use of a process sniffer and a GPIO sniffer. Based on the resulting data, you can understand and rebuild the functionalities.
Have you tried to get root access using my tutorial?
https://schach.computer/dgt-centaur-mit ... erweitern/
Regards
Benny
good work! It looks like DGT has changed a few things in the release version. That should not be a problem. SO files are shared objects, such as those used in C for example. You could disassemble these files (libraries), but that's not necessary.
Since the program of the DGT Centaur is quite simple, I recommend the use of a process sniffer and a GPIO sniffer. Based on the resulting data, you can understand and rebuild the functionalities.
Have you tried to get root access using my tutorial?
https://schach.computer/dgt-centaur-mit ... erweitern/
Regards
Benny
-
- Member
- Posts: 488
- Joined: Mon May 22, 2017 8:05 pm
Hello Al,Scally wrote:Hi Benny,
Yes I had tried your tutorial plus other suggestions on the Internet, but to no avail. Also the supplied micro sd card does not boot in a RPi Zero W.
I have a few more ideas up my sleeve and will try these and report back here.
Al.
I know you can bind SD cards to a Raspberry Pi. However, every single Raspberry Pi has to be bound manually. While I can not imagine that DGT would make that effort, it would explain why, as a retailer, you could only order smaller quantities at launch.
One way to bind an SD card (operating system) to a Raspberry Pi is codecs. I would like to explain this with the example of the MPEG-2 codec. If you want to use the MPEG-2 codec on the Raspberry Pi, you have to buy it and you get a hardware-bound license key. With this license key you can then license the codec only once. The licensing is hardware bound. If you plug the SD card into another Raspberry Pi, the codec will not work.
As a first step, I would replace the Pi Zero at the DGT Centaur and use a pure Raspbian. Then you perform a GPIO scan and control the individual pins. Subsequently, it is checked how the display, the LEDs, fields, etc. are controlled. For example, to expand the menu in the display, this is necessary.
If you want to expand things on the Centaur, it is not necessary to deskew all encrypted files. It's enough to clone the functions of a small library file. This can be a C-file or a Python file. Then you make the XXX.so file from this new C / Python file.
You practically replace the original file with the clone. If everything is done correctly and the DGT Centaur accepts this clone file, we can put all kinds of features into this clone file.
For example, with the knowledge of how to control the display, you can try to address individual pixels. It will create an error, but that's also wanted. By generating errors we can localize corresponding functions.
In order to get ahead faster, I also recommend the use of a HEX editor.
Benny
PS:
I checked some different things and it looks like, that some things are bounded to the unique serial of the raspberry.
You can check your serial with: cat /proc/cpuinfo
- Scally
- Full Member
- Posts: 970
- Joined: Sun Jun 05, 2016 5:44 pm
- Location: Bermondsey, London
- Contact:
Hi all,
The green felt stickers have arrived, I’ve stuck some on the Kings, Queens & Pawns and they look pretty good to me.
However the 2mm stickers are too small for the Rooks, Bishops & Knights so I’ve ordered another pack to get 10 more large 4mm stickers to add to the 4 I have left, which will leave me with 2 spare large stickers:
(Click on a photo for a bigger image)
Cheers,
Al.
The green felt stickers have arrived, I’ve stuck some on the Kings, Queens & Pawns and they look pretty good to me.
However the 2mm stickers are too small for the Rooks, Bishops & Knights so I’ve ordered another pack to get 10 more large 4mm stickers to add to the 4 I have left, which will leave me with 2 spare large stickers:
(Click on a photo for a bigger image)
Cheers,
Al.
- Scally
- Full Member
- Posts: 970
- Joined: Sun Jun 05, 2016 5:44 pm
- Location: Bermondsey, London
- Contact:
Hi all,
OK, forget about putting thin felt stickers on your Centaur pieces, they are longer recognised on the board, my stickers are 0.5 mm thick. I tried putting the 1 cm stickers on, leaving lots of the bottom of the plastic showing, but they still don’t work.
So no stickers it is, that’s why there were none placed on the pieces in the first place!
Cheers,
Al.
OK, forget about putting thin felt stickers on your Centaur pieces, they are longer recognised on the board, my stickers are 0.5 mm thick. I tried putting the 1 cm stickers on, leaving lots of the bottom of the plastic showing, but they still don’t work.
So no stickers it is, that’s why there were none placed on the pieces in the first place!
Cheers,
Al.
Or just use a 1 cm square or so of aluminised Sellotape onto the felt. That is what I have done with a wooden set with felt bases. Works a treat and won't unduly affect the felt feel of the pieces on the board.Fax236 wrote:Have you tried to add some aluminum foil in the middle of the felt sticker.... you need some conductive material to touch the board.
David
- fourthirty
- Full Member
- Posts: 763
- Joined: Fri Dec 06, 2013 8:46 pm
- Location: San Francisco
Can you share a photo of this David?pennine22 wrote:Or just use a 1 cm square or so of aluminised Sellotape onto the felt. That is what I have done with a wooden set with felt bases. Works a treat and won't unduly affect the felt feel of the pieces on the board.Fax236 wrote:Have you tried to add some aluminum foil in the middle of the felt sticker.... you need some conductive material to touch the board.
David
-
- Member
- Posts: 28
- Joined: Mon Nov 13, 2017 9:04 pm
I see what they are doing now. The coils are not RFID but are measuring a change in inductance by bringing metal near them. I just placed a small piece of aluminum foil on the square and it registers as a piece. The bottom of chess pieces just have some plastic cover over metal. I thought at first it was some kind of RFID like MCGE, but that's not the case.Fax236 wrote:Have you tried to add some aluminum foil in the middle of the felt sticker.... you need some conductive material to touch the board.
Yes I think some sticky backed foil in the center of the felt would probably work.