Hi everyone,
I’ve been working on designing a PCB for a project using the ESP32-WROOM-32D as my first attempt at PCB design. I’m looking for feedback, suggestions/evaluations on my design before I proceed with ordering the PCB.
I’ve attached three photos of the design for review. Due to site restrictions, I’m only able to upload up to three photos. If you need more details or additional images, please let me know, and I can provide them upon request.
This is my first PCB design without prior knowledge, so any constructive criticism or advice would be greatly appreciated.
Thank you in advance for your help!
Request for feedback - ESP32-WROOM-32D PCB Design
- AstronautRaccon
- Posts: 4
- Joined: Sun Jul 21, 2024 11:54 am
Request for feedback - ESP32-WROOM-32D PCB Design
- Attachments
-
- The 3D model view.
- 3d_model_top_bot.jpg (136.68 KiB) Viewed 1621 times
-
- The PCB layout.
- pcb_layout_top_bot.JPG (74.02 KiB) Viewed 1621 times
-
- The schematic layer.
- esp32_wroom_32d_board.png (198.24 KiB) Viewed 1621 times
-
- Posts: 9708
- Joined: Thu Nov 26, 2015 4:08 am
Re: Request for feedback - ESP32-WROOM-32D PCB Design
Suggest you use https://docs.espressif.com/projects/esp ... est/esp32/ as a reference. A few things I spotted:
- The antenna had no keepout zone and is in the middle of the PCB. This will majorly impair WiFi reception.
- You need pullups on your I2C buses.
- It's bad practice to allow your device to use battery power while it's charging; it means the TPS4056 cannot properly detect the charge current. See here for details and the solution. Note that AP uses a different charging IC but the diode/mosfet solution applies to yours as well.
- Not sure what LDO (voltage regulator) you're using... '662K' in your schematic brings up a SC662K. If that is the one you're using, it's unsuitable: it can only supply 250mA and an ESP32 needs 500mA at least.
- Your on/off switch is switching the 3.3V after the LDO. This means that your LDO is always connected to the battery, using power, draining your batteries.
- The antenna had no keepout zone and is in the middle of the PCB. This will majorly impair WiFi reception.
- You need pullups on your I2C buses.
- It's bad practice to allow your device to use battery power while it's charging; it means the TPS4056 cannot properly detect the charge current. See here for details and the solution. Note that AP uses a different charging IC but the diode/mosfet solution applies to yours as well.
- Not sure what LDO (voltage regulator) you're using... '662K' in your schematic brings up a SC662K. If that is the one you're using, it's unsuitable: it can only supply 250mA and an ESP32 needs 500mA at least.
- Your on/off switch is switching the 3.3V after the LDO. This means that your LDO is always connected to the battery, using power, draining your batteries.
- AstronautRaccon
- Posts: 4
- Joined: Sun Jul 21, 2024 11:54 am
Re: Request for feedback - ESP32-WROOM-32D PCB Design
ESP_Sprite wrote: ↑Mon Jul 22, 2024 3:09 amSuggest you use https://docs.espressif.com/projects/esp ... est/esp32/ as a reference. A few things I spotted:
- The antenna had no keepout zone and is in the middle of the PCB. This will majorly impair WiFi reception.
- You need pullups on your I2C buses.
- It's bad practice to allow your device to use battery power while it's charging; it means the TPS4056 cannot properly detect the charge current. See here for details and the solution. Note that AP uses a different charging IC but the diode/mosfet solution applies to yours as well.
- Not sure what LDO (voltage regulator) you're using... '662K' in your schematic brings up a SC662K. If that is the one you're using, it's unsuitable: it can only supply 250mA and an ESP32 needs 500mA at least.
- Your on/off switch is switching the 3.3V after the LDO. This means that your LDO is always connected to the battery, using power, draining your batteries.
I really appreciate the feedback you provided. I have two more questions about my PCB design.
Is it good practice to separate the charging circuit (TP4056, DW01A, FS8205, and related components) into a separate PCB? My plan is to connect this secondary PCB to the main PCB via two wires, similar to how a battery would be connected. This would help me to take advantage of all the space on the main PCB. I've seen similar implementations in other devices where the charging and protection circuits are on a separate PCB connected by wires or flex PCBs so thats I got this question.
Could you please advise if this is a good practice or if there are any potential issues I should be aware of?
About the pull-up resistors, I understand some display modules already contain them. I am using an SSD1306 module. If my module already includes pull-up resistors, is it still necessary to add external ones? If I do add them regardless, will it cause any issues?
Thank you for your guidance and time!
-
- Posts: 9708
- Joined: Thu Nov 26, 2015 4:08 am
Re: Request for feedback - ESP32-WROOM-32D PCB Design
It's not really 'good practice' (as in it does not help or hurt your design; you can do either and get a working product), but it may be helpful when e.g. the main PCB needs to be in a different place than the USB connector or battery, or when you want to re-use the battery PCB for another project as well. Shouldn't really be any issue with that. You might want to break out the data lines and an extra ground of the USB connector as well in that case, in case some other project (using e.g. a later ESP32 which has a built-in USB controller) needs it.AstronautRaccon wrote: ↑Tue Jul 23, 2024 5:57 pmIs it good practice to separate the charging circuit (TP4056, DW01A, FS8205, and related components) into a separate PCB? My plan is to connect this secondary PCB to the main PCB via two wires, similar to how a battery would be connected. This would help me to take advantage of all the space on the main PCB.
It might work, but be aware that the pull-ups on the module tend to be something like 10K while the I2C specs (for 3.3V) would want something like 3.3K there. Note that it's always an option to put a resistor on your PCB design and then mark it as 'do not populate'; that means the solder pads are there in case you need them anyway.About the pull-up resistors, I understand some display modules already contain them. I am using an SSD1306 module. If my module already includes pull-up resistors, is it still necessary to add external ones? If I do add them regardless, will it cause any issues?
- AstronautRaccon
- Posts: 4
- Joined: Sun Jul 21, 2024 11:54 am
Re: Request for feedback - ESP32-WROOM-32D PCB Design
ESP_Sprite wrote: ↑Wed Jul 24, 2024 1:12 amIt's not really 'good practice' (as in it does not help or hurt your design; you can do either and get a working product), but it may be helpful when e.g. the main PCB needs to be in a different place than the USB connector or battery, or when you want to re-use the battery PCB for another project as well. Shouldn't really be any issue with that. You might want to break out the data lines and an extra ground of the USB connector as well in that case, in case some other project (using e.g. a later ESP32 which has a built-in USB controller) needs it.AstronautRaccon wrote: ↑Tue Jul 23, 2024 5:57 pmIs it good practice to separate the charging circuit (TP4056, DW01A, FS8205, and related components) into a separate PCB? My plan is to connect this secondary PCB to the main PCB via two wires, similar to how a battery would be connected. This would help me to take advantage of all the space on the main PCB.
It might work, but be aware that the pull-ups on the module tend to be something like 10K while the I2C specs (for 3.3V) would want something like 3.3K there. Note that it's always an option to put a resistor on your PCB design and then mark it as 'do not populate'; that means the solder pads are there in case you need them anyway.About the pull-up resistors, I understand some display modules already contain them. I am using an SSD1306 module. If my module already includes pull-up resistors, is it still necessary to add external ones? If I do add them regardless, will it cause any issues?
Thank you very much for your help!
Based on your feedback, I understand that I can separate the charging circuit into a secondary PCB and keep only the ESP32-related components (function buttons, display, etc...) on the main PCB. I will connect these PCBs with cables (I understand that using a flex PCB is pretty much the same).
Regarding your suggestion about the data lines, I’ll omit it for this specific project, as it will use a different chip in future versions and will require a completely new PCB. Nevertheless, I hadn’t considered this before, and I appreciate the suggestion, it will be useful for future projects that may require modular PCBs.
I also understand that I can use 0 ohm resistors to connect the SDA and SCL pins of the SSD1306 module to the corresponding ESP32 pins if I later need 3.3K resistors.
Thanks again for your time and patience!
-
- Posts: 9708
- Joined: Thu Nov 26, 2015 4:08 am
Re: Request for feedback - ESP32-WROOM-32D PCB Design
Just to be clear, what you need is two pullup resistors, one between SDA and 3.3V and the other between SCL and 3.3V. I think what you're thinking of are series resistors and those are not needed. As the pullups go between the I2C lines and 3.3V, you can simply design them in and designate them as 'do not populate'.AstronautRaccon wrote: ↑Wed Jul 24, 2024 5:55 pm
I also understand that I can use 0 ohm resistors to connect the SDA and SCL pins of the SSD1306 module to the corresponding ESP32 pins if I later need 3.3K resistors.
- AstronautRaccon
- Posts: 4
- Joined: Sun Jul 21, 2024 11:54 am
Re: Request for feedback - ESP32-WROOM-32D PCB Design
ESP_Sprite wrote: ↑Thu Jul 25, 2024 12:07 amJust to be clear, what you need is two pullup resistors, one between SDA and 3.3V and the other between SCL and 3.3V. I think what you're thinking of are series resistors and those are not needed. As the pullups go between the I2C lines and 3.3V, you can simply design them in and designate them as 'do not populate'.AstronautRaccon wrote: ↑Wed Jul 24, 2024 5:55 pm
I also understand that I can use 0 ohm resistors to connect the SDA and SCL pins of the SSD1306 module to the corresponding ESP32 pins if I later need 3.3K resistors.
My bad, now I understand, thank you very much for the clarification!
Re: Request for feedback - ESP32-WROOM-32D PCB Design
Hello,
How can I access the test reports of the module? We need test reports of ESP32-WROOM-32D in ESP32-WROOM-32D_ANATEL_Certification. Please, contact me: emine.genez@silverline.com.tr
How can I access the test reports of the module? We need test reports of ESP32-WROOM-32D in ESP32-WROOM-32D_ANATEL_Certification. Please, contact me: emine.genez@silverline.com.tr
Who is online
Users browsing this forum: No registered users and 67 guests