Friendly_Fire

ESE 3500 (Penn) final project — IR laser tag with blaster, vest, and BLE web dashboard

View on GitHub

Friendly Fire

University of Pennsylvania · ESE 3500 Embedded Systems · Spring 2026 final project

Devan Malik Marko Mijatovic Kim Huang Victor Wanjohi


A working IR laser-tag system: a handheld blaster, a chest-mount vest, and a BLE web dashboard that runs the match.

This repository is the class writeup and photo record for a four-person ESE 3500 team project. I keep it here as a portfolio copy of that work.


How it works

The blaster fires a 940 nm IR pulse on a valid trigger, with a 500 ms inter-shot cooldown, an ammo counter on an ST7735 LCD, piezo feedback, and shake-to-reload from an MPU6050 (I2C, ≥20 Hz, 2g for three samples). Firmware lives on an ATmega328PB.

The vest detects hits with a TSOP38238 receiver, drops remaining lives on three LEDs, and ships health / elimination state over UART to a Feather ESP BLE radio within 500 ms of a state change. A web dashboard can RESET both MCUs back to full health, full ammo, and ALIVE.

Both units run off 5 V USB power banks.


Project video

Friendly Fire blaster and vest

Open the project video folder


Photos

Blaster LCD showing ammo and chest-mount vest Blaster and vest with hit-indicator LEDs on Chest-mount vest enclosure Open blaster and vest showing breadboards and wiring

Specifications

Software (SRS)

Hardware (HRS)


Notes

The gameplay loop worked: IR hit detection, ammo / cooldown, shake-to-reload, and BLE status all came up as a single system. The hard parts were getting the IR LED consistent and then surviving the jump from a bench prototype into an enclosure — wiring and mechanical robustness bit us later than they should have. Earlier integration and a cleaner interconnect would be the first changes on a second pass.