Skip to main content
Get the EVCore firmware and Studio running on your Windows workspace in a few steps. You can build the C11 firmware with a workspace-local Zig compiler, Clang, or GCC, then run the test suites and launch EVCore Studio with simulated hardware. No physical board is required.

Prerequisites

  • Windows with PowerShell
  • Node.js 22+ and npm (for EVCore Studio)
  • CMake 4.x and Ninja (optional, for CMake builds)
  • Zig 0.13.0 is available under .tools in the repository; no separate download is needed

Build the firmware

1

Run the all-in-one build script

From the repository root in PowerShell:
This compiles all six firmware programs, runs three test suites, and executes the scripted simulations. Use -TestsOnly to suppress the demo output.
2

Verify before committing

Run the full verification gate to confirm every firmware and Studio check passes:
Use -Quick to skip the CMake rebuild and Electron tests.
3

Run static analysis

Run the Clang static analyzer. It must report zero findings:

Build with CMake

CMake reports “Detecting C compiler ABI info - failed” during configuration because Zig rejects the -Wl,-v probe flag. This does not affect compilation.

Build in VS Code

Open the repository folder in VS Code and press Ctrl+Shift+B to run the default build task. This executes the same compilation and test sequence as scripts/run-all.ps1.

Run EVCore Studio

1

Install dependencies

2

Start the app

This opens EVCore Studio in its own window, starting with clearly labeled simulated data.
Alternatively, run Launch EVCore Studio.cmd to start the installed dependencies without a terminal.

Run the integrated simulator

Run the MVP simulator and its tests:
For an interactive text console, use:
In interactive mode, time advances with TICK (10 ms) or simulated STOP changes. Profiles 1, 2, and 3 simulate an analog sensor, three phase resistances, and passive back-EMF. Use START 2, several TICK commands, then REPORT to inspect raw results. INFO and PROFILES discover the interface; REPORT JSON exports a completed result.
The interactive simulator must never be used as the scheduling model for a real energized device.