EpicECU's main product
Alpha release coming soon
Programmor
Describe your hardware once, then use one desktop application to connect, configure, monitor, and understand it.

For teams and users
Made for the people who build hardware and use it
Hardware teams define how their product works with Programmor. Users get an application that already understands the device.
Build support
For hardware developers
Turn a device definition into a desktop application without building and maintaining one for every product.
- Add device support without changing Programmor's core application
- Version and validate the contract between the device and application
- Preview the experience with sample data before hardware is connected
- Reuse supported adapters across compatible products
Use hardware
For device users
Find the device, connect to it, and work with its data through one consistent interface.
- Find supported hardware and open a working session
- Review and edit settings online or offline
- Monitor live values, graphs, tables, and device status
- Record a session and return to it later for replay
Configuration-driven integration
Describe the device. Programmor builds the interface.
A device configuration and its Protocol Buffers schemas form a typed contract. Programmor validates that contract and builds the interface at runtime.
- 01
Device config
Describe
Define the device identity, capabilities, values, constraints, views, and controls in a readable configuration file.
- 02
Protocol Buffers
Model
Bundle .proto schemas to give device messages stable types and map their fields to configured values.
- 03
Adapter
Connect
Use an existing adapter for the physical link. Add another adapter only when the transport requires it.
- 04
Programmor
Present
Programmor validates the complete definition and builds a consistent interface for the people using the device.
No separate desktop build for every device. Build, validate, and preview device support independently. Update it as the hardware evolves.
Clear boundaries
Safety, security, and privacy start with the design
Programmor keeps important boundaries visible without making everyday device work harder.
Validated configurations
Check structure, compatibility, bindings, and content integrity before using a device configuration.
Safer changes
Validate typed values and clearly show operations that will change the device before applying them.
Clear state
Keep device data, saved settings, unsaved edits, live values, and replayed values distinct.
Local-first data
Keep device and session data under the user's control unless they choose an online workflow.
Isolated communication
Run managed device adapters separately from the desktop interface and supervise their lifecycle.
Recoverable work
Protect saved work and keep recovery separate from actions that write to hardware.
Programmor's desktop safeguards support the protections in device firmware, hardware, and transport. They do not replace them.









