Skip to main content

umeko-py-thermal

PyPI Python

English | 中文

Python SDK for Umeko ESP32-based thermal imaging cameras.
Read temperature matrices in real-time over serial port — no GUI boilerplate required.

Supported sensors (auto-detected):

Sensor Resolution Data format
Heimann 32×32 uint16 raw → °C
Melexis MLX90640 32×24 float °C
Melexis MLX90641 16×12 float °C

Install

pip install umeko-py-thermal

Requires Python ≥ 3.8, pyserial, numpy, and Pillow.

Quick start

from umeko_thermal import ThermalCamera

# Auto-detect serial port
cam = ThermalCamera(auto_detect=True)
cam.connect()

# Stream 100 frames
for frame in cam.stream(max_frames=100):
    print(f"max={frame.max():.1f}°C  min={frame.min():.1f}°C")

cam.disconnect()

Or use the context manager:

from umeko_thermal import ThermalCamera

with ThermalCamera(port="COM3") as cam:
    for frame in cam.stream(max_frames=200):
        mat = frame.to_numpy()   # shape: (height, width)
        img = frame.to_image(scale=10, colormap="stream")
        img.save("thermal.png")

Live preview window

with ThermalCamera(port="COM3") as cam:
    cam.show(scale=15, colormap="inferno")

Opens a small blocking window that renders the live stream.
Everything runs on the main thread — no background workers. Closing the window stops the stream, drains the serial buffer, and returns control to your script.

Device filesystem

The camera can store .bin snapshots on its internal flash:

files = cam.list_files()          # [FileInfo(name="IMG_001.bin", size=2048, type="32x32")]
frame = cam.read_file("IMG_001.bin")
frame.to_image().save("snapshot.png")

cam.delete_file("IMG_001.bin")
cam.clear_all_files()

API at a glance

Method Description
cam.connect() Open serial port
cam.disconnect() Close serial port
cam.stream(...) Generator yielding ThermalFrame
cam.show(...) Blocking live preview window
cam.list_files() List stored .bin snapshots
cam.read_file(name) Read a stored snapshot
cam.delete_file(name) Delete a snapshot
cam.clear_all_files() Wipe all snapshots
cam.list_calibrations() Read temperature calibration table
cam.reboot_to_bootloader() Enter bootloader
cam.reverse_screen_color() Flip device screen colors

ThermalFrame

Property / Method Returns
frame.data list[list[float]] temperature matrix (°C)
frame.width, frame.height Resolution
frame.max() Highest temperature
frame.min() Lowest temperature
frame.mean() Average temperature
frame.get(x, y) Temperature at pixel (x, y)
frame.to_numpy() np.ndarray shape (height, width)
frame.to_image(scale=10, colormap="stream") PIL.Image.Image (RGB)

Documentation

See docs/SDK.md for the full design spec and protocol details.

License

MIT

Metadata

Release files for umeko-py-thermal 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for umeko-py-thermal 0.1.0
File Size Uploaded Provenance Actions
umeko_py_thermal-0.1.0.tar.gz 17.9 kB Without provenance Details for umeko_py_thermal-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for umeko-py-thermal 0.1.0
File Interpreter ABI Platform Actions
umeko_py_thermal-0.1.0-py3-none-any.whl Python 3 none any Details for umeko_py_thermal-0.1.0-py3-none-any.whl

Total release size: 32.7 kB

Release files / umeko_py_thermal-0.1.0.tar.gz

Download URL umeko_py_thermal-0.1.0.tar.gz
Size 17.9 kB
Tags Source
SHA-256 checksum
How to use checksums
ea427438495c65e6076eb0ef193041c28472458856b91271f4f7ea5f5974f7e1
BLAKE2b-256 checksum
How to use checksums
59b06af78239303d3bdd03ee8720290cd73bb29a28f0b6917687e10aa5771d0a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Release files / umeko_py_thermal-0.1.0-py3-none-any.whl

Download URL umeko_py_thermal-0.1.0-py3-none-any.whl
Size 14.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4c17daa6bfc8ef598be3352c19fec34ee8ceb00b84d89db7fb6574660e8b9e06
BLAKE2b-256 checksum
How to use checksums
f5c3458af6f1c9c036d24aa44d239d5786fd5c39f6eb32b7946ce435ee61a463
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Security for umeko-py-thermal 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page