Inspiration
Garbage trucks and recycling plants keep catching fire, and the cause is in our pockets. Lithium-ion batteries from vapes, phones and e-bikes get crushed in compactors and ignite. Waste360's fire report counted 49 waste and recycling facility fires in August 2026, tying the highest August in ten years. In the UK, 541 fires were attributed to lithium-ion batteries, and 216 of them started inside bin lorries. Nobody sees the battery go in. We wanted a bin that does.
What it does
Battery Bloodhound is a tilt-tray bin that checks every item before it disappears.
- You place an item on the tray and photograph it with a phone.
- Gemini looks at the photo and votes on whether it is a single approved item.
- Grok (SpaceXSI) reviews that report and the photo and makes the final call, then speaks the result.
- Accept: the tray tilts back 25° and the item slides into the bin.
- Reject: the tray stays level, and Grok tells the user what to do next, like "remove the vape and rescan".
Any error, missing answer or unclear photo defaults to reject. A false alarm costs a rescan, and a missed battery is the whole problem. An onboard CO₂ and temperature sensor adds an early-warning signal for heat and gas rising in the bin.
How we built it
- Vision pipeline: The phone's browser uploads a photo to a Flask server on a laptop. Gemini 3 Flash votes OPEN or HOLD, then Grok returns a JSON decision and the spoken instruction. Grok's text-to-speech reads it aloud.
- Control: An Arduino UNO R4 WiFi takes commands over serial (accept, reject, level) and eases the servo so the tray moves smoothly.
- Mechanics: The frame, tray and hub pins are 3D printed. The servo mounts are built from the real MG90S CAD model, and the spline sockets are cut from its actual spline profile.
- Tolerances: The tray corner sweeps a radius of $r = \sqrt{73^2 + 5^2} \approx 73.2$ mm inside 75 mm walls, so it never touches at any tilt. We checked this with interference tests at angles from $-5^\circ$ to $35^\circ$. At 25° the rear dips 23 mm into the bin and the front stays under the wall top.
- Sensing: An SCD41 reads CO₂ and temperature, and an ADS1115 gives spare analog inputs.
Challenges we ran into
- Parts disappeared. The thermal camera, gas sensor, buck converter and SD cards went out of stock, so we redesigned the alarm around what was available.
- The Raspberry Pi never got a bootable card. We dropped the Pi and its display and moved all the compute to a laptop and a phone camera.
- Sensors on the shared I2C bus. Two sensor boards never answered, so we cut the design down to the sensors we could verify.
- A stubborn servo. We debugged it one servo at a time.
- Moving targets. Model names and APIs changed, and the venue Wi-Fi blocked device-to-device traffic, so we added a tunnel for the phone.
Accomplishments we're proud of
- A full loop from photo to AI decision to voice to tray motion, with a safe default at every step.
- A printed mechanism whose clearances were checked before printing.
What we learned
- Design for failure first: every error path ends in the safe answer.
- Tolerances matter more than parts: bores, gaps and sockets decide whether a printed pivot turns.
- Debug in small steps: one sensor, one servo, one wire at a time.
What's next
A break-beam sensor to trigger scans automatically, the sensor alarm merged into the same server, a sand-filled quarantine bin, and a wider item list.
Issues
Faulty equipment from organizers Broken Raspberry PI, sensors, servo motors, no webcam, etc. We We have several workarounds
Built With
- hardware
- software