Skip to content

How to import from Altium Designer into JITX

Prepare an Altium Project for Import

If you have not installed the Altium extension, follow the instructions for Installing the JITX Altium Extension. JITX and Altium should be installed on the same computer and able to launch at the same time.

Before importing Altium data to JITX, make sure you've done the following : - Open Altium and be sure to activate a valid Altium license. - Make sure all parts are in both the schematic and layout, they must not be missing in either! - Make sure the schematic is fully annotated. No ? characters in reference designators are allowed. - Synchronize designs by running Update board from schematic from Altium. - Ensure only one .PcbDoc is associated with the Altium project you are trying to import. - Get better component data, using a jitx-import-bom.tsv file.

Import the prepared design

Either create a new project in JITX or open an existing project folder in VS Code.

In the JITX pane in the extension, select "Import from Altium", and browse to the PrjPCB file for the project you prepared in the first step.

JITX generates code for the design and the components for the Altium project we just imported in the altium-imports directory. We can now use our design data in JITX!

Structure of the imported design

The JITX importer generates code from the source Altium project. The code is structured to be as reusable as possible, and tries to translate the structure in the schematic into reusable circuits. Enough data is maintained to allow reproduction of the original design in Altium.

Files

Let's say we import an Altium project named RedOctober. The importer will then generate the following directory:

RedOctober/
  symbols/
  landpatterns/
  components/
  3d-models/
  RedOctober.stanza
  reference-designators.stanza
  properties.stanza
  placements.stanza
  labels.stanza
  board.stanza
  run-design.stanza
  log.txt
  stanza.proj

symbols/ This directory contains symbols that are used more than once by components in the design.

landpatterns/ This directory contains landpatterns that are used more than once by components in the design.

components/ This directory contains component models for the parts in the design. It is organized by manufacturer.

3d-models/ This directory contains the 3D models present in the design.

RedOctober.stanza This file contains the JITX version of the original design. The design is composed of a tree of pcb-modules in order to get the most reusability: - the main pcb-module is the top-level design. Running this module will re-create the original design - pcb-module main instantiates other pcb-modules for each schematic sheet in the project. - Each of those schematic-sheet level modules instiates pcb-modules for each group of symbols that are directly wired together. So we should usually get each individial circuit in our design coming in as a reusable pcb-module. This is not perfect, and it's normal to rearrange these modules a bit to get a great heirarchical and reusable representation of our design.

reference-designators.stanza This file sets the reference designators of the components in the design so that the original design can be regenerated.

properties.stanza This file contains the Altium parameters stored as JITX properties.

placements.stanza This file contains the component placements from the board.

labels.stanza This file sets the detailed size and location of reference and value labels so the original design can be recreated.

board.stanza This file contains material and stackup definitions, as well as the board outline geometry.

run-design.stanza This file contains commands to run the main module defined in RedOctober.stanza either to run checks or re-export the design to Altium.

log.txt This file is a log of the import, noting data inconsistencies in the source design file and how they were handled.

stanza.proj This file links all of the above stanza files mapping package definitions to the file that contains them.

Custom Layer Names

Mechanical layers in Altium will map to the CustomLayer instances with the name Pcb-Mechanical## where ## maps to the number of the mechanical layer.

Other special layers such as:

  Pcb-DrillDrawing
  Pcb-MultiLayer
  Pcb-ConnectLayer
  Pcb-BackGroundLayer
  Pcb-DRCErrorLayer
  Pcb-HighlightLayer

Will also map to a string representation.

Errata

See the Altium Importer Errata for current known issues with projects imported from Altium.