I have a problem in using new multichannel tool in KiCad 9 to replicate layouts of identical blocks. Basically the tool seems to work (placement and routing is copied from reference layout) but if you verify placement in detail it can be noticed that the placement of the components doesn’t fit to the reference layout. Basically the placement of the components is a wild mixture so that components of one functional part are distributed into another functional part of the same block (see highlighted components in attachment).
Does anyone know this problem? Is there a solution for this problem?
I tried your suggestion with re-annotating of schematic (I resetted all ref-designators) and updated PCB. But the problem still exists. Is there any boundary conditions of naming the ref designators of the single blocks in schematic that the tool works without problems?
Try a nightly build, your issue is likely fixed in it (and an official fix will happen in 9.0.1). If it still doesn’t work, would you mind creating a bug report on Gitlab or DMing me the design?
Do you mean “testing build” which is for the stable branch? @AndreasS if you try nightly builds you should use only a copy of the project or not save because 9.0 can’t open a project saved with 9.99 nightly builds.
The latest multichannel fix commit isn’t in the 9.0 bugfix testing builds yet, it has to wait for tomorrow.
Thanks for all your support. For me it is quite obvious that the problem is caused by a bug in software of multichannel tool. So the multichannel tool looks quite immature for me at the moment. To be honest I feel a bit like a “Beta-User”.
I will not use multichannel tool as long this problem is not fixed in software. That means I will test the multichanneltool again in future KiCad versions.
If useful for some of the KiCad designers I could upload my project if you want. Is it also possible to upload the project as zip-file as attachment to a post here?
KiCad is developed as Open Source and mostly by volunteers (nowadays there’s some money involved in some cases, but as a user you don’t have to pay for it). The project relies on openness and volunteer work force also in testing. The development branch is published continually as nightly builds. Anyone can try and test new features almost real-time when they are developed, and anyone can report bugs when they are found. The developers develop the features and of course also test them, but they can’t find or anticipate all workflows and use cases etc. Volunteer testers are part of the equation.
For some reason most of the user base is willing to try a new official release, but not willing to test the development versions before they are released. If each feature would wait for complete testing (and bugfixing) before it would be released, it would never be released. Therefore there’s no other option than to release a new version at a point when no bugs which would warrant postponing are waiting for fixing.
If volunteer beta-testers would try and test nightly builds more courageously and would report bugs, the problems would be fixed before official releases.
The only other option I can see is to not develop nor release new features.
I don’t outright disagree. Many new largish features are a bit buggy with the initial release or lack some more or less obvious functionality. But remember that actual bugs will be fixed soon after they have been reported and will be included in the bugfix releases (the 3rd number, z, in x.y.z versioning). It’s of course OK to not use the feature until then if it doesn’t work for you. New functionality has usually to wait longer until the next major release.
I understand this is your experience and that it’s legitimate. However, to make the documentation better you should try to pinpoint specific problems. Otherwise it’s difficult to know how to enhance it.
IMO a multichannel feature is necessarily, by nature, somewhat complicated. No matter how it’s implemented UI-wise and workflow-wise, it has several requirements and details. People with different levels of prior experience about KiCad or other comparable EDA tools with multichannel functionality may have very different opinions about the perceived difficulties. I’m interested in hearing yours, but they need to be more detailed.
Thanks to some help on another thread, I now have it working. This is what I did and I think these instructions are much simpler and easier to get going for a newbie than the present Kicad official ones:
Create your hierarchical sheets as normal.
In PCB editor, click on “Place → Draw Rule Areas”.
A dialog comes up. Click on the “Placement” tab. Select the “Place items from sheet:” toggle and in the drop down list select one of the hierarchical sheets that you will manually lay out to form the so-called “Reference” layout. Remember which sheet you chose.
Draw a polygon in which you will do the layout. It can be resized later as usual but must be big enough to lay out the components from the hierarchical sheet you chose in 3).
Do the layout/routing/vias of all of the components that are in the hierarchical sheet you selected in step 3. Adjust the polygon you drew in order to fit the components inside it.
Copy and paste the polygon (just the polygon, not the components) as many times as you have hierarchical sheets. One sheet will be laid out later on in each polygon. For each time you paste a polygon, double click on it (or right click → properties) and change the “Place items from sheet:” drop down menu to select a unique hierarchical sheet that hasn’t been selected anywhere yet.
Select “Tools->Multi-Channel->Repeat layout”, select the original polygon you drew because Kicad needs to be told the reference rule area and click “ok” and Kicad will magically copy the layout you did in the first polygon into all the other polygons.
Thanks for this hint. In the meantime I tested your way of doing but without success. The original problem that placement of the components is a wild mixture so that components of one functional part are distributed into another functional part of the same block still exists. For me it looks like that there is obviously a bug in the Repeat layout functionality.
I also assume that I am not the only person who is influenced by this bug. So I can only recommend erveryone who uses multichannel tool to do proper cross probing of all components in the generated blocks if they still belong to the same functional group.
First, let me start by thanking the developers for this (and all other) features…
Was the error in your placement reported by ERC (with schematic parity)?
One way how to help KiCad is to create a minimal schematic/PCB with that issue and sending it to the developers to debug… I think it is a fair proposal considering the price of the software Without this they may need to double the price again…
I used the multichannel feature to panelize a current meter design to two “copies”. And the tool worked with some little quirks, that I hope will get polished out in the future:
The autogenerated placement zone was not big enough to contain all the copper fills. I suppose this can be expected as I usually would not like to copy the ground plane. However it was easy to enlarge the area…
It did not replicate silkscreen text and images
After replicate layout, I was unable to select the replicated traces. I had to close the board editor a reopen in.
I had to space out a little the autogenerated placement zones (and components) before doing the replicate layout as I’ve enlarged the “master” zone
All this was simple to fix and it helped me a lot and saved a lot of time.
I would like to know two more things.
What is the expected workflow when I change something in the schematic after I replicate the layout and I want to replicate the change?
What is the expected workflow for cases, when there are small changes in the “copies”. I.e. in my case I wanted to have the I2C address pin connected to VCC on one sheet and to GND on the other. For now I did it manually after the replication (ERC did not like it at all ), but I suppose I would have to expose the address, GND and VCC pins to the parent sheet and connect them there… Or is there a better way?
It think that I randomly found a solution for the issue. Today I accidently deactivated filter “Footprints” before using the tool for the identical layouts. And then everything went correct and all components are placed together with same functional group from schematic.
Maybe this hint helps solving the bug in software.
But false alarm. After a proper look I noticed that there is still a wild mixture of components of the identical layouts. That means currently I do not know a solution for this problem.
We will not help you get any closer to the solution to your problem if you don’t cooperate - by this I mean either creating a bug report with a minimum version of the design that demonstrates the issue. Or upload the project here, just as you suggested a few days back. I would happily fix the bug, provided that I have the means to reproduce it. Certainly, saying things like “you’re feeling like a beta user” won’t help. Let’s respect each other.
As desired I uploaded the design as attachment. After deleting some unnecessary blocks behavior of tool is slightly different. Now it doesn’t mix components to false functional blocks. Instead now it mixes the arrangement of the different functional blocks in layout (see my comments in layout).
Would be glad if I could contribute to solving this issue.