Thursday, October 11, 2012
First, more on the SishFishPi for those just joining us. It's a basic chess computer built using the Raspberry Pi Linux development board, the amazing Stockfish engine, and commodity LCD/electronics. The SFP integrates with a new software build for the "Sish" chess board.
The end result, a small form factor butt kicking chess machine.
Now I'll put together a more detailed post on how it was built and finished, however just a few details to get you started:
The BrainBox itself is made of red oak finished with roughly a dozen coats of "black shellac" which I purchased from shellac.net. The sides each have a "brain" design cut into them with a scroll saw, behind that design I placed cut pieces of translucent plastic to difuse the light. After that I built a small "light board" inside the case that uses the Pi's GPIO PWM pin to slowly pulse light over a sine wave like design. Here's a picture of the inside..
Lastly an LCD has been added (simple Sparkfun or Adafruit HD44780) which outputs the brainbox's moves.
Here's a video to give you an impression of just how cool this ended up.
The end result turned out very cool, and now that the SFP/BrainBox has got a home I'm sure I'll have more time to finish up the code and get something posted up here.
In the meantime enjoy the video!
Thursday, September 27, 2012
This video shows the bulk of it. The SishFishPi is getting much closer, dare I say it's a "2.0" at this point.
It's now capable of playing a game, with fully functional basic clocks, against stockfish, and updates an embedded web server with the game content in realtime!
There's still more to do, I need to get the web server fleshed out so you can use it to set the game parameters, things like:
- Player vs Computer or Player vs Player
- Downloading your pgn files of past games
- Setting clock times, labels for players, etc.
I also need to get the entire code base packaged up in a nice installation package such that it can be installed on any RaspberryPi System.
Lastly I need to get a the new "sishfish" chessboard hex files uploaded and available for the Minimus, Teensy, and Teensy++.
Exciting times ahead.
Wednesday, September 19, 2012
For those just joining us, the SishFishPi project involved integrating a version of our hardware usb chessboards specially modified for talking to the Raspberry Pi (Virtual Serial Port). This new setup would allow the Pi to communicate moves from Stockfish to a simple commodity class LCD connected to the Pi's GPIO pins (general purpose i/o).
First order of business was to get the Raspberry Pi into a better case. While I work on building a case out of wood I ordered a very nice acrylic case from built-to-spec.com. Those guys do great work and if you have a Pi it's worth spending the 12$US to get a case from them.
Next I needed to get an LCD working. I purchased a number of LCDs from Sparkfun.com and from Adafruit.com. However in the end I decided to stick with the Adafruit.com LCD. It came with everything necessary to get started and was reasonably priced.
The Adafruit website contains a great tutorial all about connecting the LCD to the Pi and driving it with python. While the hardware portion is great, I found the software lacking. It appears to have some consistency issues with my LCD (random crashes, garbage, etc). In the end I located the following C/C++ library and built a simple command line tool to update the screen from it.
After I got the LCD functioning it was time to integrate it with a simple Chess engine. For this purpose I chose Stockfish. First and foremost it's open source and easy to get built for the Pi, and secondly because of it's exceptional reputation in the commnunity. Let's be honest, my chess skills are completely dwarfed by my technology skills. Stockfish will have my number for many years to come.
With all this complete, I took a few pictures to better demonstrate where we are today.
Friday, September 14, 2012
How did this come about? It's an interesting story. Seems one of my readers from the UK was very interested in trying out a Sish board of his own, however it was very difficult to get a Teensy in the UK for a reasonable price (having ordered Raspberry Pi's from the UK I understand the frustration).
Simply put he asked if the Minimus AVR board would be a suitable replacement. Seeing as it was another ATMEL chip I figured it would work fine, but would have to make a few adjustments to get a good build working.
Unbelievably he offered to send me two test boards (one backup just in case of emergency) in exchange for building a functional hex file for the Minimus. He packed up the devices and shipped them to me Royal Air Mail and we waited...a very long time! Almost a month later the postman dropped off two shiny Minimus AVR units and it was time for me to hold up my end of the bargin.
So I set to work this evening getting the code adjusted and tested. In the end it took a few tweaks and updates, but here's a link to the Wiring Diagram for a minimus Sish board, as well as the hex file for the minimus-sish (see the side panel).
Thanks again for sharing those boards with me, I really appreciate it.
Lastly, before I forget, the ATMEL/Minimus needs a FLIP program to install the hex file.
http://www.atmel.com/tools/FLIP.aspx -> Download the first FLIP program from the list of options, you will need the Java Runtime if you don't already have it installed.
Follow the instructions in this PDF to install a hex file and put the Minimus in "programming" mode.
Lastly, your computer (if it's Windows 7) most likely won't have the drivers for the device, so you'll want to install these drivers following the instructions in the prior pdf.
If you have a different board you'd like to see about getting a Sish built for let me know, perhaps we can work the same deal again!
Friday, September 7, 2012
It's still pretty simple today, however it can talk to the sish board (using a new hex file) and send the Stockfish moves to the LCD.
It's not the most visually appealing setup at this point, but now that I've got it working the breadboard will come out and I'll start working on wiring up this LCD cleaner. For now I can't begin to tell you how fun this was to play with this evening.
Still exploring options for displaying the game on an embedded web server on the Pi, and looking at how I can possibly modify the software further to show the clock, handle promotions, and start a new game cleanly.
As always lots to do, but it's high time I posted some pictures.
Monday, September 3, 2012
I can tell you however that I've carved out a little time over the last few weeks and have a couple of additional builds in process, there's no new hex files to share yet, but let me tell you what's in the works.
After working closely with Bryan @ USB Chessboards I started reviewing the Novag Citrine protocol, especially how it interacts with the Arena Windows Chess application. As such I now have a "sishnovag" build that speaks serial commands to Arena and receives move responses. The goal here is to next wire up an LCD to the Sish and get it to output the moves provided by Arena on that LCD. If this works we'd never have to look at the computer screen! So far I've got the hex file sending moves to Arena just fine, however I'll have to wait until later in the week when I get my LCDs from Sparkfun.com.
I've got a Raspberry Pi! Yes I was one of those crazies that ordered the extremely cheap development board earlier this year and now have it sitting on my desk. I was able to put together a new sish build that speaks raw HID to the Raspberry Pi. This build which I'm calling "sishfish" is being designed to talk to Stockfish on the Pi. Again it's my hope that I can readily wire an LCD to the Raspberry Pi and get move output from Stockfish straight to the LCD. In a perfect world I'd get a mini-webserver up on the Raspberry Pi that would show the game in realtime, but that's a project for another day.
Just wanted to share that with you all, also if you have built a sish board please tell me, I'd like to get a gallery going here for Sish boards and their makers. :)
Monday, April 16, 2012
What is the Raspberry PI? It's an ARM based single board computer capable to running an ARM compiled version of Debian Linux.
There's way more on the Raspberry PI on their website here.
My plan, should the one I order arrive in a reasonable period of time, is to build a simple interface between it and my DIY USB Chessboard. The end result being I would be able to play a game against different open source engines, without powering up my computer. In fact, since the RaspberryPI is so small I might be able to attach it directly to a future board.
We'll see how that goes, in the meantime enjoy the link and watch the videos, it's interesting stuff for sure.
Saturday, March 24, 2012
Thursday, March 15, 2012
Wow Jimmy! Thanks for taking the time, effort, and expense to send this to me, it's very much appreciated. I'll get my hands on a new Teensy and wire it up in the near term.
Next, I'd like to get a listing of engines and interfaces people have used either the Sish or the Dream Cheeky with?
So far I've tried:
Now while all of them have been interesting, I've found Chessmaster the most helpful as it has the gradually increasing opponent skill level options. Let's just say I'm much better at building Chessboards and Chess pieces than I am at actual Chess (But I'm learning!).
Any other good packages for building up your skills gradually?
Wednesday, March 14, 2012
This switch is wired from GND and the "Flip" pin (see wiring diagrams).
The end result is I can switch to playing black by simply toggling the switch. Here's a picture of the wiring on the underside of my board.
I've got a number of ideas, including potentially incorporating the DGT protocol, which would allow for usage of a Sish board natively with clocks and high end chess software.
Also looking at LCD screens..
Friday, March 9, 2012
After getting my new jumper wires I hooked up my first Sish board this evening.
I also used my chess pieces I cut last year.
Turned out pretty nice, I'll take some pictures of the wiring tomorrow and work on getting the Sish code files for Teensy and Teensy++ uploaded this weekend.
Going toe to "toe" against the computer is much more fun when there's a physical board.
More details tomorrow.
Thursday, March 8, 2012
I hope Bryan Whitby @ USB Chessboards understands imitation is the sincerest form of flattery.
I spent last night wiring up a couple of nice termination strips and easier to bend stranded wire to my switch arrays.
The end result is below, much cleaner, much less likely to be stressed.
Wednesday, March 7, 2012
Bryan Whitby, the accomplished computer chess board hobbyist from the UK sent me photos of his portable Sish unit.
Bryan's wiring always evokes great "wiring envy" from me. Look at how clean that looks!
Bryan has elected to wire his board and connect it to this side portable unit using two Ethernet jacks. Ethernet provides a convenience connection mechanism for chess board interfaces as each jack interfaces 8 wires.
Great work Bryan!
Hopefully I won't stay behind the 8-ball much longer as FedEx promises my hook-up wires should arrive on Friday. I expect I'll setup a nice terminal row like Bryan has done. In fact after looking at his design I'm thinking I have a little bit of work ahead of me tonight.
More pics as I progress.
Sunday, March 4, 2012
I've got a You Tube video below from Jimmy Patterson. Jimmy and I worked together to build the first Dream Cheeky based USB interface board a year or so ago. Well Jimmy was very excited to build his first "Sish" board and put together a quick video of the board which I've posted below.
In addition, I have a couple of pictures of my board in progress. For the initial stock board I chose a 1.75 inch square board from House of Staunton. Why 1.75? well late last year I started making Chess pieces in my wood shop, in fact my first post on this site has a shot of them. Anyway, those pieces are designed for 1.75 inch square boards..who wouldn't want to play with their own custom made pieces?
Gallery of Hazmat's pieces at Chess.com
Ok, so here's a few of the build process, I started with a fresh House of Staunton board.
Then I used a ruler and piece of chalk to make the holes.
Afterwhich I used my dremel hand attachment to get the pilot holes started. If you don't have a Dremel you are missing out, I have one with lots of attachments and a drill press mount. Sure, I have a full set of woodworking tools but..the dremel is just damn handy.
Now the board is drilled and ready for tactile switches.
And here are the switches. I glued them down with a hot glue gun. On some this worked great, a handful required extra persuasion. The jury is still out on whether this will hold for the duration however.
Lastly I started wiring things up. I used simple 26 AWG uninsulated wire to connect all the switches, it was easy to work with, this is such low voltage it doesn't matter.
Now that's where I'm at now. I am sourcing some simple jumper wires to make connecting the rows of swiches to the Sish/Teensy easier, I've also built a small poplar "shelf" that will sit drilled into the bottom of this board and hold the Sish/Teeny. I want it to be tighly held, but also easily removable should I decide I want to remove it later. (For a future 2.0 board :) )
More pics next week when the rest of the parts arrive.
Ahh well, I have a few adjustments to make today, a couple of trips to the store planned, and a decent chance at a completed board by the end of the day. On the whole it looks beautiful, but it is a House of Staunton board, so I'd have to really screw it up to make it look bad.
In the meantime, here's the pin assignments for the Sish and Sish++, depends on if you but a Teensy or Teensy++.
Let me know if you have any questions. I'll be posting a few more pictures of my board build later today/this week. Then once I'm happy with everything I'll post the .hex files to make your own board.
Friday, March 2, 2012
As you can see it's pretty straight forward, using simple tactile switches (Normally Open) you wire each row and column (rank and file) in sequence. These sequences will in turn be attached to the Teensy on specific pins to form the Sish.
Pin diagram for the Teensy and Teensy++ to follow.
The following capabilities exist in this version:
1. The Sish works as a USB Keyboard, it sends keystrokes for the corresponding moves into the computer "a1e2", etc.
2. The Sish has the following toggle switch options:
a. Toggle Enter -> Sends the [Enter] command to the computer after every move pair, "e2e4", etc.
b. Toggle Flip -> "Flips" the board, ie what was "a1" is now "h8".
3. The Sish also has a "backspace" switch for erasing moves as entered. Use this to avoid needing a keyboard if you make a mistake during a move.
I'll upload the wiring diagrams and in process pics as I convert a House of Staunton board into the first Sish Chessboard this weekend.