pcb-rnd knowledge pool



ipc-d-356 by Tibor 'Igor2' Palinkas on 2018-04-13

Tags: insight, import, export, test, testing, ipc, 356, e-test, etest, electric, connection, netlist

node source



Abstract: Summary of the IPC-D-356 support in pcb-rnd.


What is IPC-D-356?

IPC-D-356 is an old data format from the early 90s, used for communicating bare board testing. It describes the netlist and test point geometry (location and size) so that automated electronic board testing can be performed. As bare board, such board testing takes place before assembly. Such testing is supposed to find short circuits and broken tracks.

The format is a simple plain text format. The variant pcb-rnd uses is line based, with exactly 80 characters ("80 columns") in each line. Each test point is described by a single line of the file.

The official specification is not freely available , hail for obscure, proprietary standards! Fortunately there is an alternative: tEDAx offers a simple, reely available etest block specification.

What kind of support pcb-rnd offer?


Pcb-rnd can export test point data of a full PCB board in IPC-D-356. All light and heavy terminals of subcircuits are exported - any object that is part of a subcircuit and has a term attribute. No vias or other mid-point objects are exported.

The feature can be used to include test data in the pack sent to the board fab so automated test of boards fabbed can be performed.

The feature has not yet been tested and reported with real automated testers.


Pcb-rnd can also import IPC-D-356 files specified in the 80 column fixed format. By default, subcircuits are created by refdes and test points are turned into padstacks (light terminals) of those subcircuits. The board's netlist is overwritten by the netlist loaded from the IPC-D-356 file. It is possible to disable loading the netlist, creating subcircuits or even creating padstacks. When padstacks are disabled, only the netlist is imported.

The most obvious use case is displaying, verifying the IPC-D-356 file exported using pcb-rnd. This was the reason for writing the importer: free/open source IPC-D-356 viewers are hard to find.

Another use is reverse engineering: if you have an old board for which the design files are lost or can not be loaded (because of the format) but you happen to have an old IPC-D-356 export, that instantly gives you the netlist, the rough footprints and pins/pads.