Forums

Chessconnect: a free chrome extension for electronic chessboards

Sort:
GeorgeGoodnight
joernupbde wrote:

@jewelmind: Chessconnect does not support USB connections on Android yet. Only Bluetooth. It is a security limitation on Android. But I think I found a way around this. That's the next major topic on my to do list.

But did I read you correctly that Acid Ape (which is an extension, too, right?) can handle USB on Android? That would be very interesting.

Hi Jörn, Acid Ape is a very expensive app for Android and yes it handles both usb and bluetooth. At one time it was the best way to play on Lichess. jewelmind is using a bluetooth board.

joernupbde

Thanks for clarifying this. Firstly and unfortunately Chessconnect on Android can only handle Bluetooth LE at this point. DGT uses Bluetooth classic which does not work. You need an Android app for this. The OS imposes stricter restrictions onto extensions.

Consequently, I will develop a companion app for Chessconnect to get around this. The idea is that this can then be ported to iOS which has even stricter restrictions.

jewelmind

Thank you Jorn! This is very generous and considerate work you are doing.

Parlue

Hi Joern, Wihte Pawn also use USB connections and serial Bluetooth on Android devices. Same PGN Master, Chess Dojo and chess for Android. If you need contact to the developer , I can manage this.

Dirk

joernupbde

@Parlue: Much appreciated. But as far as I know, these are all apps. Chessconnect is an extension. That is the problem (well, not really. I still think making it an extension was a good choice. But it leads to some extra work here and there). But as I said: I know what to do. I just need some time.

cadmiumpatzer

