Skip to content
Origin89

Origin89 hardware

The boards and the enclosure of the Origin89 controller: a box that starts a generator and manages a battery bank at a site four hours from a road, through a Canadian winter, with nobody watching it fail. The reasoning behind the circuits is in docs/DESIGN.md, the rules each board keeps are beside the board, and this repository holds what was drawn from them and what a fab needs.

Board Stage Files
Controller, board A prototype: revision A on the bench, the radios receive, board B's interlock not yet proven EasyEDA source, Gerbers, BOM, pick-and-place, STEP, DXF, fabrication drawing
Generator, board B prototype: five boards assembled; the relay chains need a four-link rework, after which the interlock passes on the bench EasyEDA source, Gerbers, BOM, pick-and-place, STEP, DXF
Enclosure drawn, printing waits on a measured board FreeCAD source, Blender presentation scene

Nothing here is a validated product. A board that has been fabricated has not necessarily been measured, and one that has been measured has not been through a winter.

Layout

Each board has a README with its status and revisions, its design source under easyeda/, dated fabrication exports under build/<date>/, and, once a board is on the bench, dated session write-ups under bench/. A file that has been filed never changes: a changed export goes beside the old one under a new date, so a board in someone's hands can still be matched to its files. The STEP models are in Git LFS; install git-lfs before cloning or they come down as pointer files.

EasyEDA names its exports after the board number and the date and puts them in directories with parentheses. Do not file them by hand:

python tools/import_easyeda_export.py controller-a ~/Downloads/PCB1_2026-09-15

reads the date from the filenames, writes build/2026-09-15/ with the same names every export gets, gerber.zip, bom.csv and bom.xlsx, pick-and-place.csv, schematic.pdf, fabrication-layers.pdf, board.step and board.dxf, puts the .eprj2 project under easyeda/, and refuses a file it does not recognise or one that would change what is already filed. Filing the 2026-09-09 exports through it reproduces the committed files byte for byte, which is the check that the convention is the script and not a memory.

Checks

pip install gerbonara shapely
python tools/validate_gerbers.py boards/controller-a/gerber-rules.json boards/controller-a/build/2026-09-09/gerber.zip

It reads the copper layer by layer and reports each rule by number, so a failure names the hole or the band. Which holes, which keep-out radius and which voids come from the board's gerber-rules.json, so the same script checks the camera board against its own rules. It runs in CI on every push against the newest controller export.

Licence

The design files, drawings and CAD are under the CERN Open Hardware Licence version 2, weakly reciprocal (LICENSE): change the board and share the change; build a product around it and keep the rest of that product to yourself. The Python tools are under MIT OR Apache-2.0 (LICENSE-MIT, LICENSE-APACHE). The Origin89 name and marks are not covered by either; see the brand repository.

About

Controller and generator boards for an off-grid site nobody is watching. The generator contact sits on its own board, so no single fault can run the tank dry.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages