First prototype PCB. Any tips or pointers? (arduino giga hat)

This I did watch for! From ordering some parts previously I noticed the pitch. When I wasn’t able to align things the way I wanted I adjusted the grid size from 2.54 to 1.27 but made sure all the headers are 2.54.

edit: now I also see the selector on the left, aside from the grid setting in top top bar. Corrected it, thanks!

One real tip really
On youtube look for John’s Basement Kicad tutorial. It is quite elaborate. To save you some time you should put the the video speed at 1.25x or 1.5x. You’ll understand why. Good videos

I also have an opinion about something. In about 3~4 years I put 97 orders @ jlcpcb. If you continu with making electronics on a regular basis. I would go for SMD components and skip THT entirely (with exception of connectors like your current PCB). A 1206 resistor or a SOIC is really easy to solder and will cost less time. And later on you can let the pcb vendors solder it for you :wink: I started out with THT and now I have a bucket load of things I don’t use.

Kind regards :coffee:


No need to make space. Finish your wires at the end of the pin instead of in the middle of the symbol.

You are using unconnected wires attached to unused pins. Not highlight, replace the unconnected wires with graphic lines. Same thickness, different color, and ERC will not complain.

Updated the schematic and pcb again:

To be honest I just picked THT because I was looking for a footprint (a completely new concept at this point) and selected the first I recognized. I’ll have a look at 1206 and SOIC to learn what they are. Great tip!

This was already like this in the Arduino template I opened. I’ve removed all the lines. Graphic lines won’t snap to the text anchors so I’ll leave them out for now.

But as I am now a basic user I can attach the project :tada:
APC (3.4 MB)

Small note: I created the project in KiCad 7 and put it in the cloud. Now I’m at work where I installed KiCad 8 and imported it. I noticed the edited footprints did not come with the project. When I am back home can I transfer the custom footprints to the project folder?

Ah I have now learned that a double click termintes the line where ever I want it to. Replacing all the lines now :slight_smile:

edit: the ERC complains about all of them :frowning: I’ve put back in the wire connections but because the graphic lines are still there you don’t see them.

When connecting microcontroller to bus I place wires from each pin to bus then deciding what is connected where I just manipulate with labels. Unused pins are left with unconnected wires and I don’t remember ERC complaining on it. Ops… got an idea that I may be permanently switched off some warnings.

Down to 0603 you can relatively easy hand solder having soldering iron with sharp tip.

If it were my schematic the I2C connectors would look something like that:
And only one line (bus) is going to the rest of schematic making it easier to read. I use buses as only graphic elements (without labels on them). Labels on wires do the job of connecting them with each other.
The same idea probably in few other places of schematic.

Now that I’ve had some time to watch the first 5 I’ve gained some basic understanding and would do a lot of things differently (and a lot more efficient at that). The 1.5 speed was a valuable comment :joy:

I see. It’s a handy way to simplify a schematic! However at this point I feel it’s not overly complicated yet and as I’m still starting out so it’s usefull to have the full view of everything I’m doing. Somehow seeing all the wires makes more sense in my head.

While continuing to work towards the end result I’ve added all small bit of board that’s only going to hold 3 sensors (plug in) and a socket for a cable connector.
I want to attach this bit to the main board so it’s produced as one part but will be easy for me to seperate the 2 parts once I receive them. I think I’ve seen somewhere you can add a perforated line to seperate them. Can I just do this by connecting the parts and drawing a dotted line on the edge or courtyrad layer?

Current state screenshot:

The project in it’s current state is now attached to post #1

Overall looks very good but a few pointers which will make things easier to read especially when your circuits get more complicated.

You don’t need to join all the GND and +5V symbols together. For example EEPROM_Socket1, pin 4 - you can just place a GND symbol right at the connector instead of running a wire to common GND.

Same with all your decoupling caps. You could even move them completely out of the way in order to make the schematic easier to read.


Knitpicking here but useful to get this right from the start.

Positive voltage symbols generally point upwards and negative down so try to stick to this space permitting.

If i had to glance quickly at that I would think it’s -5V

On the PCB, not sure what current you are pushing through the tracks but you can make the GND/5V traces slightly thicker than the signal traces.

