How to insert a corner into a trace?

I still feel that routing traces in KiCad feels clumsy, although my basis in other software for comparison is VERY limited. I prefer to avoid 90 degree bends in traces mainly due to the possibility of peeling on the PCB, but also because I do not want the software to tell me how to design my board and right angle bends do not look right.

So I just connected a trace to an IC and Kicad has given me something like a 90 degree angle. I can add a corner to a zone but I do not see how to do it to that trace. UPDATE After submitting this question I have now added a 45 degree corner, but I am not sure what I did differently. I do not think I changed any settings. Of course I can remove a trace segment and replace it but this feels clumsy. Am I missing something**???**

Related to this; I see a choice of “free angle” or 45 degrees when dragging a trace, but I do not understand what control I have over that when producing a trace**???** It does seem like my results vary but I have not figured out cause and effect. Right now my grid is very fine and I have some traces at weird angles such as maybe 2 degrees. :frowning:

BTW I am not designing high speed or impedance controlled lines but I understand that 90 degree bends tend to produce impedance discontinuities in controlled impedance data lines.

I would also like to understand when or whether trace segments are glued to each other or to footprint pads**???** When I drag an existing trace segment; sometimes the connections seem to be glued and sometimes not, but Kicad seems to recognize a connection anyway…or maybe I just do not see a ratsnest line between trace segments if it is too tiny**???**

Thanks.

Application: kicad
Version: (5.0.2)-1, release build
Libraries:
wxWidgets 3.0.4
libcurl/7.61.1 OpenSSL/1.1.1 (WinSSL) zlib/1.2.11 brotli/1.0.6 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.5) nghttp2/1.34.0
Platform: Windows 8 (build 9200), 64-bit edition, 64 bit, Little endian, wxMSW
Build Info:
wxWidgets: 3.0.4 (wchar_t,wx containers,compatible with 2.8)
Boost: 1.68.0
OpenCASCADE Community Edition: 6.9.1
Curl: 7.61.1
Compiler: GCC 8.2.0 with C++ ABI 1013

Build settings:
USE_WX_GRAPHICS_CONTEXT=OFF
USE_WX_OVERLAY=OFF
KICAD_SCRIPTING=ON
KICAD_SCRIPTING_MODULES=ON
KICAD_SCRIPTING_WXPYTHON=ON
KICAD_SCRIPTING_ACTION_MENU=ON
BUILD_GITHUB_PLUGIN=ON
KICAD_USE_OCE=ON
KICAD_USE_OCC=OFF
KICAD_SPICE=ON

Are you using th Legacy [F9] or the modern [F11] Canvas in Pcbnew?
The “Interactive Router” is not available in the Legacy canvas.

The Interactive Router is a very big improvement over the old ways of routing things.
I’m not sure if it is enabled by default, I hope so. Just a few days ago I updated to KiCad V5.1 on Debian, and the legacy canvas seems to have been dropped.
With the Interactive router corners and 45 degree angles also get inserted automatically if you drag / push a track againts pads.
Watch some Youtube vid’s about the Interactive Router in Pcbnew, and you’ll be amazed at it’s capabilities.

45 degree bends are pretty much the default with the Interactive Router and you’ll have to twiddle with the settings to prevent Pcbnew from making them.

Track segments are attached to a pad when the end points match.

Just recently I read a tip about using a 0.1mm grid for everything on a PCB, and it makes sense. It fits both Metric and the old English measurements and is fine enough for almost all routing on a board, while still being able to prevent shallow angles on tracks if you want to.

There is also nothing wrong with 90 degree angles and shallow angles on tracks.

Something else weird:
It seems you’re on the KiCad forum for 3+ years and layed a single track which did not have a 45 degree angle, and you “complained” about it, and after you managed to insert a 45 track segment you updated your post ???
Hurray!!! Time for laying your 2nd track…
(It’s my brain’s fault, or your writing).

There are a lot of settings in KiCad which influence it’s behaviour, and without knowing your settings it’s hard to correlate the behaviour of your settings with your writing. There is a real art to writing good questions.

Edit:
“shallow” -> “shallow angles”.

Thank you again, Paulvdh

Your willingness to call it as you see it is so much better than the "I am sorry for the difficulty you are having…" garbage one might get from the help page with some other software…

One issue in writing good questions is difficulty in characterizing the software behavior that is bugging me.

When you refer to modern or legacy canvas; I feel like the modern one ought to be called (polypropylene or perhaps carbon fiber) instead of canvas…However pixels might not adhere well to polypropylene. :slight_smile: But in fact I see none of those names. What I think you are asking is that I am using Modern Toolset (Accelerated). I am not using Modern Toolset (Fallback) or Legacy Toolset.

Before writing this post I had spent a few minutes trying to get a trace to go where I wanted. Sometimes with even a fine grid it will jump to either side of the place where I want to put it but will not "split the difference" and go where I want. Anyway I submitted the post and went back to KiCad and without knowingly changing my method then got some better result. It seems like the old story of "Do the same thing the same way and get the same result" does not apply.

What do you mean by "shallow tracks"? Do you mean a short right angled portion connecting to a footprint pad?

I think I started with KiCad in 2015 with version 3. I designed a simple boost converter and took it as far as gerbers. Then my worklife left me without the time to spend on it and now I am back with version 5 and designing a HV E-load. On this forum, sometimes old questions allow new responses and sometimes they do not. I thought it would always be better to continue an existing discussion rather than to start a new one. Maybe a month ago I added to someone else’s old post and got no response. So I do not know if you saw that, or one of my old posts.

I have wondered whether we could have a Wiki Help. Where instead of question & answer of this forum (the result is naturally mostly disorganzed) the knowledgeable users can contribute sections when they feel motivated to do so. It is the bane of software help everywhere that it is written from the point of view of the code developers and not from the point of view of the person trying to learn the software. One aspect of this is choice of terms. If the new user does not know the correct term then it becomes difficult to find any explanation. To me, a good verbal explanation is much better than a video. I would think that someone might have a good explanation rather than just an intuitive "feel" for it. This gets back to characterizing the software behavior which I mentioned above. That would be great to have in a Wiki help.

One (not the best) example is "Use Markdown, BBCode, or HTML to format." I have been a design engineer since 1976 but I need help to understand this "help". I just now googled it but what I found is of no help for someone like me who is completely unfamiliar. Maybe I should have searched at BBC.com :slight_smile:

Is there any good explanation somewhere about under what conditions trace segments are glued to pads or each other? Sometimes when I drag a segment the adjoining one moves with it, and sometimes not. I do not know why…and is it a cause for concern?

“Canvas” is an area where something is painted/drawn, it has become common computer graphics jargon. KiCad developers developed a new canvas (using OpenGL graphics) and the new tool architecture hand in hand, therefore it’s sometimes called canvas in KiCad, but toolset describes the whole better and is used in the user interface nowadays.

2 Likes

No, it’s just annoying. I have spent much time wondering it. Sometimes a track is attached to another, sometimes not. It’s easy to tell techincally when it happens: when an endpoint of a segment is on top of a endpoint of another segment they are attached. But when it doesn’t attach even when I thought it should have done so, it’s sometimes impossible to tell why. I wish KiCad could read my thoughts and I hers. And yes, automatic jumping around when laying traces is also annoying. I have already sent one bug report about non-predictability of the interactive router. If you have some clear, specific, repeatable case, you can send a bug report to be added to the long list of wishes.

Thanks a lot, eelik. I find I am much better at designing than at figuring out what others have done (such as software) and it is good to know that I am not the only one who is somewhat puzzled at the software behavior. I think in some other posts I mentioned that I have used ExpressPCB extensively. It is simple, manual and relatively stupid. But like my car with a manual transmission it does what I tell it so is predictable; does not have a mind of its own. The downside is that by itself it does not tell you of errors, so “caveat empty” or something like that. :slight_smile: I think you know I was being a little facetious with regard to polypropylene and canvas but I appreciate your more savvy explanation.

As eelik already explained “Canvas” in computer terms is the raw pixel grid on which everything is painted, and it originated from a painters canvas, which is a blank area on which to paint. In KiCad V4 the was used as such in the menu because it started as a difference in graphics libraries which were used to draw stuff on screen. “Canvas” in this meaning is not an end-user term and later the new new functions got added to the “OpenGL Canvas” and it got renamed to “Modern Toolset”, which is a much better name for it. Sorry for using the old termminology.

I’m not sure what point you wanted to make with the “BBCode” remark. It’s from “Bulletin Board Code” and (almost all) links from a simple search point to it:
https://duckduckgo.com/html?q=bbcode

I do not have much trouble with tracks attached to each other or not. Probably because I’ve learned a long time ago (in the DOS age, with ultiboard) to lay the tracks in such a way that the endpoints always match perfectly.
I also did a few simple tests with KiCad V5.1 in this thread:
https://forum.kicad.info/t/cannot-place-trace-on-pad-says-unconnected/16019/7 and was pleasantly surprized that DRC recognized connections to pads if an endpoint of a track was within a pad area, and even allowed 0.1mm misalignment if a track goes through a pad, but has no endpoint in it.
I’m not sure in which version it changed, but in V5.1 it seemed to have changed for the better compared to a few versions ago.

Are you using the Interactive Router to lay your tracks or not? I can’t even rember anymore what it was to lay the tracks without it.

A few versions ago I also liked the simplicity of KiCad, but as I (probably?) grow with it I also apreciate the faster layout that a “more advanced” but also more complicated KiCad is becoming. But it’s a bit fuzzy, I can’t keep the different versions apart in my head.

I also think there is something strange in my head going on. It seems I simply accept a lot of quircks of KiCad on such a level that I find it it difficult to even recognize things I probably would have found annoying several years ago.

