Hi all, I just got an Arducam ToFCamera and I’m trying to get it running on a Raspberry Pi 4 Model B. I’ve been following the Getting Started guide at Getting Started: Arducam ToF Camera for Raspberry Pi - Arducam Wiki but it always fails at step 4 - the /dev/video0 device node never gets created. Has anyone else run into this?
Welcome! Let’s gather a bit of info first. Can you tell me: which Pi model exactly, the ArducamDepthCamera Python package version, the arducam-tof-sdk-dev version, and what /dev/video* nodes currently show up on your system?
Sure. It’s a Raspberry Pi 4 Model B. ArducamDepthCamera is 0.0.10 and arducam-tof-sdk-dev is 0.0.10 arm64. The video nodes I see are /dev/video10, /dev/video11, /dev/video12, /dev/video13, /dev/video14, /dev/video15, /dev/video16, /dev/video18, /dev/video19, /dev/video20, /dev/video21, /dev/video22, /dev/video23 and /dev/video31. No /dev/video0 in that list.
Thanks. The missing /dev/video0 is suspicious. Before we touch the config, have you already gone through the checks on the troubleshooting page (Troubleshooting – Arducam ToF Camera - Arducam Wiki)? Also try running ./compile.sh and then preview_depth.py, and paste whatever errors come up.
I did run through the troubleshooting page, and I also ran ./compile.sh and preview_depth.py. Same failure every time. Here’s the output:
open WARNING Could not open device node /dev/video0. Please check for permissions.
initialization failed
requestBuffer WARNING TOFCamera: Fail to request buffer
Failed to start camera
VIDIOC_S_CTRL: Bad file descriptor
Got it. Let’s rule out a bad install. Can you run these two commands and share the output?
pip list | grep ArducamDepthCamera
dpkg -l | grep arducam-tof-sdk-dev
Both look correct:
pip list | grep ArducamDepthCamera → ArducamDepthCamera 0.0.10
dpkg -l | grep arducam-tof-sdk-dev → arducam-tof-sdk-dev 0.0.10 arm64 Driver development kit for arducam tof camera
One more check - run ls /dev/video* and paste the full listing so we can confirm whether video0 is really absent.
Here’s the full output:
ls /dev/video*
/dev/video10 /dev/video11 /dev/video12 /dev/video13 /dev/video14 /dev/video15 /dev/video16 /dev/video18 /dev/video19 /dev/video20 /dev/video21 /dev/video22 /dev/video23 /dev/video31
So yes, /dev/video0 is definitely not being created.
That confirms the root cause. The ToF camera relies on /dev/video0 being created through the correct device tree overlay. When it’s missing, you get exactly the errors you pasted: ‘Could not open device node /dev/video0’ and ‘Fail to request buffer’.
Edit /boot/config.txt and add this line:
dtoverlay=arducam-pivariety,media-controller=0
Also make sure automatic camera detection is disabled. Change:
camera_auto_detect=1
to:
camera_auto_detect=0
Then reboot the Pi.
Done - I added dtoverlay=arducam-pivariety,media-controller=0 to /boot/config.txt, changed camera_auto_detect=1 to camera_auto_detect=0, and rebooted. What should I do next?
Good. After the reboot, let’s collect a bug report so we can check the full state of the system. Run these commands:
wget -O arducam-camera-bug-report https://github.com/ketai-dhr/arducam-camera-bug-report/releases/download/tools/arducam-camera-bug-report
chmod +x ./arducam-camera-bug-report
./arducam-camera-bug-report
That will write arducam-bug-report.txt in the current directory - please attach it to your reply. While you’re at it, could you also post a few photos of how the camera is physically connected to the Pi?
Here’s the bug report - arducam-bug-report.txt is attached. And here are the connection photos:




Thanks, that gives us what we need for now. Quick recap: the issue was that /dev/video0 wasn’t being created, which is why the camera failed with ‘Could not open device node /dev/video0’ and ‘Fail to request buffer’. The workaround applied so far is adding dtoverlay=arducam-pivariety,media-controller=0 to /boot/config.txt, setting camera_auto_detect=0, and rebooting. I’m reviewing the bug report and the connection photos to confirm whether /dev/video0 now shows up and the camera initializes properly. I’ll follow up once I’ve gone through them.