Fixture · simple tier · Apache-2.0

Fixture: openlighting-dmxsun-baseboard

The 2-slot baseboard of dmxsun, an RP2040-based DMX512 lighting controller: a Raspberry Pi Pico, a WIZnet W5500 Ethernet module, an nRF24 radio, and two edge-connector slots that accept isolated or unisolated DMX I/O daughterboards.

Attribution

Upstream: OpenLightingProject/rp2040-dmxsun at commit f3b1749c, retrieved 2026-07-29. Attributed to the Open Lighting Project, which is named as the company in the schematic title block. The upstream README licenses “source code, schematics and board layouts” under Apache-2.0, which is explicit that the hardware and not merely the firmware is covered; the license text is preserved verbatim in LICENSE. Upstream states no explicit copyright line and leaves the license appendix unfilled.

Design files are copied unmodified. The upstream hardware/ layout is preserved rather than flattened, because the project’s sym-lib-table and fp-lib-table resolve through ${KIPRJMOD}/../symbols and ${KIPRJMOD}/../footprints; flattening would silently break library resolution and change the baseline. Only the two symbol libraries and two footprint libraries those tables actually name were copied. The five sibling board variants, the unreferenced NC3FD-H.pretty and RJ45_Sparkfun.pretty, the legacy .dcm descriptions, firmware, documentation, and .kicad_prl were not.

Why this board

Two reasons, one about the design and one about the suite.

The design is a real, manufactured lighting controller from a project that ships them, and it is small enough to hold in one head: 45 components on one sheet, 48 nets, three power nets. That is the same virtue the microphone board has, at roughly twice the size.

The suite reason is origin diversity. Before this fixture, every board in copperbench came from Antmicro, which means the benchmark measured how well models handle one organization’s conventions. The Open Lighting Project is a different culture entirely: hobbyist-adjacent, community-maintained, and it shows in the files. This board carries a stale baseboard_4slots-rescue: lib_id left over from a KiCad rescue operation, referencing a library that does not exist upstream and resolving from the embedded symbol cache. Antmicro’s boards do not look like that. Most of the world’s KiCad projects do.

Baseline

Measured with kicad-cli 10.0.6:

Check Errors Warnings Detail
ERC 0 224 109 lib_symbol_issues, 72 endpoint_off_grid, 43 footprint_link_issues
DRC 1 43 1 courtyards_overlap; 43 lib_footprint_issues
Unconnected 0
Parity 1 1 footprint_symbol_mismatch

This is the cleanest baseline of every candidate vetted for this suite apart from the microphone board itself.

The single DRC error deserves an account, because a non-zero error count is now permitted only when every error is enumerated and explained (FIXTURES.md section 5). It is one courtyards_overlap: two component courtyards intersecting. The board was laid out under KiCad 8 and is being checked by KiCad 10, whose courtyard evaluation is stricter, and this project’s .kicad_pro leaves courtyards_overlap at error severity rather than downgrading it as some projects do. It is recorded in fixture.json as the DRC allowlist, so drc_no_new_violations still fails on anything an agent adds.

Scale, and what it does to a surgicality bound

The schematic is 15,122 lines and the board is 37,794. A minimal correct net rename on this schematic touches on the order of ten to twenty lines, so a bound near 1 percent (roughly 150 lines) is generous by an order of magnitude and still far below what regenerating the sheet would cost. Do not inherit AC-3.7’s nominal 5 percent, which here would permit 756 lines.

Verifying this fixture

node scripts/hash-fixture.mjs --check fixtures/openlighting-dmxsun-baseboard

Regenerating the baseline reports

Only when the reference kicad-cli version changes, and the new counts belong in fixture.json in the same commit. Note that kicad-cli writes a .kicad_prl next to the project as a side effect; delete it before rehashing, or the tree hash will change:

cd fixtures/openlighting-dmxsun-baseboard/tree/hardware/baseboard_2slots
kicad-cli sch erc --format json -o ../../../baseline/erc.json baseboard_2slots.kicad_sch
kicad-cli pcb drc --format json --schematic-parity -o ../../../baseline/drc.json baseboard_2slots.kicad_pcb
rm -f baseboard_2slots.kicad_prl

This page is rendered from fixtures/openlighting-dmxsun-baseboard/README.md in the repository, at the commit the site was built from.

Provenance

From fixture.json. The hash covers only tree/, which is the part copied into the sandbox. Each task pins this hash, and result records made against a different hash are kept separate on the leaderboard.

UpstreamOpen Lighting Project rp2040-dmxsun (2-slot baseboard)
Commitf3b1749c982da85770dc9a11eada035404edc25d
Retrieved2026-07-29
LicenseApache-2.0 · verbatim LICENSE
CopyrightOpen Lighting Project (openlighting.org), named as the company in the schematic title block. Upstream declares Apache-2.0 for source, schematics, and board layouts in its README but states no explicit copyright line and leaves the license appendix unfilled.
ModificationsDesign files copied verbatim, preserving the upstream hardware/ layout because the project sym-lib-table and fp-lib-table resolve through ${KIPRJMOD}/../symbols and ${KIPRJMOD}/../footprints. Only the two symbol libraries and two footprint libraries those tables name were copied; the sibling board variants, NC3FD-H.pretty, RJ45_Sparkfun.pretty, the .dcm legacy descriptions, firmware, documentation, and .kicad_prl were not. No design file was altered.
Tree hashf055e9296dc769d4ef037919ab6752711b6163242f8d8c8f105a960d39ae93f4
KiCadauthored with 8.x, file format 20231120, verified with kicad-cli 10.0.6
Artifactsschematic: hardware/baseboard_2slots/baseboard_2slots.kicad_schboard: hardware/baseboard_2slots/baseboard_2slots.kicad_pcbproject: hardware/baseboard_2slots/baseboard_2slots.kicad_pro
Sourcefixture.json · design tree · baseline reports

Scale

The sizes that a task's diff-ratio bound is set against. A diff ratio is a fraction of the constrained file's line count, so the same percentage allows a very different amount of change on a small board than on a large one. Each task README shows the calculation for its own bound.

Sheets1
Symbols45
Schematic lines15,122
Board lines37,794
Signal netsSPI_CLK, SPI_MISO, SPI_MOSI, SPI_CS0, SPI_CS1, SCL, SDA, INT_WIZ, INT_RF24, NRF_CE, STATUS_LEDS
Power nets+3.3V, VDD, GND

Baseline verification

Measured with kicad-cli 10.0.6 on the files as vendored. A baseline error is permitted only when it is enumerated here by type and accounted for in the README above; an unaccounted one disqualifies the board. Tasks check that a run adds no new violations on top of these counts, since a real board in a bare checkout rarely produces a clean report.

CheckErrorsError typesWarningsWarning typesDetail
ERC0none22472 endpoint_off_grid, 43 footprint_link_issues, 109 lib_symbol_issues
DRC11 courtyards_overlap4343 lib_footprint_issues0 unconnected, 1 parity

The cleanest baseline of every candidate vetted apart from antmicro-microphone-board: one DRC error, one parity issue, zero unconnected items. The single `courtyards_overlap` error is a KiCad 10 geometry evaluation of a board laid out under KiCad 8, not an upstream defect; the project's own .kicad_pro leaves `courtyards_overlap` at error severity, so it is reported rather than suppressed. The 109 `lib_symbol_issues` are library resolution, including a stale `baseboard_4slots-rescue:` lib_id that has no file upstream and resolves from the embedded symbol cache. Tasks assert erc_no_new_violations and drc_no_new_violations against this record.

Tasks on this fixture

No task runs on this fixture yet.