I like Open Source software very much and KiCad is a wonderfull example of it. I’ve bought several PCB packages in the past, and used a few hacked ones, but KiCad is the best I’ve ever used, even though it also has it quircks. A very important factor is that the quircks of KiCad are small.
With another program long ago, the netlist did not always got updated if you deleted connections in the schematic, and you were lucky to notice strange connections while drawing the PCB. That was an instant EUR125 into the garbage bin.

Hi, Paulvdh

I once saw Chris Gammel explaining how to quote another post but I cannot find that post…

Regarding "canvas" versus "toolset" I was pretty sure I understood you based upon the F9 and F11 keys which you mentioned.

Regarding BBcode, I found a few explanations which might be helpful to programmers (which I am not.) I think it was Wikipedia which described it as a "markup language". I guess I did not have the patience to understand what is a markup language. I briefly followed your link at duckduckgo. It looks like another detour which I do not want to chase down.

That is not so important…I mostly post these by writing in Word and then copy-pasting to the forum. But this loses formatting.

Your information regarding alignment and connections sounds good. As a matter of perspective; in a recent job the client company used PADS. I was stumped at how, after we already had some good SOT23 transistors in the schematic and pcb, there were some new ones in which the pinout came out wrong. I do not remember whether the schematic had wrong pins assigned or if the footprint had the wrong pin locations. But buggy software seems more the rule than the exception and relative freedom from bugs is one good thing about the “classic” version of ExpressPCB. Fred Flintstone’s car was relatively free of bugs, right? Fred Flintstone in his car

Yes the open source nature of KiCad is refreshing, although I don’t think I would ever meddle with the code myself. I did take liberties recently with editing the netlist. The idea of burying that stuff so users cannot copy (as in most other software) seems sacrificing my convenience for the software company’s advantage.

I only wish that I can become sufficiently proficient that I would be qualified to write some topics in help.

I’ve got at least one more post that might be edited to end up in the FAQ section.

Due to the frustration of someone else not already writing how it currently works. Once you learn it for yourself and write it as a reminder for yourself, it does not take much to share it with the rest of the KiCad community.

Thanks, Sprig. Sounds good and reasonable. I am thinking…is there a way to send it to me (privately might be preferable)? If I can understand it well enough to edit it (big IF) then maybe we can finish it by ping-ponging it a few times.

Use the F11 mode mentioned above, and play with the ‘D’ drag command.
You can simply start a new route and click corners, with 0/45/90 choices and it will remove the ‘old’ trace. segments when it merges.
You can select a 90’ corner, and D on that usually auto-adds a 45’ segment.
(does not seem to be 100% predictable)

M simply picks a segment, and moves it, so that is rarely used for routing.
G is free angle drag, also rarely used, unless you have a pressing need to be off 45’ quanta, but it does seem to be usable as a delete-corner alternative.
Probably faster to simply add-new-trace and use the auto delete on merge ?

When adding routes, right click gives choices on defaults, and I find ‘use starting track width’ the most useful.

1 Like

SOT23 is a particular nasty package, because manufacturers can not seem to agree where pin 1 is. Whole websites have been dedicated to it and there is a good chanse pads is not to blame.

2 Likes

I’m fairly certain the SOT-23 inherited that trait from TO-92.
TO-92 “EBC” and “CBE” (et al) Pinout

Dale

Hi, PCB Wiz

Yes I am using the modern toolset (accelerated). I use both the drag free angle command and the drag 45 degree command. Sometimes it seems that switching back and forth between the two drag commands provides the best result, but I do not understand what I am doing when I do this.

“When adding routes, right click gives choices on defaults” OK this is new to me; I was not aware of these options. I find that setting trace width by net class to be a nuisance; it is not the way I think or work. I want to use the maximum trace width which will fit, and sometimes the same net will have widely varying widths depending upon the device pins which I am connecting. I had used a default trace width of 12 mils but then need to go back and change everything afterwards. If I use a wider default then I cannot route some of the traces.

(Writing this now is a pain because the software does not allow screen shots of the context menus)

So the (Shift-X; reverse mouse click) Custom Track/Via Size is useful.

But the other choices such as Select Track/Via Width > Use starting track width… I cannot tell that it does anything? What does it mean; What does it do; how does it work; how do I use it?

Hi, Paulvdh and dchisholm: Yes I know that semiconductor manufacturers have disagreed regarding pin numbers of SOT23. But I would think that once we have a good MMBT4401 transistor in the software (symbol and footprint working correctly together) then the problem would be gone. (All MMBT4401s have the same physical location of base emitter and collector pins, ignoring pin numbers.) But such was not the case.

That’s most use when editing an existing trace (by simply running an alternate path & relying on auto-delete).
Where you have varying widths, it simply grabs the width of the segment you start on, and uses that width.
If you use many widths, that can be very useful.

Thank you PCB_Wiz

Now that is the sort of information which should be included in the help files…

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.