SpeedSight

Black suv with smart film over rear li ensemble plate that avoids speed cam 20250819 075946 0000
Speed sight app on head unit to detect sped camera and black out license pl 20250819 075450 0000

Speed Sight: Smart Glass Activation for Speed Camera Detection

Speed Sight GITHUB is a vehicle automation project that automatically activates smart tinting film (PDLC or electrochromic) when your vehicle approaches a speed camera. The system uses GPS location tracking and compares it to a database of known camera locations. If a camera is within range, the system activates a relay to apply voltage to the glass, increasing privacy and visibility control while driving.


Features

  • Automatic smart glass activation near speed cameras
  • Customizable detection radius and tint duration
  • Works with Raspberry Pi, GPS modules, and relay control
  • Compatible with both local camera databases and API-based services

Hardware Requirements

  • Raspberry Pi or ESP32
  • GPS module (USB or serial)
  • Smart glass film (PDLC or electrochromic)
  • Relay module or MOSFET driver
  • 48V power supply (for most PDLC films)

How It Works

  1. The GPS module fetches current location data.
  2. The system checks distance to all known speed camera coordinates.
  3. If a camera is within range (default: 300 meters), the Raspberry Pi triggers a GPIO pin.
  4. The relay applies voltage to the smart glass, activating the tint.
  5. After a preset duration, the relay is turned off and glass returns to clear state.

System Diagram

[ Raspberry Pi GPIO ] → [ Relay Module ] → [ 48V Power Supply ] → [ Smart Glass Film ]

Installation

git clone https://github.com/mikebrankis/speed-sight.git
cd speed-sight
pip install -r requirements.txt

Make sure you have Python 3 installed and GPIO access enabled on your device.

Configuration

Edit config.json to customize your setup:

{
  "detection_radius_m": 300,
  "relay_pin": 17,
  "camera_source": "local",
  "smart_glass_on_time": 10
}

Example Python Code

import RPi.GPIO as GPIO
import time
from gps_sensor import get_location
from utils import haversine, load_cameras

GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.OUT)
cameras = load_cameras("speed_cameras.json")

while True:
    lat, lon = get_location()
    for cam in cameras:
        dist = haversine(lat, lon, cam['lat'], cam['lon'])
        if dist < 300:
            GPIO.output(17, GPIO.HIGH)
            time.sleep(10)
            GPIO.output(17, GPIO.LOW)
    time.sleep(5)

License

This project is licensed under the MIT License. Use responsibly and only in compliance with local laws.

Disclaimer

Speed Sight is intended for educational and experimental use. It is not a commercial safety device. The developers are not responsible for any misuse, legal violations, or hardware damage resulting from its deployment.