Moderator: Andres Valverde
Revolt wrote:As I understand it so far...Chess programmes produce PGN in a window which is translated by a DLL or helper app. into a serial communication via RS232 over usb or direct USB to the eboard which supports bidirectional comms providing for player moves to be fed back to the PC as PGN.
So it is more convenient to disguise the board as an engine (a so-called pseudo-engine).
Revolt wrote:So it is more convenient to disguise the board as an engine (a so-called pseudo-engine).
Hi ,
can you elaborate on this for me....?
I am still not clear on how to go about extracting the move info...eg E2 - E4, and also inserting a move eg E7- E5 from/to the chess engine's ascii interface. This is my main challenge at the moment.
Also, is there a chess engine that makes this available natively for serial I/O?
This site seems to have some clues as to what is going on.
http://www.tim-mann.org/extensions.html
H.G.Muller wrote:... I am not sure how this could be done, however. ...
H.G.Muller wrote:[Edit] Since you are into electronicss design, could you give your opinion on the chances that the following would work? In stead of putting an LC circuit in each piece (which is a bit of a pain), we put an LC circuit under each square, putting all circuits in one board file in series. Simple wire coils overlapping them are put in series rank wise. To read out the board, an rf current is sent through a single rank, driving the LC circuits on it; the response of the latter is detected along the rows. All the squares have the same resonance frequency when empty. Now we glue patches of aluminum foil to the bottom of the pieces, shielding the magnetic flux, thus altering the inductace, detuning the resonances by an amout depending on the piece type (as the surface area of the patches differs per piece type). As the resonators are probably low Q, the readout would consist of driving the rank with a frequency sweep, and measuring at which frequencies the various files give maximum response, and then repeating the procedure for the next rank, etc.
Revolt wrote:While this is RF approach is possible..DGT has filed patents which I don't want to infringe...or even create a chance for litigation...so i am going magnetic as I mentioned.
BTW aluminium will not block a magnetic flux, ...
nor even an electric field unless it's grounded or configured as a faraday cage. Low Q isn't good if you want to differentiate signal frequencies based on amplitude.
The easier approach might be to include soft iron 'cores' in the pieces so that they change the resonant frequency of the coils in the board driven by a colpitts oscillator . Thus the size of the core and proximity to the coil inductor differentiates the pieces. A NE567 PLL frequency detector array or a spectrum analyzer app in a microcontroller would separate the frequencies.
Revolt wrote:Well, I don't do Apps for the PC....or Tablets..so my challenge is how to access the ascii moves, eg d2-d4 from winboard. The move history only shows the last position, not the origin.
Can anyone advise or provide support to dev. an applet to perhaps write winboard's moves into perhaps notepad or terminal? I can grab it from there and do the e board comms.
Inputting piece moves (human) seems easier as it has a keyboard interface that can be supplied with the ascii moves.
I want to use simpler open source as much as possible....so AutoHotkey or AutoIt scripting is what I am looking at to grab the moves from winboard and Tx them to the e-board. Preferably rs232 serial over usb at first. Then usb-usb to cater for tablets.
I'd be pleased to incorporate forum suggestions into making this project worthwhile and cost effective.
I can look at doing bigger boards as suggested but first things first.
H.G.Muller wrote:You should think more about what information to send over the USB/RS232 line. Moves alone are not enough to make the board useful to anyone. It should also be possible for the board to send positions, (after the user set up a new one), indicate that pieces have been dropped onto the board, or that moves have been taken back. And that the game is finished, and how. DGT boards define various manipulations that are used to make the board emit signals, like lifting the King and putting it back on the same square to indicate a new position has been set up and is ready, and whether the computer should start to play white or black. Placing two Kings next to each other in the center on white, black or differently colored squares to indicate 1-0, 0-1 or 1/2-1/2, etc.
It would also be nice if the board could generate a signal to switch the engine to analysis mode, to exclude or include moves from analysis, (so you can ask for a second-best move), ask for a hint.
It would probably be better to just send low-level board modifications over the line, i.e. messages that indicate a square was evacuated, or whether a new piece appears on a square. The driver software on the PC can then decide from that whether it is a move, a takeback, an agreed-upon signal... Doing that in the micro-controller just makes the whole thing inflexible, and thus less capable and less useful. In the other direction it could just send codes to light up individual LEDs, in a specified color.
Return to Programming and Technical Discussions
Users browsing this forum: No registered users and 15 guests