EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  2025  <2026 Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  2025  <2026
<== Date ==> <== Thread ==>

Subject: New open-source tools: yaml2epics (YAML database compiler) and epics-webapp (web dashboard)
From: Elmaddin Guliyev via Tech-talk <tech-talk at aps.anl.gov>
To: tech-talk at aps.anl.gov
Date: Fri, 15 May 2026 20:11:29 -0700
Hi all,

I'd like to share two open-source tools I've developed for the EPICS community.

yaml2epics — YAML-to-EPICS Database Compiler
https://github.com/egguliyev/yaml2epics

Define your IOC databases in human-readable YAML instead of hand-written .db files. The compiler validates records (catches issues like using calc instead of calcout for output links), auto-resolves PV name prefixes in forward links, generates per-device and combined .db files, produces st.cmd startup scripts with async port configuration, and outputs interface documentation. Supports ai, ao, bi, bo, calc, calcout, mbbi, mbbo, longin, longout, stringin, stringout, and seq record types.

The motivation: after hitting the calc-vs-calcout OUT field error for the nth time, I wanted schema validation before iocInit, not after.

epics-webapp — Web-Based Control Dashboard
https://github.com/egguliyev/epics-webapp

A lightweight Node.js web dashboard for EPICS. Connects to an IOC via caget/caput/camonitor over Channel Access and serves a browser-based operator interface with live PV updates via WebSocket, real-time strip charts (canvas-based), click-to-set (caput from the browser), alarm severity filtering, snapshot save/restore of IOC state, and a REST API for PV data and history. Single dependency (ws). No Java, no Tomcat, no PVWS.

Both projects include a complete example: a simulated X-ray imaging system with 61 records across 5 subsystems (pixel detector with GigE readout, X-ray tube HV, shutter with interlocks, cabinet safety, and low voltage power supplies).

I'd welcome feedback, especially on the YAML schema design and any record types or features that should be prioritized next.

Elmaddin Guliyev, Ph.D.
Rad Detect AI

Navigate by Date:
Prev: Re: [EXTERNAL] PyDM Write Widgets Do Not Honor PVA ACF Permission Rules Kasemir, Kay via Tech-talk
Next: EPICS modulle for Piezosystem Jena's piezo controller NV 40/1 CLE LiangChih Chiang via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  2025  <2026
Navigate by Thread:
Prev: Re: [EXTERNAL] PyDM Write Widgets Do Not Honor PVA ACF Permission Rules Kasemir, Kay via Tech-talk
Next: EPICS modulle for Piezosystem Jena's piezo controller NV 40/1 CLE LiangChih Chiang via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  2025  <2026
ANJ, 18 May 2026 · Home · News · About · Talk · Base · Modules · Extensions ·
· Distributions · Download · Documents · Links · Licensing ·