Software for a Raspberry Pi Zero W motorcycle helmet camera
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore boot script directory changed to repo name Mar 9, 2017 add sudo to clear video script Mar 8, 2017 script to kill all python processes Mar 10, 2017


Software for a Raspberry Pi Zero W motorcycle helmet camera

Necessary Hardware

  • Raspberry Pi
    • Zero/Zero Wireless ideally
  • Raspberry Pi camera
    • an offical Raspberry Pi camera is a safe bet
    • with correct ribbon cable (Zero cable is different than full sized Pi's, also should get at least 6" long)
  • MicroSD card
    • get one of the 'high endurance' ones since this will be writing HD video constantly
  • Battery
    • Simplest solution is a smartphone external battery pack with a microUSB cable, and just keep it in your jacket
  • Camera housing/mounting
    • I made mine out of plexiglass, superglue, and electrical tape for waterproofing with a dremel
    • Electrical tape or double sided adhesive pads for mounting camera+Pi to the helmet
  • You might also need for setup/troubleshooting
    • Monitor/TV
    • USB keyboard
    • Adapter for mini HDMI -> HDMI or whatever your monitor/TV takes
    • Adapter for microUSB -> USB for a keyboard so you can set up Raspbian

Setup Instructions

Set up Raspberry Pi, camera, and mounting

Found in the main Google Doc for this project:

cronjob for recording on boot up:

(run sudo crontab -e and add this line to the bottom)

@reboot sh /home/pi/pi-helmet-cam/ >/home/pi/pi-helmet-cam/cronlog 2>&1
  • NOTE: depending on what your username is/where you put this repo you may need to change the path
  • If you're running into problems starting the script on boot, check ./cronlog.


  • Python script that begins recording video in chunks when started using picamera Python module
  • Use -d or --debug to see video preview and debug print statements


  • the Python script will create a video directory to store videos in
  • each video will have its own directory, the name being a current timestamp
  • inside this, there will be (up to) ~45 min videos with the form 001.h264
    • after the video gets large enough, a new one will be created in the same directory with an incremented filename
    • the video should write to disk every 5 seconds, so in case of power loss, at most that much of the video will be lost

  • clears out old videos if we need the space
  • then starts recording
  • crontab runs this on startup

  • helpful script to just clean out old video from the video directory

  • kill all running python processes, quick way to stop the script if running in background


  • where logs from starting the script on boot with cronjob will go