CompletedPokerLenz
License
:TAPR Open Hardware License
Description
PokerLenz
PokerLenz is a wearable poker assistant that pairs AI-powered smart glasses with a discreet ESP32 smartwatch — an on-the-fly edge, dressed up as an ordinary timepiece.
The Idea
Most poker "helpers" are either obvious (phones on the table, earpieces, lookup apps) or impractical (manual odds calculators you can't touch mid-hand). PokerLenz sits in between: a hands-free, glance-only assistant that reads the cards through the player's own field of view, runs the math off-device, and surfaces a single-word recommendation on what looks and behaves like a normal watch.
The goal was to build something between a fragile phone-based cheat app and a bulky custom rig — compact, wired end-to-end, invisible at the table, and fully open from the Python inference server down to the Arduino firmware.
How It Works
PokerLenz is split into three cooperating parts:
- Omi AI Glasses stream the player's live first-person camera feed.
- A YOLOv5 model, custom-trained on a 52-card deck, runs on a host PC.
software/computerServer/detect.pydetects cards frame-by-frame, debounces them over three confirmed frames, assembles the player's hand, runs a poker-hand evaluator (phevaluator), factors in chip stack and current bet, and produces a decision: FOLD / CHECK / CALL / RAISE. - An ESP32-C3 watch on the wrist receives that recommendation over Wi-Fi. It normally displays the time and date like any other watch — but when the player flicks their wrist to a specific tilt angle, the MPU6050 catches it and the screen switches to the assistant's advice.
The watch is also an input device. A short button press bumps the current bet by $100; a 3-second hold resets the hand and bet between rounds. The PC polls the watch every frame for button events and reacts in real time.
Hardware
- ESP32-C3 MCU with on-board Wi-Fi — the watch's brain and embedded web server
- MPU6050 6-axis IMU — detects the wrist-tilt gesture that unlocks the advice screen
- SSD1306 128×64 OLED — watch face and decision display
- Tactile button on GPIO1 — short press = raise bet, long hold = full reset
- Status LED on GPIO8 — heartbeat / connection indicator
- Custom enclosure — two-part 3D-printable case (
hardware/Top Half.stepandhardware/Bottom Half.step) sized for an Apple Watch–style strap - Omi AI Glasses — source of the first-person video stream
All sensors sit on a shared I2C bus (SDA=GPIO4, SCL=GPIO3) inside the printed case.
Software
software/computerServer/detect.py— YOLOv5 inference, Hi-Lo card counting, dynamic strategy evaluator, and the HTTP client that pushes actions to the watch and polls its button state.software/Esp32Files/ESP32C3_PokerWebServer.ino— production watch firmware. Exposes/actionand/getButtonendpoints, drives the OLED, reads the IMU for the unlock gesture, and debounces the button (short vs. 3s hold).software/Esp32Files/ESP32_PokerWatch.ino,EspC3_Poker.ino,Esp32_Clock.ino— earlier development stages: clock-only prototype, IMU bring-up, and the initial watch-face build.
The firmware is Arduino-based and built on the Adafruit GFX / SSD1306 / MPU6050 libraries, WiFi.h, and WebServer.h. To keep latency and airtime low, the host only transmits an action when it changes, and the watch answers button polls in a single short HTTP round-trip.
Key Features
- Invisible by default — the watch shows a normal clock until the wrist is tilted
- Sub-second decisions — YOLOv5 inference and ESP32 push live inside one frame loop
- Dynamic strategy — advice scales with chip stack and risk ratio, not just raw hand strength
- Running card count — silent Hi-Lo count tracked in the background
- One-button controls — bet bumps and full resets without leaving the table
- Fully DIY — 3D-printed case, open Arduino firmware, open Python inference stack
Links
- Presentation: https://docs.google.com/presentation/d/1URacGMGSlem55DSd2-C8D5CqfvSaDkgC-CkSohvJeEQ/edit?usp=sharing
- YouTube Short: https://www.youtube.com/shorts/t8tnqh3iKe8
Photos
CAD


Physical Watch

Model

Schematic
NOTE: THIS IS JUST A REFERENCE. PRODUCT IS HANDWIRED

Design Drawing
The preview image was not generated, please save it again in the editor.BOM
Bom empty
CloneProject Members
Intellectual Property Statement & Reproduction Instructions
This is an open-source hardware project. All intellectual property rights belong to the creator. The project is shared on the platform for learning, communication, and research only; any commercial use is prohibited. If your intellectual property rights are infringed on EasyEDA, please notify us by submitting relevant materials in accordance with the Rules for Complaints and Appeals of IPR Infringement.
Users must independently verify the circuit design and suitability when replicating this project. All risks and consequences are borne by the user, and the platform assumes no liability.
Empty


Comment