KiCad 6: Just published my BIG *preview* review

That’s a document that will be useful!
A very good idea Peter, thanks for initiating it and thanks to all that have contributed.


Thank you, I have fixed right --> left (always confuse those two).
To install KiCad nightly build on Ubuntu, check out the instructions here.
No need to download anything manually. Use the command line to set the correct nightly repository, and use apt to install it. Also update every couple of days (instructions in the article).

Hi all,

I have spent the last two days updating the article.

There’s still work to do, but want to:

  1. Let you know there’s a lot of new content as suggested by the contributors in this discussion topic.
  2. To thank you for helping me make the article as complete as possible.

More to come in a few days.

(EDIT: maybe it was some cache issue, now the article has changed.)

I tried to find the changed bits but don’t find any with quick reading. Are you sure the web page has been updated?

BTW, you have an error WRT backannotation:

For example, if you add a footprint that is not represented in the schematic, you can simply use this function to import the symbol for the footprint to the Eeschema editor.

You can’t add a symbol for a footprint in Pcbnew. All footprints added in Pcbnew will be only in the layout.

What backannotation also can’t do is reassign nets or change connections. It can only rename existing nets. (That’s not a problem in the article, but I tell this just for clarity. One can wish that all changes could be made in the layout and propagated to the schematic, but that would be much more difficult and would require basically duplicating some of the functionality of the layout editor in the schematic editor.)

Hey, now I can see some changes.

Interactive Delete: There’s a tool button for it in the bottom of the right hand toolbar, both in eeschema and pcbnew. (You implied there’s no button.) You can assign a hotkey for it in Preferences.

BTW, one change after v5 is that there are much more functions which can have a hotkey or shortcut. Just search in the list. I haven’t compared but the list may have been doubled or tripled. (EDIT: I tested with Help->List Hotkeys dialog. In v5 it takes 10 Page Down presses to scroll down the list of pcbnew hotkeys. In v5.99 it takes 30.)

In Board setup section: “eeschame”. For some reason that’s a common mispelling, I do that sometimes, too. What a schame. :slight_smile:

One thing worth mentioning about text replacement variables in footprints could be that all symbol and sheet variables are available in footprints, as well. You can for example add a new field MPN to a symbol in the schematic. Then update the pcb. Modify the footprint in the board, adding a text field:


And you will have the manufacturer part number visible in the Fab layer.

It’s great that you’ve got even instructions for reporting bugs. A smallish detail: videos can be uploaded and attached directly to the report. That’s the recommended practice because external links tend to deteriorate and may have other problems. All reports should be as self-contained as possible, although links to background information is OK.

The most important component “under the hood” change in KiCad 6 is the schematics and layouts’ file format. My understanding is that work there is complete. This means that any work you do has good chances that will be readable by the official KiCad 6.0.

Work there isn’t quite complete, although the final v6 should be able to read the files created and edited now. We are still waiting for curved polygons which requires a file format change in the pcb file format. When that’s introduced and you use curved polys the file won’t be readable by older nightly builds. Bugfixes are also theoretically possible. One unplanned change to file format lately was a fix which also introduced a new feature; you can see the history here.

With curved polygons there should come also a (significant?) UI change, namely “constraint manager”. It’s basically continued work from before v5.1 which was introduced in the fund raising campaign back then and in its old form can be seen shortly in the donation campaign youtube video (“improved drawing tools”). I hope they get it ready this time. :slight_smile: In the merge request Seth mentions “work package” which possibly means it’s outsourced as a paid job.

Curved polygons and its editing system should make creating and editing complex board outlines much easier. In v5.1 you have to use separate straight lines and arcs. Drawing them is something from easy to difficult, and editing is always painful because you have to move and edit several lines if one is changed. And making and keeping it continuous was sometimes impossible. So, when these features are merged in, pay attention to them.

In my testing, I found that the fillet function only works with 90-degree angles.

In my testing 45-degree angles work, too.

Fillet editing (for existing fillets) was enhanced recently, see Post-v5 new features and development news for explanation and a video. It’s a big enhancement, although doesn’t do push&shove.

Ha ha, I’ll be fixing that (and everything else) tomorrow.

Thank you again, you’re a goldmine of KiCad knowledge!

1 Like

There’s a couple of layers of caching, plus your local cache. I cleared the caches I can control around 60 minutes ago. The changes should take a bit of time to propagate.

Hello Peter!
I checked the link you sent. It says:

Step 2: Instal KiCad nightly build (currently, version 5.99)

Then gives a link to the nightly builds. The problem is: what are these nightly builds?
I suppose the latest is one of the next versions, but there is no way to know it before installing it.
For example, what version is this?
Is it 5.99, or is it an intermediate version? Right now, the latest stable is 5.1.9, so
I guess the nightly builds can be 5.99, but they could also be 5.1.10 or 5.2 as well.
NB: I will install on a Windows guest running on Linux host. Once I know which version
I should download, it should go smoothly.
Thanks for any hint!

