Frasy is a Windows desktop application for automated PCBA (Printed Circuit Board Assembly) testing. It combines a C++ host process for UI, hardware communication, and test orchestration with a Lua scripting layer where all test logic lives — allowing test engineers to write and iterate on test sequences without recompiling the application.
Sequence("Power On", function()
Test("Check Supply Voltage", function()
local daq = Context.map.ibs.daq --[[@as DAQ]]
local v = daq:MeasureVoltage(Context.values.route.vcc)
Expect(v.average, "Supply Voltage"):ToBeInPercentage(3.3, 5.0)
end)
end)- Descriptive test scripting — write what a board should do, not how to check it
- Multi-UUT support — test multiple boards in parallel with built-in synchronization
- CANopen hardware integration — communicate with instrumentation boards over SLCAN
- Live UI panels — log viewer, result viewer, statistical analyzer, CANopen browser, profiler
- Hash-verified scripts — integrity checking on all Lua files before execution
- Test report generation — JSON, Markdown, Key-Value, and PDF formats
Full documentation is available at frasy.rald.ca, including:
- Getting Started — installation, building, and first product setup
- Architecture — how Frasy is structured
- Developer Guide — customization and extension
- Lua Reference — complete scripting API
- Panels — built-in UI panels reference
- Windows 10 or later
- C++23 compiler (MSVC / Visual Studio 2022 recommended)
- CMake 3.22+
- Git (for submodule checkout)
Frasy is intended to be used as a git submodule in your application repository. See the the installation guide to get started.
This project is licensed under the GNU General Public License v3.0. See LICENSE for details.
- DoubleNom — architecture design and invaluable criticism
- nickclark2016 — test description procedure design