EngHacks / March 2026

Ice Detection
Smart Cane

I worked with three teammates to build a smart cane that combines temperature, clear-channel, and infrared readings to detect icy surfaces and warn the user through tactile servo feedback.

Ice Detection Smart Cane prototype being held over a tiled floor
Working smart cane prototype

Overview

The cane samples conditions near the ground and responds through touch.

The sensing and control hardware is mounted directly to the cane. An Arduino reads three sensors, calculates an ice score, and raises a physical indicator when that score crosses the detection threshold. The indicator remains raised briefly so a short detection is still noticeable.

Detection loop

Three readings feed one decision.

  1. 01

    Temperature / TMP36

    A drop from the calibrated temperature earns 35 points per degree, capped at 70 points.

  2. 02

    Clear channel / TCS34725

    A clear-channel drop of at least 150 from baseline adds 30 points.

  3. 03

    Infrared

    A triggered infrared input adds another 10 points.

Threshold score

score >= 50 Ice detected

Servo feedback

45 degrees Held for 1.5 seconds

Runtime diagnostics

Each sensor's contribution is visible in the serial output.

The firmware prints the current readings, their baselines, each calculated drop, and the final score. This made it possible to trace a detection back to the inputs that caused it.

Representative serial output
New baseline -> Temp: 21.50 C, C: 820.0
System started

TempC: 21.20 | BaselineTemp: 21.50 | TempDrop: 0.30 | TempScore: 10 | C: 790 | BaselineC: 820.0 | CDrop: 30.0 | IR: 1 | Score: 10 | no ice

TempC: 20.00 | BaselineTemp: 21.50 | TempDrop: 1.50 | TempScore: 52 | C: 650 | BaselineC: 820.0 | CDrop: 170.0 | IR: 0 | Score: 92 | ICE DETECTED

Skipped recalibration because conditions may indicate ice

Baseline recalibration

At startup, the firmware averages ten temperature and clear-channel samples to establish its baselines. It checks those baselines again every 30 seconds, but recalibrates only when the temperature drop is below 1 degree Celsius and the clear-channel drop is below 80. If the current readings could indicate ice, the recalibration is skipped instead of treating the hazard as the new normal.

Outcome

Third place at EngHacks.

Our four-person team designed, assembled, and programmed the working prototype within the 12-hour event.