How beastwithin/ht203u-thermal works
HT-203U thermal viewer is a dual-platform USB thermal-camera viewer. Users start the desktop Python viewer or Android app, which acquire camera frames, decode the temperature data, and present a colour-mapped view with temperature readouts. The desktop also supports one-frame PNG/CSV exports and Linux virtual-camera streaming. Android’s frame-processing and colour-map layers are explicit in source; Python responsibilities share one script, and some orchestration details are documented rather than visible in the excerpt.
Main entry points: MainActivity.kt Android activity · thermal.py Python viewer · ThermalProcessor.kt Thermal processor · Colormap.kt Inferno colour map
Components 17
Desktop viewer
- Python viewer
thermal.py - Camera capture
thermal.py - Latest frame
thermal.py
Android viewer
- Android activity
android/app/src/main/java/com/beastin/ht203u/MainActivity.kt - UVC camera library
- Thermal display
android/app/src/main/java/com/beastin/ht203u/MainActivity.kt
Frame processing
- Temperature decode
thermal.py - Thermal rendering
thermal.py - Thermal processor
android/app/src/main/java/com/beastin/ht203u/ThermalProcessor.kt - Inferno colour map
android/app/src/main/java/com/beastin/ht203u/Colormap.kt
Desktop outputs
- PNG / CSV export
thermal.py - Virtual webcam
thermal.py
Other components
- Desktop user
- ffmpeg
- v4l2loopback device
- Android user
- HT-203U camera
Connections 19
- Desktop user → Python viewer: starts
README.md - Python viewer → Camera capture: opens stream
thermal.py - Camera capture → ffmpeg: reads camera
thermal.py - Camera capture → Latest frame: publishes frames
thermal.py - Latest frame → Temperature decode: provides frame
thermal.py - Temperature decode → Thermal rendering: produces temperatures
thermal.py - Python viewer → PNG / CSV export: saves frame
thermal.py - Python viewer → Virtual webcam: runs stream
thermal.py - Virtual webcam → Latest frame: reads newest frame
thermal.py - Virtual webcam → Thermal rendering: renders frame
thermal.py - Virtual webcam → ffmpeg: writes video
thermal.py - ffmpeg → v4l2loopback device: streams output
README.md - Android user → Android activity: opens app
README.md - HT-203U camera → UVC camera library: streams frames
README.md - Android activity → UVC camera library: opens camera
android/app/src/main/java/com/beastin/ht203u/MainActivity.kt - UVC camera library → Android activity: delivers frames
android/app/src/main/java/com/beastin/ht203u/MainActivity.kt - Android activity → Thermal processor: processes frames
android/app/src/main/java/com/beastin/ht203u/MainActivity.kt - Thermal processor → Inferno colour map: uses lookup table
android/app/src/main/java/com/beastin/ht203u/ThermalProcessor.kt - Android activity → Thermal display: updates image and readout
android/app/src/main/java/com/beastin/ht203u/MainActivity.kt