Missing connections?

Hello,
I have no errrors in the schema part.
I switch to pcb and I route with freeroouting.
I receive following errors :
[net_conflict]: Pad net (Net-(C6-Pad2)) doesn’t match net given by schematic (+12VA).
Local override; Severity: warning
@(256.5400 mm, 34.5590 mm): Through hole pad 1 [Net-(C6-Pad2)] of J4
[net_conflict]: Pad net (Net-(C7-Pad2)) doesn’t match net given by schematic (-12VA).
Local override; Severity: warning
@(256.5400 mm, 39.6390 mm): Through hole pad 3 [Net-(C7-Pad2)] of J4
[net_conflict]: Pad net (GND) doesn’t match net given by schematic (Net-(Q1-Pad2)).
Local override; Severity: warning
@(240.7920 mm, 58.4200 mm): Through hole pad 1 [GND] of R21
[net_conflict]: Pad net (Net-(R20-Pad1)) doesn’t match net given by schematic (Net-(R21-Pad2)).
Local override; Severity: warning
@(240.7920 mm, 48.2600 mm): Through hole pad 2 [Net-(R20-Pad1)] of R21
[net_conflict]: Pad net (Net-(R17-Pad1)) doesn’t match net given by schematic (+5Vref).
Local override; Severity: warning
@(210.5760 mm, 27.4320 mm): Through hole pad 1 [Net-(R17-Pad1)] of U4
[net_conflict]: Pad net (Net-(R17-Pad1)) doesn’t match net given by schematic (+5Vref).
Local override; Severity: warning
@(210.5760 mm, 29.9720 mm): Through hole pad 2 [Net-(R17-Pad1)] of U4

If I loock on the pcb, i see some connections are missing. But severity is warning…
Can you tell me what I must to do as a corrections ?
I attach the projet in the present post. It’s a small project
I thank you very much any body that can help me…
Best regards

Laflamme.zip (1.3 MB)

First thing you should do is connect resistors to both the I2C lines. Even if your ESP32 thing already has them, you’d rather have some empty pads on the PCB to add them, then no pads if you need them.

There is a strange wire on you ESP32, Pin 38:
image

Just curious:
Why use an REF01? It seems overkill fora cheap 12bit DAC.
12V is also its miminum supply voltage and I don’t know where the power comes from.

R12, an 1K resistor in the MCP4725 together with only a 100nF capacitor also does not look good.

And why all those opamps? Each opamp adds offsets, noise and other inaccuracies.


Then the PCB…

Start with making a good outline. All the line segments on the Edge.Cuts layers should form a complete continuous circumference of your PCB.

A bit later…
Now I see what you did. You put those measurements on Edge.Cuts. They don’t belong there. The two circles are probably allright, but I’d rather add the holes to the schematic and use footprints for the holes myself.

About those dimensions:
If you do a long press on the measurements box, it folds out and you can choose an orthogonal measurement:
image
Weird numbers also, specifiy distances with micrometer accuracy? One way of easily getting “round numbers” (if that is what you want)…

Oops, scrap that.
By moving your holes to F.Fab and using orthogonal measurements I see the actual distances are (137.5, 67.9)

About the routing…
I would not even consider using freerouting, and I was curios what sort of mess it made. I was disappointed to see there are no tracks routed on the PCB at all.
Quite often the auto router makes such a mess of things that cleaning up afterwards is more work than routing it manually in the first place. An autorouter is not a magic wand. (Although it can be a useful tool in some circumstances)

But before you do the routing, you have to consider footprint placement.
For example, R10, R11 and R12 on the schematic:
image

Are spread widely apart on your PCB, and also far from U4, the IC they connect to:

image

Again a bit later…
I was wondering about the .ses and .dsn files, had a lightbulb moment and then imported the Specctra session.

And, as expected, it’s just a horrible mess of wires.

DRC only shows two Silkscreen warnings, but that is mostly irellevant. Without first fixing the footprint placement first, this PCB can not even be routed properly manually.

1 Like

Hello paulvdh,
I thank you so much for your comments !
I will observe all your recomendations of corse!

