Experimenting with a DIY RFID Table and Broadcast Overlay (3 Viewers)

eightyWon

Straight
Joined
Jul 17, 2021
Messages
825
Reaction score
2,271
Location
Chicagoland
I'll use this thread to document my attempt at a full do-it-yourself RFID poker table and broadcast-ready overlay solution.

The table and associated software will initially support Texas Hold'Em and be able to read the cards of 10 seats plus community cards and the muck (to detect folds/end of hand). The software will display the typical broadcast overlay, showing the player hole cards, community cards, and estimated win percentages.

No, I don't run a card room or have any practical need for this. Yes, this is just for fun and the technical challenge (and to possibly, eventually, give something back in the form of a tutorial/info).

The timeframe until a finished product is likely a year+. I'll be working on this intermittently in my spare time.

Initial goals:
1. RFID-enabled poker table (reads cards, does not read chips)
2. Broadcast overlay to display player cards and names, community board, estimated win percentages

Stretch goals:
1. Design and produce RFID PCB and associated antennas
2. Open source everything
3. Turn-key broadcast web portal for non-technical users
4. Stat tracking
5. Other games, including those with up cards (more antennas needed)
5. More?

Where I'm at now:
So far I've identified, purchased, and bench-tested an RFID reader/multiplexer and antennas using some standard cards with RFID stickers applied to them. I'm building the reader and antennas into a proof-of-concept 2'x2' mini "table" with 4 "seats", the board, and a muck reader. This won't be used for actual play, but rather just for testing the capabilities of the reader and antennas before possibly building them into a full-sized table

side note: there are some issues with the COTS RFID reader I'm using (though it's the best one I've found so far by a mile). These issues include poor HTTPS performance (missed reads, basically forced to use HTTP), no WebSocket client capabilities, no secure WebSockets, limit of 8 antennas per board, seemingly can only read up to 2 cards in a stack, 3 is iffy - all this makes me want to eventually design and produce my own board. I have some experience with PCB design and assembly (successfully designed and made my own wireless BBQ thermometer based on the ESP32 platform), but this is still a pretty big stretch.

