First board, would like a review

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?

1 Like

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).

For me the lower example is better as it at once makes a break in bottom GND shorter.
If you go with these tracks under R1,R2,R3 then a break in GND will be even shorter.

You can be right for multi-layer boards, but at two layer 1.6mm board top GND can give return path in 0.2mm distance from track and not in 1.6mm distance making signal loop area few times smaller.
Also:

  • capacitance to GND works like filtering,
  • GND area between tracks blocks coupling between them.

In some rare cases additional capacitance is undesirable. For example at operational amplifier output can lead to instability. You should identify such cases when filling GND at top.
Sometimes I left between traces enough space to be filled by top layer GND and I find place to via its ends to bottom GND (extra track connecting two GND vias). You can find 2 such constructions in PCB I linked in post 10 in this thread (first vias North-West of microcontroller and first vias South of it).

Thanks paulvdh. I guess it wasn’t completely clear with all the changes. So is the problem the length of the power traces on the ground plane, and I should just duck them under only where needed? Or is the problem even running the power leads on the ground plane, and I should keep them on top and duck the signal traces?

I’m not going to repeat it again.

You are not running power on the ground plane. You break ground plane to run power tracks.

We are just trying to teach you the best practices. Even if it is not too important in case of this PCB.
The problem is having a break in the ground plane. The best would be to have whole bottom layer as GND fill and no other tracks there. I think it should be possible to reach that goal in that PCB case.
If it is not possible than breaks in GND should be as short as possible. I, personally, prefer to use 0R instead breaking GND but this can be considered an exaggeration.