I correct the pin 38 on the esp32 schematic side.
About the filter R12 / C8: 1 K / 0,1 uF what values do you suggest ?
I add pullup resistors to I2C line.

“12V is also its miminum supply voltage and I don’t know where the power comes from.”
The power come from connector J1

J4 is wrong pin 1 is +12V power, pin 2 is ground, pin 3 is minus 12 power.

For the PCB.
I lock for the edge cut and not found any problem on it. Can you explain me where is the mistake ?

I will consider a more nice placement of components.

How can I restart from scratch the pcb importing schematic ?

I will observe your comment step by step !

Thanks a lot !

l
Sorry, but I don’t understand you well, english is not my mother language… Holes are for fixing the pcb. So wich is the correct layer to put these holes ?

Many thanks for your comments.

I’m sorry for confusing you.
Putting the holes on Edge.Cuts is very likely the only good layer.

But the Edge.Cuts layer should only have graphics that should be routed. Do not put the measurements on that layer. You can put the measurements on a Fab or a user layer. It does not matter much, as long as it’s not on a layer with a special meaning, such as Copper, Silkscreen, Mask, etc.

Hello,
About the holes, I look on the Edge layer and didn’t see mesurment on this layer ?
Can you explain me where I must to remove mesurment or other attributes in Edge layer?

I do several modifications (R10,R11,R12), even in the schematic about the J3 connector.
J3 is the power supply for U6.
What I don’t understand is why Kicad doesn’t display missing connexion from J3 to U6: +12VA and -12VA
I am afraid about this point, because it can be othe connexion missing I don’t see.

I thank you very much for your comments, best regards

Laflamme.zip (1.3 MB)
Here is the updated project

Placement is for me 90% of work with PCB. When each element is located exactly where it should be then routing is much simpler.

There are a lot of things wrong with this PCB.
I suggest you start by trowing away freerouter and learn to do PCB layout “properly” first.

As I said before, an auto router is not a magic wand you can touch your PCB with and then call it done.
Designing a PCB properly needs a lot of consideration with a lot of factors.

