
After quite a bit of development and testing, I have released the first version of the ESP32 Timelapse Box.
The goal is to let a Snapmaker U1 or another Klipper printer control an external camera for layer-by-layer timelapse photography, without requiring a PC-side listener during the print.
The complete workflow has now been tested with a Snapmaker U1, ESP32-S3, and Sony ZV-E10.
How It Works
SnapOrca generates a capture command for each layer
→ Klipper runs the ESP_TIMELAPSE_SHOT macro
→ ESP32 reads the event from Moonraker over Wi-Fi
→ ESP32 triggers the camera over Bluetooth LE
USB is only needed to power and configure the ESP32. Once setup is complete, no computer-side listener is required while printing.
Current Features
- Active Sony camera pairing from an ESP32-S3
- Automatic reconnection to a previously paired camera
- Klipper event monitoring through Moonraker
- Chinese/English browser configurator
- Chrome/Edge Web Serial setup without Electron
- Dry-run, armed, and camera-ready safety states
- Traditional and Smooth timelapse modes
- U1 native timelapse and external-camera capture can run together
- Compatibility with earlier ESP32-C3/CyberBrick shutter hardware
- Klipper macros, firmware, configurator, and documentation included
- Project source licensed under GPLv3
Capture Modes
Traditional Mode
After each completed layer, the slicer waits for motion to finish and triggers one frame. The toolhead is not moved to a dedicated parking position, so it may appear in the image.
Smooth Mode
After completing each layer, the printer:
- Finishes the model and stabilization-tower work
- Raises the Z axis
- Moves the toolhead to a fixed parking position
- Waits for all motion to finish
- Triggers the external camera
- Returns to the model at a safe clearance height
Smooth mode generates a real stabilization tower for both single-material and multi-material prints. It requires additional bed space, filament, and print time.
Real-World Test Results
I completed a 135-layer, multi-material Smooth timelapse print:
- Klipper generated 135 capture events
- The Sony camera saved 135 frames
- The toolhead was parked away from the model for each frame
- Stabilization-tower, tool-change, and final-layer cleanup ordering worked correctly
- U1 native timelapse and Sony external-camera capture ran simultaneously
- The ESP32 restored its Sony connection after a power cycle
- Automatic reconnection did not accidentally trigger the shutter
A finished timelapse video and photos of the U1, ESP32, and camera setup can be inserted here.
Download and Documentation
The main repository contains the firmware source, release downloads, Klipper macro, browser configurator, complete English and Chinese guides, troubleshooting information, and the experimental multi-brand camera probe:
The experimental SnapOrca 2.3.5 build with Traditional and Smooth timelapse integration is available here:
Current Limitations
This is an engineering preview and is not an official Snapmaker feature.
The Sony ZV-E10 is currently the only camera that has completed the full hardware-validation process. Other Sony cameras exposing the same BLE remote-control service may work, but they still require real-device testing.
The repository also contains separate experimental community-test firmware for Canon, Fujifilm, Nikon, and Ricoh cameras. It currently supports manual scanning, pairing, and shutter testing only. Klipper automation is not yet enabled for these cameras.
Smooth mode requires space for its stabilization tower. Large models that fill most of the build plate may need to be repositioned or scaled. Traditional mode remains available when there is not enough room for the tower.
Testers Wanted
The project currently needs feedback for:
- Other Sony camera models
- SnapBridge cameras such as the Nikon D850
- Canon, Fujifilm, and Ricoh Bluetooth cameras
- Klipper printers other than the U1
- Windows and macOS browser-configuration workflows
When reporting results, please include the camera model, ESP32 model, printer model, firmware version, and a sanitized diagnostic report. Do not publish Wi-Fi passwords, private IP addresses, or Bluetooth device addresses.
The project is still under active development. Testing, issue reports, protocol research, and code contributions are welcome.