FaraSWearly access

Firmware with
receipts.

FaraSW takes the software baseline and produces what a serious program actually needs: low-level requirements, a design description, code that carries its own trace, and tests whose executed results back every claim. Your engineers keep their editor. The evidence takes care of itself.

01
Baseline
SwRS in, from FaraSYS
02
Decompose
Low-level requirements, per HLR
03
Design
The SDD, reviewed by humans
04
Implement
Test-first, in your IDE
05
Verify
Tests run; coverage measured
06
Disclose
Trace + evidence up the spine
Where it lives

Your IDE. Two new neighbors.

No new editor to adopt. FaraSW ships as an extension beside an AI coding pane in VS Code (Eclipse next): the requirement follows your cursor, the trace state sits above every function, and approvals happen in a panel — not in a chat scrollback.

tool_presence.c — tc5-carousel-fw — VS Code
implements TC5-SW-LLR-3 host ✓ pass · MC/DC 87% · target —
/* @implements TC5-SW-LLR-3 */
void debounce_update(uint8_t ch, bool raw) {
  shift_reg[ch] = ((shift_reg[ch] << 1) | raw) & 0x07;
  if (shift_reg[ch] == 0x07 || shift_reg[ch] == 0x00)
    report_state(ch, shift_reg[ch] == 0x07);
}
static void motor_tune_experiment(void) { … }
untraced function — no @implements anchor. This cannot merge. Trace it, derive a requirement for it, or remove it.
AI pane

Wrote the test first (@verifies TC5-SW-LLR-3), then the debounce. Preflight passes on host.

One flag: holding the 100 Hz deadline needs this task above the RS-485 service task. That's a derived requirement — it's not in the baseline. Draft it?

Draft LLR + CRNot needed
FaraSW panel
TC5-SW-LLR-3

3-deep sample register per channel; report a change only on 3 identical consecutive samples.

Derived LLR (proposed)

Sampling task priority above RS-485 service. Files a CR upstream.

ApproveEditReject

The AI drafts. The panel decides. The test runner proves. Three different jobs, deliberately kept apart.

Verification

The compiler and the test runner are the referees.

A requirement is verified when its traced tests actually executed and passed, with the structural coverage your assurance level demands — MC/DC for the highest — measured by tooling. Not when a model says the code looks right. Not when an engineer says they tested it. The gate is deterministic and nobody, carbon or silicon, gets to talk it into anything.

  • Test-first: tests are generated from the requirements, before the code.
  • Static analysis to your subset (MISRA C for the reference profile).
  • Coverage gaps surface as findings — untested code has nowhere to hide.
DAL AMC/DC coverage, measured
DAL Bdecision coverage, measured
DAL Cstatement coverage, measured
a coverage claim above the toolchain's measured capability is refused, not estimated
Discipline, enforced

No code without a requirement. None.

Every function carries a trace anchor to the low-level requirement it implements, and the merge gate refuses untraced code outright. An engineer with a better idea doesn't lose the idea — they route it: a derived requirement, reviewed and filed upstream as a change request, then the code. How to implement stays the engineer's call. What the software does belongs to the requirements.

  • Trace anchors live in the source — diffable, reviewable, parsed deterministically.
  • Requirements-based coverage doubles as the unintended-function detector.
  • Merges blocked while unit tests fail, coverage is short, or the baseline moved underneath you.
all functions tracedgate: pass
tests executed · 41/41 pass · hostgate: pass
MC/DC 87% < objective on LLR-3merge blocked
motor_tune_experiment() untracedmerge blocked
Where tests run

Host, simulated, on-target. Three different truths.

Passing on your laptop is not passing on the processor. Every piece of evidence is stamped with the rung it ran on — host, simulated (QEMU or VxSim class), or the real target — and the rungs never substitute for each other. Your release gate decides which rung each branch must clear. For TC5, the target rung is the very board FaraEDA designed.

  • Toolchains pinned per target profile; embedded C first, VxWorks next.
  • Language, RTOS, and coverage tooling are per-customer profiles, not product constants.
host · native, containerized41/41 · MC/DC measured
simulated · QEMU-class41/41
target · the FaraEDA-built boardrelease gateHIL
For DO-178C and kin

Built by people who read Table A-7 for fun.

The trace matrix — system requirement to software requirement to low-level requirement to code to test to coverage — is generated, not maintained. Derived requirements route to your safety process the way the standard expects. And because no model ever sets a verification status, the tool-qualification story stays clean: the deterministic verification chain is what a program qualifies, and already-qualified coverage tools can slot in as the measuring oracle. Certifiable, not certified — you own the certificate, we make the evidence cheap.

DO-178C · objectives-shaped evidence MC/DC · measured, never estimated MISRA · subset per profile ReqIF / docx · documents rendered
In the family

The software leg of the V.

FaraSW builds against the software baseline FaraSYS publishes, and discloses its design description, code manifest, and test evidence back up the same contract. On the golden project, the firmware's timing requirements cite the input stage of the board FaraEDA designed — one spine, both legs, traces meeting at the system requirements.