Контроллер AtsPLC на базе микроконтроллера ESP8266 поддерживает программирование на языке ladder с помощью OLED-дисплея 128x64 и трех кнопок. Система работает под управлением FreeRTOS и C++. Программа представляет собой дерево из сетей и логических элементов, где каждый элемент является отдельным классом, отвечающим за логику, отрисовку и сериализацию данных.
Контроллер использует событийную модель: задача просыпается только при необходимости обработки изменений, а цикл выполнения ограничен 20 мс. Размер файла программы не превышает 4 КБ, а графический буфер занимает 1024 байта при однобитной глубине цвета. Отрисовка на экран SSD1306 происходит только при изменении состояния кадра.
Удаленное управление реализовано через передачу сырых битовых карт в браузер, который отображает интерфейс на canvas. Это позволяет использовать единый код обработки для физических кнопок и веб-интерфейса. Фронтенд на Angular встраивается непосредственно в прошивку, что исключает необходимость использования внешней файловой системы.
Для сохранения состояния после перезагрузки используется RTC-память, а для защиты программных файлов — дублирование в памяти с проверкой CRC32. Библиотека MigrateAnyCppData обеспечивает обновление структуры настроек при смене версий прошивки. Также реализован патч для клиента SNTP в lwIP, предотвращающий цикличные DNS-запросы при ошибках подключения.
Код проекта покрыт 785 юнит-тестами на базе CppUTest, что позволяет проводить отладку и модификацию ядра в среде Linux с использованием заглушек. В апреле 2025 года автор направил патч для исправления работы SNTP в репозиторий lwIP для интеграции в основной SDK.




