Cannot update the pcb , because

Hello,
I am newbie and don’t speech english very well.
I created a board , but I had to add two capacitors but when I try to update my pcb pcbnew tell me “Cannot update the PCB , because Pcbnew is opened in stand-alone.In order to create or update PCBs from schematics , you need to launch the Kicad project manager and create a pcb project”.
I am sorry but I don’t understant. I don’t want to lose my pcb , i don’t want a “new” pcb , I just want to update my pcb … what should I do ?
Thanks a lot.

How did you create your project?

Did you run kicad, create a project, and from there run eeschema, and then pcbnew? The control panel should look like this:

Or did you run eeschema, export the netlist, and then run pcbnew and import the netlist?

Also post the software version from Help > About Kicad > Show version info

2 Likes

Where from was the netlist for that board?

To update PCB (means: read the schematic and update PCB to be in accordance with schematic) the PcbNew needs to have access to schematic to update PCB to it.

Standard way of working with KiCad is to have a project containing schematic and PCB. If you have project opened then PcbNew knows that it should look for schematic in the same project.

2 Likes

My first advice:
Start by making a backup of everything you have made so far.
Just put the whole directory and compress it into a zip file.
This way you do not have to worry if you make a mistake.

What languages do you prefer?
KiCad has been translated into 10+ languages.

With KiCad normally you should only start the sub programs from the project manager. After you have completely exited all kicad sub programs and made a backup copy you should start by opening the project manager of KiCad. It looks like the screenshot made by kenyapcomau.

1 Like

Hello,
my kicad version is 5.1.5-52549c5 84 ubuntu 18.04

Application: KiCad
Version: 5.1.5-52549c5~84~ubuntu18.04.1, release build
Libraries:
wxWidgets 3.0.4
libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3
Platform: Linux 5.3.0-40-generic x86_64, 64 bit, Little endian, wxGTK
Build Info:
wxWidgets: 3.0.4 (wchar_t,wx containers,compatible with 2.8) GTK+ 3.22
Boost: 1.65.1
OpenCASCADE Community Edition: 6.9.1
Curl: 7.58.0
Compiler: GCC 7.4.0 with C++ ABI 1011
Build settings:
USE_WX_GRAPHICS_CONTEXT=OFF
USE_WX_OVERLAY=ON
KICAD_SCRIPTING=ON
KICAD_SCRIPTING_MODULES=ON
KICAD_SCRIPTING_PYTHON3=ON
KICAD_SCRIPTING_WXPYTHON=ON
KICAD_SCRIPTING_WXPYTHON_PHOENIX=ON
KICAD_SCRIPTING_ACTION_MENU=ON
BUILD_GITHUB_PLUGIN=ON
KICAD_USE_OCE=ON
KICAD_USE_OCC=OFF
KICAD_SPICE=ON

[kenyapcomau]
Yes I run kicad , create a new project and eeschema. My control panel is the one you show.
I followed tutorial from “Eric Peronnin” on youtube.

paulvdh
Ok , saved all my work into a ZIP file. ps : My problem with english is only on forum not with kicad.

Piotr
I updated (under eeschema) my schema and saved it under another name.
The netlist for that board was under a directory , I used it.

Today I took my old project , changed everything again and saved it under the same name and everything work fine now. I don’t understand why with a new name i can’t update my pcb.
I am sorry , I should have tryed this solution before to ask help. Now I can finish my work.
Kicad is a great software , I love it.
Thanks a lot kenyapcomau,Piotr and paulvdh.

KiCad projects work this way: you have three files, the project file (.pro), the schematic file (.sch) and the layout file (.kicad_pcb) inside one folder. Each file must have the same name, excluding the file ending, so you must have e.g.

  • my_board.pro
  • my_board.sch
  • my_board.kicad_pcb

You open the project by opening the project file with KiCad. When you try to open eeschema (the schematic editor) or pcbnew (the layout editor) from the project window (see below for further details), KiCad either opens the corresponding file which has the same name as the project file has, or creates a new file with the same name.

If you rename some of the files, KiCad works unexpectedly because it tries to find the files by name, and if it doesn’t find it, it assumes that there’s no schematic files or layout file for that project and acts accordingly.


Further details for opening KiCad subapplications

You can open eeschema or pcbnew in the project mode either from the project window (the main KiCad window) or by first opening one of them from the project window and then the other one from that opened subapplication - pcbnew from eeschema or vice versa.

You can open the subapplications in stand-alone mode by opening the executable applications - pcbnew or eeschema - directly without the project file and without “kicad” executable application (or “kicad.exe” on Windows). The same may happen if you double click .sch or .kicad_pcb file in a file manager window and the OS has those files linked to eeschema and pcbnew.

