Import ExpressPCB files please

That’s it. Please add to KiCAD’s import capability the ExpressPCB “.pcb” file format.

Many Express customers wish there was a straightforward way to leave Express and take their files with them.

Sounds like you’ve learned an important lesson on the value of FOSS. I wouldn’t hold my breath for this though.

Is there any documentation of the file format?

See https://www.reddit.com/r/AskElectronics/comments/441pbi/expresspcb_what_file_format_do_you_export_your/

EDIT: see also ExpressPCB schematic importing possible?.

Out of curiosity I installed ExpressPCB Plus. It seems to save in .rrb format which I can open with 7zip and view as plain text:

; ExpressPCB Plus printed circuit board
ApplicationVersion=2.0.0
AutoViaHoleDiameter=0.75 mm
AutoViaPadDiameter=1.4 mm
BottomSolderMask=True
BottomSolderPaste=True
ClearanceMinimum=0.127 mm
CopperLayers=2
EdgeClearanceMinimum=0.38 mm
FileVersion=4.0
HoleDiameterMaximum=6.37 mm
HolePadMarginMinumum=0.44 mm
HoleViaPadMarginMinumum=0.3556 mm
ImagesInBackgroundSelectable=True
InnerLayerLowerConnectionLabel=+
InnerLayerUpperConnectionLabel=⏚
OriginOffsetY=2.5 in
PadClearanceDefault=0.381 mm
PartNumber=20
PlatedHoles=True
PoursSelectable=True
Revision=1
SpaceBetweenHolesMinumum=0.53 mm
ThermalReliefThickness=0.3 mm
ThicknessMinimum=0.127 mm
TopSilkscreen=True
TopSolderMask=True
TopSolderPaste=True
TraceClearanceDefault=0.381 mm
YAxisIsQuadrantI=True

[Data]
Type	Style	Layer	Id	GroupId	StartId	EndId	X	Y	Width	Height	Right	Bottom	Thickness	Angle	SweepAngle	Clearance	SchematicId	PartValue	Text	FontName	FontHeight	HoleDiameter	Data	DisplayOrder	ThirdPartyData
Polygon	Outline	BoardEdge	1				0 in	0 in					0.007 in										(0 in,0 in)(3.8 in,0 in)(3.8 in,2.5 in)(0 in,2.5 in)		

It doesn’t look awfully complicated.

If people can collect a lot of sample files and they really are this human-readable after decompression, it shouldn’t be too bad for someone to write an import plugin

1 Like

There are some example files in the Gallery of the installation, and the format indeed looks that simple. The Data section seems to be in csv format where the first line is the header line. Here’s the data section of GettingStarted file, copied to LibreOffice:


ExpressPCB has two versions, Classic and Plus. To me it looks like Plus is newer and can open the older format (.pcb) which isn’t readable with 7zip and save it to the new format. Probably supporting this newer format would make it possible to get all designs into KiCad.

Focusing on only .rrb format ignores and leaves behind years of .pcb files of many, many Express customers–which represents potentially a larger labor effort than those with .rrb files–who have been chained to the format for decades and want badly an alternative.

Let’s pursue the import of both formats.

You can open an old .pcb file with the Plus version and save it as .rrb. If .rrb can then be imported into KiCad, you are not chained to the Classic version. After all, you can download and use both versions freely. The situation would be different if you couldn’t save to the new format for free.

To me it looks like any effort spent with the old format is wasted. But anyone is free to decrypt the format and do it, so my opinion doesn’t in any way hinder implementing direct import for it.

2 Likes

I would recommend someone open a GitLab issue and attach files that are OK to share

The GitLab issue is https://gitlab.com/kicad/code/kicad/-/issues/2535

When people attach files, they need to include clear naming, basic example of different geometries and types and images of what the output from ExpressPCB looks like.

2 Likes

I agree that there is no point in putting effort in trying to reverse engineer an obfuscated/encrypted format when there is a free path to something readable

Yes, if indeed the old Classic .pcb file can be opened using Express Plus and exported as .rrb, no need to spend effort on the old file format.

@Seth_h, that issue is for schematic files, while this thread is about the pcb files. The schematic file is an encrypted format (which can be opened with the library mentioned in that issue). The .rrb pcb file is of different type altoghether. So, it may be reasonable to handle the schematic and the pcb import in different issues.

On the other hand I didn’t look into the java library carefully enough to say if the decrypted data structures are similar to the newer pcb format. It’s still possible that the new pcb format can be converted to the data structure like in the schematic, or vice versa.

ExpressPCB brings back college memories… when I was such a newbie that Eagle (freeware) was too difficult to use and there were no handy youtube videos to learn from.