PCBNew4.0.6 pcb File Compatibility Linux64b-to-Windows10/64b Issue


Using my Windows 10 64b platform I am unable to open a PCB file
created by a friend who uses a Linux>Obuntu>Mint 64b platform. We are
both running the most resent stable release of Kicad (4.0.6). I get a parse
error that refers to line 193 offset 6 which is a blank LF line. It refers to line
193 which follows a net_class Default statement block. The message
suggests I need to update my Kicad version however my version is the most
recent stable version.

I am able to open the Kicad example project pcb files OK which
suggest there is a subtle difference within the pcb file generated by the
Linux build of Kicad.

I would like to attach the pcb file but as a new user I am blocked
here for doing that on this forum. I have inserted the file header as text
below which may provide a clue.

Please provide me some clues towards fixing this - thanks in advance!



(kicad_pcb (version 20160815) (host pcbnew “(2016-08-20 BZR 7083)-product”)

(links 273)
(no_connects 0)
(area 19.899999 17.7425 120.520851 70.550001)
(thickness 1.6)
(drawings 14)
(tracks 676)
(zones 0)
(modules 170)
(nets 88)

This can not be the complete file. (host it on any cloud storage and provide a link. Examples: google drive, dropbox, …)

Are you sure your friend is on kicad stable? Is it possible they use a nightly build? Make them check via help->copy version information. (or help->about kicad) It needs to read version 4.0.x (where x is less than or equal to 6)

1 Like

That looks like a nightly build, but maybe he built from source? Released 4.0.6 file should have a header like

(kicad_pcb (version 4) (host pcbnew 4.0.6)

If KiCad complains about syntax, then it must be a later version than 4.0.6


That time stamp is almost 11 months old, so I doubt that it was put there by version 4.0.6


Ok I have posted the whole file on DropBox here:

My friends Linux version is given as:

2016-08-20 BZR 7083

My understanding is that it is shown on the download site for Linux Ubuntu as the most recent stable release which I understand is 4.0.6 for Windows. I wonder why it has a BZR build number rather than 4.0.6. Should the Linux Ubuntu build also show 4.0.6 as the version number? What is a BZR version - does it refer to a pre-release version?

In any event it seems odd that older Kicad pcb files are not compatible with more recent software releases.

Thanks for clarifications!

the developers keep KiCAD compatible within stables… so 4.0.x can (should be able to) all read their respective files, no matter who made them. That’s because the stables only receive bugfixes, not feature additions.

Any other version of KiCAD doesn’t obey to that rule - especially not the nightlies - as they implement new features that are able to break legacy things by introducing new things. That is on purpose and with the manpower available the most efficient way of developing KiCAD.
BZR xxxx or revision xxxxxxxx are nightly builds which break stuff.
The only way to exchange files there is to use the same version or manually ‘repair’ incompatibilities.

Your problem (or KiCADs) is the differential pair gap definition. 4.0.6 doesn’t know that.

(net_class Default “This is the default net class.”
(clearance 0.2)
(trace_width 0.25)
(via_dia 0.8)
(via_drill 0.6)
(uvia_dia 0.3)
(uvia_drill 0.1)
(diff_pair_gap 0.25)
(diff_pair_width 0.2)
(add_net +3.3VP)
(add_net +3V3)
(add_net +5V)
(add_net /CS-)
(add_net /EINT2)
(add_net /MISO)
(add_net /MOSI)
(add_net /RESET-)
(add_net /SCK)
(add_net /SCL)
(add_net /SDA)
(add_net GND)
(add_net GNDA)

If you open the file in a good text-editor (notepad++ in Win) and compare a kicad_pcb from your 4.0.6 (any will do really) with the nightly file you should be able to work out the discrepancies…

1 Like

Greetings Joan,

Many thanks for the explanation and file analysis! We have it working now. There are just so many versions available for download for various versions of platforms the download file selection, especially for Linux, is a bit confusing. Although hindsight is 20:20 it seemed easy to end up on the path to the development downloads instead of the stable releases. Without the knowledge that BZR version prefix stands for nightly releases it didn’t seem clear that we were not using the latest stable build for Ubuntu as we thought we were.

Many thanks to all for the prompt responses!


Normally even on linux, only the stable release is available within the normal repositories available for the package manager.
The nightly builds require the installation of a special repo.

On the download pages the descriptions differentiates clearly between stable and nightly. (Yes it could be communicated better that the nightly builds are not compatible with stable. They are not even compatible to them selfes sometimes.)

Hi Rene,

Looking back at the https://kicad.org/download/linux-mint/ download site which comes up with a Google search it seems very clear now. I think a clear understanding that the Linux build should show the version 4.x.x in the title bar might have helped me. Somehow I jumped to the conclusion that the BZR xxxx version was probably used to differentiate between Linux distro builds. What added to the confusion is that this particular BZR version number referred to an August 2016 date. When I tried to open the file under Windows the error message stated I needed a new version but I had the latest already. If the BZR version had a more recent date than my release that might have been a clue for me. Possibly a note that describes that a BZR xxxx or revision xxxxxxxx version number should not be used for a project might have also helped.

All is well that ends well. I think this huge and excellent effort has resulted in a wonderful electronics design CAD program - congratulations to all those involved in the development of KICAD!!!

Many thanks!

Search for that particular BZR version and you get several hits for projects uploaded on GitHub.
Sharing projects created with Nightly versions is dangerous.

1 Like

BZR nnn is a Bazaar revision number, Bazaar is a SCM supported by Launchpad. Since the revision number is unique, it was a handy way to tie a build to an exact source baseline.

So a previous release of KiCad was BZR 4022, nightly builds took on some other arbitrary but unique number.

However, now KiCad source is in git (but still on Launchpad), git has no concept of revision number, only a rather long hash value. Other ways to identify a source base line are by date, or a shortened git hash.

Since 4.0.0, I think all release builds are tagged 4.0.x, and dev builds tagged with a date and/or git hash.

tldr; BZR xxxx just means it was built when source was in Bazaar. No BZR number means it was built with source in git. To determine whether it was a release build or dev build, requires further analysis of the version string.


That might be true now, but is that true for all previous builds?

Often people pop up with a KiCad build from way back when, and built god knows how.