Troubleshooting
Start with the log. %LOCALAPPDATA%\uncoil\uncoild.log records every device opened or lost, display state
changes and config reloads, with a Unix timestamp on each line:
Get-Content "$env:LOCALAPPDATA\uncoil\uncoild.log" -Tail 30%LOCALAPPDATA%\uncoil\status.json shows what is running right now: each device’s fps, busy retries and
errors.
Nothing lights up
Section titled “Nothing lights up”- Is it running?
Get-Process uncoild. If not,Start-ScheduledTask uncoil, or run%ProgramFiles%\uncoil\uncoild.exedirectly to rule out the task. - Is something else holding the devices? Synapse, OpenRGB, SignalRGB or another lighting app driving the
same Razer device will fight uncoil for it. Quit them. uncoil looks for Synapse, Razer’s Chroma SDK
services, OpenRGB and SignalRGB itself: the app shows a notice,
uncoil statusprints it, and the log says… is running and may fight uncoil over the devices. - Is the device supported? Only the listed devices, supported and experimental, are
driven. A missing line like
opened Razer Basilisk V3 Pro (00AA, wired)in the log means uncoil didn’t find a matching USB endpoint. A Razer device uncoil has no file for is logged once by product ID and listed byuncoil status; that is a good start for a device support request. - Is the effect
off, orbrightness0? Check%APPDATA%\uncoil\config.json.
Keyboard lighting froze on one frame
Section titled “Keyboard lighting froze on one frame”Two firmware quirks on the BlackWidow V4 Pro 75% cause exactly this, and uncoil works around both:
- Re-sending the custom-frame effect command every frame freezes the keyboard on the first frame. uncoil sends it once per connection.
- If frame rows are streamed without reading each reply, the keyboard silently stops applying them after a while, even though every status says “ok”. uncoil reads every reply for this keyboard.
If you see a freeze anyway:
- Make sure no other program is also writing to the keyboard (another lighting app, a leftover Synapse
process, an OpenRGB of your own with its Razer devices on). uncoil’s notice about other programs, in the
app or
uncoil status, names the ones it recognises. - Restart the task:
Stop-ScheduledTask uncoil; Start-ScheduledTask uncoil. - Unplug and replug the keyboard; uncoil picks it up again within 5 seconds.
A growing errors count for the device in status.json points at the USB connection (hub, front-panel port,
cable) rather than uncoil.
The dial scrolls instead of changing volume
Section titled “The dial scrolls instead of changing volume”The keyboard is in driver mode, where the host is expected to handle some keys. Synapse puts devices in driver mode, and if it is killed rather than quit it never switches them back; the dial then scrolls and the media keys go dead until the keyboard is power-cycled.
uncoil switches every device it drives back to normal mode when it connects, so this normally fixes itself as soon as uncoild starts. If it doesn’t:
- Check Synapse really is gone: no
Razerprocesses in Task Manager. - Unplug the keyboard and plug it back in. That always clears driver mode, with or without uncoil.
The same applies to Fn shortcuts that stopped working: in normal mode the firmware runs them itself.
iCUE, OpenRGB and SignalRGB
Section titled “iCUE, OpenRGB and SignalRGB”- Razer devices: let one program drive them. uncoil talks to them directly over HID; two programs writing frames at once looks like flicker or a freeze.
- “another program is talking to … right now”: uncoil shares a device lock with OpenRGB (and, apparently, Razer’s software) and waits at most 25 ms for it. A command that can’t get it in two tries fails with this message; try again, or quit the other program. Lighting frames that can’t get it are skipped, so heavy contention shows as stutter.
- OpenRGB: off by default. Set
openrgb.mode(or use the app’s Settings page) and install with-OpenRgb. Inhardwaremode the uncoil-openrgb task runs OpenRGB once at sign-in to put the devices you listed inopenrgb.deviceson their own hardware modes, then OpenRGB exits. Inlivemode it keeps OpenRGB running as uncoil’s SDK server on127.0.0.1, with every Razer detector off, and the daemon streams the desk effect to it. Either way it closes a running OpenRGB in your session first. Don’t run your own OpenRGB against the Razer devices as well; in testing, OpenRGB 1.0’s SDK server accepted per-LED updates for them but never pushed them to the hardware. To turn it off, set"mode": "off", or install again without-OpenRgbto remove the task. Turning live off leaves the PC’s lights as they were last set. - Did it run? The task writes no log. Open Task Scheduler, find uncoil-openrgb and read its status
and Last Run Result. In live mode it should be Running. Otherwise:
0ran and exited cleanly,1turned off or nothing configured (in hardware mode, nothing inopenrgb.devices),2failed (OpenRGB is not installed,%ProgramData%\uncoil\openrgbis missing or not administrators-only, no entry was a plain name,openrgb.live.portis outside 1024–65535, or OpenRGB’s server stopped with an error). Reinstalling with-OpenRgbrecreates the folder. The task runs at sign-in, so a mode you just turned on starts at the next one. - Live mode shows “Waiting for OpenRGB’s SDK server”: the daemon found nothing listening on
127.0.0.1atopenrgb.live.port. Check the task is running (above), and that OpenRGB is installed inC:\Program Files\OpenRGB. RAM and many motherboards also need PawnIO, OpenRGB’s SMBus driver; see OpenRGB’s instructions. A device missing from the PC column may be excluded byopenrgb.live.exclude, hidden in OpenRGB, or have “Razer” in its name or vendor (those are always left to uncoil). - iCUE: RAM lighting shares the SMBus with iCUE, so uncoil skips the RAM, in both OpenRGB modes, while iCUE is running (live mode checks when it connects to OpenRGB). Corsair devices themselves are iCUE’s business.
Lighting around display sleep
Section titled “Lighting around display sleep”By design, lighting fades out when Windows turns the display off, dims to dim_level (35% by default) when
Windows dims it, and fades back in on wake. That is the behaviour of
display in the config.
- Lights stay on with the display off: check
"off_when_display_off": true. uncoil follows the display state, not the screensaver or the lock screen, so a screensaver on a display that is still on keeps the lights on. - Lights don’t come back after sleep: some devices reset while the PC sleeps. uncoil re-prepares every
device on wake; if one stays dark, the log will say
re-prepare … after wake failed. Replugging it, or restarting the task, brings it back. - The fade is too slow or too fast: change
fade_s.
The mouse doesn’t light up on its dongle
Section titled “The mouse doesn’t light up on its dongle”The Basilisk V3 Pro’s HyperSpeed dongle answers “no answer” while the mouse is connected by cable, and uncoil waits for it. Unplug the cable and the mouse is picked up on the dongle within 5 seconds.
The app or uncoil can’t reach the daemon
Section titled “The app or uncoil can’t reach the daemon”Both talk to uncoild over the named pipe \\.\pipe\uncoil. If they say the daemon is unreachable:
- Check it is running (
Get-Process uncoild). - Look for
control pipe … unavailable (…): another uncoild, or another program, holds it; exitingin the log. The pipe is also uncoild’s single-instance lock: something else (usually another uncoild, for example one started by hand next to the task) already holds\\.\pipe\uncoil, so this copy exited before opening any device. Close the other one (Get-Process uncoild) and restart the task. too many clients: uncoild serves at most 8 connections at once. Close a fewuncoilcommands or app windows and retry. A connection that sends nothing for 5 minutes is closed by the daemon.something else is serving the uncoil pipe: the process holding\\.\pipe\uncoildoes not run as your user, so the app and CLI refuse to talk to it. Find it and stop it, then restart the task.- The pipe only accepts your own user account, from this PC.
A setting won’t save
Section titled “A setting won’t save”Changes stored in a device’s own memory (key remaps, the dial, the screen, DPI stages, poll rate, sleep timer, scroll wheel) are refused in these cases, with a message saying why:
check_failed: the device is experimental, or the feature isn’t confirmed on it yet, and the read-only check didn’t pass: the device didn’t answer the way its file expects.uncoil check <device>shows what was read. Reads and lighting still work. Please report it. A device file you added to%APPDATA%\uncoil\devicescounts as experimental unless it setssupport.left_click_guard: the change would leave the mouse with no button that left-clicks. Map another button to left click first.not_supported: the device file doesn’t list that feature.- “another program is talking to … right now”: another program held the shared device lock. Try again (see iCUE, OpenRGB and SignalRGB).
- On the command line, a command that writes device memory is refused without
--write(keymap importwithout it shows what differs from the file instead).
Still stuck
Section titled “Still stuck”Open an issue on GitHub with the last 50 lines of
uncoild.log, your status.json, and the device models. The log contains no keystrokes or personal data,
but read it before posting anyway.