Skip to content

Troubleshooting

Terminal window
lsusb | grep 328f
# Should show: Bus 001 Device 004: ID 328f:00c0 ... (or 328f:0118 on the PIXY 2K)

If not listed, check your USB connection. Try a different cable or port.

If lsusb shows a different 328f:* ID, you have another EMEET product — see Supported Devices: fixed EMEET webcams are recognized but intentionally not controlled, and unlisted PIXY-family variants can be onboarded via EMEET_PIXYD_EXTRA_PRODUCT_IDS.

Verify udev rules match vendor 328f and product 00c0 (PIXY) or 0118 (PIXY 2K):

Terminal window
# Check if the rules are loaded
udevadm info /dev/hidraw0 | grep ID_VENDOR_ID
# Reload rules if needed
sudo udevadm control --reload-rules
sudo udevadm trigger
Terminal window
emeet-pixy probe

This forces a fresh scan of /sys/class/video4linux and /sys/class/hidraw.

Terminal window
# NixOS: provided by the module
# Other distros:
sudo apt install v4l-utils # Debian/Ubuntu
sudo dnf install v4l-utils # Fedora

Check the hardware limits:

Terminal window
v4l2-ctl -d /dev/video0 --list-ctrls | grep -E 'pan|tilt|zoom'

Expected ranges:

  • pan_absolute: -540000 to 540000 (at 3600 units/degree = -150 to 150 degrees)
  • tilt_absolute: -324000 to 324000 (at 3600 units/degree = -90 to 90 degrees)
  • zoom_absolute: 100 to 150
Terminal window
# Check if PipeWire is running
wpctl status

If wpctl is not in PATH, install wireplumber (NixOS module handles this).

Terminal window
wpctl status | grep -i pixy

If the PIXY audio source doesn’t appear, the device may not have enumerated its audio interface. Try replugging.

If the web UI shows “Camera in use”, another process (e.g., OBS, another browser tab, or a call app) is holding /dev/video* open. The MJPEG stream can’t start until the device is released.

Ensure ffmpeg is in PATH. The MJPEG stream uses ffmpeg to read from the video device:

Terminal window
which ffmpeg

The UI uses SSE for live updates. If the panel isn’t updating, check that your browser allows SSE connections to localhost. DataStar automatically retries dropped connections — watch the connection indicator dot in the header (green = connected, yellow = connecting, red = disconnected).

Check for invalid configuration values:

Terminal window
EMEET_PIXYD_DEBUG=true emeet-pixyd

Invalid AutoMode or DefaultAudio values will prevent startup. The daemon logs the specific validation error.

If the socket file at /run/emeet-pixyd/socket exists but the daemon isn’t running:

Terminal window
rm /run/emeet-pixyd/socket

Or use the NixOS module which handles this via systemd.

Reduce the debounce count or poll interval:

Terminal window
EMEET_PIXYD_DEBOUNCE_COUNT=1 EMEET_PIXYD_POLL_INTERVAL=1s emeet-pixyd

The daemon uses netlink uevents for hotplug detection. If unplugging/replugging the PIXY doesn’t trigger re-detection:

Terminal window
emeet-pixy probe # Manual re-probe

Check that the daemon has the necessary permissions to create netlink sockets (the NixOS module handles RestrictAddressFamilies).