The development version packages which are rebuilt daily/nightly are usually called nightly builds, sometimes daily builds. If the daily testing builds for the stable series bugfix releases is meant, it’s usually stated explicitly.

This is a packaging thing, not a KiCad proper thing, and there’s no official rule for the naming. But you can be pretty sure that if nightlies are mentioned they mean the current active feature development branch (which is now called 5.99 and after the release of 6.0 maybe 6.99) unless context clearly tells otherwise.

The Windows “nightly” directory in the download server is for the feature development builds while “testing” is for the stable series bugfix builds. The latest date is the latest available. The r<number> is just a running number which has no meaning for the users, it comes from the build server. The last string is the source code commit hash, it can identify the exact version in the git history tree (the same can be found in Help->About version string as g<hash>).


Errors, mistakes or to be enhanced:

you’ll find the introduction of a new format for the schematic and layout files

That’s not true: layout (and footprint) files were s-expression already in v4, I think.

KiCad 6 has a new theme editor.

This passage is a bit confusing because it doesn’t mention colors.

Virtual [sic!] all aspects of the layout and schematic editor are customisable.

Not of course all aspects, but all colors in the work area.

  • Circle.
  • Arc.
  • Circle.

'Nough said. And more small spelling mistakes in this part: “KiCad add”, toobar.

obvious defects (such as the same pad number, and even overlapped their copper areas), but the Footprint Checker did not complain.

Same pad number isn’t a defect, it’s used on purpose in many footprints and is allowed by design.

Here’s an example of a checked defect:
I don’t know what else it would check. I have seen some discussion about this but don’t remember anymore.

KiCad 6 will go through its RC1 and perhaps RC2 iterations until the developer team squashes all bugs and agrees that the 6.0 milestone is reached.

That’s yet to be seen. I have expressed my strong opinions about RC versioning in Yet another release date 6.x question (linked here earlier). We’ll leave this to the core development team, but ATM there’s no indication that the situation would be any different, so there may be many more RC’s before the final. I still hope the name “beta” would be used when the software is clearly still under polishing.


The development team has been trying to be consistent in our naming of the builds. We call the 5.99 builds done everyday the “Nightly builds” and the builds of the tip of the 5.1 branch "testing builds. "

The only reason that we’ve had more RCs than you would prefer in the past is because bugs didn’t get discovered sooner. We are not planning on releasing a RC1 with known issues (at least, serious ones), but the fact is that once we release a RC1 it will get a lot more testing, because of all the messaging in the community to avoid using nightlies for serious work. It’s kind of a catch-22 from the development team’s perspective. I have no doubt that the extra testing that will happen because people who were unwilling to use a nightly are willing to use RC1 will uncover bugs that we will need to fix before a final release.

I still hope the name “beta” would be used when the software is clearly still under polishing.

The meaning of beta and RC are different, and I think we are using RC correctly.

A beta is typically used to gather feedback from users, with the understanding that planned work is still underway and the software is not finished. A RC means there is not more planned work going in to the release. Of course it can generate unplanned work in the form of new bug reports.


These things are not officially defined, but according to


A Beta phase generally begins when the software is feature complete but likely to contain a number of known or unknown bugs.

Release candidate

A release candidate ( RC ), also known as “going silver”, is a beta version with potential to be a stable product, which is ready to release unless significant bugs emerge.

which is the way I would use the terms.

1 Like

Right, that’s not that different from what I said. We (the KiCad devs) don’t see the need for a formal beta phase with a release that contains known bugs, given our current resources. So, we take our first RC directly from the development branch when it reaches the level of “no significant known bugs”

You could call the nightly builds “beta builds” by that definition once all the features have landed (so we’re not quite there yet). We just choose not to have a formal “beta” name for the nightly builds at this point.


Sure, I think KiCad follows a fairly ‘standard’ pattern, but is lightweight and effective. It’s worked pretty well to date. It’s a lot improved since the days of official release or self-build. Nightly builds fulfill the role of alpha/beta releases.

I have updated the article with clarification on the installation.

In short, go to the download page, and ignore everything until the heading " Nightly Development Builds". Follow the command line instructions listed in that section.

The Kicad nightly build points to the development branch of the repository, which currently is 5.99. That’s the branch you want to install if you want to play with (soon to be) KiCad 6.

@eelik, thank you, I have addressed all issues you listed at KiCad 6: Just published my BIG *preview* review.

I’ll refresh the article later today as I’m still working on it.

Hello Peter!

By the way, I have started reading in detail. I spotted one typo in new file format. Bellow should be replaced by below.

This is something that I find difficult to find information about.

Is there any information you can provide to help me fill in this stub in the article?