I’m using 9, so that may be the cause. I ended up switching the pins around to get rid of the island on the second print screen. I’m pretty happy with what I’ve ended up with.
Is it advisable to not use 9 yet?
I’m using 9, so that may be the cause. I ended up switching the pins around to get rid of the island on the second print screen. I’m pretty happy with what I’ve ended up with.
Is it advisable to not use 9 yet?
Your footprint is all wrong. It makes perfect sense for modules such as this to have THT holes, because this is needed to create the cancellations on the perimeter of the PCB. But for soldering such a module onto a project, normally SMT pads are used. This is also much easier for you, as it keeps the whole backside (blue) side of the PCB empty.
GND planes are important in PCB design. flooding all unused areas with GND is not a good design practice, and it does not give the expected result. With some bad luck, areas of a GND plane that are only weakly coupled to the rest of the PCB can start to act as antennas, both for radiating and picking up noise.
For good design practice. Keep the whole bottom side of the PCB reserved for the GND plane (but do keep track of cutouts needed for antenna’s and such) and then put all tracks (Except GND, but including power) on the front side of the PCB. Any cutout in the GND plane should be as small as possible. Don’t put ANY long tracks though the GND plane, do not place rows of via’s in the GND pane, but spread the via’s around so the GND plane connects in between the via’s. Connect all SMT GND pads with via’s directly to the GND zone on the backside. If you want to know more theory behind this simple and practical rule, then I highly recommend to watch the “how to design a proper GND plane” video from Rick Hartley. It is 2 hours and 19 minutes long, but it’s worth watching. It’s an excellent reference on GND plane design, and it’s length is an ode to the importance of proper GND plane desing. It’s not a waste of time. (Rick Hartley is also a pleasant speaker to listen to. I guess he can make almost any subject appear to be interesting.
Edit / addition
You may want to revisit that statement after reading my post. You were less then a minute quicker then me in your last post.
Choice is yours. Reading KiCad forum you can see if people write about problems still existing in new version. Based on it you can decide how risky it is to move to new version. I don’t remember if first V8 version I have installed was 8.0.3 or 8.0.4. Fortunately now I’m not designing PCB for some time so don’t have to make decision.
I’d say “don’t scare off the newbies” but since I’m the newbie in question, I won’t.
I will take your advise and I will redesign the board according to your advise and what I learn from the video but I will not revisit my statement because I’m still happy what I’ve ended up with! It’s a lot better than what I had. Every step in the right direction is a good one !
depends on your ‘risk propension’.
I have even designed ‘production’ boards using nightlies some people around here is still on 7.x, sometimes somone drops in from 5.x.
Personally i could not use something prior to 8.x due to the lack of DBLibs, but you do you.
My example you can see here:
My strategy is to go with VCC under uC and then distribute from there through corners and VCC pads. That way VCC connections don’t block other signal connections. I am also using 0R from time to time.
Any advise for working with SMD components on both sides of the board? The second board I’m designing has that, although I realize now I can change that. I will. I’m just curious. Do you just accept that you’ll have holes in the ground plane, or does it force you to go to a board with inner layers?
that is inevitable even if you go with blind vias, and unless the plane becomes completely disconnected, is still better than no plane.
If you mount by hand smt both side is not a problem, (unles we are talking about 0201 and fine pitch bga) if you have good eyesight and steady hands.
It was not my intention to scare you away. I just wanted to give some advise about a direction towards a path you can use to improve your knowledge / design. It’s up to you what you do with it.
Single sided SMT placement is common. Especially when size constraints are not severe. When PCB’s become more dense, routing becomes exponentially more difficult, until at some point there is simply no physical room for routing the tracks, and you’re forced to go to multi layer. Single sided SMT placement is also easier to manufacture, so a slightly larger PCB can result in cheaper production.
Overall, having a bunch of SMT parts on the bottom is not such a problem for integrity of the GND plane. Especially if you keep them of 0603 size or smaller, and space them apart. It is however becoming more common to switch to a 4 layer PCB, because the increase of cost is offset by the time saved by the designer. Routing a project on 4 layers is a lot easier for the designer.
Even for DIY it makes assembly more difficult. For very simple projects, you can hand paste the pads with a syringe (there are projects for electric powered syringes that put out just enough paste for a single pad when you press a button or foot switch). But pasting with a cencil is much quicker. Single sided with a soldering stencil is easy, by taping some left over PCB pieces to a flat surface such as a table, and also taping the stencil into position. If you have parts on both sides, then you’d need a “stencil printer” which is mostly a mechanical device that can hold the PCB into place while the bottom of the PCB is not touched.
With parts on one side, you can solder a PCB on a hot plate, which is the easiest way to do the whole PCB in one go. With parts on both sides you need another soldering method. a modified toaster oven is popular, but just a heat gun is possible as well. A PCB with wet paste and SMT parts on both sides is also delicate to handle, and likely to result in more rework.
If you look here in your layout …
… it gets obvious that you can route between two pins. The same is true for a filled zone.
You have to reduce clearance for the front zone. I mostly use 0.2 mm, ask your PCB-manufacturer.
I gathered as much. You were just a bit blunt and direct, but all advise is greatly appreciated. I’m 30 minutes into the video and it helps a lot. I’m working with I2S so if I’m not mistaken, the signal is already into the MHz range so the things Rick’s saying about how the fields form absolutely apply. Thank you for your help.
I mean mounting by hand, no stencils, paste, reflow oven or hotplate. The number and complexity of the boards shown is well below the hassle to manage all that.
Just tweezers, a good iron, flux and solder braid.
Never used a stencil in my life for simple prototypes (but usually i do much less, 2 or 3 max, even much more complex than the one shown).
I’m hand soldering this. It’s a second revision of my first PCB design. Until now I’ve only done prototype boards. I’ve done quite a few of those, but they were all low frequency. This board has I2S. The first revision works but I get noise in the I2S microphone signal if I ramp up the WiFi signal too high. The second revision has a dedicated LDO close to the mic. That should help a lot.
I’m using 0805 SMD components where I can. Soldering those by hand were fine. I’m worried about the LDO though for the new board. It’s a TLV70033_SOT23-5 and it looks really small. I don’t have it yet but I’ll see how that goes soldering it by hand. I wasn’t planning on using soldering masks or hot guns or whatnot.
SOT23-5 is no problem hand soldering without stencil. Even at my age.
0804 is clumsy.
Good flux, good tweezers, better light.
Any advise for working with SMD components on both sides
Increases assembly cost so I’m not using it.
Do you just accept that you’ll have holes in the ground plane,
I don’t accept.
or does it force you to go to a board with inner layers?
QFN uC packages with thermal pad at their bottom forces me to 4 layers as I can’t go with VCC under them and connect from there to all its VCC pads and going with VCC track 3/4 around footprint perfectly bothers other connections.
the signal is already into the MHz range
If so you will be interested in links I have posted here long ago:
I didn’t read that book but I suppose you can replace it with: I think it is enough for most pcb designers.
About 2004 I found an interesting serie of EMC articles by Keith Armstrong (for many years I didn’t know if Keith is a woman or men name). Later they became no accessible, but when I tried to find them few years ago I found them once more: http://www.compliance-club.com/pdf/DesignTechniquesPart1.pdf http://www.compliance-club.com/pdf/DesignTechniquesPart2.pdf http://www.compliance-club.com/pdf/DesignTechniquesPart3.pdf http://www.compliance-club.com/pdf/DesignTechniquesPart4.pdf http://www…
I’m using 0805 SMD components where I can.
In 90s we have done 3 steps. First from THT to 1206, second from 1206 to 0805 and third from 0805 to 0603. So since 25+ years our standard is 0603 (and SOT323 for transistors and dual diodes) I see no problem with hand soldering them.
From time to time I use 0402. Mainly 100nF blocking capacitors. If you have no other choice it is possible to hand solder 0402 but I have done it only few times.
At PCB I shown previously there are 6 0402 100nF around main uC (just follow VCC track and you will find them. The row of resistors to the left are also 0402.
SOT323 is no problem. SOT23-5 is no problem.
SOT353 is more problematic.
For prototypes and one-offs soldering without a stencil, then it does not matter much for the soldering whether you have footprints on both sides.
If you also have at least one THT part (maybe just a connector) then the bottom is not flat anyway. One thing I have considered it to add a footprint for a relatively thick SMT diode in each corner of the PCB. Diodes are cheaper then mechanical feet and they also get the job done. You can use such diodes in your circuit, or just don’t bother at all and just have unconnected footprints. For mechanical stability it’s better to put a few vias though any pad that is used for mechanical strength. Especially for SMT connectors. SMT pads without vias are quite easily ripped of a board without such via’s.
EMC concerns and signal integrity is another reason to go to 4 layers. With a 4 layer PCB, you usually have a core of around 1.2mm thick, and the prepreg between the inner layers is around 100um thick. Much thinner then the PCB core, and this improves signal integrity.
The video was very helpful in understanding why the board needs to be redesigned. This is what I ended up with:
I’ve changed the pads for the ESP32 and amplifier board to SMD pads. Continuous ground plane at the bottom, ground pour at the top. Power is routed at the top and there are no signal lines at the bottom. I’ve added a bunch of vias to connect the ground pours at the top to the bottom ground plane. I’ve also moved the GND line in the connector to be close to the I2S signal lines. I’ve updated the board settings with the help of this thread: Board setup - design rules for Pcbway and other questions. I’m unsure how many vias to place. I placed them close to ground pads and in islands.
I think I got everything. Feedback is greatly appreciated.
The other board I’m working on:
(it’s upside down; don’t ask)
It connects to the first board. I know I also have a problem with the cable I’m using to connect the boards. I’ve put the GND cable close to the high frequency I2S signal cables, but the cables really should be shielded. I’m still trying to figure out how to solve that.
Can you suggest good flux and good tweezers? A shot would be nice already .
That PCB looks a lot better. I still have some doubt about the smallish cutout around the antenna. My guess is this is the absolute minimum, but I guess your gadget has a longer range when there GND plane is further away from the antenna.
For the amount of via’s, they look adequate, but I would either remove thin copper slivers that are only connected on one end, or add a via at the other end to. For example near U1 pad 3.
Off-board wires / cables always need extra attention if you want to do it properly. For DIY emc conserns are not such an issue, but for a proper design it’s common to add filters, series resistors or ferrite beads. I still remember long rows of Pi filters near the connector of a parallel port printer I took apart for parts. And that was back in the '80-ies. With modern microcontrollers, you often have some way to set the drive strength or slewrate of output pins, and this is also a factor that helps.
And about your version number… Why already V2? Normally V1 is the first viable product ready for production, so this being V0.2 would be more logical. I have completely given up on version numbers, they don’t mean much to me. Instead I simply use the date (Indeed in ISO_8601 format as a version number, and also as an sort of UUID for my projects. I put on the date that I send Gerbers to the fab as a “version number”, but never two projects with the same date, so a project may have yesterday’s or last weeks date.
I’ve put some signal wires closer together to limit the number of small copper pour slivers. There was one lef between pin 1 and 2 of U1. I put a zone rule there. Is that the way to do this? I tried increasing the minimum width of the zone, but that prevented the area in U2 to be filled.
I have 33 Ω series resisters at the source side of the signal lines already. R1 and R2 on this board, and one on the sending end on the other board. You’re thinking it’s good to also add ferrite beads? Do you have suggested reading/watching material for this?
I based the cutout for the WiFi solely on the cutout on the ESP32 board. I’m gathering I shouldn’t have. Any advise on how big I make it? I’m limiting the cutout to stay within the area of the pads, but that maybe isn’t necessary? Would it be advisable to add a larger exclusion zone with just “Keep out zone fills” checked?
I’m worried about EMI in as far as that I’d like this device not to cause havoc in my home. I’m building quite a few of these.
The version number is anything but serious . The first PCB had no text on it at all. My ESP32 app uses the Git hash as a version number. That’s by far the best option I think. I’m not too worried about it in this design.