HackPhrase

Hack Phrase

The Hack Phrase concept was born one evening while a couple dozen of us friends sat around and played the electronic version of Catch Phrase. With the skill sets of those in the group (mechanical engineers, electronics experts, software engineers, etc…), it didn’t take long before we started to contemplate what it would take to hack the game to add our own wordlists. I mean, how hard can it be, right?
As it turns out, not very. The toughest challenge I faced was getting the larger LCD shoehorned in the case. Though the viewable area of the LCD is nearly a perfect fit for the standard opening in the case, the depth (a little over 0.5″) is what caused the problem.
The buttons from the original game (rubber nubs over the top of conductive pads) can be reused. All that is required is to carefully cut them off of the original board and solder to the traces. I’ve found that these buttons give the best feel and tend to be very reliable in this application.
For the power button, a Polulu push button power switch was used and mounted in the factory reset button location on the back. Though the unit can be powered down via a timeout function on the Arduino, it does require something roughly the size of the tip of a ball-point pen (or paper-clip) to turn it on.
Now for the bread ‘n’ butter… the software. The whole goal of this project was to be able to customize the wordlists. The way that the game is currently setup is to read all .txt files from an SD card. The name of the files is the category, and the contents of the files are simply words/phrases separated by a carriage return. A game config file was also added for quickly adjusting game parameters such as turn length, shutdown timeout length, max team score, etc…
One other challenge was the wordlists. The contents of the factory wordlists are not published and so you have a few options here… You can either try to grind the resin off of the original chip with a dremel tool and reverse engineer the contents of the chip, manually click through the word lists in the game and write them down or, say the heck with the original words and create your own. I opted for option #2 as well as scrounged through many game clones (for mobile phones) and compiled my own.
Gotcha’s:
The LiPoly charger has 2 status LED’s mounted to the front-side. Power and status. The power LED stays lit when the battery is connected, but the charger is not connected to a power source. I chose to carefully remove it from the board to reduce the power drain while the unit was off.
With the chosen components, the large female USB plug needed to be removed from the Arduino Mega in order to allow room for the battery and LCD.
The LCD board required some slight modification in order to get the team buttons to fit properly. It’s a VERY close fit.
The battery is ever so slightly underpowered. Ideally, I would like to find a 1500 mAh or even a 2000 mAh battery in the same form factor. The battery life is great, but the refresh on the LCD could be better (though it’s not very noticeable).
The original speaker’s impedance is a little on the high side (~30 ohms). That makes it a little quite once the volume level of the room starts to rise. I’m currently on the hunt for another one with the same form factor, but closer to 8 ohms.
There is a piece of scrap breadboard glued to the top of the SD card socket. There was a slight gap that the SD card could be inserted through and get lost inside of the unit.
The parts list:
Pretty much everything except for the LCD was ordered through SparkFun Electronics. I’ve included the part numbers for everything for anyone else brave enough to build their own.
1x Electronic Catch Phrase
1x Arduino Mega (DEV-09152)
1x 20×2 Parallel LCD (CFAH2002ATMIJT from CrystalFontz)
1x Breakout board for SD-MMC card (BOB-00204)
1x Breakout board for USB miniB (BOB-08401)
1x 1000 mAh polymer lithium ion battery (PRT-00339)
1x LiPoly fast charger (PRT-08293)
1x DC barrel power jack (PRT-00119)
1x Trimpot 10K (COM-00104)
1x 5v step-up board (PRT-08999)
1x Polulu power switch (ROB-08903)
1x Mini push button switch (COM-00097)
5x Right-angle 6-pin female header (PRT-09429)
1x 8-pin female header
2x Break away headers – Straight (PRT-00116)
Assorted resistors for the SD card reader
Assorted breadboard
Total project cost: ~$230

The HackPhrase concept was born one evening while a couple dozen of us friends sat around and played the electronic version of Catch Phrase. With the skill sets of those in the group (mechanical engineers, electronics experts, software engineers, etc…), it didn’t take long before we started to contemplate what it would take to hack the game to add our own wordlists. I mean, how hard can it be, right?

