Custom PCB Circuit Schematic - Page 1
Forum section: electronics / projects

author: Mia_Snow
author_rank: Newbie
timestamp: July 15, 2025, 10:07:19 am
content: I am making a custom PCB for the first time. I am using an STM32 MCU and SX1280 to make a Transceiver Module. I got done with my circuit schematic. Before going ahead for PCB design, I was wondering if y'all might check if it's alright, if everything is correct, and it would work for running ELRS (Express LRS - a drone communication protocol). I wasn't sure whether to post this in Beginners or Here but since it is in regards to a project I have put it here. Please help me. Kindly give me feedback, constructive criticism and corrections are welcome. I am attaching a Photo of my design.Also if there are suggestions for how to go about the PCB design please let me know.edit: Revised Schematic (revision 1):

author: Andree Henkel
author_rank: Regular Contributor
timestamp: July 15, 2025, 10:32:06 am
content: I don´t see dedicated IC generating Power on Reset for the µC.And no interface for in circuit programming, or do you want to do it via USB?

author: HwAoRrDk
author_rank: Super Contributor
timestamp: July 15, 2025, 10:48:52 am
content: Are you sure you have the NRST line of your STM32 arranged correctly?You have a button which will pull to ground (good), but then a 10k pull-down resistor and a series capacitor to 3.3V?! You should probably instead have the cap to ground and the resistor as a pull-up to 3.3V (because NRST is active-low).Edit:Also, your BOOT0 configuration is erroneous - the button won't do anything. You need to instead have the 10k resistor as a pull-down, and only the button in series to 3.3V.

author: Mia_Snow
author_rank: Newbie
timestamp: July 15, 2025, 11:01:42 am
content: The STM32F411RE, which I am using, has internal Power-on Reset so I didn't think there was a need to have a dedicated IC for that. And for the in circuit programming, I was planning on doing it via USB, yes. I thought about using adding a SWD header but decided against it. Would it be better if I did that, added SWD, that is?Also, I will re-do the NRST and BOOT connections, thank you.

author: scottapotamas
author_rank: Regular Contributor
timestamp: July 15, 2025, 11:11:15 am
content: USB programming is painful to use. You should absolutely pin-out SWD to at least test-pads, a small header, or one of the common programming headers such as a 2x5pin 1.27mm pitch "CORTEX" connector or a TagConnect TC2030.Make sure you include VDDref (3.3V), SWDIO, SWDCLK, NRST.You should double-check your USB connector's wiring too - the STM32 needs the 5V reference (typically called VDDUSB).To make your schematic easier to read, you should put your LNA near the SX1280 parts and directly connect them.Also you have some pull-down resistors and bypass/bulk capacitors pointing up. The ground symbol should be on the lower side of the part, i.e. R4 and R6 should be next to R5, R7 and you just have their wire cross over the TXEN to reach the correct junction.

author: Mia_Snow
author_rank: Newbie
timestamp: July 16, 2025, 12:11:18 pm
content: Quote from: HwAoRrDk on July 15, 2025, 10:48:52 amI corrected the NRST connections, thank you!Regarding the BOOT0 config, I crosschecked with the Application Notes and I think what I have done is correct to use DFU. The 10k pull-down resistor keeps the boot low by default (normal flash boot ) and the push-button to 3.3 V, when pressed, temporarily sets BOOT0 = 1 = enter DFU on next reset.

author: tooki
author_rank: Super Contributor
timestamp: July 16, 2025, 12:24:35 pm
content: Quote from: Mia_Snow on July 16, 2025, 12:11:18 pmBut that isn’t what you have drawn. You have the MCU pin tied straight to GND. The button will do nothing. Are you not familiar with how pull-up and pull-down resistors are used?Please link the application note in question.

author: HwAoRrDk
author_rank: Super Contributor
timestamp: July 16, 2025, 02:27:32 pm
content: Quote from: tooki on July 16, 2025, 12:24:35 pmI think they mean that they believe what they have nowchanged it tois correct.OP, how about you post your revised schematic to avoid confusion?

author: bson
author_rank: Unknown
timestamp: July 17, 2025, 07:37:04 pm
content: What part is Y1? The whole TXCO looks suspect, but this may be solely because you used a 4-lead crystal symbol rather than a clock IC. What is the XTA signal supposed to be - sinusoidal fundamental (LO) or a clock (square wave)? Is this what Y1 produces? It may just be stylistic, but I'd use a better symbol and spell out what the part is unless it's something generic. For spelling out parts I like to add custom property fields,mfgandpart, then make those visible, when it's not something generic or the value itself isn't clear.

author: bson
author_rank: Unknown
timestamp: July 17, 2025, 08:24:40 pm
content: I'd add pullups to SPI1_CS and SPI2_CS. (Assuming they're active low, if they're actually active high use pulldowns.) This is because at power-on reset the MCU pins and GPIO inputs so these will be floating and the behavior undefined. It might be okay without, but for a prototype I'd stick to well-defined behavior - there's always enough other potential causes of odd glitches, startup failures, and erratic behavior that just adding a couple of resistors is worth the peace of mind.

author: bson
author_rank: Unknown
timestamp: July 17, 2025, 08:34:58 pm
content: For your sanity I'd also suggest adding a power LED and another one to a GPIO pin. It's always nice to have a confirmation that it's powered on, and a controllable LED is very handy to flash or something to show that it's working. You can always not populate those later, but modern 0603 SMT LEDs use only tens of microamps so there's no compelling reason not to.

author: bson
author_rank: Unknown
timestamp: July 17, 2025, 09:01:52 pm
content: I'm pretty sure you need to connect the USB VBUS to the STM32 VUSB input, or similar (I forget off-hand). Check the User Guide, it will have a reference schematic. The MCU uses this to detect that something is connected. As shown I don't think it can possibly work.

author: temperance
author_rank: Super Contributor
timestamp: July 17, 2025, 10:13:24 pm
content: Some test points like a GND connection and one or two GPIO's so you can inspect the timing of your software by driving a GPIO pin can practical when developing.

author: Mia_Snow
author_rank: Newbie
timestamp: July 23, 2025, 07:55:08 am
content: Quote from: tooki on July 16, 2025, 12:24:35 pmApologies I did not post the updated schematic. Also, my bad, wasn't an AN, it was the document RM 0383 that I got my information for BOOT from.https://www.alldatasheet.com/datasheet-pdf/pdf/701891/STMICROELECTRONICS/RM0383.html

author: Mia_Snow
author_rank: Newbie
timestamp: July 23, 2025, 07:56:17 am
content: Quote from: HwAoRrDk on July 16, 2025, 02:27:32 pmI shall do so yes, I am yet to incorporate more changes though.