Look at setting up power net classes before you start layout out the tracks. (I only found out about this after 6 months after using KiCad :slight_smile:

PCB Editor/File/Board Setup/Net Classes.

Create a new net class for Power with thicker tracks and then in assignments assign GND and +5V to that class. Then when you layout the tracks the power traces will be thicker than the signal tracks.

You should know what your manufacturer offers. I suppose that if such perforated line is only for you than no one cares, but if you want them to make scoring (not sure - I used dictionary - to make PCB thinner along that line) than you have to agree it with them.
When I ordered a set of 20+ small PCBs different sizes I placed them in 2mm distance (typical milling cutter used by my PCB manufacturer) and made it as a single PCB with 2mm gap with few small bridges over it and with so called mouse-bites. Here I found an example of it:

Other subjects:

  • most PCBs gain if you use GND zone,
  • VCC tracks width should be thought out.

For VCC connections I use many track width at the same PCB. For long connections I like to use 2mm track. For shorter and in crowded area it is not necessary so I use 1.3 or 1 or 0.7mm. To connect to small SMD pad I use even thinner (0.5mm) last track segments. For pull-up resistors (1mA current) I use 0.25mm VCC tracks to be able to go under 0603 resistors (imagine a 8 input set when each line have to be pulled up and go forward with the other resistor and you want to do it all using only top layer (bottom of my PCBs are continuous GND zone).

Good to know!

Does that also mean leaving them unconnected to the pinsockets in the schematic?

Coincidentally I was already doing that :smiley: After my post and upload I was staring at it for a while and remembered watching the tutorial from John’s basement where he spoke up about the thickness. I’ve increased the main voltage paths, where pathing allows it. I didn’t know how to set up the netclass so I hit Q for every path I drew :sweat_smile:

Before I try and get this produced I will re-draw it from scratch (except the adjusted base footprint) with all the thing’s I’ve learned here!

Current state:

Maybe I overdid it a little on the top track. Also I connected these with 90 degree angles. Somehow I feel this is “wrong” because I;ve never seen it on PCB’s as far as I can remember, but I don’t know why it’s “wrong”… just convention?

That’s what I was looking for, mouse-bites! Going to try and put them in the design.

So if there is space, make it as thick as possible, up to 2mm? (for main power) The board length is about 12 cm, that’s not very long, is it?

And what about “zone filling” with ground? Can I do it without or is it general good practice?

It is my rule for VCC with currents up to say 200mA (for 300mA I used wider track). Have in mind that if you are after regulator any voltage drop is left not corrected, but if you are before regulator any voltage drop will be corrected by regulator. 12cm is not very long.

You have already got my unswer:

The best is if GND zone can be continuous over all PCB (no tracks making its shape with islands or peninsulas). Here is my example of such design:

For the 5V and GND pins you could do something like this for example

In addition to the other suggestions:

  1. Before sending off the files to the PCB house, print a 1:1 and physically hold it over the Giga. Look for areas that don’t match or might interfere etc.

  2. Make a feature to allow easy connection of a test instrument to ground. An extra hole or ground plane with no solder mask etc.


1 Like

Great advice. Especially with connectors , relays, transformers etc Things that can be easily reversed in the process of transferring to a schematic. Most often I’ve found mistakes where the documentation isn’t clear if you are looking a the top or bottom view.

Back again with the latest. As I said I’ve started from scratch and hopefully did a better job this time. I could apply some of the things I learned from the start and hopefully that makes everything more tidy. The new version of KiCad also had a new symbol for the giga hat schematic wich simplified everything a little.

I managed to save my custom footprints, although fiddling with it prompts a popup about missing/removed .pretty files. Those footprints are no longer used in the project so I hoped that popup would vanish as well but no such luck.

The ERC gives some warnings about intersecting lines and thermal relief but I don’t think they are actual problems.

I’ve added in the front and back GND plane, added via’s to connect them and moved some connectors to sit closer to the pins they connect to. Also added some new things and tried to optimize what I could. Got the mousebites in and drew a line on there on plane user4 that is supposed to be a V-grove for easy seperation. I’ll email jlpcb (seems the easyest option for now, and I’m in the EU) about how I would make it clear it’s supposed to be a V-grove. At least in the 3D render it looks exactly like I wanted it (after struggling a lot with the courtyard lines).

One final question about the ground of the barrel jack connector: should it go to the common ground or as a seperate line to the designated ground next to the Vin?

Also downsized the file by leaving out the backup folder: (648.7 KB)

1 Like

Don’t mix ERC with DRC.

In my opinion it depends if Power section in the biggest rectangle at schematic is linear (than ‘don’t care’) or DCDC (ten keep the current pulses out of common ground).

At schematic:
If I see for A10 and A11 R1 ind R2 going up I understand them as pull-ups what is not true in your case.
5V1, 5V3, 5V4 all are connected together by +5V power symbols. So why not connect them all together and delete the wire going form 5V1 to +5V.
Placing additional +5V symbol near them you can also avoid +5V wire going toward J11.
The same with GND wire from GND1…GND6 to R2 (then R1, and R2 could have GND not over them but under them).

As you have signal lines at top and bottom then if you expect fast signals there I would consider adding two internal layers and making them continuous GND.
I have never ordered anything at JLC - I don’t know what is the price difference between 2 and 4 layers.

I think I understand what you mean, I’ve made these changes:

I’m not sure what fast signals are. There will be 4 I2C sensors and 2 DHT22 sensors on the digital pins. I suppose they don’t need extra layers of GND?

@paulvdh & @JohnRob absolutetly printing it on paper first, thanks!

edit: also spotted and corrected a mistake at the RJ25 connectors, connecting both SDA and SCL to +5V after movinging them around.

I just don’t remember what was said 22 days ago and seen EEPROM text at PCB so assumed that may be it is EEPROM with fast interface (say 10MHz).
Now I found that it is also I2C.
So probably you don’t have very fast signals at your PCB.
It was intentionally conditional sentence - it is you who knows how fast your signals are.
Unfortunately fast is most about rise/fall time and not frequency.

In 90s we designed some education PCB with serial EEPROM connected to it by 10 cm flat cable. Everything worked. 10 years later we assembled a next serie of these devices and we had a problem with EEPROM (exactly the same type as previously). It was simply manufactured with smaller (cheaper), faster process and its output had shorter rise/fall time. When EEPROM switched its output one of slopes was fast enough to make very short pulse at clock line (in that 10cm cable) and EEPROM was enough fast to react for such very short pulse receiving extra pulse at clock.

Generally every digital signal line like to have return path just under it and continuous GND gives it.
But with I2C you will probably have no problems.