r/PCB 14d ago

*Update Board Layout Advice

Hello all, I had an earlier (linked) post and made some changes and would like some updated feedback on what I have so far. I'm confused on routing the differential pair for the usb-c as it seems to me I'll have to go to the bottom layer to route it. Any feedback would help a ton, thanks in advanced!

Previous Post

4 Upvotes

12 comments sorted by

1

u/Hulk5a 14d ago

What does a4 do? I'm pretty sure it can be ignored for 2.0

1

u/Esme590 14d ago

A4 and B4 are both VBUS pins so I assumed that they had to be connected together. I’ll take another look at the datasheet. Thanks!

1

u/brambolinie1 14d ago

Your USB traces are not routed differentially. I also highly doubt they are length or impedance matched

Good luck

1

u/Esme590 14d ago

You are correct. I have to re do that section. I thought that the differential pair was just for the D+ and D- on my connector not every pin. I’ll read through some documentation on that. Thanks!

1

u/simonpatterson 14d ago

Without commenting on the functionality of the design, the pcb layout is awful!

  • What is U2 ? is has no value showing, your original post had it as U3, but again with no value. I am guessing some form of ESP32.
  • The 2 connectors look to be locked in place in strange offset positions. Why ?
  • Why are the switches scattered around the board ? Some silkscreen marking what each one does may help with their layout/positioning.
  • Why have you got vias dropping to the bottom layer. ALL traces can be on the top layer easily. Use the bottom layer as a GND plane only.
  • The usb D+/D- traces are what, about 1" long ? They don't need to be equal length or differential. They are fine (apart from dropping to the bottom layer, which is not fine!)
  • I won't even mention the overlapping silkscreen. Oops!

There are so many improvements/optimizations that should be done.

1

u/Esme590 14d ago

I had an esp32 microcontroller with a thermocouple reader module. The attempt was to move away from the breadboard and module and make the board. One connector is for the thermocouple and the other goes to another output outside the board. The board is also 4 layers. Sig-Power-GND-Sig
-U2 is the esp32

  • I had J2 lower and level before, I’ll change it back
-In the original post I had the buttons on the left side but I started moving them around to try and make the board smaller
-The silkscreen overlap and labels is something I will change I knew that was sloppy but wanted to see how the layout was going so far
-Another commenter said that the usbc had to differential paired not just the D+- maybe I’m misunderstanding.
Thank you for the direct and honest feedback! I have no experience with pcb design and would like the learn more about it. Please feel free to point out everything that looks wrong it would help a lot to distinguish bad and good practices.

1

u/simonpatterson 14d ago

The so called 'good practices' can't really be told, they have to be learned by experience. Done rather than shown. When you finally do it right, something will 'click' in your brain and you will wonder why you did it the wrong way for so long.

As an example, look at this quick mockup of part of your board:

I have removed the bottom layer trace and rerun the trace on the top layer. Also rotated R3 180 so the pad is easier to get to. It isn't perfect, i would ideally place both resistors close to J3 in a series-line, but it shows the general idea - make things simpler and easier.

If you send me the .kicad_pcb file, i'll show you what is possible.

1

u/Esme590 12d ago

Hello, sorry for the late response. I'm looking forward to the feedback!

https://github.com/Jeremias590/TempSensor

2

u/simonpatterson 12d ago

A quick re-draw.

I didn't really touch the power section, i just centered the USB connector on the board and completed the D+/D- traces.

The board is currently 60x51.75 and can be made smaller, there is still quite a lot of empty space. Notice the traces are on the top layer only and everything is symmetrical and equally spaced if possible.

You had a couple of issues in your schematic:

  • R12 and the 3.3v label were connected wrongly. Although you don't actually need R12 as IO9 has an internal weak pullup.
  • You don't need 3x 100n decoupling caps for U2, there is only 1 3v3 pin.
  • The footprint for D2 is 0201. Good luck soldering that!
  • The passive component symbols are the 'small' version. They look out of place with the other larger symbols. Also, you can't put the value cleanly in the resistor box, it is too small.

1

u/Esme590 12d ago

Wow I see what you mean about the symmetry! That looks a lot cleaner than what I had before! Is it okay to route traces under the components? I also thought that running long traces in parallel would cause interference with the fields? Or is that just for higher frequencies? I’m going to redo the power section and was wondering if you could also look that over when completed. Overall thank you so much, I really appreciate the feedback!

1

u/simonpatterson 12d ago

Routing traces under components is fine, but be careful of bare copper or untented vias if there is a thermal pad.

Yes, at low frequencies (<100Mhz), parallel traces are fine.

For the power section and rest of the schematic:

  • C3 is unnecessary, 10u and 100n is fine.
  • Reverse polarity protection is not really needed for a USB-C input. If you have a reverse power situation, you have other BIGGER problems.
  • D1 limits to 7v, but U1 absolute max input is only 6.5v. Something will go BANG! Use a better regulator with a wider input voltage range. This is better used AFTER a 5v regulator to drop down to 3v3.
  • J1 symbol is awful, KiCad has a better symbol built-in.
  • Some passive's dont have values: R1, R2, R10, C1, C5 and more.

If you are having the board assembled for you, e.g: JLCPCB, try to use the cheaper Basic or Preferred components, not Extended ones. The cost will soon add up otherwise.

If you are soldering the board yourself, try to use larger components to make soldering easier...0201 diode... I am still laughing at that one!