12/13/2011

Arduino Texas Holdem - real poker game using Arduino cards - project design concept

PokerPro dealerless poker table. (now PokerTek)
If you've ever played poker in a home game, especially where some players are inexperienced, you know how frustrating it can be to keep the game moving.  Especially if there's alcohol involved.  A lot of players don't know how to shuffle, some of them have a hard time getting the cards to the other players without flipping them.  The next hand is in progress when the player that won the last pot realizes he accidentally kept his cards, and didn't realize it because he was stacking his chips.  Maybe the type of table you are at makes it difficult to pass the deal around - a long, rectangular dining room table can be nearly impossible to pitch cards on.

Basic Arduino Poker System

Let Arduino deal the next game and you can forget about all the trivial aggravations of card management during the game and just concentrate on enjoying your poker game.

Arduino Hold-em consists of a CDU, or Central Dealing Unit which resides in the middle of the table.  The CDU will handle several important tasks:
When the 'Deal' button is pressed the CDU shuffles the deck and 'deals' cards to each player, starting to the left of the button.
On the next three presses of the 'Deal' button, the CDU will display the flop,turn and rive cards respectively.
Once all cards are out, the next press of the Deal button will assume the button has been moved and the next round will start.
Integrated into the CDU will be a Tournament Time Unit, TTU, which will keep track of and display the amount of time remaining in the current tournament round, if a tournament is being played.  Once time on the TTU has expired, the CDU will not deal another hand until the TTU has been advanced to the next level by the press of a button.  The TTU will occasionally announce via speech synthesizer and speaker the amount of time remaining in the current level.

There will be control leads running from the CDU to each Player Card Unit (PCU) for communication between the two devices.  These leads will be run on the surface of the table if using a non-dedicated table, and under the table if a custom Arduino Poker Table is being used.

Each PCU will have two card units (CU), each which will be capable of displaying the value and suit of the card dealt.  Each CU will have three bi-color single character dot-matrix displays, similar to this.  One mounted in the upper left hand corner, one in the middle, and one in the bottom right hand corner.  The upper left and bottom right will display the card value, in the same color as the suit.  The middle display will show a graphic for the suit, in red if a heart or a diamond and in green if the suit is a club or spade.

Each PCU will also have a big red 'No Deal' button the player will hit if folding their cards.  When the player hits that button, they are immediately out of the hand and their CU's will go blank.  As long as a player still has a live hand, a large green LED on top of the PCU will shine bright green to let everyone at the table know you still have cards.  The only other control on this form of PCU is an off button, which will prevent the CDU from dealing that player cards.

Advanced Arduino Poker Systems


The above system can really enhance your poker game, but you can always do just a little more to make it really special.

With the advanced system, the players don't use real chips, they have a virtual stack whose total amount remaining is indicated on an LED.  There are also a few input buttons for players to enter bet or raise amounts.  A separate screen on the PCU, that is imbedded in the table in front of each player (where bets will made in normal games), will show the current amount bet.  A blue light has also been added to the top  of the PCU, which flashes blue when it is your turn to act.

Now, not only does the poker control unit deal out the cards, but it also keeps track of who wins the pot, adds that amount to the winning players chip stack, displays the winning hand at the on a small LED, something like "Bob wins 1539 chips with four Aces, King kicker.  Meanwhile every LED attached to the PCU of the winning player is flashing hysterically, celebrating their victory.

Meanwhile the TTU and PDU are working together seamlessly if in tournament mode with the PDU increasing blinds when instructed by the TTU.  There is also a comm lead from the TTU to the Tournament Display Unit (TDU), a scrolling LED sign showing what position players are in, with a chip count next to their name.  If the player has busted out, the TDU will display the amount of real $$ won, if any.  If the tournament is a seasonal league, the TTU will store league points at the conclusion of the tournament, and scroll league standings on the TDU every so often.

Networked Arduino Poker Systems

Arduinos can run multi-table tournaments too!  If you buy the optional Multitable Tournament Director (MTD), an unlimited number of Arduino Poker Tables can be linked together to form a multi-table tournament.

When using the MTD, each TTU's comm lead will connect to the MTD instead of having an individual TDU for each table.  The MTD will control the time for each table's TTU.  The MTD will also handle all announcements, displaying information on scrolling TDU's (up to 4).  At the beginning of the tournament, the TDU will be given a name for each player in the tournament and will randomly assign seats to those players, displaying the seating information on the TDU's prior to the tournament, along with a countdown to tournament start.

Another important function of the MTD is table balancing and moving players.  If the MTD needs to move players, it will send the move command to the TTU for the table the player is moving from and the table the player is moving to.  This information will scroll on the CDU table and that player will be dealt out of their current table and dealt in for the next hand of the new table.

At certain money payout breakpoints, the MTD will give STOP and GO instructions to the TTU's on each table for hand-for-hand play.  This is to eliminate a table from stalling while on the money bubble, hoping someone at another table will bust out, while they are incurring no risk by waiting.

Advantages of the Arduino Poker System

1. No dealer or player errors.  No playing out of turn, impossible to string bet, burn and turn, etc with the Advance Arduino Poker System.  The pot is always right and it always goes to the winner.
2. Speed.  No waiting for Freddy the drunk to finish his story before shuffling and dealing the next hand. Each player is put on a user definable clock every time it is their turn.  Each player also has an extra-time bank they can tap into if facing an extra-hard decision that takes more than the normal time.
3. Game security - No marked cards, no "going south" with money off of the cash game, no Aces up anyones sleeve, dealing seconds, bottoms, etc.  Everything is on the square when the Arduino Poker System is on the job.
4. Manpower - Running a tournament, especially multiplayer, is extremely hard work.  Seating the players, handing out the chips in proper denominations, coloring up chips once blind levels increase, remembering to hit the clock, figuring payouts....it's all a pain in the ass for the host.  With the Arduino Poker System, everyone can relax and just enjoy the game.  You play poker for recreation right?  Why should you have to work so hard at it?
5. Affordability - Arduino Poker Systems are reasonably priced and affordable for any home game or poker league.

COMING SOON - Multi-site, multi-table super-tournaments!!!