Just a few small things (there are many more things that do not work properly for this PCB)

  1. There is no Ground plane whatsoever. (Studying GND planes and their use will cost you at least half a day).
  2. Placement of decoupling capacitors. They are too far removed from where they need to be (Close to the IC they need to decouple.
  3. 0.25mm tracks do not work for an LM675, an IC that can deliver more then 3A of current.
  4. There can not be any tracks under or near the antenna of the ESP32.
  5. Why use THT resistors if you have a very small MCP4725 directly soldered on the PCB? The combination does not make sense. That thing is tiny, and judging your experience level, I suggest you use the breakout board.

I do recommend you read (and follow) the thread below:

I did a quite long review of a PCB in that thread to get to a better layout.

I’m guessing you meant J4.
KiCad does not automatically sync the PCB with the schematic. If you make changes to the schematic you have to Schematic Editor / Tools / Update PCB From Schematic [F8] afterwards.

Doing this, adds the missing connections:

Also, if you PCB Editor / Inspect / Design Rules Checker / Run DRC, then it both shows some short circuits, and missing connections.

Learn to use both the ERC in the schematic, and the DRC on the PCB. Those tools help detect a lot of errors.

I double checked with your old PCB. I turned off all layers except Edge.Cuts, and it has measurements on that layer. an almost vertical 67.9680mm and an almost horizontal 137.6680mm.

Also:

Read this part of the LM675 carefully. Make sure you understand it, and implement their recommendations. (your auto mangler does none of those things).

STABILITY
The LM675 is designed to be stable when operated at a closed-loop gain of 10 or greater, but, as with any other
high-current amplifier, the LM675 can be made to oscillate under certain conditions. These usually involve
printed circuit board layout or output/input coupling.
When designing a printed circuit board layout, it is important to return the load ground, the output compensation
ground, and the low level (feedback and input) grounds to the circuit board ground point through separate paths.
Otherwise, large currents flowing along a ground conductor will generate voltages on the conductor which can
effectively act as signals at the input, resulting in high frequency oscillation or excessive distortion. It is advisable
to keep the output compensation components and the 0.1 μF supply decoupling capacitors as close as possible
to the LM675 to reduce the effects of PCB trace resistance and inductance. For the same reason, the ground
return paths for these components should be as short as possible.
Occasionally, current in the output leads (which function as antennas) can be coupled through the air to the
amplifier input, resulting in high-frequency oscillation. This normally happens when the source impedance is high
or the input leads are long. The problem can be eliminated by placing a small capacitor (on the order of 50 pF to
500 pF) across the circuit input.
Most power amplifiers do not drive highly capacitive loads well, and the LM675 is no exception. If the output of
the LM675 is connected directly to a capacitor with no series resistance, the square wave response will exhibit
ringing if the capacitance is greater than about 0.1 μF. The amplifier can typically drive load capacitances up to 2
μF or so without oscillating, but this is not recommended. If highly capacitive loads are expected, a resistor (at
least 1Ω) should be placed in series with the output of the LM675. A method commonly employed to protect
amplifiers from low impedances at high frequencies is to couple to the load through a 10Ω resistor in parallel with
a 5 μH inductor.

Hello,
thank you so much for you help.
I try to observe your remarks an do the best but for sur the pcb will not be perfect !
I do a prototype with the same schema and it work well but as expected, the LM 675 is not stable and I order an equivalent but stable with a unity gain.
I have knowledge in electronic and software but very low for pcb design…
I would like to change the width of net connections using net class.
I create a new net class and assigned to the net list.
For example, the net class name is Power wich is 0,5 mm of width
I apply this class to +12V
How can I apply change the pcb according to the net class.
I see I can do it by Edit track and via… but this is class by class.

So I work hard and I think the pcb is in progress…

Thank you so much !

Best regards

Thierry

After you’ve created a net class in PCB Editor / File / Board Setup / Design Rules / Net Classes you can also assign these net classes to the nets in the same dialog.

You can either use the Assign Net Class part of that same dialog, or open the net class names on the right with the mouse and select a new net class for a single net.

There is a similar dialog in Schematic Editor / File / Schematic Setup / Project / Net Classes, but it has some small differences. Setting net classes up in the PCB editor is the “traditional” way. The dialog in the Schematic Editor is new in KiCad V6 and I have not used that yet.


Also, when I did Schematic Editor / Tools / Update PCB from Schematic with the option Replace footprints with those specified in the schematic on, I noticed some errors popped up.

You should fix these errors by assigning footprints to those schematic symbols.
A quick way to do this is with: Schematic Editor / Tools / Edit Symbol Fields. With that dialog you can quite easily use copy and paste to copy a footprint name from a good part to a part that misses the footprint.

Hello,
Thanks a lot for your help another time.
I solved errors, I assigned class for power supply.
I would like to have large connexion, even in decoupling capacitor.
How can I specify that ?
Thanks for helping me.
Best regards

What do you mean with “wide connection”?
I would start with using about 0.35mm wide tracks for everything on this PCB, and those 0.35mm is also sufficient for the decoupling capacitors. The tracks to the decoupling capacitors no not need to be wide, but they do need to be short. Do not make those neat rows of parts, but put parts where they need to be.

Hello,
Now I have no error !
The pcb is not perfect but…
Can you have a look ? If you can point for mistakes or wrong I will be happy !
I would also like to know how can I specify the class for the output of U6 LM675 because I would like to have a larger connection like power supply.
I join the latest version.
Thanks a lot !

Best regards
Laflamme.zip (829.3 KB)

I do see some progress.

  • All schematic symbols have footprints now.
  • Schematic is free of ERC violations (except some missing librarie(s))
  • Schematic and PCB seem to be linked properly.
  • Decoupling capacitors seem t be closer to the LM675.

Now try this:
1). Open: PCB Editor / File / Board Setup / Design Rules / Net Classes and then make the rules for the Default net class a bit bigger. Set the clearance to 0.25mm and the track width to 0.35mm.

