Simple questions about PCB editing

Thanks to the contributors to the KiCad software and documentation.

  1. May I ask: what is the precise intended method of selecting a segment of a track?
    Sometime I can click on the track 15 times and nothing is selected. At other times I click once and it is selected.
    If I try to highlight the entire segment by dragging a boundary arouind it, it quite often selects other items, or other segments as well.
    Advice please!
  2. What keystrokes will enable me to highlight all dislayed items (e.g all copper and all components). Sometimes I would like to make small adjustments in position of such objects as I have noticed that when creating them on the PCB (I sometimes bypass the schematic) they donā€™t always lie exactly on the finescale grid, instead lyng between gridlines.

It would be useful to have a page in the manual(s) explaining the creation of PCBs without creating a schematic first.

Thanks
KASpencer

A lot of people think they will save time bypassing the schematic, but in the end itā€™s not a good idea. Only if itā€™s very simple. But then if itā€™s very simple, then drawing a schematic wonā€™t take long. Iā€™ll leave it for others to elaborate. Bed beckons.

5 Likes

You are zoomed in enough so that a track segment is at least multiple pixels width, you donā€™t have any tools active, the track is a normal track not part of a footprint and not part of a polygon pour? And then you click once (not drag**) on it while the mouse points clearly to pixels inside the track and nothing is selected?
There are also no other windows or dialogboxes open of which KiCad to be closed first?
Sounds like a bug to me. Does this happen on all KiCad projects or such on some of them?

** Moving the mouse just one pixel while selecting means KiCad interprets it as drawing a selection boundary, which may or may not select the track depending on the direction.

Try to draw the boundary from different corners (top left, top right, bottom left, bottom right) and see how they differ.

This is just a bad Idea in KiCad:

And the answer is simple, just as retiredfeline already wrote. Just do NOT do this in KiCad. Donā€™t be stubborn and just draw the schematic first, assign footprints etc. Even for trivial designs this workflow is much better.

Why bother whether a copper track is on some grid or not?
Learn to use KiCadā€™s toolbox as it should be used and use it to your advantage. It makes designing PCBā€™s much easier on you.

And one more thing, I you have trouble selecting something specific, then first unselect everything, and then do a long mouse press. After about a second, a menu will pop up to give you an unambigous choice of what you want to select:

image

Yet another tip:
There is a difference in drawing a selection box from left to right or from right to left.

Last tip:
Read more of the manual.

Zoom in on the area in question then click on the middle of the segment.

As others have stated, selection box is different.
Left to right selection will only highlight everything totally included in the box.
Right to left selection will highlight everything both partially and completely included in the box.

I donā€™t think this has been a problem, but for completenessā€™ sake: make sure the Selection Filter in the bottom right corner allows selecting what you want. The filter also helps you if you want to prevent selecting some items while selecting only some. Finally, Control+click and Shift+click add to and remove from the current selection (details of these may have changed from 7.0 to 7.99, so just test yourself).

Although I agree what others said about schematicless PCB, it has some support in KiCad. If you insist doing it, you have at least two options. First, you can just add footprints and tracks as you apparently have done now. Then you have to take care of all accidental shortcuts etc. yourself. Second, you can add nets with Inspect ā†’ Net Inspector and then assign these nets to pads. Then you can route tracks as if you had a schematic. But this is quite tedious if you have more than a couple of components/pads/connections, and you probably should create a schematic anyway.

Yes, there are some workarounds, but they mostly lead to the same conclusion:

In the end it boils down to the same. KiCad is built around working with a schematic (and the netlist it creates), and if you try to ignore that you are constantly rowing against KiCadā€™s workflow and put yourself in pain and misery.

If you like hardcore challenges, then giving up 95% (or more) of the support offered by KiCad is the right way to go.
If you will try to draw PCB at any graphic program then you will not act against it, but doing it under KiCad will just work against it, and you can expect that the program will hinder you.

OK: Thanks, @retiredfeline @paulvdh @jmk @Piotr @johannespfister for the replies.
@eelik : thanks for the helpful hints. Iā€™m looking for the selection filter which should be handy.
@jmk Many thanks - also helpful re. selection boxes.
I wonā€™t prolong the argument as to whether or not one should create a PCB directly or not, save to say that the developers have included what seems to me to be all the necessary features so to do.
So thanks for taking the trouble to reply!
KASpencer

1 Like

A small recoup:

I have had this discussion a few times before, and it always amazes me how stubborn people can be in refusing to draw a schematic, based on ā€¦ (maybe based on some assumptions?), and I wonder, have you ever done a KiCad project with a schematic? Do you know the difference?

There is a small learning curve. Drawing the schematic is pretty straight forward in itself, but it does take a bit of time to learn how to work effectively with the libraries built into KiCad, and to do the footprint assignment. After a while, you probably want to do some library management of your own parts too. But itā€™s your time and your own responsibility.

In my Schematics and PCBā€™s, I use the ā€˜Referenceā€™ instead of the ā€˜Valueā€™ - just seems cleaner to me versus hiding all the unwanted text and, the Bulk-Edit Tool doesnā€™t change Referenceā€™s. Yes, can do it individually by Click/Edit.

Because of that and several other Reasons/Needs (mostly .mod file), I created a Plugin to do ā€˜Search and Replaceā€™. I posted about this in other posts. Simple typical Python stuffā€¦

