← Back to team overview

kicad-developers team mailing list archive

Re: Back annotate references from PCB

 

On 22/11/19 23:14, Andy Peters wrote:

On Nov 22, 2019, at 2:30 PM, Dino Ghilardi <dino.ghilardi@xxxxxxxx> wrote:

Just my two cents on this.

Considering that the actual "manual work-around" to do the "back annotation" now can be:

-Open pcbnew and eeschema at the same time
-Select the component you want to rename on pcbnew
-the right symbol gets highlighted (but not selected) automatically in eeschema
-select the highlighted component in eeschema, press "U" shortcut (edit reference)
-change the reference in the dialog
-press F8 to update the pcb

A possible approach is to use this sequence of operations (...future python script?).

Since the mechanism to find the correct symbol on eeschema seems yet implemented, probably the only missing parts would be to implement is

Enable from pcbnew the command "select the highlighted component and/or open the "edit reference" dialog.

Drawbacks:
-Requires eeschema and pcbnew open at the same time (may be this is not a  a problem since we also have DRC that opens eeschema when run).
-Requires to check that schematic and layout are synchronized before starting the back-annotation (probably needed also for all the other implementations).
-For bigger schematics the full-update via F8 can become slow, so as a future improvement, after a first working implementation could be a way to update only the modified field.

I have done manual back-annotation because automated back-annotation (what Brian Piccioni is doing) didn’t exist.

I’m in the habit of doing “geographical re-annotation” after a layout has completed. This is where the layout is scanned and, say, the resistor most near the upper left is numbered R1, the resistor to its right is then R2, and so on. This is purely an aid for the human assembler and the human debugging the design. It’s not really interesting for automated assembly.

You can do this manually, on a small design, using the approach you suggest, but for anything complex (my last board was 165 mm x 125 mm with about 150 capacitors, a hundred resistors, and a bunch of ICs) it’s impossible.

So it really needs to be automated. The options, as I see them, are few and simple: origin, direction (increasing in X or increasing in Y) and an option to not re-annotate a part (maybe don’t change the reference designators for connectors). The logic of the sorting is straightforward, but it’s a task best left to the machines.

-a
--------------------------------------------------------------------------------------------------


I agree,
my comment was more "low level": to automate the high level "origin-direction-etc... the first step would be having the lower part "up-and-running", then build the fully automated part on that.

P.S.: I like the term "geographical annotation" more than "back annotation" for this feature.

Another possible approach I can think about is adding "board geographical (re)annotation in eeschema "annotate schematic" tool: if eeschema can "ask" the position to pcbnew it also can re-annotate the components according to position. Since pcbnew does not move components if only the reference changes in eeschema, this could be also a solution.

Drawback: probably this approach is less intuitive to the user that expects to be able to change references in pcbnew.

Cheers,
Dino.



Follow ups

References