First board, would like a review

I watched Shawn Hymel’s series on KiCad for DigiKey, and banged out my first board design. Intended to be a pi-hat for a project I’ve been working on for a while with perf boards. Decided to take the plunge into PCB design.

Please let me know if there’s any issues I need to fix!

Thanks,
Chris

I think it looks pretty good.
You should tie the front (Red) plane to ground, and put some stitching vias in between the front and back planes to get rid of islands of copper.
But, otherwise, not bad.

First thing you should fix is your GND plane.

  • Those two long blue tracks through the GND plane should not be there. Maybe you can relocate J5? Or else put those tracks on the top with only very short “dogbones” to jump over crossing tracks.
  • Your PI_GPIO connector has a lot of GND pins (and there are good reasons for that) but pins 6, 14, 20, 30, 34 are only connected with a thin sliver to the rest of the GND zone. I normally modify the big IDC / header connector footprints to use slightly narrower and oval pads. Narrower pads so the GND zone can fit in between the ins, and oval to make it easier to hand solder.
  • The GND pin, pin 2 of the AMS1115 module is also barely connected to the GND plane (because of those long blue tracks cutting though it).

The pads for your RGB led D1 are very close together. How does that work with their clearance? I see you choose a footprint for the TO92 temperature sensor with pads a bit wider apart. This also makes it easier to hand solder. Those RGB LED’s are a bit finicky to solder.

Is that copper zone on the Front connected to anything? Having such big unconnected copper area’s is not good. even just removing it is better then leaving it this way.

If you really want to do it properly, then you should add some kind of filtering to all cables that go off the PCB (such as ferrite beads), but that’s a bit over the top for a first hobby design. I would consider adding a PPTC to the power output on the connectors though. They’re quite cheap and easy and improve reliability.

Thanks for the quick feedback!

After considering your comments, I did some rearranging and realized I could put everything on the front except for a couple of dogbones? New term to me. I’m guessing design-wise it’s preferable to use the back only when jumps are needed?

Question on pad holes. Many of the footprints I just imported. I noticed some are 1mm, others are .75mm. Is that just a preference? Does it merely depend on the expected wire size?

Also I realize I could save some space switching the LED circuit to surface mounted resistors. Would that be worth the trouble?

As for ferrite beads and PPTC, the application here is pretty coarse signals. When would I need to consider such protections?

Much thanks!
Chris

1). Hole size is usually matched to what must fit into it. Your 40 pin Pi_GPIO connector very likely has big fat square pins,and those don’t fit in small holes.
2). The dogbones should be kept short. Just cram the left and right side via’s towards each other, as far as they will go. Reason is that high frequency return currents (anything above a few kHz)really like to hug the signal track closely. (Watch some EMC video’s). and the dogbones interrupt the return path for the current. In your case the GND path for pins 3 and 4 of the ADS1115 module are interrupted.
3). You don’t need no dog bones at all. You can easily route the two analog tracks from the temperature sensors along the West and South edges of the PCB towards the ADS1115 module.
4). I prefer using SMT parts myself. No bending of pins, no cutting pins to size, no turning of the PCB for soldering. SMT is just much easier to work with, but it also depends on size. I have several tens of thousands 1206 resistors and capacitors, but nobody uses those anymore because they are too big. 0805 is also easy to work with, but when you start getting to smaller sizes, the quality of your eyesight becomes more important. I’m over 50 now and bought myself a nice stereo microscope for soldering. Well worth the money. I’d say put two resistors in parallel on the schematic and then use one THT and one SMT on the PCB so you can get some practice. You can also add some test circuit on the top of the PCB, for example a two transistor (SOT-23) oscillator with a few passive SMT parts. As long as you have one GND plane intact, the other layer does not matter much.
5). PPTC is mainly useful to keep your Raspi in one piece as a precaution against accidental shorts.
6). The frequency content of a signal is not determined by the number of times per second a signal changes, but by the steepness of the flanks. Your Raspi very likely has very steep flanks with frequency content in the many MHz range.
7). One of the first projects I saw for a raspi was an FM radio transmitter, which was made by just sticking a single wire in an I/O port. The rest was software. raspberry FM transmitter at DuckDuckGo
8). I’d also add some decoupling capacitors. The AMS1115 module probably already has decoupling capacitors on it, but extra’s usually don’t hurt, and you can always opt to keep the pads open.
9). A ferrite bead and “decoupling” or better filter capacitor for the power supply of the temperature sensors helps them for generating a clean signal to be measured by the AMS1115.
10). Weird but true: sometimes you can get better results with noisy signals. Especially when you want to average multiple sensor values. Sometimes noise is even added deliberately for this reason, but doing this correctly is not so easy.

And to make this even easier, move the two sensors down and place the I/O Power above them.

Finally managed to reroute the traces without isolating a GND zone.

Also bumped the JST connectors to 2.54 except for the ext. temp JST to avoid confusion between it and the power JST.

I’m curious about the SMT pads showing red rather than appearing like bare copper. Is that typical?

paulvdh, thanks for all the details. As for the PPTC, you’re suggesting inserting them on the 5V and 3V pins on J5?

Yes, that’s normal. SMD pads are only on one layer, so they are displayed in that layer’s color. (SMD pads on the bottom would be blue).

As already said, add lots of stitching vias so that the front side gnd planes are properly connected to the backside GND plane. For example look at the left side of the board. You’ve created a very weird “antenna” there, that’s only connected to the rest of the GND plane with the thin strip near the bottom left mounting hole. That’s not good design. Add stitching vias at least in all areas where the isn’t already a though-hole connection connecting the top and bottom GND layer nearby.

