← Back to team overview

kicad-developers team mailing list archive

Re: Back annotate references from PCB

 

 I'll offer my thoughts on the subject bear in mind that I have zero knowledge of KiCad code internals and I could not really follow parts of this discussion.
With back-annotation you really have a locking issue. Before re-annotating the layout, you have to make sure that the layout is in sync with schematics. And once you re-annotate the layout you have to make sure that there are no changes made to schematics until you back-annotate the schematics.
Now I see two options how to do this:a. backannotate when a single footprint reference changes
    1. Detect when a footprint reference changes    2. notify the user that you'll update layout from schematics    3. update the pcb from schematics
    4. if update went without changes, change the reference of a footprint
    5. back-annotate the schematicsb. backannotate only when references for whole board have been changed
    1. when the user triggers geographical renaming (from the tools menu) open a GUI to let the user select how should the renaming proceed (up-down, left to right, ...)
    2. when the user selects the strategy notify the user that you'll update layout from schematics    3. update the pcb from schematics once
    4. if update went without changes, change the reference for all the footprints
    5. back-annotate the schematics once

Option a is universal so that user could change references manually and it makes realization of option b much simpler. It could even be implemented as an action plugin. But then the geographical re-annotation of a whole board would run much slower when the backend of this method uses option a as you would have a lot of back and forth between schematics and layout. But on the other hand it might serve as a starting point for pin and unit swapping back-annotation.
Most tools that I've worked with used some kind of form of option b (usually the back-annotation was partly manual with importing the back-annotation info in a file format). I think that the reason behind it is that most common footprint reference re-annotation is geographical. I've never heard of some other strategy.
Thanks for working on it, I'll appreciate any kind of solution.


    On Sunday, 24 November 2019, 13:56:17 CET, Alexander Shuklin <jasuramme@xxxxxxxxx> wrote:  
 
 Hi Eeli,
no, you are actually right.
I just don't want to make a new dialog before we will be sure that we
definitely need it. But in case that you will propagate not only
references you suppose to have new one.

On Sun, 24 Nov 2019 at 12:27, Eeli Kaikkonen <eeli.kaikkonen@xxxxxxxxx> wrote:
>
> I probably don't understand everything which has been said, but as far as I can see there are actually two things going on which could and should be independent.
>
> 1. Doing geographical reannotation in pcb.
> 2. Propagating changes made in the pcb back to the schematic.
>
> I believe they should be completely different, and number 2 should be generic, taking care of all changes which reasonably can be propagated from the board to the schematic. Basically Update PCB from Schematic backwards, i.e. Update Schematic from Board. With a similar UI dialog, of course. Undo could also be similar. Or do I just think it's so "simple" and can't see something?
>
> It's easy to see that number 1 isn't difficult and could be done with a python script (although many people would like to see it in the main KiCad, I think).
>
> Eeli Kaikkonen
>
> su 24. marrask. 2019 klo 8.57 Alexander Shuklin (jasuramme@xxxxxxxxx) kirjoitti:
>>
>> Hi Eeli and Brian,
>> Sorry for delay, unfortunately I cannot answer too often.
>>
>> > It has occurred to me (Alexander please chime in) that once back annotation has been solved subject to all the issues raised by Wayne and others that it would be a general solution.
>>
>> Unfortunately no. All stuff mentioned by Wayne is has to be
>> implemented in back-annotation, that's situations which back
>> annotation will have to care about, otherwise it will be crap. I meant
>> I see some general tool as geometrical (geographical?) re-annotation
>> in pcbnew, which do left->right top->down or opposite directions being
>> in C++ GUI, but if you want re-annotate in some different manner, you
>> are free to use python scripts, as you could easily back annotate
>> after that.
>>
>> > Can this do other kinds of changes than just annotation? I'm thinking of changing the footprint or value
>>
>> Of course that's possible, and not a big deal to add this into
>> back-annotation algorithm. I just think how to do it better. I would
>> say we will need to have some GUI for that then. I mean, you probably
>> want to choose what do you want to back-annotate... or maybe not. And
>> unfortunately at this point you cannot do that with python, as there
>> no python scripts in schematic editor. If it will be useful, I can do
>> that of course. Eeli, what I would suggest, I believe in few days I
>> will make draft commit and mark it (Work In Progress) to show how It
>> works, and we could discuss how it's gonna work with values and
>> footprints it will not be a big deal to change it.
>>
>> On Sat, 23 Nov 2019 at 21:03, Brian Piccioni
>> <brian@xxxxxxxxxxxxxxxxxxxxx> wrote:
>> >
>> > It has occurred to me (Alexander please chime in) that once back annotation has been solved subject to all the issues raised by Wayne and others that it would be a general solution.
>> >
>> >
>> >
>> > Of course, this would end up being a sizeable change to Kicad since the various edit functions, etc., who have to be modified to incorporate the feature.
>> >
>> >
>> >
>> > Like you I often fiddle with different packages and values and I typically switch to eeSchema, make the change, then hit F8 to update the PCB. It seems to me it would be easier for the appropriate changes to simply be reflected back to the schematic.
>> >
>> >
>> >
>> > Brian
>> >
>> >
>> >
>> > From: Eeli Kaikkonen
>> > Sent: November 23, 2019 12:56 PM
>> > To: kicad-developers
>> > Subject: Re: [Kicad-developers] Back annotate references from PCB
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> > la 23. marrask. 2019 klo 14.52 Brian Piccioni (brian@xxxxxxxxxxxxxxxxxxxxx) kirjoitti:
>> >
>> > By having a single integrated tool analogous to “Update PCB From Schematic” can ensure coherency.
>> >
>> > Can this do other kinds of changes than just annotation? I'm thinking of changing the footprint or value. For example I could use Change Footprint feature in pcbnew and propagate that change to eeschema. That's not so difficult to do in eeshcema and update the board, but often it would feel much more natural to e.g. test if 0402 R package would be physically better for some situation than 0603 and then update the shcematic based on the board if it fits.
>> >
>> >
>> >
>> > Eeli Kaikkonen
>> >
>> >
>> >
>> > _______________________________________________
>> > Mailing list: https://launchpad.net/~kicad-developers
>> > Post to    : kicad-developers@xxxxxxxxxxxxxxxxxxx
>> > Unsubscribe : https://launchpad.net/~kicad-developers
>> > More help  : https://help.launchpad.net/ListHelp
>
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to    : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help  : https://help.launchpad.net/ListHelp

_______________________________________________
Mailing list: https://launchpad.net/~kicad-developers
Post to    : kicad-developers@xxxxxxxxxxxxxxxxxxx
Unsubscribe : https://launchpad.net/~kicad-developers
More help  : https://help.launchpad.net/ListHelp
  

Follow ups

References