a11g-final-submission-s26-s26-t31-master-doom

ese5160s26-a11g-final-submission-s26-a11g-final-submission-skeleton created by GitHub Classroom

View the Project on GitHub ese5160/a11g-final-submission-s26-s26-t31-master-doom

🃏 MasterDoom — AI Texas Hold’em Poker Assistant

ESE5160 Spring 2026

Team MCU Model

Team Number: 31

Team Name: MasterDoom

Team Member Name Email Address GitHub Username
Yunzhe Deng deng1@seas.upenn.edu yunzhedeng
Jilu Wang jlwang25@seas.upenn.edu Arbeiterschaft

GitHub Repository URL: https://github.com/ese5160/a11g-final-submission-s26-s26-t31-master-doom

GitHub Pages URL: https://ese5160.github.io/a11g-final-submission-s26-s26-t31-master-doom/


1. Video Presentation

Team 31 MasterDoom – Texas Hold’em AI Poker Assistant Demo

Team 31: MasterDoom

This project is an AI-assisted Texas Hold’em poker card recognition system. It uses a camera module to detect the rank and suit of playing cards in real time and provides GTO-based decision support to help players make better game decisions.

Detected cards, game status, and decision-related information are displayed on an LCD screen. A joystick is used for local control and menu selection, while a Node-RED dashboard provides remote monitoring and user interaction.

The camera, LCD, and user interface communicate wirelessly using MQTT over Wi-Fi. The system also supports OTA updates, allowing firmware to be updated wirelessly without a physical connection.

Main features include poker card recognition, Texas Hold’em game display, GTO-based decision support, LCD real-time display, joystick control, Node-RED dashboard, MQTT communication, and OTA firmware updates.


2. Project Summary

Device Description:

Device Functionality:

Challenges:

Prototype Learnings:

Next Steps & Takeaways:

Project Links:

Node Red Link

Altium PCBA Link


3. Hardware & Software Requirements

Hardware Requirements Specification (HRS)

ID Requirement
HRS-01 The system shall use the SiWG917 (BRD2605A) as the main MCU for game logic, LCD rendering, joystick input, MQTT communication, and OTA updates.
HRS-02 The system shall use the SiWG917 (BRD2708A) as the camera node MCU, responsible for image capture and HTTP transmission to the inference server.
HRS-03 The Arducam Mini OV2640 camera module shall communicate with the camera MCU via SPI and I2C, and shall capture images at sufficient resolution for card recognition.
HRS-04 The ST7735R LCD shall be driven over SPI and shall display card detection results, game state, and GTO recommendations in real time.
HRS-05 The joystick shall provide local user input for menu navigation and manual game state entry.
HRS-06 The custom PCB shall supply a regulated 3.3V and 5V output to power all onboard components, with no copper polygons beneath the antenna region to prevent RF interference.
HRS-07 The system shall operate over a 2.4GHz Wi-Fi connection for MQTT communication and HTTP image upload.

Software Requirements Specification (SRS)

ID Requirement
SRS-01 The card recognition pipeline (image capture → HTTP upload → YOLOv3 inference → MQTT delivery → LCD display) shall complete end-to-end in under 3 seconds under normal network conditions.
SRS-02 The YOLOv3 model, trained and annotated via Roboflow, shall achieve a card recognition accuracy of at least 90% across all 52 standard playing cards.
SRS-03 The FastAPI inference server shall receive images from the camera node, run YOLOv3 inference, and publish detected card rank and suit results to the Azure MQTT broker.
SRS-04 The main MCU shall subscribe to the Azure MQTT broker and update the LCD display within 1 second of receiving card detection results.
SRS-05 The GTO decision algorithm shall evaluate the current hand and community cards and output a recommended action (fold, call, raise, or check) for every game state update.
SRS-06 The Node-RED dashboard shall subscribe to the Azure MQTT broker and display live game state, detected cards, and GTO recommendations for remote monitoring.
SRS-07 The system shall support OTA firmware updates over Wi-Fi, allowing the main MCU to be reprogrammed without a physical connection.

4. Project Photos & Screenshots


5. Codebase