As it turns out, not very. The toughest challenge I faced was getting the larger LCD shoehorned in the case. Though the viewable area of the LCD is nearly a perfect fit for the standard opening in the case, the depth (a little over 0.5″) is what caused the problem.

The buttons from the original game (rubber nubs over the top of conductive pads) can be reused. All that is required is to carefully cut them off of the original board and solder to the traces. I’ve found that these buttons give the best feel and tend to be very reliable in this application.

For the power button, a Polulu push button power switch was used and mounted in the factory reset button location on the back. Though the unit can be powered down via a timeout function on the Arduino, it does require something roughly the size of the tip of a ball-point pen (or paper-clip) to turn it on.

Now for the bread ‘n’ butter… the software. The whole goal of this project was to be able to customize the wordlists. The way that the game is currently setup is to read all .txt files from an SD card. The file name is the category, and the contents of the file is simply words/phrases separated by a carriage return. A game config file was also added for quickly adjusting game parameters such as turn length, shutdown timeout length, max team score, etc…

One other challenge was the wordlists. The contents of the factory wordlists are not published and so you have a few options here… You can either try to grind the resin off of the original chip with a dremel tool and reverse engineer the contents of the chip, manually click through the word lists in the game and write them down or, say the heck with the original words and create your own. I opted for option #2 as well as scrounged through many game clones (for mobile phones) and compiled my own.

Gotcha’s:

  • The LiPoly charger has 2 status LED’s mounted to the front-side. Power and status. The power LED stays lit when the battery is connected, but the charger is not connected to a power source. I chose to carefully remove it from the board to reduce the power drain while the unit was off.
  • With the chosen components, the large female USB plug needed to be removed from the Arduino Mega in order to allow room for the battery and LCD.
  • The LCD board required some slight modification in order to get the team buttons to fit properly. It’s a VERY close fit.
  • The battery is ever so slightly underpowered. Ideally, I would like to find a 1500 mAh or even a 2000 mAh battery in the same form factor. The battery life is great, but the refresh on the LCD could be better (though it’s not very noticeable).
  • The original speaker’s impedance is a little on the high side (~30 ohms). That makes it a little quite once the volume level of the room starts to rise. I’m currently on the hunt for another one with the same form factor, but closer to 8 ohms.
  • There is a piece of scrap breadboard glued to the top of the SD card socket. There was a slight gap that the SD card could be inserted through and get lost inside of the unit.

The parts list:

Pretty much everything except for the LCD was ordered through SparkFun Electronics. I’ve included the part numbers for anyone else brave enough to build their own.
  • 1x Electronic Catch Phrase
  • 1x Arduino Mega (DEV-09152)
  • 1x 20×2 Parallel LCD (CFAH2002ATMIJT from CrystalFontz)
  • 1x Breakout board for SD-MMC card (BOB-00204)
  • 1x Breakout board for USB miniB (BOB-08401)
  • 1x 1000 mAh polymer lithium ion battery (PRT-00339)
  • 1x LiPoly fast charger (PRT-08293)
  • 1x DC barrel power jack (PRT-00119)
  • 1x Trimpot 10K (COM-00104)
  • 1x 5v step-up board (PRT-08999)
  • 1x Polulu power switch (ROB-08903)
  • 1x Mini push button switch (COM-00097)
  • 5x Right-angle 6-pin female header (PRT-09429)
  • 1x 8-pin female header
  • 2x Break away headers – Straight (PRT-00116)
  • Assorted resistors for the SD card reader
  • Assorted breadboard

More pictures:

3 Comments

  1. Posted February 15, 2010 at 5:14 pm | Permalink

    brilliant.

  2. Travis
    Posted February 16, 2010 at 8:53 pm | Permalink

    Any chance of you posting the arduino source??

  3. admin
    Posted February 16, 2010 at 8:55 pm | Permalink

    Certainly. I’d like to clean some of it up first. I’ll shoot for a release this weekend.

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*