From the peanut gallery:

Can someone tell me an example use-case for a single schematic symbol 
corresponding to multiple board entities within a single project?

As perhaps a rather naïve PCB designer, it seems like mostly a bad idea to me 
to have anything other than 1:1.

Thanks,
-Brian Henning 

> On Nov 22, 2019, at 1:44 PM, Brian Piccioni <br...@documenteddesigns.com> 
> wrote:
> 
> 
> Wayne
>  
> I thought I would weigh in as I am collaborating with Alexander.
>  
> If a designer manually re-annotates a board and schematics he would follow a 
> number of steps:
>  
> Ensure the schematics, PCB, and netlist are coherent and without error (I.e. 
> nothing in the schematics or PCB which is not in the other, netlist 
> corresponds to schematic and PCB);
> Manually edit each component on the board and keep a record of every change 
> in a “change list”;
> Manually edit the schematic in accordance with the “change list”;
> Regenerate the netlist;
> Update PCB from schematics;
> Verify that the schematics and PCB are still coherent.
>  
> Manually editing the schematic would consist of going from component to 
> component, looking up the component ref des in the “change list”, changing 
> the ref des to the new value, and moving to the next component. The final 
> step would only be necessary due to the near certainty that manual 
> re-annotation would have introduced errors.
>  
> This is, more or less, what I do in my standalone application. Unfortunately, 
> I also run roughshod over timestamps, etc.. Nonetheless, the application has 
> been well received and appears to be used a fair bit.
>  
> If we were to write a demon (probably the wrong term) which essentially did 
> the same steps, would that address your concerns?
>  
> Of course, we would use Kiway to accomplish the transfers but the approach 
> would be pretty much identical to a manual re-annotation except far less 
> likely to introduce errors.
>  
> If that would not work, can you please explain why? Perhaps if we understand 
> why we can suggest solutions.
>  
> Brian
>  
> From: Wayne Stambaugh
> Sent: November 22, 2019 12:03 PM
> To: Alexander Shuklin
> Cc: KiCad Developers
> Subject: Re: [Kicad-developers] Back annotate references from PCB
>  
> I would prefer that you did ask questions rather than spending a lot of
> development time on a solution that would not be accepted because it
> breaks things.  This is not a trivial problem although it may appear
> that way.  There are plenty of ways to implement back annotation that
> will break things in unexpected ways.  There are a very few ways to not
> break things.  This is why I'm telling you this.  If you don't care
> about the schematic and the board references being synchronized, then
> back-annotation isn't really necessary.  As soon as you attempt to
> back-annotated the schematic from the board, all of the issues that I
> have previously discussed come in to play and have to be addressed.
>  
> On 11/22/19 9:53 AM, Alexander Shuklin wrote:
> > Excuse me for so much questions. There's plenty of ways how it can be
> > done, and I'm quite new, maybe I don't see some simple way.
> > I can back up data from pcbnew which is not up to date to schematics,
> > after that I call update pcb dialog. Somebody will want to update pcb
> > by references and after that I will have pcbnew old data which is not
> > up to date either to schematics or layout anymore. I don't think there
> > will be straight forward solution how to solve it.
> > May I just open update pcb dialog and ask user to care about schematic
> > and layout being up to date?
> >
> > On Fri, 22 Nov 2019 at 17:16, Wayne Stambaugh <stambau...@gmail.com> wrote:
> >> 
> >> There is no need to create your own dialog.  Just call the update board
> >> from schematic function before you back annotate.  You will have to make
> >> a temporary copy of your board reference changes because updating from
> >> the schematic will clobber any reference changes in the board.
> >> 
> >> On 11/22/19 9:13 AM, Alexander Shuklin wrote:
> >>> Hi Wayne,
> >>> 
> >>> I don't want to start PCB update from eeschema straight away, because
> >>> if you run back-annotation, you already changed some references in
> >>> layout and you gonna lose it. And probably you can get some footprints
> >>> which are not connected to any of components in schematics as there's
> >>> possibility in pcbnew to create them. What I almost done is reporting
> >>> about all errors in dialog (I currently use annotation dialog in
> >>> eeschema, but I can create my own if it necessary), and if there's any
> >>> errors, it will not allow you to back-annotate. It will ask you to fix
> >>> them first.
> >>> But if you want, I can run "update pcb from schematic" dialog.
> >>> 
> >>> On Fri, 22 Nov 2019 at 16:30, Wayne Stambaugh <stambau...@gmail.com> 
> >>> wrote:
> >>>> 
> >>>> Hi Alexander,
> >>>> 
> >>>> You must ensure that all of the reference paths are up to date with the
> >>>> schematic before you attempt to back annotate from the board.  Schematic
> >>>> changes can result in the footprint paths in the board being out of sync
> >>>> so you have to perform and update board from schematic (this code
> >>>> already exists) before you attempt to run the back annotation process
> >>>> from the board editor to ensure all of the paths are up to date.  This
> >>>> will ensure when you back annotate that there is a one to one
> >>>> correlation between board footprint sheet paths and schematic symbol
> >>>> sheet paths.
> >>>> 
> >>>> Cheers,
> >>>> 
> >>>> Wayne
> >>>> 
> >>>> On 11/22/19 1:18 AM, Alexander Shuklin wrote:
> >>>>> Hi Wayne,
> >>>>> thanks for answer.
> >>>>> Hopefully I will show you commit soon, so team could look, check and
> >>>>> suggest something about that. I'm aware about differences between
> >>>>> PCBnew and eeschema and just now I'm writing algorithm that will check
> >>>>> it.
> >>>>> Do you mean that some schematic file(.sch) can be used in more than
> >>>>> one projects? So, I don't plan to change the unique IDs and those
> >>>>> components will still be linked to each other, but if references will
> >>>>> be changed it will make a mess in another project.
> >>>>> I have 3 ideas how I can deal with that:
> >>>>> 1) create a dialog, which will say something like "please make sure,
> >>>>> that your schematic files are not shared between different projects"
> >>>>> 2) I can go by recently opened projects, parse schematics in each of
> >>>>> them and look if any schematic uses sheet, which already in use in
> >>>>> current project. I'm now sure, but I would presume, that it will be
> >>>>> quite slow.
> >>>>> 3) To hold information in what project this particular schematics was
> >>>>> used. So that's should be saved in .sch file then. But I don't think
> >>>>> that information will be very valuable.
> >>>>> 
> >>>>> 
> >>>>> On Thu, 21 Nov 2019 at 00:07, Wayne Stambaugh <stambau...@gmail.com> 
> >>>>> wrote:
> >>>>>> 
> >>>>>> On 11/7/19 5:06 AM, Alexander Shuklin wrote:
> >>>>>>> Hi,
> >>>>>>> is it alright to answer anybody in one letter?
> >>>>>>> First of all, don't take amiss if I keep silence for a day, as I have
> >>>>>>> 2 little children and at the best case I have couple of hours a day on
> >>>>>>> my own.
> >>>>>>> 
> >>>>>>> On Wed, 6 Nov 2019 at 16:27, Wayne Stambaugh <stambau...@gmail.com> 
> >>>>>>> wrote:
> >>>>>>>> Complex schematic hierarchies (using the same schematic more than 
> >>>>>>>> once in a design) always trips up new developers.
> >>>>>>> Can you please explain a bit more? I know that you can use
> >>>>>>> hierarchical sheets, so there will be more than one sch files in the
> >>>>>>> schematic. And there's also "multi-symbols" which have few eeschema
> >>>>>>> symbols but one footprint. I'm not quite understand what means "using
> >>>>>>> the same schematic more than once in a design", as every symbol has
> >>>>>>> unique ID. Is it something else I'm not aware of?
> >>>>>> 
> >>>>>> Yes, every symbol has a unique path ID but that doesn't mean that the
> >>>>>> board and the schematic will always be in sync so this is where issues
> >>>>>> come into play.  There also can be unique IDs from other projects
> >>>>>> because schematics can be shared between projects so you have to be
> >>>>>> careful not to break all of these cases.
> >>>>>> 
> >>>>>>>> You'll want to take a close look at KIWAY::ExpressMail() and 
> >>>>>>>> KIWAY_PLAYER::KiwayMailIn()
> >>>>>>> Ok, I'll look at that. I think I've seen that in footprints back 
> >>>>>>> annotation.
> >>>>>>>> This is unfortunate.  Being able to work directly with on of the 
> >>>>>>>> lead developers would have made this task a lot easier to 
> >>>>>>>> understand.  You are always free to reach out for help on this 
> >>>>>>>> mailing list.
> >>>>>>> Thanks for that. Actually now i think to join FOSDEM, but I need visa
> >>>>>>> and I'm not sure yet.
> >>>>>>>> Asking first prevents you from working on something that someone 
> >>>>>>>> else may already be working on and writing code that would be 
> >>>>>>>> immediately rejected
> >>>>>>> Actually I already made that mistake, when made board statistics
> >>>>>>> dialog. It was accepted, but I felt myself really stupid.
> >>>>>>>> Good luck and thank you for your interest in contributing to KiCad.
> >>>>>>> Thanks! I will try hard to match coding and git polices.
> >>>>>>> 
> >>>>>>> On Wed, 6 Nov 2019 at 17:24, Jon Evans <j...@craftyjon.com> wrote:
> >>>>>>>> Eeschema now keeps its internal net state up to date continuously, 
> >>>>>>>> but I didn't work on any continuous syncing to PcbNew.  The way it 
> >>>>>>>> works in Eeschema, the graphical schematic is still the driving 
> >>>>>>>> source of truth; the netlist does not drive the schematic.
> >>>>>>> Am I right in general idea: Eeschema creates netlist which updates
> >>>>>>> continuously. And PCB updates through eeschema by "uppdate PCB from
> >>>>>>> schematic" tool. It isn't planned to do that automatically and
> >>>>>>> continuously, is it?
> >>>>>>> 
> >>>>>>> On Wed, 6 Nov 2019 at 17:56, Brian Piccioni 
> >>>>>>> <br...@documenteddesigns.com> wrote:
> >>>>>>>> My utility is up on GitHub as a standalone app. I learned enough c++ 
> >>>>>>>> and wxWidgets so porting it to Kicad should be useful.
> >>>>>>> I've seen your app, and bug report. And actually I try to jump in
> >>>>>>> because I use geometrical renumber of components as well)))
> >>>>>>>> Replacing my homebrew parsing of PCB, Schematic, and netlist files 
> >>>>>>>> to calls to internal Kicad functions/methods in the respective apps;
> >>>>>>>> Once this is done I’ll use Kiway to communicate the changes between 
> >>>>>>>> eeSchema and PCBNew.
> >>>>>>> Have you already start to create communication between eeschema and
> >>>>>>> pcbnew? If not, don't you mind if I'll start with that first? From my
> >>>>>>> point of view, that's a worst part in this question today. For example
> >>>>>>> you can renumber modules in pcbnew even by python scripts, but you
> >>>>>>> have no any tool to change schematic after that. And by the way it's
> >>>>>>> not only about renumber of all components. Somebody would like to
> >>>>>>> change some references in pcbnew by hand at push that data back to
> >>>>>>> schematics.
> >>>>>>>> In the final version, if I understand correctly, in V6 changes to 
> >>>>>>>> the PCB will be back-annotated to the schematic in order to support 
> >>>>>>>> pin and  gate swapping. So updating the PCB will immediately 
> >>>>>>>> incorporate the changes to the schematic. I haven’t seen any 
> >>>>>>>> discussions of how this will be done but clearly if the prototype as 
> >>>>>>>> described above works it will be trivial to support the V6 common 
> >>>>>>>> database.
> >>>>>>> Hm... I haven't think about that... I'm not sure if pin swapping will
> >>>>>>> interact with back-annotation tool. I wouldn't say that, but if
> >>>>>>> somebody has comments and thoughts about that, it would be greatly
> >>>>>>> appreciated.
> >>>>>>> 
> >>>>>>> As far as I see now, It should be some tool a bit similar to "Update
> >>>>>>> PCB from schematic", which will utilize KiWay functions to send data
> >>>>>>> between PCBnew and eeschema..
> >>>>>>> 
> >>>> 
> >>>> _______________________________________________
> >>>> Mailing list: https://launchpad.net/~kicad-developers
> >>>> Post to     : kicad-developers@lists.launchpad.net
> >>>> Unsubscribe : https://launchpad.net/~kicad-developers
> >>>> More help   : https://help.launchpad.net/ListHelp
>  
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to     : kicad-developers@lists.launchpad.net
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp
>  
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to     : kicad-developers@lists.launchpad.net
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp
_______________________________________________
Mailing list: https://launchpad.net/~kicad-developers
Post to     : kicad-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp

Reply via email to