If you do that, you can open files which don’t belong to a project, but KiCad still creates a new .pro files for them. That’s confusing - you can have several .pro files and corresponding schematic/layout files inside one folder. Try to avoid that. Never rename .pro, .sch or .kicad_pcb files of a project and never open them in standalone mode unless you know what you are doing.

So you break the connection between schematic and pcb.
In such situation you could (probably - never tried it for different sch and pcb names) update your PCB not by update button but by exporting netlist from schematic and importing it to PCB.

I copy and rename all those files to start designing the next version of the same pcb.
If Totor start updating his work that way he would probably not get into his problem with update and we would not know he is using KiCad :slight_smile:
As I have read, my way of doing next version not works if you have not one sheet schematic, but my projects are all one sheet so I have no problem with it.
Making the next version of pcb is in my opinion so basic task that I’m surprised KiCad has not the easy way of doing it, or I don’t know that way.

Note also the rest of my sentence, “unless you know what you are doing”.


I use 5.99 for that, it has “Save As” feature in the project view. I open the project with 5.99, use Save As and immediately close the project. This far it has been safe to use with 5.1 projects (I don’t promise it will be safe later). It handles also more complex cases.

Because I’m a curious cat who goes poking into config files written by applications, I realised early in the game that the components of Kicad rely on a naming convention to be able to intercommunicate. I have renamed projects with ill-chosen names and the files within successfully by also editing where necessary the config files afterwards (the history comes to mind), but I do not recommend that anybody emulate this. If you break things, I never made this post, and you get to keep all the pieces. :wink: At the least make a backup first.

So follow the advice the good people above, especially eelik, have given you and keep Kicad happy. In v6 there should be better methods.

This popped up a memory about a python script for renaming a project, called “KiRename”.
A quick search turned up:

I have not used it myself. Have not even read it’s manual or source code.

More general:
Because of KiCad’s openness there are a lot (20+) projects around KiCad for automation of different tasks. Quality and usability varies from a one-off written by one person to do a small task to reasonably well maintained and debugged scripts which can be real time savers.

Also:
Keep up the backups.
I make a .zip usually every day I have done some serious work on a project, or just before some extensive operations if I’m not sure it’s going to work out right. (For example redo of GND planes on a already DRC free board.

I was writing to help Totor (and other unknown readers) to ‘know what he/they is/are doing’ and not to say that you are not right.

I have a special directory for ‘all my work’ (Builder, KiCad, LibreOffice, PSpice, …) and I am making ‘differential’ zip every day and full zip from time to time (when differential zip seems me too big). Differential means not regarding yesterday but regarding last full.

And I was writing to help anyone to remember that it can be done, not to say that you misquoted me :slight_smile:

Keeping a zip copy really isn’t the most efficient way to save a version history. Sure, it’s a useful backup but how do you actually find the specific version that you saved some time last week where you made a change to , for instance, the power supply decoupling? The text nature of Kicad files means that it plays nicely with version control software. You can then make meaningful commit messages and find the exact version in the commit history. You can also branch off an alternative schematic or layout so this strategy is useful when you want to reuse part of a design or layout in a variant design. It’s also probably more efficient use of storage but that is probably less of an issue.

I do it as backup and not version history.
I have never needed the version history in sense to have a need to open some old PCB version.
I have a separate *.ods file (one common file for all my pcb) where I write notes (one line) about what changes were needed that I have to redesign the PCB to next version.
During last 10 years I had only once to get back to my production program source (the program to Load code into devices) to the state from specified day in past to find what change made one of devices to not be programmed properly.

Zip files are extremely simple, and reasonably effective as backups.
I’ve gotten into a habit of simply prepending a date in ISO8601 format to zip files or any other file I want to make a backup copy off. (For example /etc/fstab). Any filename which ends in an ISO8603 date is therefore easily recognizable as a backup, and they also are easy to sort. No need for further version control as all previous backups are from before today.

Some day I’ll learn to use git effectively, but until then, ISO8603 appended to filenames does a pretty good job.

My full backup files ends with _YYYY-MM-DD and my differential ends with _YYYY-MM_DD_r. I didn’t know that it has anything to do with any ISO :slight_smile:

Not to ‘Beat a dead horse’, but can’t you add things in PCBnew by hitting ‘o’ ?

I realize this should not be your normal, prefered practice, but that would have been a quick option for our friend @Totor, no?

It is indeed pretty easy to add a few extra footprints to a PCB with ‘o’, but I assume Todor also wants his capacitors to connect to something. This means manually modifying the netlist or living with DRC errors, and in any case would keep the schematic driving ever further apart from the PCB.

Repairing the project should be trivial with the added benefit of learning to work with KiCad “properly” and keeping schematic and PCB synchronized.

The backup diversion is mostly because everybody should keep backups, and more specifically because beginners with KiCad (or any other PC program) easily make beginners mistakes.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.