https://github.com/rbala25/shuffleboard
Multiplayer Shuffleboard — Embedded Firmware (C), PCB Design, Mixed-Signal I/O, and Display + Audio Integration
https://github.com/rbala25/shuffleboard
7segmentdisplay comparators debouncing ece319 shuffleboard spi st7735 tm4c123
Last synced: about 15 hours ago
JSON representation
Multiplayer Shuffleboard — Embedded Firmware (C), PCB Design, Mixed-Signal I/O, and Display + Audio Integration
- Host: GitHub
- URL: https://github.com/rbala25/shuffleboard
- Owner: rbala25
- Created: 2026-03-17T19:35:21.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2026-04-22T00:45:09.000Z (about 1 month ago)
- Last Synced: 2026-04-22T02:41:03.224Z (about 1 month ago)
- Topics: 7segmentdisplay, comparators, debouncing, ece319, shuffleboard, spi, st7735, tm4c123
- Language: C
- Homepage:
- Size: 25.1 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Shuffleboard
60 FPS multiplayer shuffleboard built on bare-metal C/C++ for the TM4C123 — no OS, no shortcuts. ECE319H Final Project.
---
## Highlights
**Comparator + FET Input Detection** — Puck sensing uses a custom analog comparator circuit driving an N-channel FET, with hardware debouncing and firmware-level input validation. Fast, noise-resistant, and doesn't rely on polling.
**Custom DAC + Audio** — Sound effects generated through an R-2R resistor ladder DAC feeding a discrete amplifier and speaker.
**SPI Display Pipeline** — ST7735 TFT screen handles all game state rendering and animations via SPI. Score output runs in parallel on 7-segment displays driven by 74HC595 shift registers.
**Game Loop & State Machine** — Fully interrupt-driven architecture managing turn logic, collision validation, and score tracking in real time. All rendering, input, and audio synchronized to a 60 FPS Timer12 interrupt — no RTOS, no scheduler.
**Mixed-Signal PCB** — Custom board with split digital/analog ground planes, decoupling for stable SPI, and an integrated comparator/FET sensing front-end alongside the DAC output stage.
---
## Stack
| Layer | Tech |
|---|---|
| MCU | TM4C123GXL (ARM Cortex-M4) |
| Language | C/C++, bare-metal |
| Display | ST7735 TFT over SPI |
| Score Display | 7-segment + 74HC595 shift registers |
| Audio | R-2R DAC + speaker amp |
| Input | Analog comparator + N-FET + hardware debounce |
---
Developed for **ECE319H — Introduction to Embedded Systems (Honors)** at The University of Texas at Austin.