Project showcase
Algorithmic Camera Trigger - Shutterino

Algorithmic Camera Trigger - Shutterino © MIT

Camera trigger powered by Arduino MKR1000 and controlled by the app. Let the algorithm take the best shots.

  • 1 comment
  • 7 respects

Components and supplies

Abx00004 iso both
Arduino MKR1000
Any board with WiFi and support for Firmata protocol will work
Servos (Tower Pro MG996R)
Microsoft Windows Phone

Apps and online services

About this project

Shutterino - control the camera's shutter with a sensor-sensitive algorithm. Powered by Arduino MKR1000.

I want to make a stop motion short film similar to "Pacer" but I'm nowhere close to having artistic skills to do it. I hope that programming skills will come to rescue. Let's have the algorithm decide when it is the best moment to take a photo!

For example, Shutterino takes a photo when the accelerometer provides a similar reading to the last photo's, or when you move 10 meters from where you took the last photo.

To make a good film I need a good camera, and as you can see from the short video below, my phone has a rather poor quality of sensor. In its defense, it costs just $100. My actual camera doesn’t have remote shutter capability, so Shutterino will use a servo motor to press the shutter button.

caption (optional)

Choose from a Variety of Triggers to take the Photograph

I’m using my Windows Phone as a source of triggers for taking the photographs. User can choose one of the following events:

• Matching accelerometer reading

     so that all the shots are level

• Change in GPS coordinates

     for road trips

• Timer

    for timelapses

Big Data

Simultaneously with pushing the shutter button, the phone is taking a picture with its camera, for correlation with status of every sensor. The readings are recorded in a .csv file and uploaded to Azure FileStorage, which appears to be a very young sibling of TableStorage and BlobStorage that lets you download files from Azure portal!

You may take a lot of photos one day, so you will need to filter, for example, to just find these caused by change of GPS coordinates. In post production the accelerometer readings may be useful to rotate the photo.

Augmented Viewfinder

The phone shows the accelerometer's desired and current reading, which helps you orient the camera for the right shot. As soon as you have the shot, Shutterino takes the photo.

Modular Design

You can run this app on any Windows 10 device. If your device lacks any capability, it just won't be active.

On a desktop computer, you will have access to timer, log and Arduino connection.

A webcam will give you camera preview.

A phone will complete the features with accelerometer and GPS data. Actually, my phone has only accelerometer but no compass nor gyrometer. If your phone has a gyro and you're interested in this project, feel free to hack on it and send in a PR!

Ultimately, I want to learn reactive extensions and use them in this project, so a big refactoring is imminent.

Very Simple Firmware

The Universal App uses the Firmata to communicate with the Arduino. Firmata is a fantastic platform for all makers: The Arduino is running nothing more than StandardFirmataWiFi and all processing is done on the more capable phone.

TIP: check out the remote-wiring-experience app for rapid prototyping and debugging using the Firmata protocol.

The Future

Shutterino is currently highly capable, but it's awkward to use - you need to hold the phone, Arduino, camera and the servo, but you don't have 4 hands! Therefore, Shutterino calls for a rigid enclosure. Below I drew a design for a 3D printed enclosure that will contain all components.

To create really interesting stop-motion video like "Pacer", the algorithm needs to know more than the phone's orientation in space. An edge detection algorithm will let Shutterino take a photograph when the viewfinder matches shape from the previous photo (with a configurable shift).

 Source Code

The source code is available at I will keep updating it.

I submitted this project for the World’s Largest Arduino Maker Challenge and created a release on github before the deadline.

Bill of Materials:

• BLU WIN HD W510u (any Windows 10 device is ok)

• Arduino MKR1000

• Digital camera

• Micro Servo 9g A0090 (any generic servo is ok)

• Appropriate connector wires

USB Cable, not needed in the final product

Finished product Bill of Materials:

• 3D printed case

• Battery for Arduino MKR1000


The Universal App that runs on the smart phone

Custom parts and enclosures

Enclosure concept
Drawing of the enclosure. Still need to learn CAD.
Can you recommend me a CAD tutorial that you like?




Similar projects you might like


Project showcase by Bill Lovegrove

  • 82 respects

Wifi-Controlled Precision Camera Slider

Project showcase by Ben Brandt

  • 74 respects

Face Tracking Camera

Project tutorial by Little_french_kev

  • 103 respects

The Drawing Machine

Project showcase by Kramick Saha

  • 22 respects

MKR1000 Temp and Humidity Sensor

Project tutorial by Don Coleman

  • 41 respects

Project "Gallon" - Smart Drinking Water Monitoring Platform

Project showcase by Team DycodeX

  • 49 respects
Add projectSign up / Login