Arduino Selfie Camera




Introduction: Arduino Selfie Camera

About: Make it yourself if you cannot buy one!

This intructables show how to a very simple way to build a Arduino Selfie Camera.

Step 1: Hardware Preparation

TTGO T-Camera Plus

This is a ESP32 board with built-in OV2640 camera and 240 x 240 IPS LCD. Camera application require extra memory, so it also built-in 8 MB PSRAM and micro SD card slot. And it also built-in Lipo charging and regulation circuit. So it is ready to build a digital camera out-of-the-box!

Micro SD Card

Any micro SD card below 64 GB should be ok, smaller should reduce scanning overhead.

Lipo Battery

A small size Lipo battery with 1.27 mm plug.


A wrist strap or neck strap for easy handle the camera.

Step 2: Software Preparation

Arduino IDE

Download and install Arduino IDE if not yet:

Arduino ESP32 Support

Please follow Installation Instructions at GitHub:

Step 3: Upload Program

  1. Download the source code from GitHub:
  2. Plug TTGO T-Camera to the computer
  3. Open in Arduino IDE
  4. Select Board to "ESP32 Dev Board"
  5. Enable PSRAM support
  6. Press upload button

Step 4: Assembly

Plug the Lipo battery to the main board and put on the wrist strap.


You may download and 3D print a case at Thingiverse:

Step 5: Happy Selfie!

The above picture is taken from this selfie camera.

It only 2 megapixels and no auto focus but it is very tiny and LOMO feel ;>

Here are the snap steps:

1. Press reset button to turn on the Arduino Selfie Camera
2. Camera count down from 3
3. Adjust your favourite angle
4. Camera start take 3 snap photo in a row
5. Auto playback last taken photo
6. Enter sleep mode after 5 seconds 5. Press reset button to take a snap again
Arduino Contest 2019

Participated in the
Arduino Contest 2019

Be the First to Share


    • Pocket-Sized Speed Challenge

      Pocket-Sized Speed Challenge
    • Audio Challenge 2020

      Audio Challenge 2020
    • Maps Challenge

      Maps Challenge

    5 Discussions


    5 months ago

    Great! I made it work with my TTGo Plus, but the pictures won't save in the SD Card. Do you know why this could be happening?
    And, it would be great if you could tell me where can I find the original code that came with the camera, so I can go back to use it for video -streaming. I've been looking everywhere.
    Thanks a lot!!!


    1 year ago

    Is it possible to change the input to take a picture? I'm working on a project that uses an RFID tag and will need to take a picture once the RFID tag is detected.


    Question 1 year ago

    I get this error message, pls. help...thanks

    Arduino: 1.8.5 (Windows 10), Board: "ESP32 Dev Module, Enabled, Default, 240MHz (WiFi/BT), QIO, 80MHz, 4MB (32Mb), 115200, None"
    C:\Users\*****\Documents\Arduino\arduino-selfie-camera2\arduino-selfie-camera2.ino: In function 'void setup()':
    arduino-selfie-camera2:83: error: 'sensor_t {aka struct _sensor}' has no member named 'set_sharpness'
    s->set_sharpness(s, 2);
    arduino-selfie-camera2:85: error: 'sensor_t {aka struct _sensor}' has no member named 'set_denoise'
    s->set_denoise(s, true);
    Multiple libraries were found for "SD.h"
    Used: C:\Users\*****\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.1\libraries\SD
    Not used: C:\Users\*****\Documents\Arduino\libraries\SD
    exit status 1
    'sensor_t {aka struct _sensor}' has no member named 'set_sharpness'
    This report would have more information with
    "Show verbose output during compilation"
    option enabled in File -> Preferences.

    Sjoerd X
    Sjoerd X

    Question 1 year ago

    Could you show to LiPo battery that you are using?


    Reply 1 year ago

    402050 should be well fitted into the 3D printed case