dakota@carrasco ~ %

Shuffles

[in progress]

A robotic poker dealer — shuffles, deals, and runs the table so the host can actually play.

  • Python
  • Raspberry Pi 5
  • Computer Vision
  • Stepper Motors
  • CAD
May 11, 2026github ↗

The problem

Home poker night has one universally hated job: dealing. Somebody has to sit out of the social flow, shuffle cleanly, pitch cards accurately, manage the button, and keep the pace honest. Do it wrong and the game slows to a crawl; do it at all and you're working instead of playing.

Shuffles is a machine that takes that job. It shuffles a standard 52-card deck, deals to a configurable number of seats, tracks the button, and paces the table — so every person at it gets to be a player.

The approach

I'm building Shuffles in phases, software-first. The instinct with hardware is to start cutting metal; I deliberately inverted that. Phase 1 was the software foundation — the dealing state machine, table model, and control surface — built and tested in simulation before a single motor turned. That foundation shipped on 2026-05-11.

The thinking: the hard part of a dealer isn't the actuator, it's the logic — button rotation, dead-button rules, seat changes mid-game, mis-deal recovery. Get that provably correct in software and the mechanical work becomes an integration problem rather than a research problem.

The stack

  • Brain: a Raspberry Pi 5 running the control software in Python.
  • Vision: a downward camera for card and table-state verification — confirming what was dealt matches what the state machine intended.
  • Motion: stepper-driven shuffle and pitch mechanisms (in design).
  • Body: custom CAD for the card path, hopper, and pitch arm.

Where it's at

Phase 1 (software foundation) is shipped. The remaining phases move outward from the brain to the body — vision verification, the pitch mechanism, the shuffler, enclosure, and tuning for real-table pace. It's the project I'm most invested in: a thing that has to work in the physical world, in front of people, the first time.