Native Capture Cadence
This file records measured driver-path camera cadence. It is evidence, not a promise.
2026-05-21: PS3 Eye Raw USB Probe
Original probe location: temp workspace only, outside this repo. The dual-camera
probe now has a repo-owned copy at native/probes/ps3eye_cadence and can emit
JSON frame events for Mimir’s diagnostic rolling-buffer adapter.
Probe path:
- raw PS3 Eye userspace driver reference;
- libusb/WinUSB interface 0;
- Bayer frame output;
- no DirectShow;
- no Media Foundation;
- no frame processing;
- five-second measurement window.
Installed device state:
- two PS3 Eyes present as
VID_1415&PID_2000; - interface 0 is available through the WinUSB/libusb-style path;
- interface 1 remains the media/audio side and is not the capture path measured here.
Sequential results:
| Camera | Requested Mode | Frames | Elapsed | Delivered FPS | Avg Delta |
|---|---|---|---|---|---|
| 0 | 320x240 @ 187 | 934 | 5.002s | 186.72 | 5.355 ms |
| 1 | 320x240 @ 187 | 917 | 5.001s | 183.35 | 5.454 ms |
| 0 | 640x480 @ 60 | 292 | 5.006s | 58.33 | 17.118 ms |
| 1 | 640x480 @ 60 | 290 | 5.010s | 57.89 | 17.237 ms |
Dual-camera results in one process:
| Camera | Requested Mode | Frames | Elapsed | Delivered FPS | Avg Delta |
|---|---|---|---|---|---|
| 0 | 320x240 @ 187 | 915 | 5.005s | 182.81 | 5.476 ms |
| 1 | 320x240 @ 187 | 916 | 5.005s | 183.01 | 5.460 ms |
| 0 | 640x480 @ 60 | 294 | 5.009s | 58.69 | 17.068 ms |
| 1 | 640x480 @ 60 | 286 | 5.009s | 57.09 | 17.478 ms |
Conclusion: the two PS3 Eyes can be treated as roughly 183 fps timing/marker witnesses at 320x240 on the current USB topology when using the raw USB path. At 640x480 they are roughly 57-59 fps.
Runtime note: ps3eye_dual_cadence --emit-json-frames emits one JSON line per
captured frame with sourceId values ps3-eye-0 and ps3-eye-1; Mimir.Runtime
uses this only as a diagnostic witness until the native capture driver owns the
buffer handles directly.
The probe reported one unrelated invalid USB descriptor from
USB\VID_0000&PID_0002; it did not prevent PS3 Eye capture.
2026-05-21: LeapUVC Kernel Streaming Probe
The Leap Motion Controller is currently present as VID_F182&PID_0003 and bound
to usbvideo.sys, which means the active mode is LeapUVC/UVC. That mode is
mutually exclusive with the Ultraleap SDK path for this device.
Probe path:
- Windows Kernel Streaming capture interface for
KSCATEGORY_CAPTURE; - LeapUVC through
usbvideo.sys; - no Media Foundation;
- no DirectShow graph;
- no OpenCV;
- no frame processing;
- five-second measurement window per advertised mode.
Probe source:
native/probes/ks_camera_cadence--multi-ks-baseline --emit-json-framesemits JSON frame metadata forleap-stereo-ir,kiyo-pro-rgb, andkiyo-rgb.
Advertised modes and measured queued KS pull rates:
| Mode | Advertised FPS | Frames | Elapsed | Delivered FPS | Bytes / Frame |
|---|---|---|---|---|---|
| 752x480 YUY2 | 50.00 | 173 | 5.008s | 34.55 | 721,920 |
| 640x480 YUY2 | 57.50 | 204 | 5.017s | 40.66 | 614,400 |
| 640x240 YUY2 | 115.00 | 415 | 5.004s | 82.93 | 307,200 |
| 640x120 YUY2 | 214.00 | 777 | 5.000s | 155.39 | 153,600 |
| 752x240 YUY2 | 100.00 | 308 | 5.013s | 61.44 | 360,960 |
| 752x120 YUY2 | 190.00 | 589 | 5.008s | 117.62 | 180,480 |
Conclusion: the current direct KS probe can pull real frames from LeapUVC, but
even eight queued asynchronous reads do not reach the device’s advertised
cadence. The useful stereo IR mode is 640x240 YUY2, advertised at 115 fps and
currently measured at about 83 fps. The next cut should either tune LeapUVC
controls that affect exposure/frame interval or deliberately rebind to a
WinUSB/libusb UVC path if we decide the Windows UVC stack is the bottleneck.
Follow-up control sweep:
- the probe now reports known LeapUVC-ish controls directly through KS;
- it discards a two-second warm-up before the five-second measurement window;
640x240 YUY2steady-state cadence lands at about 110.7 fps;640x120 YUY2steady-state cadence lands at about 205.9 fps.
Steady-state 640x240 YUY2 control sweep:
| Scenario | Result |
|---|---|
| baseline | 554 frames / 5.007s = 110.65 fps |
| exposure 10us | 554 frames / 5.006s = 110.68 fps |
| gamma off | 554 frames / 5.002s = 110.76 fps |
| HDR off | 554 frames / 5.003s = 110.73 fps |
| LEDs on | 554 frames / 5.003s = 110.72 fps |
| LEDs off | 554 frames / 5.006s = 110.68 fps |
| gain minimum | 554 frames / 5.007s = 110.64 fps |
| dark-frame interval 0 | 555 frames / 5.009s = 110.80 fps |
| fast combined | 554 frames / 5.001s = 110.77 fps |
Rejected controls:
- digital gain via
KSPROPERTY_VIDEOPROCAMP_BRIGHTNESS = 0returnedERROR_INVALID_PARAMETER; - the old LeapUVC FPS-ratio selector through
KSPROPERTY_VIDEOPROCAMP_GAINreturnedERROR_INVALID_PARAMETER.
Conclusion: the earlier 83 fps number was mostly startup drag inside the short measurement window. Once the Leap is hot, the useful stereo mode is close to its advertised cadence through the current KS path. The half-height mode can beat the PS3 Eyes on raw frame rate, but the PS3 Eyes still win when comparing their full 320x240 frames against Leap’s useful 640x240 stereo stream.
2026-05-21: Razer Kiyo Kernel Streaming Probe
Installed device state:
Razer Kiyocamera:VID_1532&PID_0E03&MI_00;Razer Kiyo Procamera:VID_1532&PID_0E05&MI_00;- both expose UVC camera interfaces through the Windows Kernel Streaming capture category.
Probe path:
- Windows Kernel Streaming capture interface for
KSCATEGORY_CAPTURE; - no Media Foundation;
- no DirectShow graph;
- no OpenCV;
- eight queued asynchronous reads;
- two-second warm-up discarded before each five-second measurement.
Kiyo Pro advertised MJPG modes and measured cadence:
| Device | Mode | Advertised FPS | Best Measured FPS | Note |
|---|---|---|---|---|
| Kiyo Pro | 1280x720 MJPG | 60.00 | 25.20 | manual exposure did not improve cadence |
| Kiyo Pro | 1920x1080 MJPG | 60.00 | 25.18 | manual exposure did not improve cadence |
Plain Kiyo advertised MJPG modes and measured cadence:
| Device | Mode | Advertised FPS | Best Measured FPS | Best Setting |
|---|---|---|---|---|
| Kiyo | 1920x1080 MJPG | 30.00 | 30.27 | manual exposure -9 or -10 |
| Kiyo | 1280x720 MJPG | 60.00 | 51.51 | gain minimum after manual exposure sweep |
Conclusion: plain Kiyo is exposure-limited by default and becomes usable once manual exposure is forced shorter. Kiyo Pro advertises 60 fps modes but the current KS path delivers about 25 fps regardless of manual exposure, so it needs a separate driver/control investigation before it should be trusted for high cadence capture.
Online follow-up:
- Razer’s support page for the Kiyo Pro confirms
1080p @ 60/30/24FPS,720p @ 60FPS, USB 3.0 connectivity, and HDR support, but also says HDR must be toggled off to keep output aligned with the selected frame rate. - Razer’s firmware updater page lists
v1.5.0.1_r1as the current RZ19-0364 updater lineage and includes a factory-default reset command in that firmware. - Razer’s flicker/banding guidance says capture frame rate and powerline frequency can interact, and points users to the anti-flicker/powerline setting.
- Microsoft documents
KSPROPERTY_CAMERACONTROL_AUTO_EXPOSURE_PRIORITYas the UVC low-light compensation control, and says it allows the device to vary frame rate under lighting conditions. - Razer community reports show other users seeing Kiyo Pro firmware or control states stuck below 60 fps, including one report that Linux and Windows both failed to reach 60 fps after a firmware update.
Local follow-up after that research:
| Device | Mode | Scenario | Result |
|---|---|---|---|
| Kiyo Pro | 1280x720 MJPG | baseline, low-light priority value 1, powerline 50Hz | 127 frames / 5.009s = 25.35 fps |
| Kiyo Pro | 1280x720 MJPG | low-light compensation off | 125 frames / 5.039s = 24.81 fps |
| Kiyo Pro | 1280x720 MJPG | powerline 60Hz | 145 frames / 5.008s = 28.95 fps |
| Kiyo Pro | 1920x1080 MJPG | baseline, low-light priority value 1, powerline 50Hz | 126 frames / 5.006s = 25.17 fps |
| Kiyo Pro | 1920x1080 MJPG | low-light compensation off | 126 frames / 5.006s = 25.17 fps |
| Kiyo Pro | 1920x1080 MJPG | powerline 60Hz | 145 frames / 5.020s = 28.88 fps |
Conclusion: the Kiyo Pro’s 25 fps result matches the kind of low-light /
anti-flicker / firmware trouble reported elsewhere, but the standard KS
properties are not enough to recover 60 fps locally. Powerline 60Hz moves the
needle only to about 29 fps. The next investigation should compare this direct
KS path with Synapse/OBS and inspect whether the firmware exposes a vendor or
extension control that selects the real 60 fps profile.
HDR follow-up:
- the probe now tries
KSPROPERTY_CAMERACONTROL_EXTENDED_VIDEOHDRwith both filter-scope and pin-0 extended-property headers; - the Kiyo Pro reports
ERROR_FILE_NOT_FOUND/Element not found; - setting extended Video HDR off also reports
Element not found; - measured cadence is unchanged at about 25 fps for both
720p MJPGand1080p MJPG.
Conclusion: HDR may still be part of the Razer/Synapse control story, but it is not exposed through the standard Windows extended Video HDR KS property on this device path. The next useful cut is vendor-extension enumeration or an OBS/Synapse comparison to see whether Razer flips a private UVC extension before opening the real 60 fps stream.
Vendor/USB descriptor follow-up:
- Synapse is not installed and was not used.
- The probe now has a controls-only mode:
ks_camera_cadence.exe vid_1532&pid_0e05&mi_00 --controls-only. - The Kiyo Pro exposes two
KSNODETYPE_DEV_SPECIFICtopology nodes. - USB VideoControl descriptor parsing found two UVC extension units:
{2c49d16a-32b8-4485-3ea8-643a152362f2}with unit id2, six controls, andbmControls=3f00;{23e49ed0-1178-4f31-ae52-d2fb8a8d3b48}with unit id6, five declared controls, andbmControls=ff6f. - The second extension GUID answers KS selector probes on node
2. Selectors1,3,4,6,11,12,14, and15report writable support; selectors2,5,7,8,9,10, and15return current payloads. Selector10returns ASCIIPYTHON_V2B, which looks like camera/firmware identity rather than an FPS switch. - The first extension GUID is present in the descriptor but did not answer the current KS selector sweep.
- The local Kiyo Pro is currently behind a Genesys Logic
VID_05E3&PID_0610hub and reports USB speed2withbcdUSB=0x0210, i.e. high-speed USB 2.x, not SuperSpeed USB 3.x.
Conclusion: the strongest current explanation for the Pro’s 25-29 fps ceiling is bus topology, not HDR or low-light mode. Razer documents the Kiyo Pro’s 60 fps modes as USB 3.0 operation; locally the device is sitting on a USB 2.x hub path. Move it to a verified SuperSpeed root/hub path before spending more time mutating unknown vendor selectors.
Motherboard USB3 port follow-up:
- After moving the Kiyo Pro off the external hub and directly onto the
motherboard USB3 port, the device moved to
\\?\usb#root_hub30#...port7and reportsbcdUSB=0x0320. - Windows still reports the negotiated connection speed enum as
2(UsbHighSpeed, notUsbSuperSpeed). The probe now prints the enum name so this is harder to misread. - The advertised mode surface improved:
1280x720and1920x1080now exposeYUY2,MJPG,H264, andNV12at 60 fps. - Baseline measured cadence stayed around 25 fps for every 720p/1080p format:
| Mode | Advertised FPS | Delivered FPS |
|---|---|---|
| 1280x720 YUY2 | 60.00 | 24.96 |
| 1920x1080 YUY2 | 60.00 | 24.98 |
| 1280x720 MJPG | 60.00 | 25.20 |
| 1920x1080 MJPG | 60.00 | 25.03 |
| 1280x720 H264 | 60.00 | 25.19 |
| 1920x1080 H264 | 60.00 | 25.01 |
| 1280x720 NV12 | 60.00 | 25.07 |
| 1920x1080 NV12 | 60.00 | 25.16 |
Conclusion: the direct motherboard port improved enumeration but did not fix
cadence. Because Windows still reports UsbHighSpeed, verify the cable and
port path before assuming the private firmware selectors are guilty. If the
same 25 fps lock remains after UsbSuperSpeed is confirmed, the next cut is
explicit frame-interval negotiation or cautious vendor-selector tracing.
Second motherboard USB3 port check:
- Moving the Kiyo Pro to another motherboard USB3 port changed the composite
device to
Port_#0008.Hub_#0003on the same AMDROOT_HUB30. - The descriptor path remains
bcdUSB=0x0320, but the negotiated connection speed is stillUsbHighSpeed(2), notUsbSuperSpeed(3). - The full cadence run was not repeated because the link state is still the same high-speed fallback state that measured about 25 fps across formats.
Conclusion: two motherboard USB3 ports have now failed to negotiate SuperSpeed with the Kiyo Pro’s stock cable. The next useful physical test is a known-good USB3 data cable or a known-good SuperSpeed device on the same ports.
Raven host check:
- The neighbor sender machine is now codenamed Raven.
- With the Kiyo Pro plugged into Raven, Windows reports the camera, media, USB composite, and microphone interfaces as present.
- The descriptor-only probe reports the Kiyo Pro on a USB3 root hub at port
6withbcdUSB=0x0320, but negotiated speed is stillUsbHighSpeed(2), notUsbSuperSpeed(3). - Raven’s hub inventory reports zero currently connected SuperSpeed devices.
Conclusion: the same Kiyo Pro/cable also falls back to high-speed on Raven. That makes the stock cable or the Kiyo Pro’s own SuperSpeed lane the stronger suspect than the receiver workstation’s rear ports.
2026-05-21: Simultaneous Local Camera Pull
The first simultaneous pull used one process for KS/UVC cameras and the raw PS3 Eye probe beside it. Current local visibility is only three camera devices:
- Leap Motion Controller / LeapUVC camera interface;
- Razer Kiyo Pro camera interface;
- one PS3 Eye raw libusbk camera interface.
The regular Kiyo and second PS3 Eye were not present on this rig during this run.
Probe changes:
ks_camera_cadence.exe --multi-ks-baselinestarts all matched KS camera streams from one process with one start gate.- The raw PS3 Eye probe was launched at the same time as the KS multi-stream harness.
- KS matching now limits Kiyo/Leap profiles to
MI_00so media/audio interfaces do not masquerade as cameras.
Simultaneous results with PS3 Eye at 640x480@60:
| Device | Mode | Delivered FPS |
|---|---|---|
| LeapUVC | 640x240 YUY2 | 40.12 |
| Kiyo Pro | 1920x1080 MJPG | 24.99 |
| PS3 Eye | 640x480 Bayer | 56.06 |
Simultaneous results with PS3 Eye at 320x240@187:
| Device | Mode | Delivered FPS |
|---|---|---|
| LeapUVC | 640x240 YUY2 | 81.10 |
| Kiyo Pro | 1920x1080 MJPG | 25.33 |
| PS3 Eye | 320x240 Bayer | 185.74 |
Conclusion: the current local topology can pull the three visible cameras concurrently, but Leap cadence collapses under shared load compared with its solo/KS-only result. The PS3 Eye’s 320x240 mode is much less damaging than its 640x480 mode, but still drags Leap below its ~110 fps warm steady-state. Before claiming six-camera viability, plug in the missing regular Kiyo and second PS3 Eye and split high-rate cameras across controllers/hubs deliberately.
After port swapping, the regular Kiyo and second PS3 Eye appeared, making five
camera devices visible and six optical sensors present: LeapUVC’s packed
left/right stereo IR pair, Kiyo Pro, Kiyo, and two PS3 Eyes. The Kiyo Pro still
reports UsbHighSpeed(2) on root_hub30 with bcdUSB=0x0320; no hub reported
a SuperSpeed device.
Five-camera simultaneous results with both PS3 Eyes at 640x480@60:
| Device | Mode | Delivered FPS |
|---|---|---|
| LeapUVC | 640x240 YUY2 | 57.33 |
| Kiyo Pro | 1920x1080 MJPG | 24.97 |
| Kiyo | 1920x1080 MJPG | 30.30 |
| PS3 Eye 0 | 640x480 Bayer | 59.59 |
| PS3 Eye 1 | 640x480 Bayer | 57.60 |
Five-camera simultaneous results with both PS3 Eyes at 320x240@187:
| Device | Mode | Delivered FPS |
|---|---|---|
| LeapUVC | 640x240 YUY2 | 81.05 |
| Kiyo Pro | 1920x1080 MJPG | 24.97 |
| Kiyo | 1920x1080 MJPG | 30.28 |
| PS3 Eye 0 | 320x240 Bayer | 187.60 |
| PS3 Eye 1 | 320x240 Bayer | 187.03 |
Conclusion: all six currently intended optical sensors can be pulled at once
through the current direct-driver probes, with the Leap stereo pair delivered
as one packed UVC frame. The PS3 Eyes are healthiest at 320x240@187; at
640x480@60 they stay near target, but Leap drops farther. Leap is not yet a
stable ground-truth timing camera under this shared USB topology.
Follow-up port isolation test:
- Leap was moved to be the only camera on the blue rear USB3 group.
- Both Kiyos were moved to the red rear USB3 group.
- The PS3 Eyes were moved to remaining front/back USB-A ports.
- Windows then showed only one PS3 Eye enumerated.
- Leap was on
root_hub30#5port 3. - Kiyo Pro and regular Kiyo were both on
root_hub30#7&18eea21b. - The visible PS3 Eye was on
root_hub30#7&124f193fport 4.
Visible-sensor simultaneous result with the isolated Leap topology and one PS3
Eye at 320x240@187:
| Device | Mode | Delivered FPS |
|---|---|---|
| LeapUVC | 640x240 YUY2 | 80.99 |
| Kiyo Pro | 1920x1080 MJPG | 24.93 |
| Kiyo | 1920x1080 MJPG | 30.37 |
| PS3 Eye 0 | 320x240 Bayer | 185.85 |
Conclusion: isolating Leap at the root-hub level did not restore its solo ~110 fps cadence while the other visible cameras were active. The remaining loss is likely broader xHCI/controller scheduling, interrupt/CPU pressure, or the KS/usbvideo path under multi-device load rather than only a same-row port collision.
After splitting cameras across Mimir and Raven, the local Mimir host had only LeapUVC, regular Kiyo, and one PS3 Eye enumerated. The local split did not restore Leap cadence:
| Local active set | Leap FPS | Other delivered FPS |
|---|---|---|
| Leap + Kiyo + one PS3 Eye at 320x240@187 | 81.34 | Kiyo 30.27, PS3 Eye 185.56 |
| Leap + Kiyo only | 82.77 | Kiyo 16.83 |
| Leap only, baseline control scenario | 84.18 | n/a |
| Leap only, best fast-combined scenario in that pass | 92.87 | n/a |
Conclusion: offloading the Kiyo Pro and one PS3 Eye to Raven did not by itself cure the local Leap cadence loss. In this port/controller state, Leap is below its previous ~110.8 fps result even when measured alone, so the next check is Leap physical/controller state rather than assuming total local camera bandwidth was the only problem.
Follow-up: the Focusrite Scarlett Solo had been sharing the Leap’s USB row. After moving it away, Leap cadence recovered substantially:
| Local active set after moving Focusrite | Leap FPS | Other delivered FPS |
|---|---|---|
| Leap only, baseline control scenario | 95.48 | n/a |
| Leap only, best fast-combined scenario in that pass | 101.67 | n/a |
| Leap only, 640x120 baseline | 192.83 | n/a |
| Leap + Kiyo + one PS3 Eye at 320x240@187 | 105.10 | Kiyo 30.17, PS3 Eye 185.81 |
Conclusion: the split-host local set is viable when the Focusrite is not on the Leap’s USB neighborhood. Full-height Leap stereo is still a little below the old ~110.8 fps best result, but the catastrophic ~81 fps band was caused by the local USB layout, not by needing every camera off the machine.
2026-05-21: Raven PS3 Eye Driver Bring-Up
Raven initially enumerated the PS3 Eye composite and media interfaces, but the
raw VID_1415&PID_2000&MI_00 camera interface had no driver binding and showed
Error.
The working Mimir host binding was exported and installed on Raven:
- provider:
libwdi; - service:
WinUSB; - local source INF:
oem26.inf; - Raven published INF:
oem34.inf; - device interface GUID from the INF:
{6ACBF2FC-1246-418C-A63D-0FE38B45129B}.
The libwdi self-signed catalog certificate had to be copied to Raven and added
to both Root and TrustedPublisher before pnputil /add-driver ... /install
would accept the package.
After binding, Raven’s raw Eye interface reported OK and the copied
ps3eye_dual_cadence.exe could open the camera. Cadence is not yet viable:
| Raven PS3 Eye Mode | Delivered FPS | Notes |
|---|---|---|
| 320x240@187 | 132.24 | first run, max gap 202.841 ms |
| 320x240@187 | 78.93 | second run, max gap 283.247 ms |
| 640x480@60 | 6.32 | max gap 2998.965 ms |
Conclusion: Raven’s PS3 Eye driver binding is fixed enough to open the device, but the current Raven USB path/device state is not delivering usable cadence. Next Raven work is port/controller isolation and a clean single-process cadence run before treating the Eye as a usable remote timing witness.
2026-05-22: Restored Local Five-Device Pull
After moving the Raven PS3 Eye back to the Mimir host, local enumeration showed:
- LeapUVC stereo IR pair;
- regular Razer Kiyo;
- two PS3 Eyes;
- Focusrite Scarlett Solo moved away from the Leap USB neighborhood.
The Kiyo Pro was not local for this run.
Simultaneous local results with both PS3 Eyes at 320x240@187:
| Device | Mode | Delivered FPS |
|---|---|---|
| LeapUVC | 640x240 YUY2 | 106.07 |
| Kiyo | 1920x1080 MJPG | 30.33 |
| PS3 Eye 0 | 320x240 Bayer | 186.57 |
| PS3 Eye 1 | 320x240 Bayer | 186.14 |
Simultaneous local results with both PS3 Eyes at 640x480@60:
| Device | Mode | Delivered FPS |
|---|---|---|
| LeapUVC | 640x240 YUY2 | 108.07 |
| Kiyo | 1920x1080 MJPG | 30.34 |
| PS3 Eye 0 | 640x480 Bayer | 57.79 |
| PS3 Eye 1 | 640x480 Bayer | 58.08 |
Conclusion: the current local topology can run all local sensors in parallel: Leap stereo plus regular Kiyo plus both PS3 Eyes. With the Focusrite out of the Leap neighborhood and the Kiyo Pro absent, Leap stays close to its previous best cadence instead of falling into the old ~81 fps band.
After moving the Kiyo Pro back to the Mimir host, local enumeration showed LeapUVC, Kiyo Pro, and both PS3 Eyes. The regular Kiyo was not local for this run. Kiyo Pro remained on high-speed USB:
- hub:
root_hub30#7&18eea21b; - port: 8;
- speed:
UsbHighSpeed(2); - descriptor:
bcdUSB=0x0320.
Simultaneous local results with Kiyo Pro and both PS3 Eyes at 320x240@187:
| Device | Mode | Delivered FPS |
|---|---|---|
| LeapUVC | 640x240 YUY2 | 110.80 |
| Kiyo Pro | 1920x1080 MJPG | 24.97 |
| PS3 Eye 0 | 320x240 Bayer | 187.46 |
| PS3 Eye 1 | 320x240 Bayer | 186.89 |
Simultaneous local results with Kiyo Pro and both PS3 Eyes at 640x480@60:
| Device | Mode | Delivered FPS |
|---|---|---|
| LeapUVC | 640x240 YUY2 | 110.72 |
| Kiyo Pro | 1920x1080 MJPG | 24.87 |
| PS3 Eye 0 | 640x480 Bayer | 59.91 |
| PS3 Eye 1 | 640x480 Bayer | 59.19 |
Conclusion: in the current USB layout, Kiyo Pro does not poison Leap cadence. It remains a ~25 fps RGB source because it still negotiates high-speed USB, but the restored local sensor set is stable with Leap stereo, Kiyo Pro, and both PS3 Eyes active.
After moving the regular Kiyo from the front panel to a rear port, all five
camera devices / six optical sensors were visible locally. The mouse moved into
the Leap’s USB neighborhood and did not disturb cadence. The regular Kiyo was
behind a Genesys hub at high-speed USB, and the Kiyo Pro remained high-speed
USB on root_hub30#7&18eea21b port 8.
Full local result with both PS3 Eyes at 320x240@187:
| Device | Mode | Delivered FPS |
|---|---|---|
| LeapUVC | 640x240 YUY2 | 110.84 |
| Kiyo Pro | 1920x1080 MJPG | 25.08 |
| Kiyo | 1920x1080 MJPG | 30.18 |
| PS3 Eye 0 | 320x240 Bayer | 187.59 |
| PS3 Eye 1 | 320x240 Bayer | 187.02 |
Full local result with both PS3 Eyes at 640x480@60:
| Device | Mode | Delivered FPS |
|---|---|---|
| LeapUVC | 640x240 YUY2 | 110.76 |
| Kiyo Pro | 1920x1080 MJPG | 25.14 |
| Kiyo | 1920x1080 MJPG | 30.18 |
| PS3 Eye 0 | 640x480 Bayer | 59.66 |
| PS3 Eye 1 | 640x480 Bayer | 59.95 |
Conclusion: the current USB topology can run the full intended local optical set: Leap stereo, Kiyo Pro, regular Kiyo, and both PS3 Eyes. The remaining limitation is Kiyo Pro cadence from high-speed USB negotiation, not whole-rig USB collapse.
Follow-up with the regular Kiyo moved from the front panel to a rear port and a mouse moved into the Leap’s USB neighborhood produced the same healthy full-set shape. The mouse did not disturb Leap cadence.
Full local result with both PS3 Eyes at 320x240@187:
| Device | Mode | Delivered FPS |
|---|---|---|
| LeapUVC | 640x240 YUY2 | 110.84 |
| Kiyo Pro | 1920x1080 MJPG | 25.08 |
| Kiyo | 1920x1080 MJPG | 30.18 |
| PS3 Eye 0 | 320x240 Bayer | 187.59 |
| PS3 Eye 1 | 320x240 Bayer | 187.02 |
Full local result with both PS3 Eyes at 640x480@60:
| Device | Mode | Delivered FPS |
|---|---|---|
| LeapUVC | 640x240 YUY2 | 110.76 |
| Kiyo Pro | 1920x1080 MJPG | 25.14 |
| Kiyo | 1920x1080 MJPG | 30.18 |
| PS3 Eye 0 | 640x480 Bayer | 59.66 |
| PS3 Eye 1 | 640x480 Bayer | 59.95 |
