Hi, I’m hitting what looks like a firmware problem with my Arducam setup and could use some help.
Hardware: Raspberry Pi 4 with the SKU #B0347R HAT board.
OS: Bullseye (Debian 11), GNU bash version 5.1.4(1).
Every time I fire up the camera I get this error:
Embeded data buffer parsing failed
I also ran into a V4L2 error message along the way (attached). Is there updated firmware or a fix for this? I remember there were other solutions mentioned before - hoping they’ve been updated by now. Thanks.
Thanks for the report. Let me clear up the error first, then walk you through the updated procedure.
What’s happening: after the HAT image synthesis, the embedded data gets shielded, but it does NOT affect the drawing at all. So the ‘Embeded data buffer parsing failed’ message can be safely ignored for now. We’ll be modifying the FPGA firmware later to release the embedded data.
In the meantime, please use this updated install/removal procedure:
This replaces the older firmware install instructions from earlier - there were other solutions before, and this is the updated one. I’ve also sent you the firmware package through private message, so please check your messages and try the update.
OK, retried with the new procedure on a fresh RPi4 install - still getting the same ERROR: ‘Embeded data buffer parsing failed’. The V4L2 error is still there too (attached).
I have a bunch of questions, sorry for dumping them all at once:
How do I get proportioned images when using libcamera? With arducamstill I can do ‘arducamstill -t 0 -m 1’, which changes ‘mode: 0, width: 4056, height: 3040’ into ‘mode: 1, width: 8112, height: 3040’. I’d like the same effect with libcamera - did I understand my own request correctly there?
I can’t find a ‘camera enable’ option in the Raspberry Pi 4 interface configuration menu. Is the legacy system no longer relevant with Bullseye OS? Should I just use libcamera instead? How do I test the camera display? Is ‘raspistill’ still relevant?
How do I display the images of the two cameras on the screen? And how do I test both cameras?
Can I use longer FFC cables (e.g. 500mm) instead of the 152mm FFC cables supplied with the SKU #B0347R kit?
Could I get the mechanical 3D STEP file of the HAT board of the SKU #B0347R kit?
When is the FPGA firmware modification planned?
What I’ve tried so far:
RPi4 new installation retry → same ERROR ‘Embeded data buffer parsing failed’
At one point I killed the V4L2 error and the stereo camera images did show on the screen
Using libcamera-Hello, images display for just a few seconds then the ERROR ‘Embeded data buffer parsing failed’ comes back
Sent you the hardware connection status and version number you asked for
Also, the docs here → Redirecting... tell me to run the official raspistill native command, which conflicts with what you said about raspistill no longer being useful. Which one is right?
Lots to unpack - let me start with the proportioned image question since that’s the most involved.
The --width and --height settings are the resolution at which the image will be SAVED. The system will crop at the resolution you set, looking for the closest one supported by the camera.
If you want the effect on the preview, set both --viewfinder-width and --viewfinder-height at the same time. And I’d recommend using libcamera-still - it’s the closest thing to arducamstill and has been upgraded on top of it.
Key point: the preview resolution you want to control is set via --viewfinder-width and --viewfinder-height (used together), whereas --width/–height control the saved image resolution and cause cropping. Give that a try and let me know how it looks.
Tried ‘libcamera-still -t 0 --viewfinder-width 1920 --viewfinder-height 1080’ but it doesn’t work. What can be wrong?
My hypothesis: the ‘viewfinder’ crops the image when changing the display output resolution, but it does NOT change the camera image input size. Does that sound right?
Where I’m at overall:
RPi4 new installation retry → same ERROR ‘Embeded data buffer parsing failed’
V4L2 error message still present (attached)
Killed the V4L2 bug once and got the stereo camera images on screen
Using libcamera-Hello, images display for a few seconds then ERROR ‘Embeded data buffer parsing failed’
Tried libcamera-still with the viewfinder parameters - doesn’t work
Still no ‘camera enable’ option in the RPi4 config menu
Still waiting on: the 3D STEP file of the HAT board, whether 500mm FFC cables are OK vs the 152mm ones supplied, and when the FPGA firmware modification is planned. And the docs conflict about raspistill (Redirecting...) vs your advice that it’s no longer useful.
Env: Raspberry Pi 4, Bullseye (Debian 11), GNU bash 5.1.4(1), SKU #B0347R HAT board.
Please show a screenshot of the error so I can diagnose it further. I’ve also sent the mechanical 3D STEP file for the HAT board to you via private message - check your messages.
On the cropping/scaling: this is an IMX519 image, and at different resolutions different processing is done. If you set a resolution other than our resolution, libcamera will crop.
That lines up with what you observed - the viewfinder crops the display output rather than changing the camera input size.
So: send over a screenshot of the error, and refer to the IMX519 resolution image for the crop/scale behaviour. Setting a non-native resolution causes libcamera to crop.
To be clear, my aim is NOT to crop or scale the outputted image. My aim is to see squares when the camera sees squares - not rectangles - and circles when the camera sees circles - not ellipses. That is still not the case, as you can see in the attached jpg.
How do I change the ‘camera inputted’ image? I want to do the equivalent of ‘arducamstill -t 0 -m 1’, which changes ‘mode: 0, width: 4056, height: 3040’ into ‘mode: 1, width: 8112, height: 3040’.
I set --viewfinder-width and --viewfinder-height but the image is still distorted (squares appear as rectangles, circles as ellipses).
Also still open from before: the FFC cable question (500mm vs the 152mm ones), the 3D STEP file, and when the FPGA firmware modification is planned.
Env: Raspberry Pi 4, Bullseye (Debian 11), GNU bash 5.1.4(1), SKU #B0347R HAT board.
Thanks for the screenshot. Here’s where we stand on each point:
‘Embeded data buffer parsing failed’ - as explained earlier, this is expected after the HAT image synthesis. The embedded data gets shielded, but it does not affect the drawing, so it can be ignored for now until we modify the FPGA firmware to release the embedded data.
Proportioned images with libcamera - --width/–height control the saved resolution and crop to the closest supported resolution, while --viewfinder-width/–viewfinder-height (used together) control the preview.
The distortion you’re describing (squares → rectangles, circles → ellipses) is the IMX519 crop/scale behaviour. Setting a resolution other than the native one makes libcamera crop rather than change the actual camera input size, so there isn’t a clean libcamera equivalent of ‘arducamstill -m 1’ yet. This part is still unresolved on our side.
The mechanical 3D STEP file for the HAT board has been sent to you via private message. I’ll follow up separately on the 500mm FFC cable question.
Current conclusion/workaround: treat the embedded data error as harmless until the FPGA firmware update is released, and use libcamera-still with matching --viewfinder-width/–viewfinder-height to control the preview. For the proportioned-image behaviour you want, we don’t have a libcamera path yet - that needs the FPGA firmware modification we’re planning. I’ll update this thread when that firmware is out.