missed-moment

Status

Active

New progress made in 2020!

What’s New

  • Code has been updated to run on the RPi4 as well as the new Raspberry Pi OS
  • Install instructions and scripts have been streamlined
  • HUGE progress has been made on audio support (Special thanks to cherryshoe)

What is it

A “privacy by design” IoT camera designed to capture all the precious moments in life. For when you wish you had just caught something on camera.
Detailed setup instructions can be found on github

The main functionality works. I’ve had a raspberry Pi running it almost constantly for 2 years now with rarely any issues.

Current Capability

  • Immediately starts recording when powered on
  • Upon button press, the last ~1 min of video is written to temporary storage
  • Plug a USB device in. Any saved videos will automatically be written and the USB device ejected.
  • As nothing is written until button press, video kept in memory is lost after a few minutes

Challenges

Audio support has been the biggest rabbit hole. There are ways to create a circular buffer of audio, but syncing the audio and video is difficult. This is a work in progress.

Abandoned Ideas

Dropbox and Slack support have both been added and work, but are unofficially supported.
The reason being:

  • Mo features, mo bugs
  • One of the main goals of this project is to be “privacy first”. So being able to work fully without access to the internet is important for this ~internet~ of thing.

Inspiration

I had a dropcam for a while and realized that there was no local viewing of the stream. Anything it recorded HAD to be sent to the dropcam servers. To view the live stream on your phone meant streaming that same (now highly delayed) feed from their servers. Insane, Insecure, etc. etc.

In addition, there were so many times when something funny would happen when I was out of the room (cats and newborn). Never seemed like I could get to the feed in time, even with the network lag.

So I build missed-moment.

Research

OpenCV Use to identify your child in the scene and track their location. Imagine being on the playground and an indicator on missed-moment is always pointed to their last known location. Napping child detection. Did your kid actually go down for a nap? How long since their eyes closed? Or were their eyes open, talking, playing. Shenanigans detector.

Raspberry Pi Init Script

Python SSDP

Another Python SSDP

Recording Raspberry Pi Video

More RPi Video Recording

Converting RPi Video Formats

Working with USB in RPi

Ejecting USB Devices

Audio and Video in RPi

Edward Romano Written by:

I dabble in, and occasionally obsess over, technology and problems that bug me