# Minimig project notes

The AmiCube-style hierarchy was built from the original GitLab revision
`1a30d220e7fdfb857ca4780d531a2604b5337407`. The frozen KiCad files, native netlist,
PDF and ERC report are retained in `hierarchy/baseline/` for comparison.

## Structure

`Minimig198itx.kicad_sch` is the system overview. Its five sections are Power,
FPGA, Control, Interfaces and Mechanical. Circuit sheets use A4 landscape,
explicit section links, named bus interfaces and consistent signal tables.
The original 208-pin FPGA drawing is divided into six functional units; original
pin names, numbers, electrical types, strap connections and net assignments
are preserved. This drawing grouping does not claim to represent silicon banks.

All 33 pages use A4 landscape. The final pages 29–33 are documentation sheets:

1. Top assembly
2. Bottom assembly
3. Layer stackup
4. Routing guide
5. Power and buses

The complete PDF is `Minimig198itx-schematics.pdf`. Public documentation,
PDF schematics, iBOM, manufacturing exports and offline bundles are linked from
[The Source](https://www.minimig.ca/minimig-source-code/#minimig-198itx).
The [presentation](https://www.minimig.ca/presentations/minimig/) provides all five
A4 board-guide previews and the same download links. Editable KiCad files remain
internal; publishing the exported documents is separate from a Git push.

## Consolidated layout (17 October 2026)

The previous 46-sheet layout is reduced to 33 without changing physical pin
connectivity. Intermediate CPU, ARM, memory, FPGA-unit, regulator and VGA
overview pages have been removed. The retained section pages link directly to
their circuits. The following circuits now share sheets:

- All three regulated rails.
- MC68000, supply bypass and bus pull-ups; all five bus translators.
- ARM controller, crystal, PLL RC network and local controls.
- FPGA power pins and all associated bypass capacitor banks.
- VGA DAC, sync and bypass capacitors.
- Mounting holes/fiducials and the mechanical/documentation index.

SRAM bypass parts sit below their associated memory devices. ATX, CPU, SRAM
and UART pins have outward-facing net labels with explicit wire stubs. The
serial charge-pump capacitors are separated from the dense pin fan-out.
Repeated PWR_FLAG value text is hidden while the electrical flags remain.
Legends list signals shared between sheets rather than internal node paths.

The five documentation pages are reflowed for A4 with readable text, a reserved
title-block area and calibrated 1:2 assembly plans. Top/bottom images retain
the native CAD pixels and transparency, are trimmed to their nontransparent
extent (including protruding connectors), and include explicit 300 dpi metadata.
`board_drawings/assets/render-framing.json` records the PCB-outline calibration.
PCB schematic associations and net-name metadata follow the new hierarchy;
PCB geometry, models, project settings and libraries are preserved.

## Portable libraries

Both library tables resolve through `${KIPRJMOD}`:

- `libraries/symbols/Precision-Arrays-Minimig.kicad_sym` contains 54 cached-source symbol definitions.
- `libraries/footprints/Precision-Arrays-Minimig.pretty` contains 344 exact variants for all 392 PCB footprints, including graphics. Source instances sharing a legacy library ID sometimes differ; those variants remain separate.
- `libraries/models/` contains all 40 original model mappings, their exact-stem companion files and existing license notices: 64 model files and six notices for 358 placements.

The original `Libs/` and manufacturing archives remain as historical source
material. Active symbols, footprints and model paths use `libraries/`.
Third-party assets retain their included licenses and original authors' rights.

## Preservation and checks

`hierarchy/verification.json` records the independent audit. It confirms all
403 net partitions across 1,623 physical pins, all 380 component references and
values, and all 208 FPGA pin definitions. The PCB retains every footprint,
pad, segment, arc, via, zone, position, layer and model transform. Only local
library IDs, relative model filenames, schematic associations and corresponding
net-name metadata changed. Native global continuations remove the original
root-sheet slash prefix from named local nets; electrical pin partitions and
PCB net codes are unchanged. The source spelling `FPG_A19` is retained.

The original ERC report had 758 findings. The reorganized project has two:
J12 pin P4 (VDD) lacks an output-power driver, and the original wire UUID
`9a6260ea-76d8-418e-8217-5f4bb330ae2a` has an open endpoint. Both are inherited
source conditions, not silently repaired circuit changes. This is a layout and
library-preservation update, not electrical or manufacturing sign-off.

Run from the project root with Python 3 and KiCad 10:

```sh
python3 tools/localize_models.py --verify
kicad-python tools/localize_footprints.py --verify
kicad-cli sch export netlist --format kicadxml -o documentation/hierarchy/netlist.xml Minimig198itx.kicad_sch
python3 tools/verify_project.py
kicad-cli sch erc --format json -o documentation/hierarchy/erc.json Minimig198itx.kicad_sch
```

## Rebuilding the original hierarchy

The conversion tools deliberately rebuild from the frozen original. They are
historical migration tools, not a routine refresh command. Do not run them over
the current layout or subsequent circuit edits. Regular design work proceeds
directly in KiCad. `polish_schematic.py`, `consolidate_schematic.py` and
`finish_schematic_layout.py` record the layout migration steps and require native
netlist/ERC review when used on a reconstructed original hierarchy.

Refresh documentation and exports from the current saved project:

```sh
python3 tools/board_documentation.py
kicad-cli sch export pdf -o documentation/Minimig198itx-schematics.pdf Minimig198itx.kicad_sch
kicad-cli sch export netlist --format kicadxml -o documentation/hierarchy/netlist.xml Minimig198itx.kicad_sch
kicad-cli sch erc --format json -o documentation/hierarchy/erc.json Minimig198itx.kicad_sch
python3 tools/verify_project.py
```

The documentation generator requires Pillow, Inkscape, Poppler and KiCad's
Python bindings. `kicad-python` is the default launcher; `KICAD_PYTHON` may point
to another launcher. See `board_drawings/README.txt` for packaged render details.

For a faithful native 3D export, prepare an isolated staging PCB:

```sh
python3 tools/localize_models.py --export-stage /tmp/Minimig198itx-export.kicad_pcb
```

The staging helper resolves exact STEP companions explicitly. KiCad's automatic
WRL substitution drops F1's nonuniform saved scale; the explicit path preserves
it. The packaged active PCB retains the original model type and transforms.
The local-model export audit found byte-identical geometry across all 364 native
mesh groups. Native web assets preserve 63,725 silkscreen triangles and all 46
original double-sided materials.