2). Set Via Size to 1.5mm and Via Hole to 0.8mm for both net classes to 0.8mm. Currently the “annular ring” (= widht of the copper around a pad or via hole) is set to 0.2mm, and this is a bit narrow for some PCB manufacturers. (And close the window).

3). PCB Editor / Edit / Edit Track & Via Properties and select the Set to net class values radio button: (and press [OK])

4). You have now made a lot of via’s bigger, and tracks wider. This will likely result in DRC errors. So run: PCB Editor / Inspect / Design Rule Checker and fix the errors. When you make tracks wider, this usually results in lots of DRC errors, but in this case there is a lot of room on the PCB and it’s not so bad. There are several ways to fix it:
5). Hover over a track and pres D for drag, then drag it out of the violation (this works sometimes).
6). Press X to start a new track, and route around the troublesome area. If PCB Editor / Route / Interactive Router Settings / Remove Redundant Tracks is turned on, then the old section is often automatically removed when a new track is laid.
7). If a track section is not deleted automatically, hover over it then press U to select a section and then [Delete] to delete it.

8). lmost all DRC violations can be fixed in this way, except for the two TO92 transistors. These have their pads very close together. You could change these for other footprints, for example TO-92-HandSolder:

9). When it’s free of DRC violations, run: PCB Editor / Tools / Cleanup Tracks and Via’s. After that, run DRC again.

10). These are just a few ways of using KiCad to improve your design, but as long as you keep using these locations of the footprints and the routing from freerouter it’s never going to become a proper PCB. For a proper PCB you also need to add a GND plane, and that simply can not be done with this footprint layout and track routing.

11). You are also still routing tracks under te ESP32 antenna.

12). Just curious, how much time did you put into this?
Have you read / followed the (quite long) LoPower thread for PCB improvements?

hello,
Changing holes and width create me a lot of work.
I think for this pcb an ground plane is not necessary, even it could be much better…
For my work, I take aprox 20h…
You will find the updated version, thanks a lot for your help ! You are a nice teacher for me !
Laflamme.zip (1.4 MB)

What is your intention?
Do you want to design good PCB’s, or PCB’s that probably sort of work?

When I see this section:

I see you’ve removed the tracks from directly under the ESP32 antenna. But the job of the antenna is to radiate. For proper operation there should not be any tracks around the ESP32. Normally these things are placed at the edge of the PCB for this reason.

Also, you’ve got a track going north to R27 and R28, and from those resistors two tracks going south again. This adds a lot of unnecessary tracks to the PCB.

Same with R13 and R14:

The result of such things is that your circuit will pick up much more noise and be less accurate High power opamps such as the LM675 can also easily oscillate just because of bad PCB layout.

I’ve also got a bit experience with routing a power amplifier (LM3886) and it started to oscillate quite easily. It also needs big decoupling capacitors, (I think 330uF or so) I have not looked very closely at the datasheet of the LM675 but you probably need to add bigger buffer and decoupling capacitors. Currently you only have 100nF decoupling capacitors, and those are good, but you also need bigger buffer capacitors. At least one for every power supply voltage.

Hello,
The goal is to produce a pcb quicly…
So I will just correct some minor mistakes and go to JLCPCB.
I know the board is not perfect.
For the usage, the power output will not be used, the power stage is extern.
So I add a power stage just in case I need this pcb for another use. If needed I will add necessary capacitors.
The esp32 will be with external antenna, so it’s not critical to remove all connections near the esp32 antenna.
I will thank you another time to spend time to teach me, I will probably have to design more pcb.
I understand that placing components in the correct way is the necessary job !

Best regards

Before you can design a PCB quickly, you first have to learn how to design it properly.
Designing a PCB properly is not much more work. Learning KiCad itself is also a big part of the equation. You can design a simple PCB like this quite quickly in KiCad, but you have to learn it first. I think I showed you plenty of ways that help being more productive with KiCad.

This does not make much sense to me. Either you add it (just in case), but then add all parts, or you don’t add it at all.
Another option is to add a (smallish) experimentation area. Just add a bunch of 0.1" headers so you have holes and pads on the PCB for later modifications.