Your PCB has (at least) three antenna’s on it (which is relatively long pieces of copper only connected on one side)

You could use via stitching, but just having a single good GND plane is good enough and you can just completely remove the copper pour from the top side of the PCB.

About those fuses, I think you know what fuses are for.

What is your intention with J3 and J4? It looks like these connectors have some signals but neither power nor GND.

If I understand well you concentrated yourself at not important parameter. If you have continuous GND at bottom don’t worry about GND fill at top. It can be divided in many isolated pieces - no problem. Each piece you connect with bottom GND with several vias. At ends and borders are enough. If area bigger then I also add some inside.
Here you can see my example:

1 Like

Simply depends on what you want to do. A copper plane adds stability and (minor) protection against ESD (ESD events will likely contact the ground plane instead of signal traces). Two planes with vias in between will also conduct heat better than a single plane.

But in the end, probably doesn’t matter for such a simple design. Copper and vias are usually free, so no problem to add them. It will also work without them. But these antennas are bad, yes.

Piotr, paulvdh, thank you so much. So it sounds like I should just place things and route all the traces that aren’t ground, without worrying about isolated planes on the front, and then connect them to a solid backplane with vias?

And also, I should avoid long power runs?

As for the J elements, paulvdh:
J1 is obviously my Pi GPOI breakout
J2 and J3 are for I/O ribbon cables to peripheral sensors
J4 is for my ADS breakout board
J5 is a separate power ribbon to support J2 and J3

I considered combining power and I/O for J2 and J3, but JST8’s were difficult to manage on perf boards, so I went with JST5’s for I/O and a JST3 for power. I am rethinking that now, however.

Yes, a single good GND plane is the first thing to aim for. Your circuit (especially something as simple as this) will still work without it, but it will perform a lot worse in the EMC department

Nope, the length of the power tracks does not matter much You do want fairly wide tracks to reduce the voltage drop because of track resistance. Placing proper decoupling capacitors at the “end” of such tracks (or better, near IC’s) is important though. but for this board I assume the AMS1115 PCB already has the decoupling capacitors onboard. (You should not assume, but verify).

I believe those JST connectors have a bit of a different pitch, which is troublesome for breadboards, but if you design the PCB yourself, that is not relevant anymore. You can go different roads from there. You can try to make something universal, so it does not matter on which “channel” you put a sensor. Examples are the “UEXT” from Olimex and the “Grove” from SeeedStudio. Or you can go the other way and design your project on purpose in such a way that connectors can not be put in the wrong socked accidentally. (for example by using different pin counts). Having both power and signals on the same connector is an advantage either way. It reduces cabling, and improves signal integrity and reduces EMI.

Also, very likely you can put your SMT resistors under the ADS1115 PCB. Just because there is a breakout board on top of your PCB does not mean you can’t use that area for other footprints.

This is quite enough for a starter projects. Once your PCB’s become more complicated (and have faster signals) demands on the PCB also become a bit more complex. Over time you should educate yourself about signal integrity and EMC and how that translates to PCB design.

If you want to learn more read pdfs I linked here some time ago:

and

Those power tracks were questioned because they cut your GND and not because they were long.

Wow, this has been very educational. I think I may be about ready to submit it.

I did look at the ADS1115 breakout board and it takes care of decoupling. As for J3 and J4, I think I’ll just make sure and decouple on the peripheral end. I’ve got .1uF caps on the TMP36’s. For this small a project would I need a 10uF at the front as well?

I did have another question on basic design. I drew the J3 and J4 power traces like the upper example because I wasn’t sure and I had the room. But is the lower example also acceptable?

This far in this thread I find it incomprehensible that you do this:
image

Which makes me doubt what your interpretation is of:

I’ve been thinking about this for about 5 minutes and the only conclusion I can think of is that you did not understand half of what was written in this thread and I don’t know what else to add. Maybe re-read this thread?

par
Good to see you got rid of the top layer GND fill! Just adds lots of capacitance.
One more remark:
You have almost all signal traces clustered as close together as possible. Unless they are impedance controlled (which they are not), I find this a bad idea:
In parallel traces, signals always couple into the neighbor track. In most cases (including yours), this is not critical: Slew rates are slow, signals are uncritical or tracks are short. But as you asked for advice, here it is.
I learned this the hard way, designed a data acquisition board where a data line from an A/D converter was routed along a digital control line. Sporadically, glitches would occur… mystically depending on the analog input voltage (wtf?!). Cost me lots of nerves and two weeks of debugging.
So my advice is: Unless you are space constrained (or want to explicitly combine differential signals), after completing the board separate the traces so they are more than the minimum track-track distance apart. It does not need much, three track widths is already much better.
Also it reduces the probability of a short due to a dust spec in lithography.
Again, no big deal with this design. But I’d recommend making a habit out of it - just consider it as an additional post processing step before gerber generation.

yup… soo many designs are ruined because of this (I just reviewed a card with about 40 parallel traces with about 5th between them… 3 spare signal layers in the same area as well…)

Simple rule of thumb is the track separation should be 3h where h is the HEIGHT of the trace to its reference plane (in this case how thick is your CORE). If you were to put this as the clearance in the design constraints the tool will help you keep the traces far enough apart

With a 1.6 mm two layer board this would give some 4.5 mm separation…
I guess this rule makes more sense for 6-layer and up, where the prepregs or cores are much thinner.
Anyway one should not do high speed stuff on two layer boards (for pros, EMC tests pretty much ensure that).