Iā€™m not suggesting anything wrong/bad about using the Bulk tool, just informing about an optionā€¦

No doubt, the Schematicā€™s Python console is useful to run similar Search and Replace code - I havenā€™t bothered to test it outā€¦

Video shows change from 50V to 43V in Bulk. My current Code/App doesnā€™t include a Schematic Refresh (havenā€™t looked to see if itā€™s available) and the Refresh Btn doesnā€™t do it) so, I just Quit Schematic and Re-Open itā€¦

Of course, most every Text-Editor includes Search/Replace but, I like coding!

I am sorry, but I must share this.

I make control panels for people from PCB. I assemble them by hand. And after some evaluation I decided to first make the boards than make the schematics.

I made special footprints and symbols. Resistors have values no part numbers, led and switches have no silk texts.

(older design ment to work with jumper cables)

I must route all tracks on the bottom side otherwise you will see them. Things like viaā€™s and top tracks are either under the THT parts, otherwise I do them under the silk screen where they are less visable or keep them outside in the invisible zones.

I manually annotate every part by hand. I annotate things so that the routing is optimized. Sometimes when routing must be altered, than I swap a GPIO label in schematic.

I use switches and LEDs on single pins.
I use 2 LEDs on a single pin with which I use the Tri-state properties to turn 1 led ON or I turn both LEDs off by making the pin high impedant.
I use 2 IO pins to control a group of 3 LEDs. Whatever saves me IO and is simple (= charly plexing is not simple)

Those 20 pin SMD connectors are connected to SMT assembled controllers. If I lack IO, I add more of these controllers, they use I2C and may act as IO extender.

So yeah this project, first board, than schematic later both.

Kind regards,

Bas

That looks like a fun project, but even for a project like that itā€™s easier to draw the schematic first, or at least most of it. If you start with the schematic, you associate footprints with schematic symbols (it saves a bit of time if you do that for the first resistor, led & switch and then make copies), and if you then press [F8] it puts all the footprints on the PCB. during routing of tracks you may want to swap some leds or wiring between LEDā€™s, but that is easy to do in the schematic, and then update the PCB again with [F8].

And for a PCB like this, custom footprints are also a logical step. You fix things like silkscreen (you can put it on the bottom!) and other things (hiding Refdes, or also putting it on the bottom for the LEDs) in the right place once for a footprint in the library, and the rest gets done automatically as you make copies of that library footprint.

this approach is often used in reverse engineeringā€¦ for example when you have a finished device and you need to replicate itā€¦ but this is the exception rather than the ruleā€¦ in any of these approaches, the circuit is requiredā€¦

1 Like

I still to that, but I simply place the footprints first. I place some footprints, do come Ctrl C Ctrl V until all is in place. Than I open the schematic, fetch an led and R from my personal lib (which have the same footprints associated as are already on the board) than I Ctrl C Ctrl V the symbols as well, I manually annotate the lot and lastly I hit F8 so all placed footprints get some nets assigned and I can do the routing.

Bas

That is what I mean with an over complicated workflow. You first put all footprints on the PCB, then place all symbols on the schematic, and then you have to match them manually.

Compare it with:

  1. Put a resistor + LED + switch + GND symbol on the schematic.
  2. Assign footprints to those three. (from your personal lib).
  3. Wire them up.
  4. Draw a box around it, press [Ctrl + D] to duplicate. ( That is Copy & Paste combined).
  5. Draw a box around everything, [Ctrl + D] to duplicate, again, you now have four of each.
  6. Repeat to get 8 of each, etcā€¦
  7. Make some modifications, I see you sometimes have two leds with one switch.
  8. (You can duplicate that snippet too :wink:
  9. Depress [F8], and go through the motion.

Now you have a (mostly) finished schematic, all those footprints are on the PCB, the schematic symbols are connected to the footprints, and the netlist connections are also already made. I suggest you try this out in a dummy project to compare it with your regular workflow. The first time you do it this way, it may take some getting used to,

After this you still have to sort out the footprints on the PCB. One of the ways to do this is:

  1. Select some connected parts on the schematic (They get selected on the PCB too).
  2. Switch focus to the PCB editor (I prefer to hover the mouse over the PCB editor and roll the scroll wheel).
  3. Press m to move the selection.
1 Like

Iā€™d go one step further than Paul.

You have 5 different output arrangements, so Iā€™d make all five, with footprints, using lots of duplicating.
Iā€™d then multiple duplicate all five arrangements so I would have, eg. 10 type A, 3 type B etc.
Annotate, update PCB, then push the footprints around the drawing on the PCB.

Finally, draw tracks to the connector, Update Schematic, re-annotate Schematic, update PCB.

To move footprints selected by selection at schematic the better is p hotkey as it puts selected footprints together.
If you have in Preferences - Common the option ā€œFocus follows mouse between schematic and PCB editorsā€ set you need not to do anything to switch focus to PCB. After selecting part of schematic you go with cursor to PCB window and just press m or p.

1 Like

Just learned something new today. P does work to pack and move and although I have a strong dislike of the ā€œgeneralā€ focus follows mouse, when you enable it in KiCad it only works between the schematic and PCB editors, and a short test shows me it works quite nicely, so I will leave this function on for a while. :slight_smile:

I learned about P not long ago:

And have written it in the thread asking for exactly such infos: