Thanks for the reply. KiCad is a recent preference of mine. I have produced only 4 projects yet. one trial, two medium and 1 medium-large. I switched to KiCad mainly due to it’s open source strategy and immense improvements since the 5.1… versions just couple of years ago to the new 6.0… versions this year. I opted against using 5.1… but it is a different story now. KiCad also has a remarkably fast growing community. I have other problems like flipping a selection automatically changing sides which is a problem when making receptacles for other PCB assemblies (e.g. an IF block), etc. but I am hopeful for solutions.
Thanks for your reply. Of course you’re right. Having to flip resistors (in case you wish to suppress pin numbers for nonpolar components) just to get them the correct way round in the Netlist is bad enough a time waste.
What do you mean with:
Depressing f for flip on a selection flips all footprints (and selected tracks) to the other side. If that is not what you want, then don’t press the f key.
That is the problem I do not press the F key at all but I do have to flip the footprint on the same layers. I have components made of small size PCBs with pins an annotations in excess of one hundred. One cumbersome but geometrically accurate solution is to move all items to User.drw layer and moving back after the flipping. Very time consuming. It really call for finding and editing the C++ code for flip and add something like Flip-N (Since the action is provided for User.drw layer, this may not be a very hard task) However I haven’t done code editing for KiCad so far and do not have the time.
Even you tried to explain why I didn’t understood. In my opinion any function that would allow to flip footprint at the same layer is potential source of bug. In your case I simply suppose you have wrongly defined footprint.
Many years ago the PCB containing 8 current loop circuits were designed. When 4 of them directed to right were ready I told that next 4 directed to the left should be not simply rotated but they have to be mirrored. I had in mind that if at right terminals were from top + and then - then also at left they should be from top + and then - to avoid user mistakes. I even didn’t know that PCB software we used allowed for flipping circuits without changing layer. The end effect was that we got a set of PCBs at which we had to assembly all transistors and transoptors on the back.
Thank you very much for your help Piotr. I will explain my problem in more detail. I use some of my PCBs as modules (IF, uP, IR receiver, RF tuner, etc.) in other larger boards rather then replicating them. Sometimes they may be outsourced as well. I connect them upside down through vertical pins and sockets. So I find it convenient to represent them as components in my drawing. You may be right in saying that I have drawn them the wrong side up. But I prefer to draw every board looking from top. I had some exceptions (especially when drawing RF tuners) in the past but I find it more difficult. So if I use one of older boards as a plug in component in a new board I turn it over and push into the receiving sockets which is why I need the flipping. It is only needed for precisely locating the receiving SIL sockets together with the silkscreen annotations. Then I never need to worry about coordinates and dimensions. Otherwise, as you say, flipping serves no useful purpose. Please also note that this is more convenient for one off or few off jobs. On rare occasions may also be used for serial production when, say, you have an abundance of IR modules in stock and want to use them. Regards and thanks again.
If you want to mount some module upside down on the PCB then the footprint gets mirrored, and it is not very normal" to do this, and there is no direct function in KiCad that I know of to do this.
My solution would probably be to create a new footprint for such parts (Starting from a copy), and then give them the name [Footprint]-Mirrored. If you have created such a footprint then it’s quite easy to get them into your (existing) project.
- Schematic Editor / Tools / Update Symbols from Library
- Schematic Editor / Tools / Update PCB from Schematic [F8] and then make sure you have the option: Replace footprints with those specified in the schematic turned on.
In KiCad, the schematic is the main repository for linking schematic symbols with footprints, and forward annotation is usually simpler then backward annotation.
Flipping gives the quickest and dimensionally most accurate result. This need arises when say you have an abundance of IF modules you want to make use of or say ywhen you have to use an externally sourced PCB usually for one off jobs. Flipping works for the user drawing layer. Mowing annotations there and back takes some time but works. Pads do not change anyway. Thank you very much for your answer.
A method that may make it easier:
- Load a copy of your footprint in the footprint editor.
- Select everything and flip it to the other side.
- Edit the properties of pads, silkscreen lines etc, so they are on the front again.
I may be off here, I’m still guessing to what you are exacty doing. What is an “IF module” and what does it look like?
I made those modules to be able to put directly at main PCB with its contacts at their PCB border. So I don’t put them upside down. But I have one big module (microcontroller, EEPROM, Flash, RTC, all under shielding box) that I put at my main PCB vertically.
Of course. I made a new symbol and footprint for each of them.
I have one device consisting of 4 paralel PCBs (keyboard, antenna, main system, power & interface). I draw them all looking at them from the device front even two of them have that way elements at bottom. That allows me to be sure that I placed connectors between them at right places and positioned openings for LEDs at front at right places.
I would certainly define a new footprint for it as I have done for my all modules, including vertical one.
If you have a footprint you have checked it is correct than you use it and need not to worry.
Pads do not change as they are common to all layers. The layer User Drawings also remain the same. Which means mask layers will also be O.K. So, I generally move F.Silkscreen objects to that layer, do the flipping and move back to F.Silk Screen. I usually do not need other layers for socket creation except for B. Silk Screen on rare occasions. Thank you very much for your attention and help.