What's happening?
TRCC Linux Bug Report — Winbond USBDISPLAY 0416:5302
Summary
TRCC correctly detects the Winbond USBDISPLAY device and repeatedly completes a HID Type-2 handshake with:
- VID:PID:
0416:5302
- Device:
USBDISPLAY
- Firmware / bcdDevice:
0x0407
- Wire: HID
- PM:
128
- SUB:
1
- Reported resolution:
1280x480
However, the rendering pipeline later uses 240x320 for the same device. Frame transmission then fails immediately with:
short chunk write at offset 0
device.send returned False
The LCD does not update.
This appears to be a device-profile / resolution-mapping or HID Type-2 framebuffer compatibility problem rather than a basic USB detection or permission problem.
Environment
- OS: Ubuntu 26.04 LTS
- Kernel: 7.0.0-29-generic
- TRCC: 9.9.5
- Python: 3.14.4
- Architecture: x86_64
- Python implementation: CPython
- GPU: NVIDIA, NVML initialized
- Device: Winbond
0416:5302 USBDISPLAY
- bcdDevice / firmware:
0x0407
Device Detection
TRCC detects one device:
0416:5302 USBDISPLAY wire=hid
The diagnostic report initially reports:
handshake: PM=128 SUB=1 fbl=128 resolution=1280x480
The log also contains multiple successful handshakes:
HidLcd handshake OK: PM=128 SUB=1 resolution=(1280, 480) (type 2)
This occurs repeatedly, including during diagnostic probing.
Important Resolution Inconsistency
Although the device handshake reports 1280x480, the rendering pipeline uses:
DisplayService.build_frame: visual=240x320
The Qt renderer then creates:
create_surface: 240x320
The preview also reports:
preview.set_image: 240x320 -> widget 240x320
Therefore the device is detected as a 1280x480 display during handshake, but TRCC renders the framebuffer as 240x320.
There is also one earlier handshake entry reporting:
PM=0 SUB=0 resolution=(240, 320) (type 2)
but subsequent diagnostic probes consistently return PM=128 SUB=1 resolution=1280x480.
Frame Transmission Failure
When TRCC attempts to send the rendered frame, the log shows:
HidLcd 0416:5302 (type 2): sending 154112-byte packet
followed immediately by:
short chunk write at offset 0
device.send returned False (frame)
frame write returned False
0416:5302 write returned False
This happens repeatedly.
Even a solid black frame produces the same failure:
build_solid_color_frame ... 240x320
followed by:
short chunk write at offset 0
device.send returned False
Sensors / System Health
TRCC itself is otherwise functioning:
- Device detection: OK
- Sensor enumeration: OK
- NVIDIA NVML: OK
- PySide6: OK
- FFmpeg: OK
- 7z: OK
The health report shows only one warning:
udev-rules: No TRCC udev rules found under /etc/udev/rules.d/
The report suggests trcc system setup, but USB access is already working and the device can be detected and opened.
Expected Behavior
The device should be treated according to the successful HID Type-2 handshake:
PM=128
SUB=1
resolution=1280x480
The rendered framebuffer should match the actual device profile and be transmitted successfully.
Actual Behavior
- Device is detected.
- HID Type-2 handshake succeeds.
- Device reports
1280x480.
- TRCC rendering switches to
240x320.
- TRCC generates a
240x320 framebuffer.
- HID frame write fails at offset 0.
- LCD does not update.
Request
Could you please check whether the 0416:5302 / firmware 0x0407 device profile is being mapped incorrectly?
In particular, please check:
- Why the successful handshake reports
1280x480 but DisplayService.build_frame() uses 240x320.
- Whether
PM=128 / SUB=1 / fbl=128 has a dedicated HID Type-2 profile that should use 1280x480.
- Whether the framebuffer packet format / packet length for this device is different from the generic Type-2
240x320 profile.
- Why
_write_frame() receives a short write at offset 0 even though device detection and handshake succeed.
Key Log Evidence
Successful handshake:
HidLcd handshake OK: PM=128 SUB=1 resolution=(1280, 480) (type 2)
Incorrect rendering size:
DisplayService.build_frame: ... visual=240x320
Frame transmission:
HidLcd 0416:5302 (type 2): sending 154112-byte packet
Failure:
short chunk write at offset 0
device.send returned False
frame write returned False
Thank you.
report.txt
Diagnostic report (trcc report)
Paste this whole report into the GitHub issue.
Sections degrade gracefully — empty / errored sections are
normal when a feature isn't applicable on this OS / machine.
## Install
version 9.9.5
installed_by package
module_path /usr/lib/python3/dist-packages/trcc
interpreter /usr/bin/python3
python 3.14.4
on PATH /usr/local/bin/trcc -> /usr/bin/python3
## Platform
distro Ubuntu 26.04 LTS
python_impl CPython
machine x86_64
system Linux
release 7.0.0-29-generic
## Paths
config_dir /home/lunasia/.trcc
data_dir /home/lunasia/.trcc/data
user_content_dir /home/lunasia/.trcc-user
log_file /home/lunasia/.trcc/trcc.log
## Devices (1)
0416:5302 USBDISPLAY wire=hid
usb power: control=auto status=active remote_wakeup=no suspended_for=18975ms
handshake: PM=128 SUB=1 fbl=128 resolution=1280x480
raw[0:64]: dadbdcdd0180000000000000010000001000000042503231393430190158624247022078
## Handshake (from log — fallback)
2026-08-07T23:01:51 INFO trcc.adapters.device._base:HidLcd.connect:83: HidLcd handshake OK: PM=128 SUB=1 resolution=(1280, 480) (type 2)
2026-08-07T23:02:31 INFO trcc.adapters.device._base:HidLcd.connect:83: HidLcd handshake OK: PM=128 SUB=1 resolution=(1280, 480) (type 2)
2026-08-07T23:28:47 INFO trcc.adapters.device._base:HidLcd.connect:83: HidLcd handshake OK: PM=0 SUB=0 resolution=(240, 320) (type 2)
2026-08-08T00:07:35 INFO trcc.adapters.device._base:HidLcd.connect:83: HidLcd handshake OK: PM=128 SUB=1 resolution=(1280, 480) (type 2)
2026-08-08T00:12:43 INFO trcc.adapters.device._base:HidLcd.connect:83: HidLcd handshake OK: PM=128 SUB=1 resolution=(1280, 480) (type 2)
2026-08-08T00:13:20 INFO trcc.adapters.device._base:HidLcd.connect:83: HidLcd handshake OK: PM=128 SUB=1 resolution=(1280, 480) (type 2)
## Sensors (60)
cpu:temp 30.00 °C (temperature)
cpu:usage 0.00 % (usage)
cpu:freq 806.71 MHz (clock)
cpu:power — (power)
memory:used 2832.00 MB (memory)
memory:available 61172.90 MB (memory)
memory:total 64004.90 MB (memory)
memory:percent 4.40 % (memory)
memory:temp — (temperature)
memory:clock — (clock)
gpu:0:temp 29.00 °C (temperature)
gpu:0:usage 0.00 % (usage)
gpu:0:clock 210.00 MHz (clock)
gpu:0:power 33.05 W (power)
gpu:0:fan 0.00 % (fan)
gpu:0:vram_used 888.06 MB (gpu_memory)
gpu:0:vram_total 24576.00 MB (gpu_memory)
gpu:nvidia:0:temp 29.00 °C (temperature)
gpu:nvidia:0:usage 0.00 % (usage)
gpu:nvidia:0:clock 210.00 MHz (clock)
gpu:nvidia:0:power 33.05 W (power)
gpu:nvidia:0:fan 0.00 % (fan)
gpu:nvidia:0:vram_used 888.06 MB (gpu_memory)
gpu:nvidia:0:vram_total 24576.00 MB (gpu_memory)
gpu:1:temp — (temperature)
gpu:1:usage — (usage)
gpu:1:clock 0.00 MHz (clock)
gpu:1:power — (power)
gpu:1:fan — (fan)
gpu:1:vram_used — (gpu_memory)
gpu:1:vram_total — (gpu_memory)
gpu:intel:igpu:0:temp — (temperature)
gpu:intel:igpu:0:usage — (usage)
gpu:intel:igpu:0:clock 0.00 MHz (clock)
gpu:intel:igpu:0:power — (power)
gpu:intel:igpu:0:fan — (fan)
gpu:intel:igpu:0:vram_used — (gpu_memory)
gpu:intel:igpu:0:vram_total — (gpu_memory)
gpu:primary:temp 29.00 °C (temperature)
gpu:primary:usage 0.00 % (usage)
gpu:primary:clock 210.00 MHz (clock)
gpu:primary:power 33.05 W (power)
gpu:primary:fan 0.00 % (fan)
gpu:primary:vram_used 888.06 MB (gpu_memory)
gpu:primary:vram_total 24576.00 MB (gpu_memory)
disk:temp 44.85 °C (temperature)
disk:read — (disk_io)
disk:write — (disk_io)
disk:activity — (disk_io)
net:up — (network_io)
net:down — (network_io)
net:total_up 6.98 MB (network_io)
net:total_down 20.49 MB (network_io)
time:hour 0.00 (datetime)
time:minute 13.00 (datetime)
time:second 21.00 (datetime)
date:year 2026.00 (datetime)
date:month 8.00 (datetime)
date:day 8.00 (datetime)
date:dow 5.00 (datetime)
## CPU power (RAPL, 1 package domain(s))
intel-rapl:0 package-0 energy_uj: readable (0o444)
## Settings
No settings file at /home/lunasia/.trcc/config.json
## Health (0 fail / 1 warn / 11 total)
[OK ] install-integrity 9.9.5 via package (/usr/bin/python3)
[OK ] python-version Python 3.14
[OK ] log-writable Log directory writable: /home/lunasia/.trcc
[OK ] config-writable Config directory writable: /home/lunasia/.trcc
[OK ] devices-visible 1 device(s) detected
[OK ] sensors-enumerable 60 sensor descriptor(s) available
[OK ] gpu-sensors NVIDIA GPU sensors available (NVML initialized)
[OK ] ffmpeg ffmpeg on PATH (video themes will decode)
[OK ] pyside6 PySide6 importable
[WARN] udev-rules No TRCC udev rules found under /etc/udev/rules.d/
hint: Run `trcc system setup` (or install via the distro package) to lay down /etc/udev/rules.d/99-trcc.rules
[OK ] 7z # Log tail (1000 lines)
2026-08-07T23:29:01 DEBUG trcc.adapters.sensors.aggregator:BaselineSensors.gpus:215: gpus: count=2
2026-08-07T23:29:01 DEBUG trcc.adapters.sensors.aggregator:BaselineSensors.memory:211: memory: called
2026-08-07T23:29:01 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.fan:216: fan: idx=0
2026-08-07T23:29:01 DEBUG trcc.adapters.sensors.aggregator:BaselineSensors.fans:219: fans: count=0
2026-08-07T23:29:01 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.temp:174: temp: idx=0
2026-08-07T23:29:01 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.usage:185: usage: idx=0
2026-08-07T23:29:01 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.clock:195: clock: idx=0
2026-08-07T23:29:01 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.power:206: power: idx=0
2026-08-07T23:29:01 DEBUG trcc.adapters.sensors.psutil_sources:PsutilMemory.percent:94: percent: called
2026-08-07T23:29:01 DEBUG trcc.adapters.sensors.psutil_sources:PsutilMemory.available:80: available: called
2026-08-07T23:29:01 DEBUG trcc.core.ports:BaselineSensors.snapshot:718: snapshot: cpus=1 gpus=2 cpu_temp=31.0 cpu_pct=1.0 gpu_temp=30.0 fans(rpm)=(0, 0.0, 0, 0)
2026-08-07T23:29:01 DEBUG trcc.services.metrics_personalize:personalize_metrics:112: personalize_metrics: temp_unit=C hdd_enabled=True cpus=1 gpus=2
2026-08-07T23:29:01 DEBUG trcc.services.metrics_personalize:personalize_readings:76: personalize_readings: raw=46 temp_unit=C hdd_enabled=True
2026-08-07T23:29:01 DEBUG trcc.core.events:EventBus.publish:407: publish: event=SensorsUpdated
2026-08-07T23:29:01 DEBUG trcc.app:_DeviceRenderObserver._on_visual_change:923: DeviceRenderObserver: SensorsUpdated for 0416:5302 → RenderAndSend
2026-08-07T23:29:01 DEBUG trcc.app:App.dispatch:783: dispatch RenderAndSend(key='0416:5302')
2026-08-07T23:29:01 DEBUG trcc.core.commands._helpers:_require_connected_device:226: _require_connected_device: key=0416:5302
2026-08-07T23:29:01 DEBUG trcc.app:App.get:570: get: key=0416:5302
2026-08-07T23:29:01 DEBUG trcc.adapters.system._base:LinuxPlatform.sensors:158: LinuxPlatform.sensors: returning cached enumerator
2026-08-07T23:29:01 DEBUG trcc.adapters.sensors.aggregator:BaselineSensors.read_all:284: read_all: cached=46
2026-08-07T23:29:01 DEBUG trcc.services.metrics_personalize:personalize_readings:76: personalize_readings: raw=46 temp_unit=C hdd_enabled=True
2026-08-07T23:29:01 DEBUG trcc.services.settings:Settings.for_device:212: for_device: key=0416:5302
2026-08-07T23:29:01 DEBUG trcc.services.display:DisplayService.build_frame:260: build_frame 0416:5302: theme='Theme1' visual=240x320 orientation=0 brightness=100
2026-08-07T23:29:01 DEBUG trcc.services._clock:compute_clock:124: compute_clock: time_format=24h date_format=yyyy/MM/dd lang=en
2026-08-07T23:29:01 DEBUG trcc.services._clock:resolve_clock:99: resolve_clock: source=time time_format=24h date_format=yyyy/MM/dd lang=en
2026-08-07T23:29:01 DEBUG trcc.services._clock:resolve_clock:99: resolve_clock: source=date time_format=24h date_format=yyyy/MM/dd lang=en
2026-08-07T23:29:01 DEBUG trcc.services._clock:resolve_clock:99: resolve_clock: source=weekday time_format=24h date_format=yyyy/MM/dd lang=en
2026-08-07T23:29:01 DEBUG trcc.services.display:DisplayService.build_frame:271: build_frame 0416:5302: clock=['date', 'time', 'weekday'] (time_format=24h date_format=yyyy/MM/dd lang=en)
2026-08-07T23:29:01 DEBUG trcc.services.media:MediaService.playback:546: playback: key=0416:5302
2026-08-07T23:29:01 DEBUG trcc.core.ports:LinuxPaths.user_data_dir:793: user_data_dir: called
2026-08-07T23:29:01 DEBUG trcc.adapters.system._base:LinuxPaths.user_content_dir:60: LinuxPaths.user_content_dir → /home/lunasia/.trcc-user
2026-08-07T23:29:01 DEBUG trcc.adapters.system._base:LinuxPaths.data_dir:56: LinuxPaths.data_dir → /home/lunasia/.trcc/data
2026-08-07T23:29:01 DEBUG trcc.services.theme:ThemeService._resolve_asset_ref:136: _resolve_asset_ref: 'web/240320/8720029fa0013099.png' → /home/lunasia/.trcc-user/data/web/240320/8720029fa0013099.png
2026-08-07T23:29:01 INFO trcc.services.theme:ThemeService.background_path:481: background_path: Theme1 → referenced asset /home/lunasia/.trcc-user/data/web/240320/8720029fa0013099.png
2026-08-07T23:29:01 DEBUG trcc.services.settings:Settings.for_device:212: for_device: key=0416:5302
2026-08-07T23:29:01 DEBUG trcc.services.settings:Settings.for_device:212: for_device: key=0416:5302
2026-08-07T23:29:01 DEBUG trcc.services.display:DisplayService.build_frame:284: build_frame 0416:5302: scene cache bg=HIT overlay=MISS
2026-08-07T23:29:01 DEBUG trcc.services.display:DisplayService._log_cache_transition:710: build_frame 0416:5302: cache state bg=True overlay=True → bg=HIT overlay=MISS
2026-08-07T23:29:01 DEBUG trcc.adapters.render.qt:QtRenderer.create_surface:115: create_surface: 240x320 color=None
2026-08-07T23:29:01 DEBUG trcc.services.settings:Settings.for_device:212: for_device: key=0416:5302
2026-08-07T23:29:01 DEBUG trcc.services.display:DisplayService._build_overlay:1134: build_overlay 0416:5302: theme='Theme1' layout=mask (4 element(s)) [theme=1 mask=4 user=0] overlay_enabled=True
2026-08-07T23:29:01 DEBUG trcc.adapters.render.qt:QtRenderer.surface_size:134: surface_size: called
2026-08-07T23:29:01 DEBUG trcc.adapters.render.qt:QtRenderer.create_surface:115: create_surface: 240x320 color=None
2026-08-07T23:29:01 DEBUG trcc.services.overlay:OverlayService.render:235: render: 240x320, elements=4, sensors=46, clock_sources=['time', 'date', 'weekday'], temp_unit=C
2026-08-07T23:29:01 DEBUG trcc.services.overlay:OverlayService._draw_metric:329: draw_metric element[0]: cpu:temp=31°C at (77, 146)
2026-08-07T23:29:01 DEBUG trcc.adapters.render.qt:QtRenderer.draw_text:221: draw_text: '31°C' at (77, 146) size=15 color=#ffffff
2026-08-07T23:29:01 DEBUG trcc.services.overlay:OverlayService._draw_text:283: draw_text element[1]: 'CPU' at (29, 146) size=15
2026-08-07T23:29:01 DEBUG trcc.adapters.render.qt:QtRenderer.draw_text:221: draw_text: 'CPU' at (29, 146) size=15 color=#ffffff
2026-08-07T23:29:01 DEBUG trcc.services.overlay:OverlayService._draw_metric:329: draw_metric element[2]: gpu:primary:temp=30°C at (77, 175)
2026-08-07T23:29:01 DEBUG trcc.adapters.render.qt:QtRenderer.draw_text:221: draw_text: '30°C' at (77, 175) size=15 color=#ffffff
2026-08-07T23:29:01 DEBUG trcc.services.overlay:OverlayService._draw_text:283: draw_text element[3]: 'GPU' at (28, 175) size=15
2026-08-07T23:29:01 DEBUG trcc.adapters.render.qt:QtRenderer.draw_text:221: draw_text: 'GPU' at (28, 175) size=15 color=#ffffff
2026-08-07T23:29:01 DEBUG trcc.adapters.render.qt:QtRenderer.composite:142: composite: position=(0, 0) mask=False
2026-08-07T23:29:01 DEBUG trcc.adapters.render.qt:QtRenderer.composite:142: composite: position=(0, 0) mask=False
2026-08-07T23:29:01 DEBUG trcc.adapters.render.qt:QtRenderer.encode_rgb565:274: encode_rgb565: byte_order=<
2026-08-07T23:29:01 DEBUG trcc.services.display:DisplayService.rendered_surface:671: rendered_surface: key=0416:5302 available=True
2026-08-07T23:29:01 DEBUG trcc.services.device_sender:DeviceSender._raw_write:238: DeviceSender 0416:5302: write (frame)
2026-08-07T23:29:01 DEBUG trcc.core.events:EventBus.publish:407: publish: event=FrameSent
2026-08-07T23:29:01 DEBUG trcc.adapters.device.hid_lcd:HidLcd._prepare_frame:192: HidLcd 0416:5302 (type 2): sending 154112-byte packet
2026-08-07T23:29:01 WARNING trcc.adapters.device.hid_lcd:HidLcd._write_frame:219: HidLcd 0416:5302: short chunk write at offset 0
2026-08-07T23:29:01 WARNING trcc.services.device_sender:DeviceSender._raw_write:246: DeviceSender 0416:5302: device.send returned False (frame)
2026-08-07T23:29:01 WARNING trcc.services.device_sender:DeviceSender._fail:162: DeviceSender 0416:5302: frame write returned False
2026-08-07T23:29:01 DEBUG trcc.ui.gui.trcc_app:TRCCApp._on_bus_frame_sent:552: _on_bus_frame_sent
2026-08-07T23:29:01 DEBUG trcc.app:App.dispatch:792: RenderAndSend ok: Rendered + sent 153600 bytes
2026-08-07T23:29:01 DEBUG trcc.ui.gui.uc_preview:UCPreview.set_image:207: preview.set_image: 240x320 → widget 240x320
2026-08-07T23:29:01 DEBUG trcc.services.metrics_loop:MetricsLoop._publish_once:248: MetricsLoop: SensorsUpdated(46) published (raw=46, temp_unit=C, hdd_enabled=True)
2026-08-07T23:29:01 DEBUG trcc.ui.gui.trcc_app:TRCCApp._on_bus_sensors_updated:600: _on_bus_sensors_updated: 46 readings
2026-08-07T23:29:01 WARNING trcc.app:App._on_sender_failure:663: _on_sender_failure: 0416:5302 write returned False
2026-08-07T23:29:01 DEBUG trcc.ui.gui.trcc_app:TRCCApp._fan_out_metrics:639: _fan_out_metrics: reason=bus readings=46 info_vis=False sysinfo_vis=False sidebar_vis=False
2026-08-07T23:29:01 DEBUG trcc.ui.gui.lcd_handler:LCDHandler.update_metrics:991: update_metrics
2026-08-07T23:29:01 DEBUG trcc.ui.gui.lcd_handler.0416:5302:LCDHandler.update_metrics:994: update_metrics: 0416:5302 readings=46
2026-08-07T23:29:01 DEBUG trcc.adapters.sensors.aggregator:BaselineSensors._poll_once:334: _poll_once: called
2026-08-07T23:29:01 DEBUG trcc.adapters.sensors.psutil_sources:PsutilCpu.usage:49: usage: warm=True
2026-08-07T23:29:01 DEBUG trcc.adapters.sensors.psutil_sources:PsutilCpu.freq:57: freq: called
2026-08-07T23:29:01 DEBUG trcc.adapters.sensors.psutil_sources:PsutilMemory.used:73: used: called
2026-08-07T23:29:01 DEBUG trcc.adapters.sensors.psutil_sources:PsutilMemory.available:80: available: called
2026-08-07T23:29:01 DEBUG trcc.adapters.sensors.psutil_sources:PsutilMemory.total:87: total: called
2026-08-07T23:29:01 DEBUG trcc.adapters.sensors.psutil_sources:PsutilMemory.percent:94: percent: called
2026-08-07T23:29:01 DEBUG trcc.adapters.sensors.aggregator:BaselineSensors.gpus:215: gpus: count=2
2026-08-07T23:29:01 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.temp:174: temp: idx=0
2026-08-07T23:29:01 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.usage:185: usage: idx=0
2026-08-07T23:29:01 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.clock:195: clock: idx=0
2026-08-07T23:29:01 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.power:206: power: idx=0
2026-08-07T23:29:01 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.fan:216: fan: idx=0
2026-08-07T23:29:01 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.vram_used:226: vram_used: idx=0
2026-08-07T23:29:01 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.vram_total:236: vram_total: idx=0
2026-08-07T23:29:01 DEBUG trcc.adapters.sensors.psutil_sources:ComputedIo.poll:116: poll: called
2026-08-07T23:29:03 DEBUG trcc.adapters.system._base:LinuxPlatform.sensors:158: LinuxPlatform.sensors: returning cached enumerator
2026-08-07T23:29:03 DEBUG trcc.adapters.sensors.aggregator:BaselineSensors.read_all:284: read_all: cached=46
2026-08-07T23:29:03 DEBUG trcc.services.metrics_personalize:personalize_readings:76: personalize_readings: raw=46 temp_unit=C hdd_enabled=True
2026-08-07T23:29:03 DEBUG trcc.adapters.sensors.aggregator:BaselineSensors.read_all:284: read_all: cached=46
2026-08-07T23:29:03 DEBUG trcc.adapters.sensors.aggregator:BaselineSensors.cpu:207: cpu: called
2026-08-07T23:29:03 DEBUG trcc.adapters.sensors.psutil_sources:PsutilCpu.usage:49: usage: warm=True
2026-08-07T23:29:03 DEBUG trcc.adapters.sensors.psutil_sources:PsutilCpu.freq:57: freq: called
2026-08-07T23:29:03 DEBUG trcc.adapters.sensors.aggregator:BaselineSensors.gpus:215: gpus: count=2
2026-08-07T23:29:03 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.temp:174: temp: idx=0
2026-08-07T23:29:03 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.usage:185: usage: idx=0
2026-08-07T23:29:03 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.clock:195: clock: idx=0
2026-08-07T23:29:03 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.power:206: power: idx=0
2026-08-07T23:29:03 DEBUG trcc.adapters.sensors.aggregator:BaselineSensors.gpus:215: gpus: count=2
2026-08-07T23:29:03 DEBUG trcc.adapters.sensors.aggregator:BaselineSensors.memory:211: memory: called
2026-08-07T23:29:03 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.fan:216: fan: idx=0
2026-08-07T23:29:03 DEBUG trcc.adapters.sensors.aggregator:BaselineSensors.fans:219: fans: count=0
2026-08-07T23:29:03 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.temp:174: temp: idx=0
2026-08-07T23:29:03 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.usage:185: usage: idx=0
2026-08-07T23:29:03 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.clock:195: clock: idx=0
2026-08-07T23:29:03 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.power:206: power: idx=0
2026-08-07T23:29:03 DEBUG trcc.adapters.sensors.psutil_sources:PsutilMemory.percent:94: percent: called
2026-08-07T23:29:03 DEBUG trcc.adapters.sensors.psutil_sources:PsutilMemory.available:80: available: called
2026-08-07T23:29:03 DEBUG trcc.core.ports:BaselineSensors.snapshot:718: snapshot: cpus=1 gpus=2 cpu_temp=31.0 cpu_pct=1.0 gpu_temp=30.0 fans(rpm)=(0, 0.0, 0, 0)
2026-08-07T23:29:03 DEBUG trcc.services.metrics_personalize:personalize_metrics:112: personalize_metrics: temp_unit=C hdd_enabled=True cpus=1 gpus=2
2026-08-07T23:29:03 DEBUG trcc.services.metrics_personalize:personalize_readings:76: personalize_readings: raw=46 temp_unit=C hdd_enabled=True
2026-08-07T23:29:03 DEBUG trcc.core.events:EventBus.publish:407: publish: event=SensorsUpdated
2026-08-07T23:29:03 DEBUG trcc.app:_DeviceRenderObserver._on_visual_change:923: DeviceRenderObserver: SensorsUpdated for 0416:5302 → RenderAndSend
2026-08-07T23:29:03 DEBUG trcc.app:App.dispatch:783: dispatch RenderAndSend(key='0416:5302')
2026-08-07T23:29:03 DEBUG trcc.core.commands._helpers:_require_connected_device:226: _require_connected_device: key=0416:5302
2026-08-07T23:29:03 DEBUG trcc.app:App.get:570: get: key=0416:5302
2026-08-07T23:29:03 DEBUG trcc.adapters.system._base:LinuxPlatform.sensors:158: LinuxPlatform.sensors: returning cached enumerator
2026-08-07T23:29:03 DEBUG trcc.adapters.sensors.aggregator:BaselineSensors.read_all:284: read_all: cached=46
2026-08-07T23:29:03 DEBUG trcc.services.metrics_personalize:personalize_readings:76: personalize_readings: raw=46 temp_unit=C hdd_enabled=True
2026-08-07T23:29:03 DEBUG trcc.services.settings:Settings.for_device:212: for_device: key=0416:5302
2026-08-07T23:29:03 DEBUG trcc.services.display:DisplayService.build_frame:260: build_frame 0416:5302: theme='Theme1' visual=240x320 orientation=0 brightness=100
2026-08-07T23:29:03 DEBUG trcc.services._clock:compute_clock:124: compute_clock: time_format=24h date_format=yyyy/MM/dd lang=en
2026-08-07T23:29:03 DEBUG trcc.services._clock:resolve_clock:99: resolve_clock: source=time time_format=24h date_format=yyyy/MM/dd lang=en
2026-08-07T23:29:03 DEBUG trcc.services._clock:resolve_clock:99: resolve_clock: source=date time_format=24h date_format=yyyy/MM/dd lang=en
2026-08-07T23:29:03 DEBUG trcc.services._clock:resolve_clock:99: resolve_clock: source=weekday time_format=24h date_format=yyyy/MM/dd lang=en
2026-08-07T23:29:03 DEBUG trcc.services.display:DisplayService.build_frame:271: build_frame 0416:5302: clock=['date', 'time', 'weekday'] (time_format=24h date_format=yyyy/MM/dd lang=en)
2026-08-07T23:29:03 DEBUG trcc.services.media:MediaService.playback:546: playback: key=0416:5302
2026-08-07T23:29:03 DEBUG trcc.core.ports:LinuxPaths.user_data_dir:793: user_data_dir: called
2026-08-07T23:29:03 DEBUG trcc.adapters.system._base:LinuxPaths.user_content_dir:60: LinuxPaths.user_content_dir → /home/lunasia/.trcc-user
2026-08-07T23:29:03 DEBUG trcc.adapters.system._base:LinuxPaths.data_dir:56: LinuxPaths.data_dir → /home/lunasia/.trcc/data
2026-08-07T23:29:03 DEBUG trcc.services.theme:ThemeService._resolve_asset_ref:136: _resolve_asset_ref: 'web/240320/8720029fa0013099.png' → /home/lunasia/.trcc-user/data/web/240320/8720029fa0013099.png
2026-08-07T23:29:03 INFO trcc.services.theme:ThemeService.background_path:481: background_path: Theme1 → referenced asset /home/lunasia/.trcc-user/data/web/240320/8720029fa0013099.png
2026-08-07T23:29:03 DEBUG trcc.services.settings:Settings.for_device:212: for_device: key=0416:5302
2026-08-07T23:29:03 DEBUG trcc.services.settings:Settings.for_device:212: for_device: key=0416:5302
2026-08-07T23:29:03 DEBUG trcc.services.display:DisplayService.build_frame:284: build_frame 0416:5302: scene cache bg=HIT overlay=MISS
2026-08-07T23:29:03 DEBUG trcc.adapters.render.qt:QtRenderer.create_surface:115: create_surface: 240x320 color=None
2026-08-07T23:29:03 DEBUG trcc.services.settings:Settings.for_device:212: for_device: key=0416:5302
2026-08-07T23:29:03 DEBUG trcc.services.display:DisplayService._build_overlay:1134: build_overlay 0416:5302: theme='Theme1' layout=mask (4 element(s)) [theme=1 mask=4 user=0] overlay_enabled=True
2026-08-07T23:29:03 DEBUG trcc.adapters.render.qt:QtRenderer.surface_size:134: surface_size: called
2026-08-07T23:29:03 DEBUG trcc.adapters.render.qt:QtRenderer.create_surface:115: create_surface: 240x320 color=None
2026-08-07T23:29:03 DEBUG trcc.services.overlay:OverlayService.render:235: render: 240x320, elements=4, sensors=46, clock_sources=['time', 'date', 'weekday'], temp_unit=C
2026-08-07T23:29:03 DEBUG trcc.services.overlay:OverlayService._draw_metric:329: draw_metric element[0]: cpu:temp=31°C at (77, 146)
2026-08-07T23:29:03 DEBUG trcc.adapters.render.qt:QtRenderer.draw_text:221: draw_text: '31°C' at (77, 146) size=15 color=#ffffff
2026-08-07T23:29:03 DEBUG trcc.services.overlay:OverlayService._draw_text:283: draw_text element[1]: 'CPU' at (29, 146) size=15
2026-08-07T23:29:03 DEBUG trcc.adapters.render.qt:QtRenderer.draw_text:221: draw_text: 'CPU' at (29, 146) size=15 color=#ffffff
2026-08-07T23:29:03 DEBUG trcc.services.overlay:OverlayService._draw_metric:329: draw_metric element[2]: gpu:primary:temp=30°C at (77, 175)
2026-08-07T23:29:03 DEBUG trcc.adapters.render.qt:QtRenderer.draw_text:221: draw_text: '30°C' at (77, 175) size=15 color=#ffffff
2026-08-07T23:29:03 DEBUG trcc.services.overlay:OverlayService._draw_text:283: draw_text element[3]: 'GPU' at (28, 175) size=15
2026-08-07T23:29:03 DEBUG trcc.adapters.render.qt:QtRenderer.draw_text:221: draw_text: 'GPU' at (28, 175) size=15 color=#ffffff
2026-08-07T23:29:03 DEBUG trcc.adapters.render.qt:QtRenderer.composite:142: composite: position=(0, 0) mask=False
2026-08-07T23:29:03 DEBUG trcc.adapters.render.qt:QtRenderer.composite:142: composite: position=(0, 0) mask=False
2026-08-07T23:29:03 DEBUG trcc.adapters.render.qt:QtRenderer.encode_rgb565:274: encode_rgb565: byte_order=<
2026-08-07T23:29:03 DEBUG trcc.services.display:DisplayService.rendered_surface:671: rendered_surface: key=0416:5302 available=True
2026-08-07T23:29:03 DEBUG trcc.core.events:EventBus.publish:407: publish: event=FrameSent
2026-08-07T23:29:03 DEBUG trcc.services.device_sender:DeviceSender._raw_write:238: DeviceSender 0416:5302: write (frame)
2026-08-07T23:29:03 DEBUG trcc.adapters.device.hid_lcd:HidLcd._prepare_frame:192: HidLcd 0416:5302 (type 2): sending 154112-byte packet
2026-08-07T23:29:03 WARNING trcc.adapters.device.hid_lcd:HidLcd._write_frame:219: HidLcd 0416:5302: short chunk write at offset 0
2026-08-07T23:29:03 WARNING trcc.services.device_sender:DeviceSender._raw_write:246: DeviceSender 0416:5302: device.send returned False (frame)
2026-08-07T23:29:03 WARNING trcc.services.device_sender:DeviceSender._fail:162: DeviceSender 0416:5302: frame write returned False
2026-08-07T23:29:03 WARNING trcc.app:App._on_sender_failure:663: _on_sender_failure: 0416:5302 write returned False
2026-08-07T23:29:03 DEBUG trcc.app:App.dispatch:792: RenderAndSend ok: Rendered + sent 153600 bytes
2026-08-07T23:29:03 DEBUG trcc.ui.gui.trcc_app:TRCCApp._on_bus_frame_sent:552: _on_bus_frame_sent
2026-08-07T23:29:03 DEBUG trcc.ui.gui.uc_preview:UCPreview.set_image:207: preview.set_image: 240x320 → widget 240x320
2026-08-07T23:29:03 DEBUG trcc.services.metrics_loop:MetricsLoop._publish_once:248: MetricsLoop: SensorsUpdated(46) published (raw=46, temp_unit=C, hdd_enabled=True)
2026-08-07T23:29:03 DEBUG trcc.ui.gui.trcc_app:TRCCApp._on_bus_sensors_updated:600: _on_bus_sensors_updated: 46 readings
2026-08-07T23:29:03 DEBUG trcc.ui.gui.trcc_app:TRCCApp._fan_out_metrics:639: _fan_out_metrics: reason=bus readings=46 info_vis=False sysinfo_vis=False sidebar_vis=False
2026-08-07T23:29:03 DEBUG trcc.ui.gui.lcd_handler:LCDHandler.update_metrics:991: update_metrics
2026-08-07T23:29:03 DEBUG trcc.ui.gui.lcd_handler.0416:5302:LCDHandler.update_metrics:994: update_metrics: 0416:5302 readings=46
2026-08-07T23:29:03 DEBUG trcc.adapters.sensors.aggregator:BaselineSensors._poll_once:334: _poll_once: called
2026-08-07T23:29:03 DEBUG trcc.adapters.sensors.psutil_sources:PsutilCpu.usage:49: usage: warm=True
2026-08-07T23:29:03 DEBUG trcc.adapters.sensors.psutil_sources:PsutilCpu.freq:57: freq: called
2026-08-07T23:29:03 DEBUG trcc.adapters.sensors.psutil_sources:PsutilMemory.used:73: used: called
2026-08-07T23:29:03 DEBUG trcc.adapters.sensors.psutil_sources:PsutilMemory.available:80: available: called
2026-08-07T23:29:03 DEBUG trcc.adapters.sensors.psutil_sources:PsutilMemory.total:87: total: called
2026-08-07T23:29:03 DEBUG trcc.adapters.sensors.psutil_sources:PsutilMemory.percent:94: percent: called
2026-08-07T23:29:03 DEBUG trcc.adapters.sensors.aggregator:BaselineSensors.gpus:215: gpus: count=2
2026-08-07T23:29:03 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.temp:174: temp: idx=0
2026-08-07T23:29:03 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.usage:185: usage: idx=0
2026-08-07T23:29:03 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.clock:195: clock: idx=0
2026-08-07T23:29:03 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.power:206: power: idx=0
2026-08-07T23:29:03 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.fan:216: fan: idx=0
2026-08-07T23:29:03 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.vram_used:226: vram_used: idx=0
2026-08-07T23:29:03 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.vram_total:236: vram_total: idx=0
2026-08-07T23:29:03 DEBUG trcc.adapters.sensors.psutil_sources:ComputedIo.poll:116: poll: called
2026-08-07T23:29:05 DEBUG trcc.adapters.system._base:LinuxPlatform.sensors:158: LinuxPlatform.sensors: returning cached enumerator
2026-08-07T23:29:05 DEBUG trcc.adapters.sensors.aggregator:BaselineSensors.read_all:284: read_all: cached=46
2026-08-07T23:29:05 DEBUG trcc.services.metrics_personalize:personalize_readings:76: personalize_readings: raw=46 temp_unit=C hdd_enabled=True
2026-08-07T23:29:05 DEBUG trcc.adapters.sensors.aggregator:BaselineSensors.read_all:284: read_all: cached=46
2026-08-07T23:29:05 DEBUG trcc.adapters.sensors.aggregator:BaselineSensors.cpu:207: cpu: called
2026-08-07T23:29:05 DEBUG trcc.adapters.sensors.psutil_sources:PsutilCpu.usage:49: usage: warm=True
2026-08-07T23:29:05 DEBUG trcc.adapters.sensors.psutil_sources:PsutilCpu.freq:57: freq: called
2026-08-07T23:29:05 DEBUG trcc.adapters.sensors.aggregator:BaselineSensors.gpus:215: gpus: count=2
2026-08-07T23:29:05 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.temp:174: temp: idx=0
2026-08-07T23:29:05 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.usage:185: usage: idx=0
2026-08-07T23:29:05 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.clock:195: clock: idx=0
2026-08-07T23:29:05 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.power:206: power: idx=0
2026-08-07T23:29:05 DEBUG trcc.adapters.sensors.aggregator:BaselineSensors.gpus:215: gpus: count=2
2026-08-07T23:29:05 DEBUG trcc.adapters.sensors.aggregator:BaselineSensors.memory:211: memory: called
2026-08-07T23:29:05 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.fan:216: fan: idx=0
2026-08-07T23:29:05 DEBUG trcc.adapters.sensors.aggregator:BaselineSensors.fans:219: fans: count=0
2026-08-07T23:29:05 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.temp:174: temp: idx=0
2026-08-07T23:29:05 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.usage:185: usage: idx=0
2026-08-07T23:29:05 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.clock:195: clock: idx=0
2026-08-07T23:29:05 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.power:206: power: idx=0
2026-08-07T23:29:05 DEBUG trcc.adapters.sensors.psutil_sources:PsutilMemory.percent:94: percent: called
2026-08-07T23:29:05 DEBUG trcc.adapters.sensors.psutil_sources:PsutilMemory.available:80: available: called
2026-08-07T23:29:05 DEBUG trcc.core.ports:BaselineSensors.snapshot:718: snapshot: cpus=1 gpus=2 cpu_temp=31.0 cpu_pct=0.3 gpu_temp=30.0 fans(rpm)=(0, 0.0, 0, 0)
2026-08-07T23:29:05 DEBUG trcc.services.metrics_personalize:personalize_metrics:112: personalize_metrics: temp_unit=C hdd_enabled=True cpus=1 gpus=2
2026-08-07T23:29:05 DEBUG trcc.services.metrics_personalize:personalize_readings:76: personalize_readings: raw=46 temp_unit=C hdd_enabled=True
2026-08-07T23:29:05 DEBUG trcc.core.events:EventBus.publish:407: publish: event=SensorsUpdated
2026-08-07T23:29:05 DEBUG trcc.app:_DeviceRenderObserver._on_visual_change:923: DeviceRenderObserver: SensorsUpdated for 0416:5302 → RenderAndSend
2026-08-07T23:29:05 DEBUG trcc.app:App.dispatch:783: dispatch RenderAndSend(key='0416:5302')
2026-08-07T23:29:05 DEBUG trcc.core.commands._helpers:_require_connected_device:226: _require_connected_device: key=0416:5302
2026-08-07T23:29:05 DEBUG trcc.app:App.get:570: get: key=0416:5302
2026-08-07T23:29:05 DEBUG trcc.adapters.system._base:LinuxPlatform.sensors:158: LinuxPlatform.sensors: returning cached enumerator
2026-08-07T23:29:05 DEBUG trcc.adapters.sensors.aggregator:BaselineSensors.read_all:284: read_all: cached=46
2026-08-07T23:29:05 DEBUG trcc.services.metrics_personalize:personalize_readings:76: personalize_readings: raw=46 temp_unit=C hdd_enabled=True
2026-08-07T23:29:05 DEBUG trcc.services.settings:Settings.for_device:212: for_device: key=0416:5302
2026-08-07T23:29:05 DEBUG trcc.services.display:DisplayService.build_frame:260: build_frame 0416:5302: theme='Theme1' visual=240x320 orientation=0 brightness=100
2026-08-07T23:29:05 DEBUG trcc.services._clock:compute_clock:124: compute_clock: time_format=24h date_format=yyyy/MM/dd lang=en
2026-08-07T23:29:05 DEBUG trcc.services._clock:resolve_clock:99: resolve_clock: source=time time_format=24h date_format=yyyy/MM/dd lang=en
2026-08-07T23:29:05 DEBUG trcc.services._clock:resolve_clock:99: resolve_clock: source=date time_format=24h date_format=yyyy/MM/dd lang=en
2026-08-07T23:29:05 DEBUG trcc.services._clock:resolve_clock:99: resolve_clock: source=weekday time_format=24h date_format=yyyy/MM/dd lang=en
2026-08-07T23:29:05 DEBUG trcc.services.display:DisplayService.build_frame:271: build_frame 0416:5302: clock=['date', 'time', 'weekday'] (time_format=24h date_format=yyyy/MM/dd lang=en)
2026-08-07T23:29:05 DEBUG trcc.services.media:MediaService.playback:546: playback: key=0416:5302
2026-08-07T23:29:05 DEBUG trcc.core.ports:LinuxPaths.user_data_dir:793: user_data_dir: called
2026-08-07T23:29:05 DEBUG trcc.adapters.system._base:LinuxPaths.user_content_dir:60: LinuxPaths.user_content_dir → /home/lunasia/.trcc-user
2026-08-07T23:29:05 DEBUG trcc.adapters.system._base:LinuxPaths.data_dir:56: LinuxPaths.data_dir → /home/lunasia/.trcc/data
2026-08-07T23:29:05 DEBUG trcc.services.theme:ThemeService._resolve_asset_ref:136: _resolve_asset_ref: 'web/240320/8720029fa0013099.png' → /home/lunasia/.trcc-user/data/web/240320/8720029fa0013099.png
2026-08-07T23:29:05 INFO trcc.services.theme:ThemeService.background_path:481: background_path: Theme1 → referenced asset /home/lunasia/.trcc-user/data/web/240320/8720029fa0013099.png
2026-08-07T23:29:05 DEBUG trcc.services.settings:Settings.for_device:212: for_device: key=0416:5302
2026-08-07T23:29:05 DEBUG trcc.services.settings:Settings.for_device:212: for_device: key=0416:5302
2026-08-07T23:29:05 DEBUG trcc.services.display:DisplayService.build_frame:284: build_frame 0416:5302: scene cache bg=HIT overlay=MISS
2026-08-07T23:29:05 DEBUG trcc.adapters.render.qt:QtRenderer.create_surface:115: create_surface: 240x320 color=None
2026-08-07T23:29:05 DEBUG trcc.services.settings:Settings.for_device:212: for_device: key=0416:5302
2026-08-07T23:29:05 DEBUG trcc.services.display:DisplayService._build_overlay:1134: build_overlay 0416:5302: theme='Theme1' layout=mask (4 element(s)) [theme=1 mask=4 user=0] overlay_enabled=True
2026-08-07T23:29:05 DEBUG trcc.adapters.render.qt:QtRenderer.surface_size:134: surface_size: called
2026-08-07T23:29:05 DEBUG trcc.adapters.render.qt:QtRenderer.create_surface:115: create_surface: 240x320 color=None
2026-08-07T23:29:05 DEBUG trcc.services.overlay:OverlayService.render:235: render: 240x320, elements=4, sensors=46, clock_sources=['time', 'date', 'weekday'], temp_unit=C
2026-08-07T23:29:05 DEBUG trcc.services.overlay:OverlayService._draw_metric:329: draw_metric element[0]: cpu:temp=31°C at (77, 146)
2026-08-07T23:29:05 DEBUG trcc.adapters.render.qt:QtRenderer.draw_text:221: draw_text: '31°C' at (77, 146) size=15 color=#ffffff
2026-08-07T23:29:05 DEBUG trcc.services.overlay:OverlayService._draw_text:283: draw_text element[1]: 'CPU' at (29, 146) size=15
2026-08-07T23:29:05 DEBUG trcc.adapters.render.qt:QtRenderer.draw_text:221: draw_text: 'CPU' at (29, 146) size=15 color=#ffffff
2026-08-07T23:29:05 DEBUG trcc.services.overlay:OverlayService._draw_metric:329: draw_metric element[2]: gpu:primary:temp=30°C at (77, 175)
2026-08-07T23:29:05 DEBUG trcc.adapters.render.qt:QtRenderer.draw_text:221: draw_text: '30°C' at (77, 175) size=15 color=#ffffff
2026-08-07T23:29:05 DEBUG trcc.services.overlay:OverlayService._draw_text:283: draw_text element[3]: 'GPU' at (28, 175) size=15
2026-08-07T23:29:05 DEBUG trcc.adapters.render.qt:QtRenderer.draw_text:221: draw_text: 'GPU' at (28, 175) size=15 color=#ffffff
2026-08-07T23:29:05 DEBUG trcc.adapters.render.qt:QtRenderer.composite:142: composite: position=(0, 0) mask=False
2026-08-07T23:29:05 DEBUG trcc.adapters.render.qt:QtRenderer.composite:142: composite: position=(0, 0) mask=False
2026-08-07T23:29:05 DEBUG trcc.adapters.render.qt:QtRenderer.encode_rgb565:274: encode_rgb565: byte_order=<
2026-08-07T23:29:05 DEBUG trcc.services.display:DisplayService.rendered_surface:671: rendered_surface: key=0416:5302 available=True
2026-08-07T23:29:05 DEBUG trcc.core.events:EventBus.publish:407: publish: event=FrameSent
2026-08-07T23:29:05 DEBUG trcc.app:App.dispatch:792: RenderAndSend ok: Rendered + sent 153600 bytes
2026-08-07T23:29:05 DEBUG trcc.services.metrics_loop:MetricsLoop._publish_once:248: MetricsLoop: SensorsUpdated(46) published (raw=46, temp_unit=C, hdd_enabled=True)
2026-08-07T23:29:05 DEBUG trcc.services.device_sender:DeviceSender._raw_write:238: DeviceSender 0416:5302: write (frame)
2026-08-07T23:29:05 DEBUG trcc.ui.gui.trcc_app:TRCCApp._on_bus_frame_sent:552: _on_bus_frame_sent
2026-08-07T23:29:05 DEBUG trcc.adapters.device.hid_lcd:HidLcd._prepare_frame:192: HidLcd 0416:5302 (type 2): sending 154112-byte packet
2026-08-07T23:29:05 DEBUG trcc.ui.gui.uc_preview:UCPreview.set_image:207: preview.set_image: 240x320 → widget 240x320
2026-08-07T23:29:05 DEBUG trcc.ui.gui.trcc_app:TRCCApp._on_bus_sensors_updated:600: _on_bus_sensors_updated: 46 readings
2026-08-07T23:29:05 DEBUG trcc.ui.gui.trcc_app:TRCCApp._fan_out_metrics:639: _fan_out_metrics: reason=bus readings=46 info_vis=False sysinfo_vis=False sidebar_vis=False
2026-08-07T23:29:05 DEBUG trcc.ui.gui.lcd_handler:LCDHandler.update_metrics:991: update_metrics
2026-08-07T23:29:05 DEBUG trcc.ui.gui.lcd_handler.0416:5302:LCDHandler.update_metrics:994: update_metrics: 0416:5302 readings=46
2026-08-07T23:29:05 WARNING trcc.adapters.device.hid_lcd:HidLcd._write_frame:219: HidLcd 0416:5302: short chunk write at offset 0
2026-08-07T23:29:05 WARNING trcc.services.device_sender:DeviceSender._raw_write:246: DeviceSender 0416:5302: device.send returned False (frame)
2026-08-07T23:29:05 WARNING trcc.services.device_sender:DeviceSender._fail:162: DeviceSender 0416:5302: frame write returned False
2026-08-07T23:29:05 WARNING trcc.app:App._on_sender_failure:663: _on_sender_failure: 0416:5302 write returned False
2026-08-07T23:29:05 DEBUG trcc.adapters.sensors.aggregator:BaselineSensors._poll_once:334: _poll_once: called
2026-08-07T23:29:05 DEBUG trcc.adapters.sensors.psutil_sources:PsutilCpu.usage:49: usage: warm=True
2026-08-07T23:29:05 DEBUG trcc.adapters.sensors.psutil_sources:PsutilCpu.freq:57: freq: called
2026-08-07T23:29:05 DEBUG trcc.adapters.sensors.psutil_sources:PsutilMemory.used:73: used: called
2026-08-07T23:29:05 DEBUG trcc.adapters.sensors.psutil_sources:PsutilMemory.available:80: available: called
2026-08-07T23:29:05 DEBUG trcc.adapters.sensors.psutil_sources:PsutilMemory.total:87: total: called
2026-08-07T23:29:05 DEBUG trcc.adapters.sensors.psutil_sources:PsutilMemory.percent:94: percent: called
2026-08-07T23:29:05 DEBUG trcc.adapters.sensors.aggregator:BaselineSensors.gpus:215: gpus: count=2
2026-08-07T23:29:05 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.temp:174: temp: idx=0
2026-08-07T23:29:05 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.usage:185: usage: idx=0
2026-08-07T23:29:05 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.clock:195: clock: idx=0
2026-08-07T23:29:05 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.power:206: power: idx=0
2026-08-07T23:29:05 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.fan:216: fan: idx=0
2026-08-07T23:29:05 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.vram_used:226: vram_used: idx=0
2026-08-07T23:29:05 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.vram_total:236: vram_total: idx=0
2026-08-07T23:29:05 DEBUG trcc.adapters.sensors.psutil_sources:ComputedIo.poll:116: poll: called
2026-08-07T23:29:07 DEBUG trcc.adapters.system._base:LinuxPlatform.sensors:158: LinuxPlatform.sensors: returning cached enumerator
2026-08-07T23:29:07 DEBUG trcc.adapters.sensors.aggregator:BaselineSensors.read_all:284: read_all: cached=46
2026-08-07T23:29:07 DEBUG trcc.services.metrics_personalize:personalize_readings:76: personalize_readings: raw=46 temp_unit=C hdd_enabled=True
2026-08-07T23:29:07 DEBUG trcc.adapters.sensors.aggregator:BaselineSensors.read_all:284: read_all: cached=46
2026-08-07T23:29:07 DEBUG trcc.adapters.sensors.aggregator:BaselineSensors.cpu:207: cpu: called
2026-08-07T23:29:07 DEBUG trcc.adapters.sensors.psutil_sources:PsutilCpu.usage:49: usage: warm=True
2026-08-07T23:29:07 DEBUG trcc.adapters.sensors.psutil_sources:PsutilCpu.freq:57: freq: called
2026-08-07T23:29:07 DEBUG trcc.adapters.sensors.aggregator:BaselineSensors.gpus:215: gpus: count=2
2026-08-07T23:29:07 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.temp:174: temp: idx=0
2026-08-07T23:29:07 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.usage:185: usage: idx=0
2026-08-07T23:29:07 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.clock:195: clock: idx=0
2026-08-07T23:29:07 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.power:206: power: idx=0
2026-08-07T23:29:07 DEBUG trcc.adapters.sensors.aggregator:BaselineSensors.gpus:215: gpus: count=2
2026-08-07T23:29:07 DEBUG trcc.adapters.sensors.aggregator:BaselineSensors.memory:211: memory: called
2026-08-07T23:29:07 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.fan:216: fan: idx=0
2026-08-07T23:29:07 DEBUG trcc.adapters.sensors.aggregator:BaselineSensors.fans:219: fans: count=0
2026-08-07T23:29:07 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.temp:174: temp: idx=0
2026-08-07T23:29:07 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.usage:185: usage: idx=0
2026-08-07T23:29:07 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.clock:195: clock: idx=0
2026-08-07T23:29:07 DEBUG trcc.adapters.sensors.nvml:NvidiaGpu.power:206: power: idx=0
2026-08-07T23:29:07 DEBUG trcc.adapters.sensors.psutil_sources:PsutilMemory.percent:94: percent: called
2026-08-07T23:29:07 DEBUG trcc.adapters.sensors.psutil_sources:PsutilMemory.available:80: available: called
2026-08-07T23:29:07 DEBUG trcc.core.ports:BaselineSensors.snapshot:718: snapshot: cpus=1 gpus=2 cpu_temp=33.0 cpu_pct=0.2 gpu_temp=30.0 fans(rpm)=(0, 0.0, 0, 0)
2026-08-07T23:29:07 DEBUG trcc.services.metrics_personalize:personalize_metrics:112: personalize_metrics: temp_unit=C hdd_enabled=True cpus=1 gpus=2
2026-08-07T23:29:07 DEBUG trcc.services.metrics_personalize:personalize_readings:76: personalize_readings: raw=46 temp_unit=C hdd_enabled=True
2026-08-07T23:29:07 DEBUG trcc.core.events:EventBus.publish:407: publish: event=SensorsUpdated
2026-08-07T23:29:07 DEBUG trcc.app:_DeviceRenderObserver._on_visual_change:923: DeviceRenderObserver: SensorsUpdated for 0416:5302 → RenderAndSend
2026-08-07T23:29:07 DEBUG trcc.app:App.dispatch:783: dispatch RenderAndSend(key='0416:5302')
2026-08-07T23:29:07 DEBUG trcc.core.commands._helpers:_require_connected_device:226: _require_connected_device: key=0416:5302
2026-08-07T23:29:07 DEBUG trcc.app:App.get:570: get: key=0416:5302
2026-08-07T23:29:07 DEBUG trcc.adapters.system._base:LinuxPlatform.sensors:158: LinuxPlatform.sensors: returning cached enumerator
2026-08-07T23:29:07 DEBUG trcc.adapters.sensors.aggregator:BaselineSensors.read_all:284: read_all: cached=46
2026-08-07T23:29:07 DEBUG trcc.services.metrics_personalize:personalize_readings:76: personalize_readings: raw=46 temp_unit=C hdd_enabled=True
2026-08-07T23:29:07 DEBUG trcc.services.settings:Settings.for_device:212: for_device: key=0416:5302
2026-08-07T23:29:07 DEBUG trcc.services.display:DisplayService.build_frame:260: build_frame 0416:5302: theme='Theme1' visual=240x320 orientation=0 brightness=100
2026-08-07T23:29:07 DEBUG trcc.services._clock:compute_clock:124: compute_clock: time_format=24h date_format=yyyy/MM/dd lang=en
2026-08-07T23:29:07 DEBUG trcc.services._clock:resolve_clock:99: resolve_clock: source=time time_format=24h date_format=yyyy/MM/dd lang=en
2026-08-07T23:29:07 DEBUG trcc.services._clock:resolve_clock:99: resolve_clock: source=date time_format=24h date_format=yyyy/MM/dd lang=en
2026-08-07T23:29:07 DEBUG trcc.services._clock:resolve_clock:99: resolve_clock: source=weekday time_format=24h date_format=yyyy/MM/dd lang=en
2026-08-07T23:29:07 DEBUG trcc.services.display:DisplayService.build_frame:271: build_frame 0416:5302: clock=['date', 'time', 'weekday'] (time_format=24h date_format=yyyy/MM/dd lang=en)
2026-08-07T23:29:07 DEBUG trcc.services.media:MediaService.playback:546: playback: key=0416:5302
2026-08-07T23:29:07 DEBUG trcc.core.ports:LinuxPaths.user_data_dir:793: user_data_dir: called
2026-08-07T23:29:07 DEBUG trcc.adapters.system._base:LinuxPaths.user_content_dir:60: LinuxPaths.user_content_dir → /home/lunasia/.trcc-user
2026-08-07T23:29:07 DEBUG trcc.adapters.system._base:LinuxPaths.data_dir:56: LinuxPaths.data_dir → /home/lunasia/.trcc/data
2026-08-07T23:29:07 DEBUG trcc.services.theme:ThemeService._resolve_asset_ref:136: _resolve_asset_ref: 'web/240320/8720029fa0013099.png' → /home/lunasia/.trcc-user/data/web/240320/8720029fa0013099.png
2026-08-07T23:29:07 INFO trcc.services.theme:ThemeService.background_path:481: background_path: Theme1 → referenced asset /home/lunasia/.trcc-user/data/web/240320/8720029fa0013099.png
2026-08-07T23:29:07 DEBUG trcc.services.settings:Settings.for_device:212: for_device: key=0416:5302
2026-08-07T23:29:07 DEBUG trcc.services.settings:Settings.for_device:212: for_device: key=0416:5302
2026-08-07T23:29:07 DEBUG trcc.services.display:DisplayService.build_frame:284: build_frame 0416:5302: scene cache bg=HIT overlay=MISS
2026-08-07T23:29:07 DEBUG trcc.adapters.render.qt:QtRenderer.create_surface:115: create_surface: 240x320 color=None
2026-08-07T23:29:07 DEBUG trcc.services.settings:Settings.for_device:212: for_device: key=0416:5302
2026-08-07T23:29:07 DEBUG trcc.services.display:DisplayService._build_overlay:1134: build_overlay 0416:5302: theme='Theme1' layout=mask (4 element(s)) [theme=1 mask=4 user=0] overlay_enabled=True 7z on PATH (theme-pack extraction available)
Device (model + USB ID if you know it)
Thermaright Trofeo Vision (0416 : 5302)
Steps to reproduce (optional)
- Connect the Thermaltake Trofeo Vison 6.86" LCD via USB.
- RUN 'trcc detect' and confirm the device is detected as 0416: 5302.
- Load or create a theme and try to send it to the Lcd.
- The GUI works, but the LCD remains on the factory/default screen.
- The log shows framebuffer write failures, including "short chunk write at offset 0" and "device.send returned False".
Before submitting
What's happening?
TRCC Linux Bug Report — Winbond USBDISPLAY 0416:5302
Summary
TRCC correctly detects the Winbond USBDISPLAY device and repeatedly completes a HID Type-2 handshake with:
0416:5302USBDISPLAY0x040712811280x480However, the rendering pipeline later uses
240x320for the same device. Frame transmission then fails immediately with:short chunk write at offset 0device.send returned FalseThe LCD does not update.
This appears to be a device-profile / resolution-mapping or HID Type-2 framebuffer compatibility problem rather than a basic USB detection or permission problem.
Environment
0416:5302 USBDISPLAY0x0407Device Detection
TRCC detects one device:
0416:5302 USBDISPLAY wire=hidThe diagnostic report initially reports:
handshake: PM=128 SUB=1 fbl=128 resolution=1280x480The log also contains multiple successful handshakes:
HidLcd handshake OK: PM=128 SUB=1 resolution=(1280, 480) (type 2)This occurs repeatedly, including during diagnostic probing.
Important Resolution Inconsistency
Although the device handshake reports
1280x480, the rendering pipeline uses:DisplayService.build_frame: visual=240x320The Qt renderer then creates:
create_surface: 240x320The preview also reports:
preview.set_image: 240x320 -> widget 240x320Therefore the device is detected as a
1280x480display during handshake, but TRCC renders the framebuffer as240x320.There is also one earlier handshake entry reporting:
PM=0 SUB=0 resolution=(240, 320) (type 2)but subsequent diagnostic probes consistently return
PM=128 SUB=1 resolution=1280x480.Frame Transmission Failure
When TRCC attempts to send the rendered frame, the log shows:
HidLcd 0416:5302 (type 2): sending 154112-byte packetfollowed immediately by:
short chunk write at offset 0device.send returned False (frame)frame write returned False0416:5302 write returned FalseThis happens repeatedly.
Even a solid black frame produces the same failure:
build_solid_color_frame ... 240x320followed by:
short chunk write at offset 0device.send returned FalseSensors / System Health
TRCC itself is otherwise functioning:
The health report shows only one warning:
udev-rules: No TRCC udev rules found under /etc/udev/rules.d/The report suggests
trcc system setup, but USB access is already working and the device can be detected and opened.Expected Behavior
The device should be treated according to the successful HID Type-2 handshake:
PM=128SUB=1resolution=1280x480The rendered framebuffer should match the actual device profile and be transmitted successfully.
Actual Behavior
1280x480.240x320.240x320framebuffer.Request
Could you please check whether the
0416:5302/ firmware0x0407device profile is being mapped incorrectly?In particular, please check:
1280x480butDisplayService.build_frame()uses240x320.PM=128 / SUB=1 / fbl=128has a dedicated HID Type-2 profile that should use1280x480.240x320profile._write_frame()receives a short write at offset 0 even though device detection and handshake succeed.Key Log Evidence
Successful handshake:
HidLcd handshake OK: PM=128 SUB=1 resolution=(1280, 480) (type 2)Incorrect rendering size:
DisplayService.build_frame: ... visual=240x320Frame transmission:
HidLcd 0416:5302 (type 2): sending 154112-byte packetFailure:
short chunk write at offset 0device.send returned Falseframe write returned FalseThank you.
report.txt
Diagnostic report (
trcc report)Device (model + USB ID if you know it)
Thermaright Trofeo Vision (0416 : 5302)
Steps to reproduce (optional)
Before submitting
pip install --upgrade trcc-linux, or the latest installer)trcc reportabove — or my install/launch error if it won't run