UVC Camera B0261 displays only grayscale after serial number change on Linux host

Hi all, hoping someone can help me out with a UVC camera I’ve been using.

I have a UCTRONICS B0261 UVC camera (Sonix-based, USB 2.0 Camera, 0c45:6362) that I connect to a Linux host (Dell XPS13). It was working fine for a while but then somehow quit working.

What I did: I followed this Arducam doc to change the camera’s serial number:
https://www.arducam.com/docs/uvc-camera-module/modify-arducam-uvc-camera-serial-number/

After running the serial number change, the camera now only outputs grayscale images. No color at all. It still enumerates and I can get a video stream, but everything is black and white.

Any idea what’s going on? I was told I’d need a couple of files (ParamTableSetBurnerAP.exe and UVC_B0261_20220824.bin) to try and fix it, but I can’t find them anywhere — nothing seems to have come through when they were shared with me.

Happy to grab logs if useful. Thanks!

Hey, thanks for the detailed post.

A grayscale-only image right after changing the serial number is a pretty classic symptom for these Sonix modules — it almost always means the firmware wasn’t properly re-burned after the serial number/product name was written. Changing the serial basically requires you to re-flash the firmware afterward, otherwise the sensor config ends up in a weird state (which usually shows up as no color).

Before I go deeper — can you plug the camera in and share the kernel output? On your XPS13:

dmesg | tail -n 50

(right after plugging the camera in). I want to see how the UVC unit/controls are enumerating, because there’s usually a telltale sign there. Also let me know what software you’re using to view the stream (cheese, guvcview, ffmpeg, OpenCV, etc.).

Regarding the files — I’ve just re-sent them to you via private message since the earlier sends didn’t show up. Please check your messages and let me know if you still can’t see them.

Thanks, here’s the dmesg output right after plugging the camera in:

[ 52.033950] usb 1-6.4: new high-speed USB device number 8 using xhci_hcd
[ 52.259729] usb 1-6.4: New USB device found, idVendor=0c45, idProduct=6362, bcdDevice= 0.00
[ 52.259736] usb 1-6.4: New USB device strings: Mfr=2, Product=1, SerialNumber=0
[ 52.259739] usb 1-6.4: Product: USB 2.0 Camera
[ 52.259743] usb 1-6.4: Manufacturer: Sonix Technology Co., Ltd.
[ 52.261700] uvcvideo: Found UVC 1.00 device USB 2.0 Camera (0c45:6362)
[ 52.261840] uvcvideo: Failed to query (GET_INFO) UVC control 2 on unit 1: -32 (exp. 1).
[ 52.262240] uvcvideo: Failed to query (GET_INFO) UVC control 3 on unit 1: -32 (exp. 1).
[ 52.262717] uvcvideo: Failed to query (GET_INFO) UVC control 4 on unit 1: -32 (exp. 1).
[ 52.263162] uvcvideo: Failed to query (GET_INFO) UVC control 2 on unit 2: -32 (exp. 1).
[ 52.263591] uvcvideo: Failed to query (GET_INFO) UVC control 3 on unit 2: -32 (exp. 1).
[ 52.264056] uvcvideo: Failed to query (GET_INFO) UVC control 6 on unit 2: -32 (exp. 1).
[ 52.264507] uvcvideo: Failed to query (GET_INFO) UVC control 7 on unit 2: -32 (exp. 1).
[ 52.264951] uvcvideo: Failed to query (GET_INFO) UVC control 8 on unit 2: -32 (exp. 1).
[ 52.265371] uvcvideo: Failed to query (GET_INFO) UVC control 9 on unit 2: -32 (exp. 1).
[ 52.265777] uvcvideo: Failed to query (GET_INFO) UVC control 10 on unit 2: -32 (exp. 1).
[ 52.266242] uvcvideo: Failed to query (GET_INFO) UVC control 1 on unit 2: -32 (exp. 1).
[ 52.266716] uvcvideo: Failed to query (GET_INFO) UVC control 4 on unit 2: -32 (exp. 1).
[ 52.267161] uvcvideo: Failed to query (GET_INFO) UVC control 5 on unit 2: -32 (exp. 1).
[ 52.267567] uvcvideo: Failed to query (GET_INFO) UVC control 11 on unit 2: -32 (exp. 1).
[ 52.305615] input: USB 2.0 Camera: USB Camera as /devices/pci0000:00/0000:00:14.0/usb1/1-6/1-6.4/1-6.4:1.0/input/input26
[ 52.874092] uvcvideo: Failed to query (GET_DEF) UVC control 2 on unit 2: -32 (exp. 2).

