Project

# Title Team Members TA Documents Sponsor
18 RFID Poker Board
Darren Liao
KB Bolor-Erdene
Satyam Singh
Eric Tang proposal1.pdf
# Team Members:
- Satyam Singh (satyams2)
- Darren Liao (darrenl4)
- Khuselbayar Bolor-Erdene (kb40)

# Poker

Traditional poker tables rely on the dealer and players to track cards, bets, and pots. This process can be slow and error prone, especially in casual games where the dealer is inexperienced. Players may misread cards, deal incorrectly, or lose track of the state of the game. Live poker also lacks many of the conveniences of online poker, such as automatic hand evaluation, instant game state updates, and precise tracking of actions. Online platforms further enhance the player experience with detailed statistics, and hand histories while live games rely entirely on player knowledge.

# Solution

An RFID-enabled poker table with tagged cards helps to bridge this gap by bringing digital intelligence into the live poker experience. By embedding RFID readers in the table, the system can automatically recognize cards, display the game state in real time, and evaluate hands without error. Game state management features such as LED indicators can track dealer position, blinds, and turn order, giving players visual cues that keep the game running smoothly.

A dedicated companion app would serve as the primary user interface, providing players with immediate feedback. The app can also highlight blind positions, display whose action it is

At a high level, we will stick 13.56 MHz HF RFID sticker tags onto poker cards (and possibly chips later), place small antenna pads under the “seat” zones in front of each player, and a larger one in the middle for the community cards. We will build a main PCB with an ESP32, a single HF reader IC, and an RF MUX switch so the microcontroller unit (MCU) can scan all pads sequentially. The MCU will resolve tag UIDs into chip denominations or card identities, then send compact state updates to a small UI over Wi-Fi in near real-time.

# Solution Components

## Subsystem 1: RFID Cards and Antenna Network

Each card and chip will have a 13.56 MHz HF RFID NFC sticker (ISO 15693) attached. Antenna pads will be embedded under each player’s seat zone and a larger pad will be used for the community cards. All pads will be routed through an RF multiplexer (e.g., a 16:1 analog switch like the HMC7992) into a single HF RFID reader IC (such as PN532 or MFRC522). The microcontroller will sequentially energize each pad, cycling through them at a fast interval per pad to collect tag UIDs, filter duplicates, and reliably detect card positions in near real time.

## Subsystem 2: Central Microcontroller

The system will use an ESP32-S3 (dual-core with Wi-Fi) as the central controller. It will interface with the RFID reader via SPI or I2C and control the RF multiplexer using GPIO select lines. The microcontroller will maintain an internal mapping of card and chip UIDs to their identities (rank/suit or chip denomination) and update the game state. Once the game state is compiled, it will be serialized into JSON format and transmitted to the visualization app over HTTP for low-latency communication.

## Subsystem 3: Game Visualization App

The visualization layer will be a cross-platform application (built with Python + Flask) that receives JSON packets from the ESP32. It will display each player’s hole cards and the community cards, highlight blinds and active turns, and compute win probabilities for each player using either Monte Carlo simulation or a precomputed odds lookup. As a stretch goal, the app will also store hand histories and send LED or LCD commands back to the ESP32 to synchronize the physical table indicators with the digital state.

# Criterion For Success

- 100% accuracy in tracking the cards currently in play through 5 rounds of gameplay
- Game state is accurately updated on the app within 2-5 seconds of updating
- Board can correctly differentiate between folds and players accidentally moving their cards away from antennas

# Stretch Goals
If we have the time, we would also like to enhance the player experience by adding small LED indicators for the game state (big/small blinds, betting rounds, LCD screen showing the pot size) to help each player better understand the game without having to rely strictly on the app.

Tracking chips can be more challenging, since stacking with RFID can be difficult. However, we would love to implement this so we can build on the tech idea above and display the total pot size directly on the board along with the app.

Additionally, if desired, we could use algorithms and machine learning in the app to help players make the best decisions given the current game state.

Illini Voyager

Cameron Jones, Christopher Xu

Featured Project

# Illini Voyager

Team Members:

- Christopher Xu (cyx3)

