WEOM SDK & Developer Platform
Advanced software for WEOM thermal systems
WEOM thermal cameras offer a modular solution for infrared imaging, suitable for end-users, developers, and OEM integrators alike. Each camera consists of two main components – a thermal core and a pluggable interface – allowing flexible deployment across various applications and environments. With a unified control interface and a wide range of C++ and Python libraries, advanced features can be easily integrated into custom systems, whether on embedded devices or desktop platforms. This document provides an overview of the camera architecture, supported interfaces, and available software tools.

All WEOM thermal cameras consist of two main components: the thermal core and a plugin interface. While all thermal cores share identical hardware, they require different firmware implementations depending on the plugin interface used. Each plugin interface provides two communication channels—one for controlling the thermal core and another for video stream data.
The control channel always uses the TCSI protocol, which communicates directly with the thermal core via serial line communication. The video stream data channel is plugin-specific. We offer various plugins that support HDMI, CVBS, GigE, UVC, and RTSP video interfaces.
End-users, developers, and OEMs can choose from several software solutions when integrating WEOM thermal cameras into their products. The WEOM GUI application is a great starting point for exploring the capabilities of the thermal cores, offering a user-friendly desktop experience. For OEMs and software developers, we provide both C++ and Python libraries that expose the full functionality of the thermal core through a well-documented API. Additionally, our latest Smart Ethernet Plugin (SEP) offers an extensive REST API, eliminating the need for libraries or external dependencies.
Architecture
To support the most common video interface standards, all WEOM thermal camera systems consist of two main components: the thermal core and the video interface plugin. The core includes an FPGA that processes the vast amount of signals from the bolometer and converts them into a raw data stream. The various plugins then convert this stream into the appropriate video format supported by the plugin.
Displaying video using one of the available plugins is simple—connect the camera to a display device or computer, and you're ready to go. However, a great deal of functionality related to infrared imaging—such as changing the color palette—is built into the thermal core and requires a unified control interface. This is where the Thermal Core Serial Interface (TCSI) comes in.
TCSI is a serial line protocol specifically designed for communication with the FPGA core using Modbus-like registers. For example, to change the palette, you send a value to the corresponding register, and the core updates the color scheme of the video output. To simplify custom software development for WEOM cameras, we offer a number of libraries that wrap these registers as Property classes. These allow developers to access core features through a high-level API, avoiding direct interaction with low-level registers and byte arrays.
Libraries
We provide well-documented libraries, each tailored to different use cases, and released under the open-source MIT license. These libraries are actively maintained and tested, as they are used in our own products, including the WEOM GUI.
WEOMlink
A lightweight C++ library based on the Embedded Template Library for controlling WEOM cameras from microcontrollers such as Arduino or ESP32. It provides ready-to-run examples for ESP32 development kits and, to keep memory and CPU requirements low, supports only a subset of the full WEOMcpp features. Requires a C++20-compliant compiler. The project is available on GitHub.
WEOMcpp
A comprehensive C++ library that provides an API for all WEOM camera features. Ideal for desktop applications and more powerful ARM Cortex platforms used in edge computing. It also forms the foundation of the WEOM GUI application and exposes all the same functionality via an API. Requires a C++20-compliant compiler. The project is available on GitHub.
Supported Platforms
Excluding WEOMpy, both WEOMcpp and WEOMlink can be compiled on any system with a modern C++ compiler. Both libraries are actively used in production on Windows and Linux (x86 and embedded). WEOMlink has been tested on ESP32 development kits, with working examples provided. Designed for low-resource devices, WEOMlink has minimal dependencies.
Although WEOMpy has more limited device support, it still offers broad compatibility. We provide pre-built Python packages supporting interpreter versions 3.8 through 3.12. It has been tested on Raspberry Pi 4, Raspberry Pi 5, and NVIDIA Jetson, and is likely to run on most Arm64 platforms. For available package versions, consult the PyPI file index.














































