The AtsPLC controller, based on the ESP8266 microcontroller, features a ladder logic programming environment managed directly via a 128x64 OLED display and three buttons. The system utilizes FreeRTOS and C++, with the program structure organized as a tree of networks and logic elements. Each element is defined as a class handling its own logic, rendering, serialization, and editing.

The controller operates on a reactive cycle, waking only when necessary to process input/output changes. To ensure stability, logic execution is limited to 20 ms per cycle. Memory management is constrained, with the entire program file occupying no more than 4 KB. The display buffer is optimized to 1024 bytes, utilizing a 1-bit-per-pixel format for the SSD1306 screen.

A web interface allows remote management by streaming raw bitmap frames from the device to a browser canvas. This approach eliminates the need for a separate JavaScript-based UI, as the browser replicates the device's visual state. The frontend is built with Angular, with files embedded directly into the firmware flash memory.

Data persistence is managed through RTC memory for session state and dual storage slots with CRC32 verification for program files. The system includes a migration library to handle structure changes across firmware versions. Additionally, the developer implemented a patch for the lwIP SNTP client to prevent excessive DNS request loops during server connection failures.

Development is supported by 785 unit tests using the CppUTest framework, which allows for core modifications on Linux using mocks. The project also includes a specific patch for the ESP8266_RTOS_SDK, submitted to the lwIP repository in April 2025, to improve error handling during time synchronization.