Note SerialNumber=0 in the strings line, and all those Failed to query (GET_INFO) ... -32 errors on units 1 and 2. Not sure if that’s relevant.

I’m viewing with guvcview and OpenCV mostly.

Also — I still can’t see the files in my messages. No attachments show up at all for me. Is there another way you can share them?

Perfect, that log confirms what I suspected.

Those Failed to query (GET_INFO) UVC control ... -32 messages mean the camera isn’t responding properly to the UVC control queries, and combined with SerialNumber=0, the module’s parameter/firmware data is in a bad state. That’s why you only get grayscale — the color processing parameters that live in the burned firmware aren’t being applied.

Root cause: after changing the serial number (or product name), the camera firmware needs to be re-burned. If you don’t re-burn it, you end up with exactly this grayscale behavior. Every time you change the serial number or product name, you must go through the burn steps again.

So here’s the fix. You’ll need ParamTableSetBurnerAP.exe and the firmware UVC_B0261_20220824.bin.

Steps:

  1. Open ParamTableSetBurnerAP.exe, click the button ‘从设备中读取’ (I’ve circled this in red in the reference image below). You should see the camera info populate after clicking it.
  2. Click ‘浏览’ and select the UVC_B0261_20220824.bin file.
  3. Click ‘开始烧录’ and wait a while for the burn to finish.
  4. In Device Manager, uninstall the device, then re-plug the camera after modifying the serial number.
  5. Re-plug the camera and you should see the serial number updated (and color restored).

Reference images from the same doc:

Full instructions here:
https://www.arducam.com/docs/uvc-camera-module/modify-arducam-uvc-camera-serial-number/

And I’ve sent both files to you again via private message — please check if they come through this time.

I really appreciate the write-up, but I still can’t see the files. There’s nothing attached/showing up on my end at all — I’ve checked the messages and there’s no download or attachment anywhere.

Do you have another way to share ParamTableSetBurnerAP.exe and UVC_B0261_20220824.bin? Maybe a direct download link? This has happened a few times now — the files just never arrive.

Just to recap so we’re on the same page: UVC camera B0261, plugged into a Linux host (Dell XPS13), and after I changed the serial number using that Arducam doc, I only get grayscale images. I just need the burner tool and the firmware so I can re-burn it.

No problem — let’s skip attachments entirely.

I’ve uploaded both files and you can grab them from this Google Drive link instead:

https://drive.google.com/file/d/10TzjNzuGkSonz9B-fj5MfRdLiS9J9nAp/view?usp=share_link

That should include both ParamTableSetBurnerAP.exe and UVC_B0261_20220824.bin. Download them, then follow the burn steps from my previous post (read from device with ‘从设备中读取’, browse to the .bin with ‘浏览’, then ‘开始烧录’, uninstall the device, re-plug).

Let me know once you can open the link.

That worked, thank you! The link opens fine and I can see both files now — ParamTableSetBurnerAP.exe and UVC_B0261_20220824.bin.

I’ll go ahead and run through the burn steps and report back. Fingers crossed the color comes back.

Great, glad the link worked.

Just to wrap up the current state of this thread for anyone else hitting the same thing:

  • Symptom: B0261 UVC camera (Sonix, 0c45:6362) outputs only grayscale images after changing the serial number on a Linux host. dmesg shows SerialNumber=0 plus a stream of uvcvideo: Failed to query (GET_INFO) UVC control ... -32 on units 1 and 2.
  • Cause: the firmware wasn’t re-burned after the serial number/product name was written. The color/parameter data isn’t applied, so you get grayscale.
  • Fix/workaround: re-burn the firmware with ParamTableSetBurnerAP.exe + UVC_B0261_20220824.bin (read from device → browse to the .bin → start burn → uninstall device → re-plug). Note this has to be done every time you change the serial number or product name.
  • The files were eventually delivered via the Google Drive link above since attachments weren’t coming through.

Please post back once you’ve done the burn so we know whether the color is restored — if it’s still grayscale afterward, share the new dmesg output and we’ll dig in further.