Cinemate is a boilerplate cinema camera system for Raspberry Pi 5. Builds upon CinePi-raw, authored by Csaba Nagy for enabling 12 bit Cinema DNG recordings using off-the-shelf components.
Cinemate provides a minimal starting point that you can extend with your own controls and accessories.
The project combines a Python UI with a custom fork of cinepi-raw.
- Improved automatic dual-camera — two connected sensors are each detected and driven by their own cinepi-raw process. Frame capture is synchronized by libcamera (cam0 server, cam1 client).
- HDMI preview switching — new command
set previewcycles side-by-side preview → cam0 → cam1 → picture-in-picture. - Per-sensor recording — record both sensors or just the previewed one (
lock_dual_recordingcan be set in settings.json), or target sensors withrec cam0/rec cam1/rec both. Each sensor writes its own..._cam0/..._cam1clip folder.
- Cinemate now uses its own fork of libcamera.
- Cinemate now uses its own fork of the imx283 driver.
- 2 additional modes: 3840 x 2160 (4K UHD, native crop) and 2736 x 1538 (2.7K 16:9, binned).
- Cinemate now uses its own fork of the imx585 driver.
- Frame-rate phase lock — DNG timecode and frame capture is locked to the Pi's wall clock, making audio sync more accurate.
- Correct Pi 4 RAW — CSI2-packed frames decode correctly on Pi 4-family boards; raw packing (P/U) is chosen per Pi model automatically.
- Compiles on 2GB version of Raspberry Pi 4/5
- Camera model — set the camera model manually for each attached sensor.
- Storage / media — multi-drive RAW hot-swap with a standby drive and automatic promotion. Default format is exFAT.
- Boot / install — faster boot-to-preview on Pi 4/5 (about 10-15 seconds).
- IMX477 (official Raspberry Pi HQ camera)
- IMX296 (official Raspberry Pi GS camera)
- IMX283 (OneInchEye by Will Whang)
- IMX585 (Starlight Eye by Will Whang)

Apps change settings by updating Redis keys. CinePi-RAW listens for those updates and captures frames accordingly while Cinemate provides the camera user interface.
For a basic Cinemate setup you need:
- Raspberry Pi 4 or 5. The 2GB RAM version works with the prebuilt image, but 4GB is recommended if you plan to compile
cinepi-rawon the Pi. - Official HQ or GS camera module
- SSD drive such as a Samsung T7 formatted as
exFATorext4and labelledRAW - HDMI monitor or a phone/tablet connected to the Pi hotspot for preview
There are three options for installing Cinemate:
See the releases section for the preinstalled image and Quick Start Guide.
Start from a fresh Raspberry Pi OS Lite Bookworm image. SSH to the Pi (Terminal on macOS, PowerShell on Windows):
ssh pi@raspberrypi.localReplace pi with the username configured in Raspberry Pi Imager if you used a different user. If raspberrypi.local does not resolve, use the Pi's IP address instead:
ssh pi@<pi-ip-address>sudo apt update
sudo apt install -y git
git clone https://github.com/Tiramisioux/cinemate.git
cd cinemate
chmod +x cinemate-install.sh
./cinemate-install.shThe installer defaults to an imx477 on camera port cam0 and writes a stock-style managed /boot/firmware/config.txt section with camera options for IMX477, IMX296, IMX283, IMX585 color, and IMX585 mono. To install directly for another sensor, pass SENSOR_MODEL and CAM_PORT inline:
SENSOR_MODEL=imx296 CAM_PORT=cam0 ./cinemate-install.sh
SENSOR_MODEL=imx283 CAM_PORT=cam0 ./cinemate-install.sh
SENSOR_MODEL=imx585 CAM_PORT=cam0 ./cinemate-install.sh
SENSOR_MODEL=imx585_mono CAM_PORT=cam1 ./cinemate-install.shAfter installing, reboot the system and Cinemate should start automatically.
For the full manual install, configuration steps, and CLI reference, please see the documentation/manual installation steps.
GPIO buttons and switches, rotary encoders and oled display for controlling camera settings such as recording, iso etc. are configured in the ~/cinemate/src/settings.json file. On the Pi, type editsettings in the terminal to open this file.
Full manual installation instructions, configuration guides in the documentation.
Join the CinePi Discord for discussions and sharing builds.
The Cinemate stack is built on top of several open-source projects. Special thanks to all authors!
- CinePi-raw – Csaba Nagy
- IMX585 and IMX283 drivers – Will Whang
- libcamera – Ideas on board
- cpp-mjpeg-streamer – Nadjieb Mohammadi
- lgpio – Joan
- PiShrink - Drew Bonasera
Also thanks to Simon at Altcinecam for support and assistance!
Get your sensors and CFE Hats here: https://www.tindie.com/stores/will123321/