Troubleshooting
Device Not Detected
Section titled “Device Not Detected”PIXY not connected
Section titled “PIXY not connected”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.
Permission denied on hidraw
Section titled “Permission denied on hidraw”Verify udev rules match vendor 328f and product 00c0 (PIXY) or 0118 (PIXY 2K):
# Check if the rules are loadedudevadm info /dev/hidraw0 | grep ID_VENDOR_ID
# Reload rules if neededsudo udevadm control --reload-rulessudo udevadm triggerRe-probe the device
Section titled “Re-probe the device”emeet-pixy probeThis forces a fresh scan of /sys/class/video4linux and /sys/class/hidraw.
Camera Commands Fail
Section titled “Camera Commands Fail”v4l2-ctl not found
Section titled “v4l2-ctl not found”# NixOS: provided by the module# Other distros:sudo apt install v4l-utils # Debian/Ubuntusudo dnf install v4l-utils # FedoraPTZ values seem wrong
Section titled “PTZ values seem wrong”Check the hardware limits:
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
Audio Not Switching
Section titled “Audio Not Switching”wpctl not found
Section titled “wpctl not found”# Check if PipeWire is runningwpctl statusIf wpctl is not in PATH, install wireplumber (NixOS module handles this).
PIXY source not found
Section titled “PIXY source not found”wpctl status | grep -i pixyIf the PIXY audio source doesn’t appear, the device may not have enumerated its audio interface. Try replugging.
Web UI Issues
Section titled “Web UI Issues”Camera in use
Section titled “Camera in use”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.
Preview not loading
Section titled “Preview not loading”Ensure ffmpeg is in PATH. The MJPEG stream uses ffmpeg to read from the video device:
which ffmpegState panel not updating
Section titled “State panel not updating”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).
Daemon Won’t Start
Section titled “Daemon Won’t Start”Configuration validation
Section titled “Configuration validation”Check for invalid configuration values:
EMEET_PIXYD_DEBUG=true emeet-pixydInvalid AutoMode or DefaultAudio values will prevent startup. The daemon logs the specific validation error.
Socket file exists
Section titled “Socket file exists”If the socket file at /run/emeet-pixyd/socket exists but the daemon isn’t running:
rm /run/emeet-pixyd/socketOr use the NixOS module which handles this via systemd.
Debounce Too Slow
Section titled “Debounce Too Slow”Reduce the debounce count or poll interval:
EMEET_PIXYD_DEBOUNCE_COUNT=1 EMEET_PIXYD_POLL_INTERVAL=1s emeet-pixydHotplug Not Working
Section titled “Hotplug Not Working”The daemon uses netlink uevents for hotplug detection. If unplugging/replugging the PIXY doesn’t trigger re-detection:
emeet-pixy probe # Manual re-probeCheck that the daemon has the necessary permissions to create netlink sockets (the NixOS module handles RestrictAddressFamilies).
Where to go next
Section titled “Where to go next”- Configuration — env vars and validation rules
- Installation — verify deps and udev rules
- Architecture Overview — understand the moving parts
- Related Tools — alternative and complementary tools
- Contributing — report a bug or open a PR