[Arthur Benemann] started a little project for his electrical engineering program, and suffered the worst case of feature creep we’ve ever seen. He just posted an instructable of his picChess project that is able to play chess on a VGA monitor with a keyboard, with sound, a clock, temperature sensor. Apparently, [Arthur] was bored one evening and threw in an implementation of Conway’s game of life.
[Arthur] chose a DSPIC33F μC for his project with everything laid out on a bread board. He’s quite proud of his VGA routine, the first time he’s ever used DMA. We’re really impressed by [Arthur]’s chess engine – his is the first homebrew chess engine we’ve seen on Hack A Day. Although the engine is a brute-force search with Alpha-beta pruning, the engine itself seems fairly advanced that will even supports castling.
Although a few rules aren’t supported and the ELO rating of the engine isn’t known, [Arthur]’s engine should still be able to beat an amateur player. A fairly impressive feat indeed.
Check out [Arthur]’s video after the break.
19 thoughts on “Playing Chess On A Microcontroller”
Uhh? What possible purpose does that serve?
temp sensor is either for oscillator temp compensation, or he just felt like adding it/had to for his class.
I was just trying to use most peripherals, there is a screen where a analog clock showing the current time and date, I thought an environment temperature reading would be nice and would make me use the ADC of the pic ( the temp. sensor is a LM35).
To study if “The heat of the moment” actually occurs in a chess game.
Pretty damn impressive
I dig the Duke sound clip. This whole project is full of win.
Now all he needs to do is make it run on one of those old LCD screens from a broken laptop which there seem to be a lot of in the WEEE bins here.
Holy cow, a hack featuring a dsPIC! I wish more of these are posted, they’re a great family of chips, pretty cheap too considering the featureset
When selecting the deep of search the sound are the same as Duke Nukem 3D.
If I had a screen at hand I would do it, a graphic LCD would be nice.
The dsPIc family its nice, but no DSP functions are used in this project. The new microchip family PIC24E, would better suited to this project.It’s DMA can access 4k of RAM, and the run up to 60 MIPs
From the text:
Although the engine is a brute-force search with Alpha-beta pruning, the engine itself seems fairly advanced that will even supports castling.
First, there’s the completely screwed up “that will even supports castling.” No one noticed this epic bit of word farting? Second, there’s the question of the quality of the engine. Is the engine just some brute force thing, or is it an advanced engine? It can’t be both. It *can* be a brute force engine with an advanced feature or two, but you can’t describe the engine itself as both brute force and advanced.
Also, this is also from the text:
… able to play chess on a VGA monitor with a keyboard, with sound, a clock, temperature sensor.
Seriously, that sentence is totally screwed up. There’s the obvious lack of “and a” before the word temperature, but in general it reads like something a 4th grader wrote. How about something grammatically and syntactically correct such as:
… able to play chess on a VGA monitor while also supporting peripherals like a keyboard, sound, clock, and a temperature sensor.
Come on guys, you constantly get knocked for poor writing and you *still* can’t be bothered proofreading your stuff? Isn’t there an editor at Hackaday? That’s one of the things an editor is supposed to do – proofread. Why not set a policy that no article get published until at least two other people have read and signed off on it?
You’re not really generating that much content (in terms of raw word count) per day, so there’s really no excuse for the constant errors in spelling, grammar, and syntax.
Damn boy you are good
“He just posted an instructable of his picChess project that is able to play” a game very similar to chess “on a VGA monitor with a keyboard, with sound, a clock, temperature sensor.”
actually (forgiving three-fold repetition and the fifty-move rule which are arbitrary drawing rules as opposed to the piece movement rules) if it doesn’t support en passant capturing then it’s not even playing chess, it’s playing a game similar to chess that actually eases the burden on a defender.
from the wikipedia article on en passant linked in the above article:
“This rule was added in the 15th century when the rule giving pawns the option of initially moving two squares was introduced. It prevents a pawn from using the two-square move to pass another pawn without the risk of being captured (Hooper & Whyld 1992:124).”
For the chess routines the easiest thing to do is use gnuchess. It runs well even on the older 8051 chips.
There are some nice chess engine source code available on the web, written in C. Here is one used in a 8bit AVR: http://www.elektor.com/magazines/2009/november/avr-max-chess-computer.1115323.lynkx
ATM I’m working on converting it to a PIC18F with some of my own features. (special chess games wouldn’t have to be a problem.)
Most people don’t even know what is ‘en passant’.
Please be kind and respectful to help make the comments section excellent. (Comment Policy)