- Cameron Jones (ccj4)

# Problem

Weather balloons are commonly used to collect meteorological data, such as temperature, pressure, humidity, and wind velocity at different layers of the atmosphere. These data are key components of today’s best predictive weather models, and we rely on the constant launch of radiosondes to meet this need. Most weather balloons cannot control their altitude and direction of travel, but if they could, we would be able to collect data from specific regions of the atmosphere, avoid commercial airspaces, increase range and duration of flights by optimizing position relative to weather forecasts, and avoid pollution from constant launches. A long endurance balloon platform also uniquely enables the performance of interesting payloads, such as the detection of high energy particles over the Antarctic, in situ measurements of high-altitude weather phenomena in remote locations, and radiation testing of electronic components. Since nearly all weather balloons flown today lack the control capability to make this possible, we are presented with an interesting engineering challenge with a significant payoff.

# Solution

We aim to solve this problem through the use of an automated venting and ballast system, which can modulate the balloon’s buoyancy to achieve a target altitude. Given accurate GPS positioning and modeling of the jetstream, we can fly at certain altitudes to navigate the winds of the upper atmosphere. The venting will be performed by an actuator fixed to the neck of the balloon, and the ballast drops will consist of small, biodegradable BBs, which pose no threat to anything below the balloon. Similar existing solutions, particularly the Stanford Valbal project, have had significant success with their long endurance launches. We are seeking to improve upon their endurance by increasing longevity from a power consumption and recharging standpoint, implementing a more capable altitude control algorithm which minimizes helium and ballast expenditures, and optimizing mechanisms to increase ballast capacity. With altitude control, the balloon has access to winds going in different directions at different layers in the atmosphere, making it possible to roughly adjust its horizontal trajectory and collect data from multiple regions in one flight.

# Solution Components

## Vent Valve and Cut-down (Mechanical)

A servo actuates a valve that allows helium to exit the balloon, decreasing the lift. The valve must allow enough flow when open to slow the initial ascent of the balloon at the cruising altitude, yet create a tight seal when closed. The same servo will also be able to detach or cut down the balloon in case we need to end the flight early. A parachute will deploy under free fall.

## Ballast Dropper (Mechanical)

A small DC motor spins a wheel to drop [biodegradable BBs](https://www.amazon.com/Force-Premium-Biodegradable-Airsoft-Ammo-20/dp/B08SHJ7LWC/). As the total weight of the system decreases, the balloon will gain altitude. This mechanism must drop BBs at a consistent weight and operate for long durations without jamming or have a method of detecting the jams and running an unjamming sequence.

## Power Subsystem (Electrical)

The entire system will be powered by a few lightweight rechargeable batteries (such as 18650). A battery protection system (such as BQ294x) will have an undervoltage and overvoltage cutoff to ensure safe voltages on the cells during charge and discharge.

## Control Subsystem (Electrical)

An STM32 microcontroller will serve as our flight computer and has the responsibility for commanding actuators, collecting data, and managing communications back to our ground console. We’ll likely use an internal watchdog timer to recover from system faults. On the same board, we’ll have GPS, pressure, temperature, and humidity sensors to determine how to actuate the vent valve or ballast.

## Communication Subsystem (Electrical)

The microcontroller will communicate via serial to the satellite modem (Iridium 9603N), sending small packets back to us on the ground with a minimum frequency of once per hour. There will also be a LED beacon visible up to 5 miles at night to meet regulations. We have read through the FAA part 101 regulations and believe our system meets all requirements to enable a safe, legal, and ethical balloon flight.

## Ground Subsystem (Software)

We will maintain a web server which will receive location reports and other data packets from our balloon while it is in flight. This piece of software will also allow us to schedule commands, respond to error conditions, and adjust the control algorithm while in flight.

# Criterion For Success

We aim to launch the balloon a week before the demo date. At the demo, we will present any data collected from the launch, as well as an identical version of the avionics board showing its functionality. A quantitative goal for the balloon is to survive 24 hours in the air, collect data for that whole period, and report it back via the satellite modem.

![Block diagram](https://i.imgur.com/0yazJTu.png)