Hi everyone,
I have just finished the first version of a small camera project using an Arduino UNO Q, the Arduino® UNO™ Media Carrier, and a Sony IMX219 camera connected to CAMERA0.
The complete application runs on the Linux/MPU side using Arduino App Lab 0.10.0. No MCU code is used.
The WebUI allows manual adjustment of:
- exposure;
- analogue gain;
- full-resolution image capture (3280 × 2464).
The image is captured as RAW Bayer data and processed directly in Python. The application performs bilinear demosaicing, Gray World white balance, shadow correction, moderate contrast/sharpening, and finally generates a JPEG that is displayed in the WebUI.
The project also uses a custom App Lab camera brick with a dedicated container. The camera service communicates with the Linux camera pipeline through media-ctl and v4l2-ctl.
I tried to make the README quite detailed, especially for people who, like me, are discovering how the different parts of an App Lab application communicate with each other.
The project has been exported from App Lab, re-imported and tested successfully. I have therefore released this first stable version as v1.0.0.
GitHub repository:
Here is an outdoor test image captured and processed directly by the application:
Exposure: 1042 — Analogue gain: 49
This V1 intentionally uses manual exposure and analogue gain.
The next step will be a V2 where I would like to experiment with automatic exposure and analogue gain control, while keeping this V1 as a simple and stable reference.
Any comments or suggestions are welcome.



