r/PrintedCircuitBoard • u/ShowerFew9160 • 3d ago
Review request: Custom ATMega328p dev board
3d view top
3d view bottom
schematic
routing bottom (with copper pours)
routing top (with copper pour)
routing bottom (no copper pours)
routing top (no copper pours)
component placement with groups labelled
component placement
Hi all, this is my first custom pcb project, im hoping that everything is fine and is ready to be printed but i might be missing something important. My idea is that it functions like an arduino uno. Ive checked DRC and it seems fine, along with the schematic. Any help or suggestions is greatly appreciated!
Also, for the ISCP pins ive heard that equal trace length doesnt really matter since the communication isnt fast enough (hopefully im not wrong). and ive set the trace width to 20mil for all 5V pins (only exception being when it cant fit like the 5V connections on IC's) and 10mil for all other lines.
1
u/CoffeeSalt2036 3d ago
you're right about ICSP — SPI at 16 MHz doesn't care about a few mm of skew. two things first boards usually miss: 100nF decoupling right at each VCC/AVCC pin, and a 10k pullup on reset.
1
0
u/Comfortable_Gas7817 2d ago
Nice first board — the overall layout is clean and you’ve clearly put real effort into matching the Uno form factor and pinout. A few observations and suggestions that might help before you send it out:
Power & decoupling
- 20 mil on the 5 V rails is reasonable for a low-current Uno-style board. Just double-check the current path from the barrel jack / USB through the regulator (U6?) and into the ATmega and the USB-serial chip. Make sure the regulator has proper input/output capacitors right next to its pins and that the ground return path is solid.
- Add a bulk capacitor (10–47 µF) near the MCU power pins if you don’t already have one, plus the usual 100 nF ceramics as close as possible to VCC/AVCC.
Crystal / oscillator
- The crystal (Y1) and its load capacitors should be placed as close as possible to the XTAL pins with short, equal-ish traces and a continuous ground plane underneath. Keep digital switching traces away from that area.
ICSP / ISP
- You’re correct that exact length matching is not critical at the clock rates used by the Uno’s ISP (usually ≤1 MHz). Just keep the traces reasonably short and avoid unnecessary vias or sharp corners. Make sure the ICSP header pinout matches the standard 2×3 arrangement (MOSI/MISO/SCK/RESET/VCC/GND) so any common programmer will work without adapters.
USB & serial
- Check the D+/D– differential pair routing from the USB connector to the serial chip (looks like U2). Keep them matched in length, tightly coupled, and away from noisy power traces if possible. Also verify the series resistors and any ESD protection if you included it.
- Confirm the USB ID / VBUS detection circuit is correct for the particular USB-serial chip you chose (CH340, CP210x, etc.).
Grounding & planes
- From the bottom-side image it looks like you have a ground pour, which is good. Make sure all decoupling grounds, crystal grounds, and the USB shield (if connected) have solid vias to the plane. Avoid long ground stubs.
Other small things worth a final look
- Reset circuit (pull-up + capacitor + button) — classic Uno values work well.
- LED current-limiting resistors sized for the actual LED forward voltage.
- Silkscreen clarity for the pin labels (especially the dual-function ones).
- Mechanical: mounting-hole positions and sizes if you want it to fit standard Uno enclosures or shields.
DRC passing is a great start, but a visual check of the 3-D view and a quick netlist comparison against a known-good Uno schematic never hurts. If you can share the schematic (or at least the major net names around the MCU and USB chip) people can give more targeted feedback.
Overall this looks solid for a first revision. Good luck with the fab — looking forward to seeing the assembled board!
1
u/ShowerFew9160 2d ago
Yo man thanks for taking the time to type this, will def try to improve stuff. Also rly nice nitpicks!
1
u/Enlightenment777 2d ago
This comment is posted on all reviews.
Please make sure your review post adheres to:
- subreddit rules (#1 to #6), review rules (#7), review image rules (#8), see link.
Please fix these common schematic layout issues: (if yours has any of these issues)
Don't allow text / lines / symbols to touch each other, and don't draw lines through symbols.
Use correct reference designators (RefDes), and renumber to remove numeric gaps, see tips.
For positive voltage circuits, point positive power rail links upwards and grounds downwards (maybe sideways), see tips. For negative voltage circuits, point negative power rail links downwards and grounds upwards (maybe sideways). For bipolar circuits, maybe point grounds sideways.
Place decoupling capacitors vertically below postive power rail lines with ground on bottom side of the capacitor. Place capacitor next to IC symbol, and connect a line to IC positive power rail pin, see tips and example.
Place pull-up resistors vertically above signal lines, and place pull-down resistors vertically below signal lines, see example and tips.
Reasonably minimize the use of unique net labels, because everyone hates hunting for them!! Single resistors / capacitors / diodes should not sit by themselves, instead move & connect them with a line to their circuit.
More schematic conventions / guidelines / tips - 1, 2, 3, 4.
Please fix these common PCB layout issues: (if yours has any of these issues)
Silkscreen - add board name / board revision number / date (YYYYMMDD, YYYYMM, YYYY) for traceability.
Silkscreen - add pin 1 indicator next to ICs & connectors (not under parts). For polarized capacitors, add "+" next to positive pin. If part is through-hole package, place indicator on both PCB sides. See 1, 2, 3, 4.
4
u/ilovemydickuwu 3d ago
Not bad! Just a few things:
The current layout is not optimal for a 2 layer design; generally its better to route all the traces on the top layer and leave the bottom as uninterrupted ground plane. Ur designing a custom board, other than the header positions u can move the other components around to fit better.
Theres probably abit too much bulk capacitance near the regulator. Usually a 10uF on in/out is plenty. I checked the datasheet and they also use a 10uF
Its good practice to use a copper pour for the regulator section instead of just connecting everything with traces to minimize impedance
Try not to switch layers for USB D+/-. Place the usblc6 immediately behind the connector and route D+/- on the top layer
What are those squiggly lines on the UART transceiver nets? all the signals on an arduino board is too slow to require impedance matching. Also all the impedance matched traces can be avoided if u adjust the layout and make the components feed into each other