The mini table will be padded (Joanne's headliner) and covered in suited speed cloth to replicate a full-sized table as closely as possible. Similar to a standard table, the play surface will be 3/4" plywood and there will be a 1/2" removeable plywood base underneath (effectively sandwiching the electronics between but leaving them accessible for troubleshooting and adjustments).

Here's progress so far on the mini table -

Layout:

oHSvoIq.jpg



Antenna areas routed out. I cut all the way through so that, once the padding and speed cloth had been applied I could set the antennas from below and still have access to service them if needed.

A few uncertainties here:
1. Will the antennas read multiple cards properly through the padding and speed cloth?
2. Will the gaps between the board antennas result in inconsistent reading of the board cards (I may need 4 antennas across for the board)?
3. Since the COTS reader can only really handle 2 stacked cards, will scanning on the muck and then moving the cards to a muck pile be awkward for the dealer?
4. Can we support the antennas from below so they're pushed flush up against the padding so there's less give when pushing an antenna area on the playing surface?

T6OVVXN.jpg



Center cut out is for the RFID reader board (doesn't go all the way through), lines are channels for the antenna wires:

GUnkchO.jpg




A beta version of the software is done using Node.js and Angular. It listens for card updates (REST API, I'd prefer to use WebSockets but see the note on limitations of the RFID board above) from the RFID reader, associates the scanned tag with it's corresponding card(s), and updates the dynamic web page with the current state of the hand (showing/clearing (if mucked) player cards, showing/clearing the board (if hand is over)).

The background of the web page is chroma key green so it can easily be added as a browser source overlay to any of the popular broadcast software solutions (OBS, XSplit, Streamlabs).

This is where the overlay is right now but it will be improved to more closely match what you see on a typical poker broadcast/stream:

overlay.jpg




That's it for now... will update as new things happen if there's interest.
 
Last edited:
I assume that you would be able to use RFID cards with the reader?

I'm extremely interested in this build, there's already a company who makes a system like this however their prices keep sky rocketting, and their software is now subscription based which can get expensive.

Let me know if you need any help with materials and/or prototyping for a full version.
 
Following with interest. I'd love to this with my bar league but the cost of systems out there is prohibitively high. A homemade system (even if it's janky!) would be sweet!
 
I assume that you would be able to use RFID cards with the reader?

I'm extremely interested in this build, there's already a company who makes a system like this however their prices keep sky rocketting, and their software is now subscription based which can get expensive.
Yeah, I've actually got some sample cards en route from that exact company to test with this setup.

RFID readers/tags generally come in two flavors, 125khz and 13.56mhz. This build is of the 13.56mhz variety because that's what Faded Spades cards operate on and I'm assuming is the standard for this application.

The unnamed company was actually a big inspiration for this build. I don't mind so much the price for their hardware but I would never want to be bound to a subscription and proprietary software.
 
Watching with interest.

If this is a FOSS project, I'll also be glad to contribute some time on the software development side. I'm primarily a desktop applications developer with some light web experience (mostly Django), so I probably wouldn't get an interview if this was a real job. :ROFL: :ROFLMAO:

Still, I can code my way out of a paper bag, and I want to see this succeed, so use me if you need me.
 
Watching with interest.

If this is a FOSS project, I'll also be glad to contribute some time on the software development side. I'm primarily a desktop applications developer with some light web experience (mostly Django), so I probably wouldn't get an interview if this was a real job. :ROFL: :ROFLMAO:

Still, I can code my way out of a paper bag, and I want to see this succeed, so use me if you need me.
Likewise, if you need some custom graphic support I'm happy to volunteer for the project.
 
Made a few tweaks to the mini table - routed out a spot for the chonky micro-usb connector to live (top middle, for power) and figured since this is a proof of concept, why not try one antenna area that's not routed all the way through but rather leave 1/16"-1/8"ish of material and test if cards can be read through it (bottom right):

5.jpg



Padding applied, headliner from Joann's (don't think I'd choose this for an actual table but it was accessible):

6.jpg



Speed cloth applied (crooked >.<):

7.jpg

8.jpg




And on the coding front, I found a great node module for calculating win percentages and implemented that, short demo - this is not mocked up but rather me actually scanning the cards for the players and flop. Hero is way ahead pre with pocket tens but *villain flops the flush:

 
Made a few tweaks to the mini table - routed out a spot for the chonky micro-usb connector to live (top middle, for power) and figured since this is a proof of concept, why not try one antenna area that's not routed all the way through but rather leave 1/16"-1/8"ish of material and test if cards can be read through it (bottom right):

View attachment 899625


Padding applied, headliner from Joann's (don't think I'd choose this for an actual table but it was accessible):

View attachment 899627


Speed cloth applied (crooked >.<):

View attachment 899628
View attachment 899629



And on the coding front, I found a great node module for calculating win percentages and implemented that, short demo - this is not mocked up but rather me actually scanning the cards for the players and flop. Hero is way ahead pre with pocket tens but *villain flops the flush:

Does the software account for discarded and folded cards?
 
Does the software account for discarded and folded cards?
The node module can, my software will implement it.

The trick here will be scanning all mucked cards and burns. If they're not scanned, they obviously can't be counted. Depending on the logistics of scanning all mucks and burns, that might mean more antennas for a good user experience.

edit: words
 
Last edited:
You should at least have the hole cards, so you’d just need to figure out burn cards. Maybe just one extra antenna there?
 
Wouldn't the muck sensor double as the burn sensor?
Totally.

Couple things - it could be logistically tricky with only one muck antenna on large tables in self-dealt games. Also, in my testing so far, this particular reader and it's antennas (though the best suited I've found so far for this application because of the ability to multiplex up to 8 antennas on 1 reader) can really only handle a couple of cards stacked at a time.

Dedicated dealer makes it easier, obviously, but designing specifically for that limits the functionality of the table.

Just stuff to test/consider, basically.

It seems like you're experienced, but if you need some help, I am an antenna design engineer at my day job.
I've got some amateur PCB design experience but the stuff I've done was pretty simple compared to this. Jumping into RFID is a whole new ballgame depending on how important antenna matching networks/circuits really are for good read range/performance. Most things I've read make it sound very important, some things I've read make it sound like it doesn't matter so much at 13.56mhz at the ranges we'll be shooting for.

Anyway, long story short, I really appreciate the offer and I may end up bugging you at some point. Thanks!!
 
  • Like
Reactions: DRG
Also, in my testing so far, this particular reader and it's antennas (though the best suited I've found so far for this application because of the ability to multiplex up to 8 antennas on 1 reader) can really only handle a couple of cards stacked at a time.

So long as the burn cards are swiped over the magic spot, it should read, right? The magic spot doesn’t have to be under the muck pile. So dealer burns, puts card on the burn spot, then slides it to the muck. Should be relatively efficient.

And I wouldn’t expect this to be 100% effective, anyway, based on what I’ve seen in use on pro shows.
 
I can't imagine that a table like this would be suitable for a self dealt game. With the antennas located in the middle of the table, it would be nearly impossible for players at the end to put the cards properly on their appropriate sensors. Unless you have players in the middle pushing the cards around to their proper spots, but they'll be doing it all night so it might as well be a dedicated dealer. The opportunity for mistakes would be really high I would think.
 
I can't imagine that a table like this would be suitable for a self dealt game. With the antennas located in the middle of the table, it would be nearly impossible for players at the end to put the cards properly on their appropriate sensors. Unless you have players in the middle pushing the cards around to their proper spots, but they'll be doing it all night so it might as well be a dedicated dealer. The opportunity for mistakes would be really high I would think.
Ack, fair point. I’ve ended up a dedicated self-dealt dealer and was looking at it from that perspective, not thinking about a rotating dealer. Yeah, harder.
 
I've got some amateur PCB design experience but the stuff I've done was pretty simple compared to this. Jumping into RFID is a whole new ballgame depending on how important antenna matching networks/circuits really are for good read range/performance. Most things I've read make it sound very important, some things I've read make it sound like it doesn't matter so much at 13.56mhz at the ranges we'll be shooting for.

Anyway, long story short, I really appreciate the offer and I may end up bugging you at some point. Thanks!!

FWIW, I think antenna matching is not necessary. You'd need some pretty expensive equipment to do it anyways. Just pick some good antennas and it should be fine for this application.

Yea shoot me a DM whenever! I love antenna stuff. I thought about making my own RFID table as well, but can't code for my life. Hope you can finish this and release it to add some competition to the scene.
 

Create an account or login to comment

You must be a member in order to leave a comment

Create account

Create an account and join our community. It's easy!

Log in

Already have an account? Log in here.

Back
Top Bottom