# Camera problems

**URL:** <https://community.particle.io/t/camera-problems/69733>\
**Category:** Tachyon\
**Created:** [June 25, 2025, 12:26am UTC](https://community.particle.io/t/camera-problems/69733 "2025-06-25T00:26:22Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![NetApex](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/netapex/32/29658_2.png) [@NetApex](https://community.particle.io/u/NetApex)\
**Post date:** [June 25, 2025, 12:26am UTC](https://community.particle.io/t/camera-problems/69733/1 "2025-06-25T00:26:23Z")

</div>

Hello again! (I really need to stop in here when things are good so I am not just the guy who has problems!!) Right now I am having an issue getting a camera to play nice. I picked up an Arducam IMX519 ([Amazon.com: Arducam for Raspberry Pi Camera 16MP IMX519 Camera Module with 140°(D) Wide Angle M12 Lens for Raspberry Pi and OpenHD : Electronics](https://www.amazon.com/dp/B0C53BBMLG)) and have been kicking it around for a bit with no luck. I ran the command to capture a still image and received an error. The command I tried was :

```auto
gst-launch-1.0 qtiqmmfsrc camera=0 num-buffers=150 ! videoconvert ! jpegenc ! filesink location=test_csi1.jpg

```

The error received was this:

```auto
gbm_create_device(192): Info: backend name is: msm_drm
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
ERROR: from element /GstPipeline:pipeline0/GstQmmfSrc:qmmfsrc0: Camera service has died !
Additional debug info:
/Tachyon/build-qti-distro-ubuntu-fullstack-debug/tmp-glibc/work/aarch64-oe-linux/gstreamer1.0-plugins-qti-oss-qmmfsrc/1.0-r0/gst-plugin-qmmfsrc/qmmf_source.c(522): qmmfsrc_event_callback (): /GstPipeline:pipeline0/GstQmmfSrc:qmmfsrc0
Execution ended after 0:00:20.497937411
Setting pipeline to NULL ...
Freeing pipeline ...

```

Any thoughts, ideas, or sad faces appreciated.

---

<div class="post-metadata">

**Author:** ![sbrust](https://avatars.discourse-cdn.com/v4/letter/s/bbe5ce/32.png) [@sbrust](https://community.particle.io/u/sbrust)\
**Post date:** [June 25, 2025, 7:02pm UTC](https://community.particle.io/t/camera-problems/69733/2 "2025-06-25T19:02:22Z")

</div>

Hi @NetApex !

Appreciate you giving the camera a try! I have a [very similar camera](https://www.amazon.com/dp/B0B3XBQM9Z) that does work. It looks like the one you have just has a wide angle lens, so hopefully the rest of the hardware works the same. Lets check the obvious stuff first.

1. Are you using the 22 pin cable [as shown](https://developer.particle.io/tachyon/device-details/cameras#hardware-setup) in the camera setup docs? I noticed the camera you linked only ships with the 15 pin 1.0 mm pitch cable. This connector only has 2 CSI lanes and wont work with tachyon. You need the 22 pin 0.5 mm pitch cable with all 4 lanes. I have a [set of these](https://www.amazon.com/Arducam-Raspberry-Camera-Ribbon-Extension/dp/B07SM6JTTM) just to make sure I have a cable that will work with any SBC.
2. Are you using the `CSI1` slot? You can use the `DSI/CSI2` slot, but will need to [configure the port for CSI operation first](https://developer.particle.io/tachyon/device-details/cameras#dsicsi-configuration)
3. Before launching the gst pipeline, you will need to do the following:

```auto
export XDG_RUNTIME_DIR=/run/user/root

```

I noticed this wasnt explicit in the docs, I will make a note to add it!  
Additionally, if you do not want to run the pipeline under `root`/ `sudo`, you can add your user to the `video` group

```auto
$ sudo usermod -a -G video particle

```

(ill add this to the docs as well).

As the `particle` user in the `video` group, I can run the following pipeline (it will run continuously, so control-c to interrupt it and close the pipeline) and record still images:

```auto
particle@tachyon-fd6e0b17:~$ gst-launch-1.0 -e qtiqmmfsrc camera=0 name=qmmf \
> ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1 \
> ! jpegenc \
> ! multifilesink location=/home/particle/snapshot.jpg
gbm_create_device(192): Info: backend name is: msm_drm
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
^Chandling interrupt.
Interrupt: Stopping pipeline ...
EOS on shutdown enabled -- Forcing EOS on the pipeline
Waiting for EOS...
Got EOS from element "pipeline0".
EOS received - stopping pipeline...
Execution ended after 0:00:07.310100969
Setting pipeline to NULL ...
Freeing pipeline ...

```

I can run your pipeline, but I think the missing video encoding parameters just result in a blank image

```auto
gst-launch-1.0 qtiqmmfsrc camera=0 num-buffers=150 ! videoconvert ! jpegenc ! filesink location=test_csi1.jpg
gbm_create_device(192): Info: backend name is: msm_drm
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
^Chandling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 0:00:52.012122961
Setting pipeline to NULL ...
Freeing pipeline ...

```

Can you try with explicit video format parameters like in the example pipeline? Once you can confirm the hardware is working, I would experiment with different pipeline parameters.

The last comment ill make is about the specific error

```auto
ERROR: from element /GstPipeline:pipeline0/GstQmmfSrc:qmmfsrc0: Camera service has died !

```

You can check and restart the camera service via

```auto
particle@tachyon-fd6e0b17:~$ systemctl status qmmf-server.service
● qmmf-server.service - QMMF Server Service
     Loaded: loaded (/usr/bin/qmmf-server; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2024-06-18 04:29:47 CST; 1 years 0 months ago
   Main PID: 3301 (C3-0-Handler)
      Tasks: 19 (limit: 5763)
     Memory: 333.6M
     CGroup: /system.slice/qmmf-server.service
             └─3301 /usr/bin/qmmf-server

Warning: some journal files were not opened due to insufficient permissions.

```

It should automatically restart if it crashes, but just in case you can manually restart it via

```auto
$ sudo systemctl restart qmmf-server.service

```

Ill add these notes to the [caveats](https://developer.particle.io/tachyon/device-details/cameras#notes-and-caveats) section as well.

so tl;dr

- Check the cable / CSI connector
- Run the `EXPORT` command above before using the pipeline + run as root or in `video` group
- Try the example pipeline to see if the hardware works at all, then experiment with extra parameters
- Manually check/restart the camera service if needed

Let me know how things go!

---

<div class="post-metadata">

**Author:** ![NetApex](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/netapex/32/29658_2.png) [@NetApex](https://community.particle.io/u/NetApex)\
**Post date:** [June 25, 2025, 10:27pm UTC](https://community.particle.io/t/camera-problems/69733/3 "2025-06-25T22:27:25Z")

</div>

Hello sbrust, thanks for the reply. Ok let's go through this!

1. Yes I am using the 22 pin cable (which even though it specifically said would not be included, was actually included in the box lol. I had a spare anyway, so I guess I still have a spare for later.)
2. I am also using the CSI slot. I am hoping to need a LOT more of these, and wanted the path of least resistance. One less bit of code that has to be run means one less chance of something being forgotten. Plus who knows, I might need to someday add a screen.
3. This was something I needed to do so thank you for that part!!

Right now I am still running everything as root. I will add a user once I get everything working... and see if I break something doing that by forgetting a permission somewhere.

When I run the example, things seem to be going well. I hit CTRL-C and I get

```auto
EOS on shutdown enabled -- Forcing EOS on the pipeline

```

(I then went out to grab food and came back to the same status.)

As for the error about the camera service. It does start back up each time, but I think the dying might have been caused by the lack of the export command earlier? (Just spitballing, no facts to back it up) It hasn't happened since though so that's my logic.

---

<div class="post-metadata">

**Author:** ![sbrust](https://avatars.discourse-cdn.com/v4/letter/s/bbe5ce/32.png) [@sbrust](https://community.particle.io/u/sbrust)\
**Post date:** [June 26, 2025, 4:51pm UTC](https://community.particle.io/t/camera-problems/69733/4 "2025-06-26T16:51:04Z")

</div>

> When I run the example, things seem to be going well. I hit CTRL-C and I get
> 
> ```auto
> EOS on shutdown enabled -- Forcing EOS on the pipeline
> 
> ```
> 
> (I then went out to grab food and came back to the same status.)

To be clear, the pipeline did not exit and things hung at that point?  
Was there a file created on disk where you specified? Just curious if the hardware captured anything.

---

<div class="post-metadata">

**Author:** ![NetApex](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/netapex/32/29658_2.png) [@NetApex](https://community.particle.io/u/NetApex)\
**Post date:** [June 26, 2025, 8:50pm UTC](https://community.particle.io/t/camera-problems/69733/5 "2025-06-26T20:50:53Z")

</div>

I had to hit control C again to get anything to happen which stopped the process and it then created a byte file.

---

<div class="post-metadata">

**Author:** ![sbrust](https://avatars.discourse-cdn.com/v4/letter/s/bbe5ce/32.png) [@sbrust](https://community.particle.io/u/sbrust)\
**Post date:** [June 26, 2025, 10:39pm UTC](https://community.particle.io/t/camera-problems/69733/6 "2025-06-26T22:39:58Z")

</div>

Can you share the exact pipeline command you are running? Did it create an actual image file?  
Ill get the same camera and see if I can reproduce the problem.

---

<div class="post-metadata">

**Author:** ![NetApex](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/netapex/32/29658_2.png) [@NetApex](https://community.particle.io/u/NetApex)\
**Post date:** [June 26, 2025, 11:20pm UTC](https://community.particle.io/t/camera-problems/69733/7 "2025-06-26T23:20:29Z")

</div>

Sure thing!

```auto
gst-launch-1.0 -e qtiqmmfsrc camera=0 name=qmmf ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1 ! jpegenc ! multifilesink location=snapshot.jpg

```

Which this time lead to :

 ![image](https://us1.discourse-cdn.com/flex026/uploads/particle/original/3X/1/a/1ab363e5a4120cc29c36206c8a609767b222dd2d.png)

So I guess that it still does die from time to time. Anyway, once I got to the waiting for the EOS again it hung up so I had to control-c. That brought up the critical error of it trying to stop while in a paused state instead of a null state (which makes sense), so I had to control-c again to get out of that. When I break things, I break them good it seems. This time, it didn't create any file.

---

<div class="post-metadata">

**Author:** ![sbrust](https://avatars.discourse-cdn.com/v4/letter/s/bbe5ce/32.png) [@sbrust](https://community.particle.io/u/sbrust)\
**Post date:** [June 27, 2025, 11:23pm UTC](https://community.particle.io/t/camera-problems/69733/8 "2025-06-27T23:23:35Z")

</div>

Thanks, I will test out the same hardware when I receive it and see if I can reproduce the problem

---

<div class="post-metadata">

**Author:** ![NetApex](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/netapex/32/29658_2.png) [@NetApex](https://community.particle.io/u/NetApex)\
**Post date:** [June 28, 2025, 12:41am UTC](https://community.particle.io/t/camera-problems/69733/9 "2025-06-28T00:41:00Z")

</div>

I really hope it is just something dumb that I am doing wrong.

---

<div class="post-metadata">

**Author:** ![sbrust](https://avatars.discourse-cdn.com/v4/letter/s/bbe5ce/32.png) [@sbrust](https://community.particle.io/u/sbrust)\
**Post date:** [July 2, 2025, 3:04pm UTC](https://community.particle.io/t/camera-problems/69733/10 "2025-07-02T15:04:13Z")

</div>

Apologies for the delay, it took a while for the camera to arrive.  
I tested the hardware and I see the same thing as you: the pipeline hangs when interrupted and no image file is written. So it seems something is different with this camera compared to other IMX 519 cameras. We will have to debug this a little bit and see whats going on.

I know its not ideal to buy a new camera, but [this](https://www.amazon.com/dp/B0B3XBQM9Z) camera does work if you need to get something working right now while we investigate.

---

<div class="post-metadata">

**Author:** ![NetApex](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/netapex/32/29658_2.png) [@NetApex](https://community.particle.io/u/NetApex)\
**Post date:** [July 2, 2025, 3:24pm UTC](https://community.particle.io/t/camera-problems/69733/11 "2025-07-02T15:24:27Z")

</div>

I appreciate you taking the time to test it. I'll grab the other one for now just so I can move forward. I'm glad that I could be helpful in beta testing (Sorry to bring up problems though)

---

<div class="post-metadata">

**Author:** ![NetApex](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/netapex/32/29658_2.png) [@NetApex](https://community.particle.io/u/NetApex)\
**Post date:** [July 4, 2025, 1:32am UTC](https://community.particle.io/t/camera-problems/69733/12 "2025-07-04T01:32:20Z")

</div>

I received the new camera and wouldn't you know it... running the command you have above `gst-launch-1.0 -e qtiqmmfsrc camera=0 name=qmmf ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1 ! jpegenc ! multifilesink location=test_image.jpg `  
and it too hung stopping the pipeline. I am starting to think I am camera cursed.

---

<div class="post-metadata">

**Author:** ![sbrust](https://avatars.discourse-cdn.com/v4/letter/s/bbe5ce/32.png) [@sbrust](https://community.particle.io/u/sbrust)\
**Post date:** [July 9, 2025, 6:32pm UTC](https://community.particle.io/t/camera-problems/69733/13 "2025-07-09T18:32:09Z")

</div>

Apologies for the delays over the US holiday.

After talking with our hardware team, the issue may be with the CSI cable itself. We may be out of tolerances with the PHY on the SG560D so camera behavior may be unreliable. Ill share any new developments as soon as I get them, sorry for all the trouble!

---

<div class="post-metadata">

**Author:** ![NetApex](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/netapex/32/29658_2.png) [@NetApex](https://community.particle.io/u/NetApex)\
**Post date:** [July 28, 2025, 12:19pm UTC](https://community.particle.io/t/camera-problems/69733/14 "2025-07-28T12:19:10Z")

</div>

Just wanted to check in and see if there has been any update to this.

---

<div class="post-metadata">

**Author:** ![mrlambchop](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/mrlambchop/32/30767_2.png) [@mrlambchop](https://community.particle.io/u/mrlambchop)\
**Post date:** [July 28, 2025, 10:37pm UTC](https://community.particle.io/t/camera-problems/69733/15 "2025-07-28T22:37:12Z")

</div>

Hey NetApex!

The camera phy on Tachyon is CSI compliant, but would you know it, the cable and the camera all play into the equation and we found that the cable that ships with the Pi cameras is in fact, a Pi camera. So we had to make our own cable with Arducam, which works well.

If you can email [Kent.mok@particle.io](mailto:Kent.mok@particle.io) with your address, we'll send you one for testing.

Thanks!

Nick.

---

<div class="post-metadata">

**Author:** ![Perky](https://avatars.discourse-cdn.com/v4/letter/p/3da27b/32.png) [@Perky](https://community.particle.io/u/Perky)\
**Post date:** [August 2, 2025, 7:12am UTC](https://community.particle.io/t/camera-problems/69733/16 "2025-08-02T07:12:48Z")

</div>

OK so I now have the Arducam IMX519 Autofocus camera which came with two cables, 15/22 and works fine with a RPi4 and mostly with Tachyon. Only thing is I cannot get it to auto focus, I can control everything except that and ignores focus-mode command! Any idea? (RPi4 works perfectly so not the camera auto focusing system).  
Also couldn’t get any hardware encode/decode working as per the info in [Cameras | Particle Developer](https://developer.particle.io/tachyon/device-details/cameras#-supported-cameras)

---

<div class="post-metadata">

**Author:** ![zpm1066](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/zpm1066/32/27146_2.png) [@zpm1066](https://community.particle.io/u/zpm1066)\
**Post date:** [August 2, 2025, 4:39pm UTC](https://community.particle.io/t/camera-problems/69733/17 "2025-08-02T16:39:00Z")

</div>

@Perky, Is this the camera you’re using?

[Arducam IMX519 Autofocus](https://thepihut.com/products/arducam-imx519-autofocus-camera-module-for-raspberry-pi)

---

<div class="post-metadata">

**Author:** ![Stogie](https://avatars.discourse-cdn.com/v4/letter/s/278dde/32.png) [@Stogie](https://community.particle.io/u/Stogie)\
**Post date:** [August 2, 2025, 5:10pm UTC](https://community.particle.io/t/camera-problems/69733/18 "2025-08-02T17:10:07Z")

</div>

@Perky @zpm1066 I’m in the same boat. That’s the camera I have. This works:

```auto
gst-launch-1.0 -e qtiqmmfsrc camera=0 name=qmmf \
! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1 \
! jpegenc \
! multifilesink location=/home/particle/snapshot.jpg

```

This works:

```auto
gst-launch-1.0 -e qtiqmmfsrc camera=0 name=qmmf \
! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1 \
! qtic2venc ! h264parse ! mp4mux ! queue \
! filesink location=/home/particle/video_snapshot.mp4

```

This fails:

```auto
gst-launch-1.0 \
v4l2src device=/dev/video0 ! video/x-raw,width=1280,height=720,format=MJPG ! \
v4l2h264enc ! h264parse ! v4l2h264dec ! autovideosink

```

(edit:)

Error is:

```auto
WARNING: erroneous pipeline: could not link v4l2src0 to v4l2h264enc0, neither element can handle caps video/x-raw, width=(int)1280, height=(int)720, format=(string)MJPG

```

Now, I’ve tried a bunch of different caps, such as NV12 instead of MJPG, 1920x1080 instead of 1280x720, and devices /dev/video32 and /dev/video33 instead, but it’s always the same error.

---

<div class="post-metadata">

**Author:** ![terracode](https://avatars.discourse-cdn.com/v4/letter/t/258eb7/32.png) [@terracode](https://community.particle.io/u/terracode)\
**Post date:** [August 2, 2025, 10:12pm UTC](https://community.particle.io/t/camera-problems/69733/19 "2025-08-02T22:12:40Z")

</div>

I have an RPi PiCam v2 I was planning on hooking up but it appears from the thread I cannot use the same camera cable as RPi 4. I ordered the 22 pin to 15 pin FPC cable to connect to Tachyon. Excited to get it to work.

Edit: pays to read the Tachyon docs. Looks like I cannot use my RPi cam2 or older Arducam. Bummer. Cables on both are incompatible as they are not the 22 pin, 0.5mm pitch. Bummer that I am finding that Tachyon isn't as RPi accessory compatible as I thought.

---

<div class="post-metadata">

**Author:** ![Perky](https://avatars.discourse-cdn.com/v4/letter/p/3da27b/32.png) [@Perky](https://community.particle.io/u/Perky)\
**Post date:** [August 2, 2025, 11:09pm UTC](https://community.particle.io/t/camera-problems/69733/20 "2025-08-02T23:09:19Z")

</div>

Yep that’s the one. Same one as the Tachyon site says is compatible and in their pics!

[Next page](https://community.particle.io/t/camera-problems/69733.md?page=2)
