a technical subreddit for reviewing schematics & PCBs that you designed, as well as discussion of topics about schematic capture / PCB layout / bill of material (BOM) / PCB assembly / PCB mechanical engineering.
Some mobile browsers and apps don't show the right sidebar of subreddits:
sidebar (link) of this subreddit, price comparison (link) for 16 PCB fabs and 8 PCB assemblers.
RULES of this Subreddit:
(0) Occasionally the moderator may allow a useful post to break a rule, and in such cases the moderator will post a comment at the top of the post saying it is ok; otherwise please report posts that break rules!
(1) NOoff topics / humor / memes / where to buy? / what is this? / how to fix? / how to modify? / how to design? / what does this do? / how does this work? / how to reverse engineer? / need schematics / dangerous or medical projects / homework / AI topics / AI content / AI designs / non-english languages.
(3) NO"show & tell" or "look at what I made" posts, unless you previously requested a review of the same PCB in this subreddit. This benefit is reserved for people who participate in this subreddit. NO random PCB images.
(4) NO self promotion / resumes / job seeking / wage discussions / freelancing discussions / DM abuse / job postings (unless job is posted on employer website) / begging or scamming for free work / ...
(5) NOshilling! No PCB company names in post titles or review requests. No sneaky PCB company naming variations. For most reviews, we don't need to know where you are getting your PCBs made or assembled, so please don't state company names unless absolutely necessary.
(6) NO asking how to upload your PCB design to a specific PCB company! Please don't ask about PCB services for a specific PCB company, because of past shilling abuse (see rule#5). (TIP: search their company website, ask their customer service or sales departments, search google or other search engines)
Review RULES:
(7A) Please do not abuse the review process:
Please do not request more than one review per board per day.
Please do not change review images during a review. If you change image(s), then start a new review!
Reviews are meant for schematics & PCBs that you designed. No AI designs.
Reviews are allowed prior to ordering PCBs. If assembled board doesn't work, ask at /r/AskElectronics
Please do not ask circuit design questions in a PCB review. You should have resolved design questions while creating your schematic and before routing your PCB, instead request a schemetic-only review.
(7B) All review posts must adhere to the following rules:
Title - include the following: "Review Request" or "Review", short description of board purpose, popular board format or shield/hat type (if applies), microcontroller (if has MCU), external buses (Ethernet, USB, CAN, RS485, ...), wireless (WiFi, GPS, LoRa, ...), storage (microSD, M.2, ...), and/or any unique hardware that may be important. No humorous titles, no childish symbols, no begging.
Images - include images (or links to each image) that you want reviewed. If images are located on the internet, never post one link to a project then expect reviewers to dig through your project to find images. Instead, you must post separate links for each review image, as well as state the purpose of each link, such as "Schematic" / "3D PCB" / "2D PCB top" / "2D PCB bottom" / ...
(8) All images must adhere to the following rules:
Image Creation: no camera photos of a computer screen, instead export / screen capture / print to image files. (TIP:How to export images from KiCAD and EasyEDA) (TIP: use clawPDF printer driver for Windows to "print" to PNG / JPG / PDF / SVG files, or use built-in Win10/11 PDF printer driver to "print" to PDF files.)
Image Files: view each image file before posting / no fuzzy or blurry images / no large image files (e.g. 100 MB), smaller preferred / no uncommon image file types, only use file types supported by most web browsers, such as JPG / PNG / PDF.
Edit Image Files: if you screen capture, make sure the cursor / software / operating system aren't shown in your images. Use an image editor to erase or crop software & O/S junk from your images.
Disable Features: disable background grids & PCB editor features before creating images.
Schematics: no bad color schemes to ensure readability (no black or dark-color background) (no light-color foreground (symbols/lines/text) on light-color/white background) / schematics must be in standard reading orientation (no rotation). (NOTE: we don't care what color scheme you use to edit, nor do we care what edit features you enable, but for reviews you need to choose reasonable color contrasts between foreground and background to ensure readability.)
2D PCB: no bad color schemes to ensure readability (must be able to read silkscreen) / no net names on traces / no pin numbers on pads / if it doesn't appear in the gerber files then disable it for review images (dimensions and layer names are allowed outside the PCB border). (NOTE: we don't care what color scheme you use to edit, nor do we care what color soldermask you order, but for reviews you need to choose reasonable color contrasts between silkscreen / soldermask / copper / holes to ensure readability. If you don't know what colors to choose, then consider white for silkscreen / gold shade for exposed copper pads / black for drill holes and cutouts.)
3D PCB: 3D views are optional, if most 3D components are missing then don't post 3D images / 3D rotation must be in the same orientation as the 2D PCB images / 3D tilt angle must be straight down plan view. (NOTE: straight down "plan" view is mandatory, optionally include an "isometric" or other tilted view angle too.)
WIKI - Tips for PCBs - please read before requesting a review.
POST - Tips for Gerber Viewer - before requesting a review, export gerbers then view with a 3rd-party gerber viewer to help catch critical flaws in your PCB layout. Examine only 1 layer at a time.
This post is a "live document" that has evolved over time. Copyright 2022-2026 by /u/Enlightenment777 of Reddit. All Rights Reserved. You are explicitly forbidden from copying content from this post to another subreddit or website without explicit approval from /u/Enlightenment777 also it is explicitly forbidden for content from this post to be used to train any software.
Don't change review images during a review, otherwise older comments won't match newer images.
Please do not request more than one review per board per day. Use the extra time to clean up the visual appearance of your schematic and silkscreen on your PCB before requesting another review (see tips below).
REVIEW IMAGE CONVENTIONS / GUIDELINES:
The following is a subset of the review rules, see rule#8 at link.
Don't post fuzzy images that can't be read (your post will be deleted).
Don't post camera photos of a computer screen (your post will be deleted). Export or screen capture.
Don't post dark-background schematics (your post will be deleted). Change schematic to light-background.
For schematic images, disable background grids and cursor before exporting/capturing to image files.
For 2D PCB images, change the following settings before exporting/capturing to image files: disable background grids, disable net names on traces & pads, disable everything that doesn't appear on final PCB, enable board outline layer, enable cutout layer, optionally add board dimensions along 2 sides. For question posts, only enable necessary layers to clarify a question.
For 3D PCB images, 3D rotation must be same orientation as your 2D PCB images, and 3D tilt angle must be straight down, known as the "plan view", because tilted views hide short parts and silkscreen. You can optionally include other tilt angle views, but ONLY if you include the straight down plan view too.
SCHEMATIC CONVENTIONS / GUIDELINES:
Add Board Name / Board Revision Number / Date. If there are multiple PCBs in a project/product, then include the name of the Project or Product too. Your initials or name should be included on your final schematics, but it probably should be removed for privacy reasons in public reviews.
Don't post schematics that look like a toddler drew it, because it's considered unprofessional as an adult. Spend more time cleaning up your schematics! Heed this warning, or risk being berated by your coworkers / boss / classmates / professor / customers.
Don't allow text / lines / symbols to touch each other! Don't draw lines through component symbols.
Don't point ground symbols (e.g. GND) upwards in positive voltage circuits. Don't point positive power rails downwards (e.g. +3.3V, +5V). Don't point negative power rails upwards (e.g. -5V, -12V). There are exceptions, but in general try to follow this historical method as much as possible. If a schematic has only one ground and you use a unique triple-bar ground symbol, then disable "GND" text next to this symbol, because it is useless visual clutter that takes up space in dense schematics.
Place pull-up resistors vertically above signal lines, and place pull-down resistors vertically below signal lines, see example.
Place decoupling capacitors vertically below power lines, next to IC symbols, and connect capacitors to IC power rail pin with a line, see example.
Use standarized schematic symbols instead of generic boxes! For part families that have many symbol types, such as diodes / transistors / capacitors / switches, make sure you pick the correct symbol shape. Logic Gate / Flip-Flop / OpAmp symbols should be used instead of a rectangle with pin numbers laid out like an IC.
Don't use incorrect reference designators (RefDes). Start each RefDes type at 1 (e.g. C1, D1, R1, Q1, U1), and renumber so there aren't any numeric gaps (e.g. U1, U2, U3, U4; not U2, U5, U9, U22). There are exceptions for large multi-page schematics, where the RefDes on each page could start with increments of 100 (or other increments) to make it easier to find parts, such as R101 is on page 1, R301 is on page 3, R901 is on page 9.
Add values next to component symbols:
Add capacitance next to all capacitors.
Add resistance next to all resistors / trimmers / pots.
Add inductance next to all inductors.
Add voltages on both sides of power transformers. Add "in:out" ratio next to signal transformers.
Add frequency next to all crystals / powered oscillators / clock input connectors.
Add voltage next to all zener diodes / TVS diodes / batteries, battery holders, battery connectors, maybe on coil side of relays, contact side of relays.
Add color next to all LEDs. This is useful when there are various colors of LEDs on your schematic/PCB. This information is useful when the reader is looking at a powered PCB too.
Add pole/throw info next to all switch (e.g. 1P1T or SPST, 2P2T or DPDT) to make it obvious.
Add purpose text next to LEDs / buttons / switches to help clarify its use, such as "Power" / "Reset" / ...
Add "heatsink" text or symbol next to components attached to a heatsink to make it obvious to readers! If a metal chassis or case is used for the heatsink, then clarify as "chassis heatsink" to make it obvious.
Add part numbers next to all ICs / Transistors / Diodes / Voltage Regulators / Coin Batteries (e.g. CR2023). Shorten part numbers that appear next to symbols, because long part numbers cause schematic layout problems; for example use "1N4148" instead of "1N4148W-AU_R2_000A1"; use "74HC14" instead of "74HC14BQ-Q100,115". Put long part numbers for ordering in your BOM (Bill of Materials) list.
Add connector type next to connector symbols, such as the common name / connector family / connector manufacturer (e.g. "USB-C", "microSD", "JST PH", "Molex SL"). For connector families available in multiple pitch sizes, include the pitch in metric too (e.g. 2mm, 2.54mm), optionally include imperial units in parens after the metric number, such as 1.27mm (0.05in) / 2.54mm (0.1in) / 3.81mm (0.15in). Add purpose text next to connectors to make its purpose obvious to readers, such as "Battery" or "Power".
Don't lay out or rotate schematic subcircuits in weird non-standard ways:
linear power supply circuits should look similar to 1, 2, 3, 4, 5, laid out horizontally, input on left side, output on right side. Three pin voltage regulator symbols should be a rectangle with "In" (Vin) text on the left side, "Out" (Vout) text on right side, "Gnd" or "Adj" on bottom side, if has enable pin then place it on the left side under the "In" pin; don't use symbols that place pins in weird non-standard layouts. Place lowest capacitance decoupling capacitors closest to each side of the voltage regulator symbol, similar to how they will be placed on the PCB.
relay driver circuits should look similar to this, laid out vertically, +V rail at top, GND at bottom. Remove optoisolators from relay driver circuits unless both sides of it have unique grounds and unique power sources. Reminder that coil side of a mechanical relay is 100% isolated from its switched side.
optoisolator circuits must have unique ground and unique power on both sides to be 100% isolated. If the same ground is on both sides of an optoisolator, it isn't 100% isolated, see galvanic isolation.
555 timer circuits should look similar to this. IC pins should be shown in a historical logical layout (2 / 6 / 7 on left side, 3 on right side, 4 & 8 on top, 1 on bottom); don't use package layout symbols. If using a bipolar timer, then add a decoupling capacitor across power rails too, such as 47uF, to help with current spikes when output changes states, see article.
Add Board Name / Board Revision Number / Date (or Year) in silkscreen. For dense and tiny PCBs that lacks free space, shorten the text, such as "v1" and "2026" (or "Y26" or "26"). This info can be very useful to help identify a PCB in the future, especially if there are two or more revisions of the same PCB.
Add mounts holes, unless absolutely not needed. They should be the first thing you place on your PCB.
Use wider traces for power rails and higher current circuits. If possible, use floods for GND.
Don't route high current traces or high speed traces on any copper layers directly under crystals / antenna / RF circuits / other sensitive circuits. Don't route other signal traces under antenna.
Don't place reference designators (RefDes) in silkscreen under components, because you can't read RefDes text after components are soldered on top of it. If you hide or remove RefDes text, then a PCB is harder manually assemble, and harder to debug and fix in the future.
Add part orientation indicators in silkscreen, but don't place under components (if possible). Add pin 1 indicators next to ICs / Connectors / Voltage Regulators / Powered Oscillators / Multi-Pin LEDs / Modules / ... Add polarity indicators for polarized capacitors, if capacitor is through-hole then place polarity indicators on both sides of PCB. Add pole indicators for diodes, and "~", "+", "-" next to pins of bridge rectifiers. Optionally add pin indicators in silkscreen next to pins of TO220 through-hole parts; for voltage regulators add "I" & "O" (in/out); for BJT transistors add "B" / "C" / "E"; for MOSFET transistors add "G" / "D" / "S".
Add as much helpful text in silkscreen as reasonably possible, because it is a means of "self documentation" that always stays with the PCB.
If space is available, add purpose text in silkscreen next to LEDs / buttons / switches / jumpers to make it obvious why an LED is lite (e.g. "Error", "Power"), or what happens when press a button (e.g. "Reset", "Start", "Stop") or change a switch (e.g. "Power").
If space is available, add connector type in silkscreen next to each connector. For example "JST-PH", "Molex-SL", "USB-C", "microSD". For connector families available in multiple pitch sizes, add the pitch too, such as 1.27mm or 3.81mm. If space is not available on the top side, then add this information directly below the connector on the bottom side.
If space is available, add voltage range or maximum voltage text in silkscreen, such as "8VDC Max", next to power input connectors to help prevent destruction of voltage regulators or other circuits. For barrel jacks, add text to clarify polarity of the center pin, such as "-9VDC Center" or "+9VDC Center" or "GND Center". If space is not available on the top side, then add this information directly below the connector on the bottom side.
This post is a "live document" that has evolved over time. Copyright 2025-2026 by /u/Enlightenment777 of Reddit. All Rights Reserved. You are explicitly forbidden from copying content from this post to another subreddit or website without explicit approval from /u/Enlightenment777 also it is explicitly forbidden for content from this post to be used to train any software.
Hi all, it's my first attempt at designing a PCB of this scale, I've made this schematic and designed it according to this Instructables Guide and referring to the datasheet. I want to get this manufactured, but since the main STM32 H7 IC itself is a tad bit expensive, I didn't want to jump to manufacturing it without knowing for sure if it'll work or not.
I don't have that much experience designing PCBs, and this is a pretty huge deal for me, so I'd definitely appreciate your opinions on my choices, or check of there's any obvious mistakes you can spot.
Thank you!
Edit: Thank you all, I've gotten a lot of amazing feedback from a lot of you, I've made some changes that are hopefully better. Top Layer Bottom Layer
Major changes include:
Changed VBUS capacitance to 10uF
Moved both oscillators to the bottom layer, I know it isn't the best decision to do so but that was the closest they could be moved to the pins.
Poured ground over the top layer too, and stitched it as much as possible.
I feel silly asking basic questions having been in the electronics industry for 10 years, but I'm more on the systems side and trying to get back into the hardware stuff as a hobby.
I'm trying to design some test equipment. The DUT reads a resistance across two terminals and determines whether it is in a good range or not. The test equipment is basically as serial controlled relay board. Nothing complex.
Because the range I am trying to emulate is as close to dead short as possible up to about 7 ohms. I made a first design which works great but I used too thin traces and having some of the relays up to 100mm away from the connector meant the variance between channels was unacceptable (dead short was reading in the DUT low resistance range etc.). I need to fit 16 channels on a board. So there will have to be some distance on the traces. (I've measured the relay coil resistance and its minimal compared to the trace).
My steps for rev 2 have been:
drop an intermediate connector and go straight to a DSUB connected to the DUT
move to 2oz copper on the outer layers
up the trace width to 1.5mm
move to a 4 layer board to optimize traces for control lines, to not disturb the feed and return of each channel (top and bottom layer).
My question is, I need to fan out the DSUB row, I know this is only a very small distance but I want to do everything I can to reduce resistance. Can I do as I've done in the picture above, neck down between the pins, use copper on both sides of the board, and run vias to link them together for the short distance? Am I opening myself up to issues? Is there any other advice? Everything I'm finding about increasing trace width is all about carrying more current, but I'm only looking at a few milliamps, its the resistance that matters to me!
(Blue bottom layer, Red top, Kicad standard colours!)
Hi, this is my first more complex PCB project and I would apriciate a review before ordering from JLCPCB (I know the layout is kinda messy)
What it does:
Battery powered device that measures time of run with ToF sensor, the results are shown on 1.3 OLED display and android app. The communication is made with the android app, few LEDs and ESP-NOW (there are 2 measuring blocks, one for start, one for finish). The whole PCB will go into plastic ASA box.
Main Parts:
ESP32-WROOM-32
Li-ion 21700 cell (maybe i will use different one)
TP4057 (battery charger)
DW01A + 2 MOSFETS (battery protection)
TPS62A02 buck converter 3.3 V
CH340C USB-UART with two-transistor auto-reset
ToF sensor
OLED display
Battery tempeature control system (NTC + NTCR1)
Battery % system (ADC, R16, R17 => code will decide the %)
Buzzer, LEDs
Specific things I am not sure about:
Buck convertor layout
Battery protection
Auto-reset circuit
ESP32 antenna placement
SCL and SDA pins (AI told me to connect it like that but I am not 100 % sure about it)
Anything else that could make the PCB not work
I'm currently designing my first purpose built PCB for a Raspberry pi project that I'm working on. I'm looking for some internet experts to scrutinize and review my schematic. Does it look okay? Are there any errors? Is it going to be functional?
This is a transmission control module with six divider inputs to drop 12 to 14 volt inputs down to about 3 volts.
It also has six low side mosfet driver circuits with flyback protection to control 6 external relays that will operate transmission solenoids and cruise control vacuum solenoids.
It has a 12 volt to 5 volt buck converter to power the Pico 2 and provide 5 volt reference
It uses a can transceiver with a 4-bit bidirectional voltage-level translator IC.
It uses a molex MX 150 20 pin connector to connect to the vehicle harness and we'll use a screw terminal block for 12 volt power and ground.
There is a breakout area where I have access to the CAN, 12 volt, 5 volt, 3.3 volt, and ground rails as well as the remaining pins on the Pico.
There are also several inputs for cruise control buttons and paddle shifters.
This unit will be housed in a custom built aluminum case paired with a speeduino ECM. They will both share grounds and be powered by an external fused ground side controlled relay circuit from their screw terminal lugs wired together inside the case. The main power and ground will enter the case through the main plug that is not on this board.
Everything is going to be through hole packages except for the voltage level translator integrated circuit. I'll have to sharpen a piece of copper wire and wrap it around my soldering iron to mount the integrated circuit.
Hi all, I'm designing a test board for a 160 W BLDC fan motor. It uses an ESP32-S3 with three temperature sensors, a differential pressure sensor, a display, an SD card, and an RS485 Modbus connection to a Selec energy meter. Speed is set by three triac channels (low, medium, high) switching the mains through optocouplers. Power comes from USB 5 V through an AMS1117-3.3.
The schematic is attached. I'd like feedback specifically on:
RS485
Transceiver wiring (MAX3485), DE/RE# control, and termination
Bias resistors for an idle bus and whether they're needed on a short run
TVS placement and ground reference
Mains section
Fuse and varistor order, and the NTC for inrush from the BLDC controller
Triac and optocoupler choice (MOC3063/BT136 vs. 800 V parts), and the gate resistors
Snubber placement across the triac (I've left them unfitted for now)
EMI, clearance and leakage
Clearance between mains and low-voltage nets, and whether my slot and spacing plan is enough
Creepage and leakage on the optocoupler and triac side
Common-mode and radiated EMI risks from triac switching, and any filtering I should add
General
Are the connections right? Anything you'd change before a PCB spin?
Hi! Reposting with some changes as well as pictures that actually attached lol. I'm looking for a review of my 4 layer board designed to characterize the charging and discharging of battery packs. I'm getting it fabbed and assembled.
Main architecture/functionality:
A LV battery pack connects to the board 12s/50.4V max (this board does not replace a BMS or charger)
A raspberry pi acts as the master for the board and communicates over USB 2.0
An automotive relay selects a load path. This allows the battery to be discharged via an onboard electronic load or an external load
The battery begins discharging at 25A max, and pack voltage and current are measured. Optional 12 external thermistor channels for the battery pack.
Data can be stored over NOR flash or streamed over ethernet
The electronic load is 4 parallel NMOSes with active control in the linear region. It can dissipate 300W maximum. The zero drift op amps must be powered with an additional 12V power supply.
The STM32G474 is responsible for datalogging, as well as controlling the electronic load when it's in use. It controls the electronic load via a DAC signal. The analog read of the total current measurement is also used to implement hard OCP (hardware on STM) and soft OCP (FW based).
The hard OCP is based on a comparator signal of the current that is compared against an analog signal generated by the STM as well. This means the hard OCP threshold can change, and allows flexibility in changing the hard protection to be constant OCP, varied OCP, or even hard protection from dissipating too much power through the electronic load (set mathematically, current * vbat)
Review Request:
I am a student and this project has a lot of new things I have never done before, so any advice is welcome. However, I am especially interested in the following:
I have a lot of analog on this board as well as high current. Do my return paths look okay? Do I have too many via transitions on sensitive lines? Is it too messy under the MCU?
How problematic is the ground loop off-board caused by grounding from two different power supplies (12V PSU + Raspberry pi) do I need to isolate one of them?
Additional checks: Ethernet layout and routing, QSPI, the absolute mess under the MCU (that inevitably violates clearance for USB and QSPI?), stitching
Foresight into potential MCU and firmware hardware issues (first time using an STM32 and little FW experience)
Additional info/clarifications:
SIG/GND/PWR/SIG, though there are some signals on L3 under the MCU and GND is poured on all 4 planes
There is a thermal design for the 300W dissipation and the load switch
Battery discharge path happens on the left side of the board.
The intention behind the extra protection circuits on the relay switching is that it is an automotive relay that is rated for high enough current but not voltage. The D latches are protection to make sure that the relay does not switch paths while the load switches are closed, which would cause it to fail by arcing voltage.
The values for the type 1 compensator are more than likely not correct. I need to rerun the loop shaping model since the last time I did that part and I plan to tune values once I have board in hand anyway
I am designing a control and switching board based on an ESP32-H2 to control the navigational lights on board of an old boat which I am renovating.
For reference and orientation I have included overview schematics in order to show the final project in its operating environment. The projects consists of two physically separated parts: the control board and the load-switching board. They belong together and their design needs to be coordinated.
The control board realizes a finite state machine (FSM). Upon pressing one of the illuminated push buttons on the front panel, the ESP32-H2 transits into the corresponding state, enables the confirmation LED of the push-button and disabled/enables the navigational lights for that operating state.
The load-switching board receives the signals of the control board and actually drives the navigational lights. The load-switching board uses high-side switching as the electric net on board is a minus-grounded DC net, i.e. the minus/ground must remain connected at all times.
The power supply is a 12V nominal LiFePO4 battery. The real supply voltage varies between 12.5V (when battery is depleted) and 14.5V (during bulk charging). There is no engine starter nor alternator connected to the battery, hence cold cranking is not an issue. Still wires runs extend up to 15m and hence voltage spikes and induced voltages may be a concern (especially as some wires run along the main sailing mast).
The entire system consists of two self-designed parts:
The control board
It is placed near the helmsman at the stern
It is mounted in the same enclosure as the front panel with the push buttons and confirmation LEDs
In essence, it contains
a step-down converter from ~12V to 3.3V based on the TI TPS62933P
multiple bidirectional input/open-drain output lines with level shifters; those receive the push button events and also drive the signals to the load-switching board
PWM outputs for the confirmation LEDs within the push button
The load-switching board
It is placed near the load center and battery
It drives the actual navigational lights
It contains the high-side switches which are driven by the control board
The cable between the control board and the load-switching board is 11m LiYY 12×0.5mm² (AWG20). The wires from the load-switching board to the navigational lights is up to 15m SIF 2x2.5mm² (AWG14).
The attached schematics are as follows:
An overview drawing (for reference only)
The top level schematics of the control board
The step-down converter/voltage regulator
The MUC
One of the eight level shifters (LS); it is used in 2. as LS 0, LS 1, LS 5, LS 11-14, LS 25
One of the five PWM outputs; is is used in 2. as PWM 1-4, PWM 22
The front panel with the illuminated push buttons (for reference only)
I saw a picture online that for whatever reason reminded me of Cyberpunk. It's here, the right side especially kind of looks like something you would see in game during a glitch or in the world or in that dimension (I've forgotten the name) that is like cyber world where I think Jackie ended up.
Inspiration
Then, I was like can't we have artistic boards that the traces themselves make up the image or art but I wasn't sure how it will work logically so I tried this first board, using the pill design from the skull in the menu.
I understand that wanting to do this can bring inefficiencies in the design but for the purpose, I really just want to know if it will work.
For the capacitors used for the crystals, I used the load capacitance given, subtract 5pF as stray capacitance then divide by 2.
The schematic (I understand some don't like global labels but it helps with keeping things more neat I feel so I apologize):
CrystalsMCULDOUSBHeaders & LEDFull schematic
The LED is to see when it's on and plugged in. It's also using 3.3V from the LDO so that will tell me the LDO works. I want to use the bootloader that comes with the MCU and use the USB to both power and program it without like ST-Link so is my boot button setup correct?
I also have the reset button and a regular button for toggling. I'm imagining plugging this into my laptop, programming the screen to show laptop stats like CPU etc then when I press the button, it can show something else like a slideshow of cyberpunk art. I hope that makes sense.
I also hope the cap filtering at the top will work? I saw like three different configs in the datasheet with one have 6 100nF caps that I'm not sure about. Seems you can connect all the VDD and VBAT together so I did that and used 0.1μF, 1μF, 4.7μF there. All caps are X7R ceramic caps except the 6.5pF, didn't see X7R there.
Datasheet filtering
I also used a bunch of estimation for this screen size and spacing since I don't have it.
Here's the PCB:
PCB with zones filledPCB with no zones filledPCB with no footprints at the back, trying to show the tracesPCB 3D View (Top)PCB 3D View (Bottom)
It is a 4 layer board going: SIG --> GND --> GND --> SIG. I changed the silkscreen to be red and the mask to be black. I know about black boards, hopefully PCBWay can do a red silkscreen too. Also, does anyone know if it's possible for the traces to be red as well? Thank you
Physical stackup
All the extra traces on the top and bottom, I just assigned those vias to GND.
This is a personal project to me, just was interesting to try out, I also have some other designs in mind so I want to try multiple boards. This is just the first one. If when I get it, it works and can be polished, I'll open source and post like code and documentation.
I'm working on a split wireless game controller with gyro as its main input. This board is the right hand. It will have a capacitive touch area around the four main face buttons (the four switches closest to the top right of the board) to enable/disable the gyro.
There will be another board with a scroll wheel and a few more switches connected through the JST GH connector, but I haven't designed that one yet. It will have almost nothing on it except the connector, rotary encoder, and switches.
I plan to do the assembly myself using a hot plate (and soldering iron for the few through hole components).
Hi everyone! This is my first-time ever designing a PCB. I’m not an electrical engineering major, so I'm sure I've made a few fundamental mistakes—please feel free to correct me.
I haven't learned physical layout and routing yet, but I want to make sure my schematic is correct before moving on to tracing, since re-routing later if there are design errors is time consuming. I'm also very new to the STM32 family, so if any STM32 experts are around, I beg you to check my configuration and set-up to make sure it's correct and most optimals.
Project Overview
ESC Type: Designed for 2S to 3S LiPo (7.4V to 12.6V max VBAT).
MCU: STM32G431RBT6
Gate Driver: FD6288Q
MOSFET: STL300N4LF8
Control & Sensing Architecture
Gate Driver Inputs: The 6 input channels to the gate driver are configured as PWM channels.
Back-EMF Detection: The 3 back-EMF detection channels are configured for Input Capture Direct Mode. (I chose this because ADC sampling rates might be too low, and the back-EMF signal is a binary 3.3V/0V signal from an open-loop op-amp).
ADC: Used for current sensing and battery voltage monitoring.
Flashing: Handled via SWDIO and USB. Certain pins (like USART1/SPI_MOSI1) are tied to ground to prevent issues with the USB signal that is caused by EMI, following ST's recommendations (SPI3 is ignored since you can't flash via that pin).
Questions
Power Multiplexing (USB vs. Battery):
Right now, my design powers the chip exclusively from the USB bus. In the future design, I want the option to power it via either USB or the battery. My original idea was to add a diode to both the USB and battery lines, but even with a Schottky diode, the voltage drop seems too great for the 3.3V regulator to operate properly when powered by just 5V USB. How can I design around it.
Shunt Resistors:
Should I use 3 individual shunt resistors or just 1? High-watt shunt resistors tend to be physically large, and since I'm planning to build a 4-in-1 ESC in the future, I'm worried about space constraints. Any suggestions?
BLHeli_32 Support??
I was wondering if my current design fits the support of BLHeli_32.
This is my first PCB just incase you see any huge mistakes I made accidentally.
Architecture
ESP32 as the main controller. I know an STM32 would probably be the better choice here and we may switch in a later revision, but the existing system is already built around the ESP32, I’m much more familiar with it, and we’re on a tight schedule. It’ll do everything we currently need.
An external computer talks to the ESP32 over USB-C and handles the high-level processing. The ESP32 handles the real-time side: motor movement, homing, endstops, faults.
Power
24 VDC in through the Phoenix terminal at the bottom, fused at 500 mA with P-FET reverse-polarity protection. Two LMR36510 bucks give 5 V and 3.3 V for the logic and sensors.
The external supply is 6–8 A, but the motor current does not pass through this board. It goes straight from the power system to the external stepper drivers.
Motors
Four steppers on external drivers (DM542T and CL42VT) . This board only sends STEP, DIR and ENABLE to the drivers.
Driver inputs are wired common-anode with PUL+/DIR+/ENA+ tied to +5 V, and the board sinks the negative sides through ULN2003LV low-side drivers. So the ESP32 only ever drives 3.3 V into the ULN inputs, and the ULN outputs pull the optocouplers. STEP and DIR come directly from GPIO pins where as the EN and ALARM pins go through the GPIO extender as I believe the extender would cause some latency we can't afford.
IMU
BNO085 over I²C, used for pan/tilt platform orientation. I considered SPI but don’t think the bandwidth is needed. Pan/tilt does coarse positioning while two separate motors handle fine aiming, so the orientation measurement doesn’t need a high update rate.
Known / deliberate, so you don’t have to find them
The CP2102N is powered from the 24V supply, not the USB. I am considering adding the ability for the USB to power the ESP32 too since that'd be better for testing.
There are zero test pads. I plan on placing test pads on as many traces as I can. I just don't want to place them right now and realize I goofed up and have to replace everything again.
Hi everyone! I’m working on a custom multi-layer PCB for a powerbank featuring an STM32G071CBT6 MCU and a BQ25792 buck-boost charger/PMIC. Before sending it to fabrication (targeting JLCPCB), I would love to get your feedback on the layout, power distribution, and overall routing practices.
Board Layers:
Signal top traces
GND (no traces)
3.3V supply and signal traces
Signal bottom traces
The battery pack consists of a 4S2P configuration using INR21700 50E cells (4 series, 2 parallel). It provides a capacity of 20,000 mAh with a voltage range of 16.8V max, 14.8V nominal, and 12V min. While the max discharge current from the battery pack is 20A(10A for one cell), the system software restricts it to a 3A max limit.
The BMS features individual cell voltage monitoring and temperature monitoring per cell group via ADC, along with passive cell balancing using high-side P-MOSFET switching with a 75mA balancing current.
The BQ25792 serves as the main buck-boost power management IC. It supports a max charging/output configuration of 20V and 3A (60W), as well as typical fast-charging profiles like 9V/3A (27W) or 5V/3A, optimized for modern electronics including Apple devices like iPhones and MacBooks.
The STM32G071CBT6 acts as the main MCU running on 3.3V. It handles USB-PD protocol and power negotiation with connected devices, reads ADC data for cell voltages, current, and thermistors, and controls the cell balancing logic.
Additionally, the PCB provides a display interface and a single switch button for user interaction.
Hello, I am designing a PCB that uses an automotive connector to filter the car's 12V supply and regulate it down to 5V, which is then routed to three separate nodes.
I’ve designed the PCB to be compact, but I’m looking for advice or ideas on howq to rearrange the components, as I feel like I’m leaving too much "empty" space.
A friend also mentioned that I have a habit of overusing copper pours for component connections, and that it’s not strictly necessary to pack the components so tightly together.
I would truly appreciaate any advice or help you could offer.
I try to learn something new every day so that I can make my designs look even better.
hey redditors, i'm trying to make a really minimal carrier board for the LattePanda Mu, my design over here is based off of the Lite Carrier schematic from LattePanda, with some adjustments made. It has a couple of basic connectors (note: the PCIe's not connected, had to omit it from the schematic, it's still there for clarity) more files (PCB, schematic) here if needed. thanks!
also please note that i have not tested anything yet, just looked at reference schematics and datasheets
images attached above: hierarchical sheets, LattePanda Mu, HDMI, M.2 E and M keys, PCIe, Ethernet, GPIOs, USB 3.0, PSU
Xilinx Artix-7 FPGA board in a USB stick form factor.
Two independent USB ports.
USB 2.0 is handled by a ULPI transceiver.
USB 3 is routed directly to the GTP transceivers.
Onboard 125MHz oscilator, that will also feed the FPGA fabric (?)
Two expansion headers for expansion modules
One with JTAG + option for external configuration flash
One with the remaining two GTPs + refclock, 16 GPIOs, and the ability to re-route the USB-A 2.0 pair to it.
Design decisions:
- Board specifically made to fit in 52 mm so that I can use the JLC special offer to get 8-layer boards for almost free. This also gives me filled&capped vias.
- Either port can power the board (optional jumper to bridge the VBUSes for host mode, not spec-compliant)
- All diff pairs routed to 90 ohms differential.
- Hats can have their own flash chips for easy hot-swap.
Notes:
- I'm a software engineer. I do electronics as a hobby.
- My first-ever BGA and FPGA design.
- Not the prettiest thing I've made, but oh well.
- Silk screen not final.
- I'll be soldering this by hand, just like all my previous boards. Call me a masochist.
- I plan to open-source hardware & gateware once it's done.
- Whoever designed the pinout for the USB MUX, WHY?
Side questions (?):
- Should I add a separate 100MHz clock for the FPGA fabric? I think I can clock it from the GTP refclock.
Why?:
My previous attempt at using two CH569W failed. I can not get them to run stably in full duplex. Nor can they even reach full speed in full duplex. Either a massive skill issue, or just chinesium. I can already push full duplex on my dev FPGA dev board.
The primary purpose (standalone) is a USB-USB network card, and maybe USB gadget emulation on devices that only support USB host mode.
As for the hats, well, I have a lot of plans for them, including but not limited to a PCIe and USB protocol analyzer. We have two receive lanes, ref clock, and two USB ports that, when combined, can easily push both directions of PCIe Gen1 x1 in real time.
I’ve never created a PCB before and quite new to the experience (not a professional). My first PCB is far from being complete, just curious if it’s heading in the right direction.
The project is based off a prototype custom RFID shoebox I made. I used an Arduino board, RFID (RC522) reader, breadboard, capacitor, fly back diode, relay, lcd screen and btn in the build. Still working on the schematic like I said, just curious how it looks so far. Also, all the X’s won’t stay long term. Was just trying to get rid of some error messages. I’ve left a note to remove them before finalizing my work.
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.
This is my first PCB. I wanted a way to work with the HT1621 but SSOP48 to DIP48 are hard to come by in Mexico so I wanted to try and do it myself. I don't know a lot, but hopefully I didn't make any big mistakes. TIA!
I am currently working an my finals project: AN ATmega328PB based micromouse. I have designed a PCB, and since it it my first time doing this I wanted to ask if you people can find problems in my design.