Перейти к содержанию

title: [ESP32] Camera Suite app for Flipper Zero by @CodyTolene @Z4urce @leedave description: A camera suite application for the Flipper Zero ESP32-CAM module. tags: - gpio

[ESP32] Camera Suite


Flipper Zero - Camera Suite

Software to run an ESP32-CAM module on your Flipper Zero device.

Full setup, wiring guide, etc. in the main project README here: https://github.com/CodyTolene/Flipper-Zero-Camera-Suite

Firmware is needed for the ESP32-CAM module, see here for more information: https://github.com/CodyTolene/Flipper-Zero-Camera-Suite#firmware-installation

Software Guide

Button mappings:

Up = Contrast Up.

Down = Contrast Down.

Left = Toggle invert.

Right = Toggle dithering on/off.

Center = Take a picture and save to the "DCIM" folder at the root of your SD card. Image will be saved as a bitmap file with a timestamp as the filename ("YYYYMMDD-HHMMSS.bmp"). If flash is on in the settings (enabled by default) the ESP32-CAM onboard LED will light up when the camera is opened.

Back = Go back.


Orientation = Rotate the camera image 90 degrees counter-clockwise starting at zero by default (0, 90, 180, 270). This is useful if you have your camera module mounted in a different orientation than the default.

Flash Toggle the ESP32-CAM onboard LED on/off while using the camera.

Dithering Type Change between the Cycle Floyd–Steinberg, Jarvis-Judice-Ninke, and Stucki dithering types.

Haptic Effects = Toggle haptic feedback on/off.

Sound Effects = Toggle sound effects on/off.

LED Effects = Toggle LED effects on/off.



  • Store images to onboard ESP32-CAM SD card (partially completed, #24).
  • Camera preview GUI overlay (#21).
  • Full screen 90 degree and 270 degree fill (#6).
  • WiFi streaming/connection support (#35).


  • Add support for new Flipper Zero Firmware UART updates.
  • Remove staged WiFi streaming/connection support for now. Until I can fully test.


  • Add new splash/start screen.
  • Add new module not connected notification + pinout guide in-app.
  • Update README with a new "Special Thanks" section.
  • Update README "Contributions" section regarding firmware development.
  • Separate settings into two views: app and cam settings.
  • General code improvements and cleanup.
  • Stage new scene for WiFi streaming/connection support (#35).


  • Remove usage of image no longer found in the Flipper Zero firmware build.


  • Add RC builds to repo.
  • Improve FAP code.
  • Improve Firmware code (requires reflash).
  • Improve Firmware flashing utility code.
  • Improve GitHub actions code.
  • Look to mitigate issue "Mirrored Image" #27.
  • Addressed new linting issue with "ufbt" tools.


  • Important: Firmware Update Required! Ensure you update your firmware to fully utilize the new features. Backwards compatibility should be ok.
  • New Feature: Introducing the Firmware Flash utility, simplifying the firmware flashing process. Refer to the project readme for detailed instructions. (Closes #26)
  • Enhancement: Flash functionality now remains active during camera preview, making it easier to take pictures in areas of low light.
  • Bug Fix: Addressed picture inversion issue reported by user leedave. Thanks for your contribution! (Closes #23)
  • Code Refinement: Enhanced firmware code for readability and maintainability. Separated concerns into individual files for a more organized structure.
  • Technical Improvements: Implemented general code enhancements and introduced syntactic sugar for cleaner, more efficient code.
  • Work in Progress: Added a new test function for saving pictures to the onboard ESP32-CAM SD card. This feature is under development and will allow users to save pictures directly to the SD card in the future. Tracked under feature request #24.


  • Save image support. When the center button is pressed take a picture and save it to the "DCIM" folder at the root of your SD card. The image will be saved as a bitmap file with a timestamp as the filename ("YYYYMMDD-HHMMSS.bmp").
  • Camera flash support. Flashes the ESP32-CAM onboard LED when a picture is taken if enabled in the settings.
  • Move the camera dithering type to the settings scene as a new configurable option.
  • Add "Flash" option to the settings scene as a new configurable option.
  • Update documentation to reflect changes.
  • Update firmware with new dithering options set.
  • Update firmware with new flash support.
  • Update repo to reflect https://github.com/CodyTolene/Flipper-Zero-Development-Toolkit for easier tooling.