Case study · Built with Compose
We used Compose to build the machine that brings hardware up.
The rig that powers, programs, measures, and validates your product is the next bottleneck. Bespoke, low-volume, EE-heavy, and it gates your ship date.
So we built ours with Compose. Boards, simulation, iteration. The same pipeline we sell. This is what that looked like, told honestly, including where it is still hard.
The second wall
Every hardware team hits the same wall twice.
The first wall is designing the product. Everyone plans for it. The second wall is the machine that proves the product works. The fixture that sequences power, flashes firmware, drives stimulus, reads 16-bit signals back, and decides pass or fail.
It is custom, it is one-off, and it is where schedules quietly die, because it needs the same electrical, mechanical, and firmware effort as a product nobody will ever sell. Compose was built for the first wall. It turns out to be just as good at the second.
So we pointed it at our own machine. We dogfood the product we sell.
The subject
FL-1, a precision bring-up machine, designed in Compose.
Its job is to sit on the bench, connect to a board under test, and measure it truthfully. 16 analog channels, digitized to 16 bits against a precision reference, controlled over I2C, reported over an RS-485 instrument bus. This is the measurement chain Compose wired.
- Digitizer. ADS1115. 16-bit delta-sigma ADC over I2C.
- Reference. REF3025. 2.5 V precision voltage reference.
- Front end. CD74HC4067. 16-channel analog mux.
- Controller. RP2040. Drives channel select, reads the ADC.
- Comms. MAX3485. RS-485 to the instrument bus.
The pipeline
A sentence goes in. A verified, manufacturable board comes out.
01 · Design
Prompt to routed PCBA
Real parts, a real netlist, routed and checked against a live KiCad DRC at the fab's rule profile. Two to eight copper layers, escalated as density demands.
02 · Mechanical
Fit-checked enclosure
A CAD enclosure generated from the board, with the actual PCB checked against the actual cavity. Not a rendering, a fit check.
03 · Simulate
Physics and function
Multi-physics and functional SPICE run on the design that shipped, each result labeled with its solver and its fidelity.
04 · Build
Fab and sourcing docs
Gerbers, drill, pick-and-place, BOM, and a test plan. The package that turns a routed board into an order.
The same flow a customer runs. No special path for us. Each stage grounds on the last, and the whole loop iterates. When a board runs hot or fails a check, it feeds back and re-designs rather than faking convergence.
The receipts
The simulation is real. Here are the numbers.
Not a vibe check. Actual solvers on the actual netlist. Beyond the thermal and mechanical passes, Compose ran a functional SPICE deck on each critical signal path of the measurement board, parameterized from the real parts on the board.
2.5 V reference
Holds under a load step.
0 uV settled error
Mux to ADC
Settles to 16-bit in time.
0.3 us, about 1000x margin
RS-485 drive
Valid differential on the bus.
2.36 V, 1.57x spec
Power rail (PDN)
Rail stays decoupled.
0.16 ohm, under 8 mV ripple
- ngspice electrical
- scikit-fem thermal
- CalculiX structural
- OpenFOAM CFD
- Elmer acoustics
Honest scope. These are critical-path capability checks with datasheet-class device assumptions. They confirm the reference holds, the source settles to resolution, the driver drives, the rail is decoupled. They are not a whole-board behavioral model. Final functional truth still comes from bench bring-up, which is exactly the job FL-1 exists to do.
Why dogfooding matters
Building a real machine with it made the product better.
This is the part a demo cannot give you. Pointing Compose at hard, real hardware surfaced real gaps, and each one became a shipped capability. The machine got built. The product got sharper.
Found on the bench
DRC-clean is not correct
A board can route perfectly and still be non-functional. A mux with only its power pin wired, an MCU with no flash to boot from. Manufacturability checks never catch it.
Shipped in Compose
A design-correctness gate. A rules engine that verifies the design is wired to work, every IC functionally connected and the signal chain intact, and blocks buildable-but-wrong before it reaches fab.
Found on the bench
Dense precision boards fight two layers
The measurement front end would not route clean on two layers. Real via congestion, not a bug.
Shipped in Compose
Multi-layer routing on 4, 6, and 8 layers, and an auto-partition that splits a too-dense board into a two-board kit with a synthesized connector. A rigid-flex path that folds those halves into one part is in progress.
Found on the bench
It simulates hid what mattered
Thermal and mechanical passing said nothing about whether the circuit works. The reference, the settling, the drive.
Shipped in Compose
Functional SPICE as a gate. Netlist-parameterized ngspice decks that run automatically on the critical paths. The numbers above are the output.
The takeaway
Compose builds your product. And the machine that proves it works.
The bring-up rig is the bottleneck no one budgets for. It is electrical, mechanical, and firmware, and it is exactly what this pipeline compresses. We know, because we built ours with it.
FL-1 is a live, in-progress build. Everything here was produced by Compose through the iterative process described above. Where the automated pipeline still lands short of a clean board on the densest designs, we say so. That frontier is what the multi-layer, partition, and flex work continues to push.