I have a USB DGT and it tests fine with various sources, fritz, lucas chess etc. I've tried this in Chrome & Brave on Windows 10, behavior is the similar on lichess too. Using "USB COM3 -paired". First I get a parity error on any move "Chessconnect
ParityError: Parity error Error: Parity error", then, no reponse until I hit connect again: "Chessconnect
TypeError: Failed to execute 'cancel' on 'ReadableStreamDefaultReader': This readable stream reader has been released and cannot be used to cancel its previous owner stream TypeError: Failed to execute 'cancel' on 'ReadableStreamDefaultReader': This readable stream reader has been released and cannot be used to cancel its previous owner stream at MillenniumSerialBoard.<anonymous> (chrome-extension://dmkkcjpbclkkhbdnjgcciohfbnpoaiam/dist/:56) at Generator.next (<anonymous>) at chrome-extension://dmkkcjpbclkkhbdnjgcciohfbnpoaiam/dist/:71 at new Promise (<anonymous>) at millenniumserialboard_awaiter (chrome-extension://dmkkcjpbclkkhbdnjgcciohfbnpoaiam/dist/:12) at MillenniumSerialBoard.disconnect (chrome-extension://dmkkcjpbclkkhbdnjgcciohfbnpoaiam/dist/:16) at SerialManager.<anonymous> (chrome-extension://dmkkcjpbclkkhbdnjgcciohfbnpoaiam/dist/:41) at Generator.next (<anonymous>) at chrome-extension://dmkkcjpbclkkhbdnjgcciohfbnpoaiam/dist/:71 at new Promise (<anonymous>) at connectionmanager_awaiter (chrome-extension://dmkkcjpbclkkhbdnjgcciohfbnpoaiam/dist/:12) at SerialManager.disconnectBoard (chrome-extension://dmkkcjpbclkkhbdnjgcciohfbnpoaiam/dist/:16) at ChesscomManager.<anonymous> (chrome-extension://dmkkcjpbclkkhbdnjgcciohfbnpoaiam/dist/:46) at Generator.next (<anonymous>) at chrome-extension://dmkkcjpbclkkhbdnjgcciohfbnpoaiam/dist/:71 at new Promise (<anonymous>) at sitemanager_awaiter (chrome-extension://dmkkcjpbclkkhbdnjgcciohfbnpoaiam/dist/:12) at ChesscomManager.onConnectButtonPressed (chrome-extension://dmkkcjpbclkkhbdnjgcciohfbnpoaiam/dist/:16) at ChesscomManager.<anonymous> (chrome-extension://dmkkcjpbclkkhbdnjgcciohfbnpoaiam/dist/:53) at Generator.next (<anonymous>) at fulfilled (chrome-extension://dmkkcjpbclkkhbdnjgcciohfbnpoaiam/dist/:58" then getting "Chessconnect
BreakError: Break received Error: Break received".

Anyway, the behavior is quite similar using Brave as well, but I had to manually enable Web Serial permissions on that first, otherwise it was just dead. I get no errors of any sort when using Fritz or other code as I mentioned. Any ideas?

GeorgeGoodnight
cadmiumpatzer wrote:

I have a USB DGT and it tests fine with various sources, fritz, lucas chess etc. I've tried this in Chrome & Brave on Windows 10, behavior is the similar on lichess too. Using "USB COM3 -paired". First I get a parity error on any move "Chessconnect
ParityError: Parity error Error: Parity error", then, no reponse until I hit connect again: "Chessconnect
TypeError: Failed to execute 'cancel' on 'ReadableStreamDefaultReader': This readable stream reader has been released and cannot be used to cancel its previous owner stream TypeError: Failed to execute 'cancel' on 'ReadableStreamDefaultReader': This readable stream reader has been released and cannot be used to cancel its previous owner stream at MillenniumSerialBoard.<anonymous> (chrome-extension://dmkkcjpbclkkhbdnjgcciohfbnpoaiam/dist/:56) at Generator.next (<anonymous>) at chrome-extension://dmkkcjpbclkkhbdnjgcciohfbnpoaiam/dist/:71 at new Promise (<anonymous>) at millenniumserialboard_awaiter (chrome-extension://dmkkcjpbclkkhbdnjgcciohfbnpoaiam/dist/:12) at MillenniumSerialBoard.disconnect (chrome-extension://dmkkcjpbclkkhbdnjgcciohfbnpoaiam/dist/:16) at SerialManager.<anonymous> (chrome-extension://dmkkcjpbclkkhbdnjgcciohfbnpoaiam/dist/:41) at Generator.next (<anonymous>) at chrome-extension://dmkkcjpbclkkhbdnjgcciohfbnpoaiam/dist/:71 at new Promise (<anonymous>) at connectionmanager_awaiter (chrome-extension://dmkkcjpbclkkhbdnjgcciohfbnpoaiam/dist/:12) at SerialManager.disconnectBoard (chrome-extension://dmkkcjpbclkkhbdnjgcciohfbnpoaiam/dist/:16) at ChesscomManager.<anonymous> (chrome-extension://dmkkcjpbclkkhbdnjgcciohfbnpoaiam/dist/:46) at Generator.next (<anonymous>) at chrome-extension://dmkkcjpbclkkhbdnjgcciohfbnpoaiam/dist/:71 at new Promise (<anonymous>) at sitemanager_awaiter (chrome-extension://dmkkcjpbclkkhbdnjgcciohfbnpoaiam/dist/:12) at ChesscomManager.onConnectButtonPressed (chrome-extension://dmkkcjpbclkkhbdnjgcciohfbnpoaiam/dist/:16) at ChesscomManager.<anonymous> (chrome-extension://dmkkcjpbclkkhbdnjgcciohfbnpoaiam/dist/:53) at Generator.next (<anonymous>) at fulfilled (chrome-extension://dmkkcjpbclkkhbdnjgcciohfbnpoaiam/dist/:58" then getting "Chessconnect
BreakError: Break received Error: Break received".

Anyway, the behavior is quite similar using Brave as well, but I had to manually enable Web Serial permissions on that first, otherwise it was just dead. I get no errors of any sort when using Fritz or other code as I mentioned. Any ideas?

Hi, have you set up your API token for Lichess as per this video:

https://youtu.be/bUZkNTv3WXM

joernupbde

@cadmiumpatzer: You fell victim to a bad design choice I made. I once thought, Chessconnect could determine the vendor of a connected chess board by the USB vendor ID. But it turns out that some USB chips can be found in board from almost any manufacturer. That is why Chessconnect thinks that your DGT board is a Millennium board. That is why you get all the errors.

This is going to be fixed in version 3.4 where the "connection method" is replaced by a selection of "USB/Bluetooth" and "board manufacturer". I have a very early beta ready should you be interested to try it out. But be warned: "very early" means "most likely buggy".

cadmiumpatzer
cadmiumpatzer wrote:

[snip]

Hi, have you set up your API token for Lichess as per this video:

https://youtu.be/bUZkNTv3WXM

Yes I did. Note chess.com doesn't need an API key and the behavior is the same.

cadmiumpatzer

joernupbde wrote:

@cadmiumpatzer: You fell victim to a bad design choice I made. I once thought, Chessconnect could determine the vendor of a connected chess board by the USB vendor ID. But it turns out that some USB chips can be found in board from almost any manufacturer. That is why Chessconnect thinks that your DGT board is a Millennium board. That is why you get all the errors.

This is going to be fixed in version where the "connection method" is replaced by a selection of "USB/Bluetooth" and "board manufacturer". I have a very early beta ready should you be interested to try it out. But be warned: "very early" means "most likely buggy".

Very buggy is better than no connection at all! I am an embedded systems engineer by degree so I understand this sort of developmental gotchas. I was trying to find the protocol spec for the DGT, I was unable to find it. Do you have a link/source for that by any chance? I looked at the dgtnix project and started looking at that code but if there is a spec out there I'd rather just read that. As for chessconnect, I planned to experiment on bots for this until I was comfortable trying it with human opponents in any case. How do I get the buggy version? (I'll be happy to give it a workout)

Surprisingly, I haven't seen anyone else with this problem so maybe newer boards are easier to handle in this regard. My DGT has an older version of the code v1.8 but I don't imagine the protocol changed since then anyway for compatibility reasons, but drivers could certainly be version aware so who knows. I have no clue how similar these protocols are between vendors once you just get past the serial port config.

Rsava

@ cadmiumpatzer - thanks for taking one for the team!

I test all beta versions Jörn send my way on bots first as well.

Appreciate you jumping in to test to make the product better.

joernupbde

@cadmiumpatzer:

  • as far as I know, the DGT documentation is not public. So, you'll have to approach them. But there are some open source projects around which should help you understand at least parts of the protocol.
  • In order to receive the pre-release version, just send me you email address and I will send it to you along with some instructions. I will give it a spin with my DGT board first, since my development platform is TabuTronic.
  • DGT boards have been around for quite a long time and the protocol has changed over the years. So, there are some older boards that do not quite work with Chessconnect, yet. I talked to one of their developers and got some tips on how to proceed. So, your board may or may not work with the pre-release. But my plan is to add support for really old DGT boards to version 3.4. I am targeting end of May for this.
CFossa

Hi, has anyone trying using this during a tournament on chess.com? Does it work OK with the games autostarting?

joernupbde

@CFossa: That's why I developed Chessconnect in the first place. I haven't tried it in while, though. It's probably a good idea to press the connect button everytime a new game has started.

Maybe there are some other users here who have more recent experiences with tournaments.

Hamilton53

In an earlier post, I've since deleted, I reported the Bluetooth disconnecting from the extension. I've traced this to a Bluetooth interference issue caused by the 10" monitor mounted about 8 inches above, and over the back for the DGT Bluetooth board. Since turning off the monitor, I'm no longer getting a disconnect during the games on either Lichess or chess.com.

Leaving the monitor off is not an issue, since I tend to use it as a 2D crutch and now I have to evaluate the match solely by reviewing the board.

Nice surprise to hook up a DGT 3000 clock to the DGT board and have it read out the opponents moves, so I don't really need the audio either.

Really nice work on this extension. I was really missing the option to play with the board on chess.com and my e-board was simply becoming less relevant to me. Nice to have this option back and I'm actually having "fun" playing matches with it again. .. just a bit rusty on my evaluation. However, I am more patient than when playing onscreen.

Here's a quick match from earlier this morning, where I did get some disconnects before I figured out the culprit was the monitor.

https://youtu.be/PyEHIKFhWoA

Update: - I went 68 moves on lichess.org (42 minutes) without an disconnect WITH the 10" monitor, however, I powered it by a USB cable from my PC in lieu of using a Power Adapter to power the monitor. Different power source and the interference went away...

CFossa
joernupbde wrote:

@CFossa: That's why I developed Chessconnect in the first place. I haven't tried it in while, though. It's probably a good idea to press the connect button everytime a new game has started.

Maybe there are some other users here who have more recent experiences with tournaments.

Great! I will give it a try