‹ Projects

Flipper Zero Camera Suite

A tiny camera with an appropriately tiny monochrome preview.

I liked the idea of giving the Flipper a camera, as long as nobody expected it to become a serious photography device. This project sends a small preview over serial, adds a few useful controls, and saves captures to the Flipper's SD card.

Flipper Zero Camera Suite live preview
It's small, monochrome, and more fun because of it.

One project, two devices

The repository keeps the ESP32-CAM firmware under firmware/ and the Flipper app under fap/. The camera captures and prepares the image. The Flipper receives each row, draws the preview, and sends commands back.

I kept the connection between them simple. A camera wired to GPIO didn't need a general-purpose network protocol. A serial stream and a short list of commands did the job.

Getting an image across serial

The firmware uses a 230400-baud serial connection and a 128 by 128 grayscale frame. It can apply error-diffusion dithering, pack eight monochrome pixels into each byte, and send the image one row at a time.

Each row carries a small Y: header and its row number. The Flipper worker reads the stream into a buffer, checks the header, and rebuilds the image on screen. It keeps receiving while the app handles button input.

Commands go back as single characters. Opening the camera view starts the stream and applies the saved settings. From there, button presses can change controls without rebuilding the connection.

Just enough camera controls

The app has image adjustments for contrast, inversion, dithering, orientation, and flash. It also has a quick capture action. Those controls matter on a small monochrome display, where lighting and edge contrast decide whether an object is recognizable or just a blob.

The Flipper application uses scenes for its menu, camera view, guide, and settings. It saves orientation, dithering, flash, haptics, speaker, and LED preferences, so I don't have to set everything again on every launch.

Flipper Zero Camera Suite application interface
The preview, controls, and saved settings all live in the same app.

Wiring and installation

The serial connection crosses RX and TX between the boards and shares a ground. The repository has the exact wiring and camera module details. Check the module's power requirements before connecting anything.

The project includes a Windows flashing script and Arduino IDE instructions for the AI Thinker ESP32-CAM profile. Flash mode needs the board's IO0 boot connection. Normal use goes back to the runtime wiring.

The Flipper side installs the built camera_suite.fap in the GPIO applications folder on the MicroSD card. If the app opens but no image rows arrive, check the camera firmware, UART wiring, power, and baud rate separately. The menu can work perfectly while the camera does absolutely nothing.

Credit where it's due

This project builds on Z4urce's camera application. I also used leedave's FAP boilerplate while working through the Flipper app structure. Both saved me a lot of wandering around, and I appreciate them sharing it.

If you want to change the app, my development toolkit covers my editor workflow. To build it, use the camera repository so the firmware, app, and wiring instructions stay in sync.