Request for feedback - ESP32-WROOM-32D PCB Design

User avatar
AstronautRaccon
Posts: 4
Joined: Sun Jul 21, 2024 11:54 am

Request for feedback - ESP32-WROOM-32D PCB Design

Postby AstronautRaccon » Sun Jul 21, 2024 11:59 am

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! :mrgreen:
Attachments
3d_model_top_bot.jpg
The 3D model view.
3d_model_top_bot.jpg (136.68 KiB) Viewed 1711 times
pcb_layout_top_bot.JPG
The PCB layout.
pcb_layout_top_bot.JPG (74.02 KiB) Viewed 1711 times
esp32_wroom_32d_board.png
The schematic layer.
esp32_wroom_32d_board.png (198.24 KiB) Viewed 1711 times

ESP_Sprite
Posts: 9757
Joined: Thu Nov 26, 2015 4:08 am

Re: Request for feedback - ESP32-WROOM-32D PCB Design

Postby ESP_Sprite » Mon Jul 22, 2024 3:09 am

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.

User avatar
AstronautRaccon
Posts: 4
Joined: Sun Jul 21, 2024 11:54 am

Re: Request for feedback - ESP32-WROOM-32D PCB Design

Postby AstronautRaccon » Tue Jul 23, 2024 5:57 pm

ESP_Sprite wrote:
Mon Jul 22, 2024 3:09 am
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.

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! :mrgreen:

ESP_Sprite
Posts: 9757
Joined: Thu Nov 26, 2015 4:08 am

Re: Request for feedback - ESP32-WROOM-32D PCB Design

Postby ESP_Sprite » Wed Jul 24, 2024 1:12 am

AstronautRaccon wrote:
Tue Jul 23, 2024 5:57 pm
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.
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.
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?
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.

User avatar
AstronautRaccon
Posts: 4
Joined: Sun Jul 21, 2024 11:54 am

Re: Request for feedback - ESP32-WROOM-32D PCB Design

Postby AstronautRaccon » Wed Jul 24, 2024 5:55 pm

ESP_Sprite wrote:
Wed Jul 24, 2024 1:12 am
AstronautRaccon wrote:
Tue Jul 23, 2024 5:57 pm
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.
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.
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?
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.

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! :mrgreen:

ESP_Sprite
Posts: 9757
Joined: Thu Nov 26, 2015 4:08 am

Re: Request for feedback - ESP32-WROOM-32D PCB Design

Postby ESP_Sprite » Thu Jul 25, 2024 12:07 am

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.
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'.

User avatar
AstronautRaccon
Posts: 4
Joined: Sun Jul 21, 2024 11:54 am

Re: Request for feedback - ESP32-WROOM-32D PCB Design

Postby AstronautRaccon » Thu Jul 25, 2024 10:26 am

ESP_Sprite wrote:
Thu Jul 25, 2024 12:07 am
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.
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'.

My bad, now I understand, thank you very much for the clarification! :mrgreen:

emine.gnz
Posts: 1
Joined: Wed Aug 14, 2024 2:18 pm

Re: Request for feedback - ESP32-WROOM-32D PCB Design

Postby emine.gnz » Wed Aug 14, 2024 2:54 pm

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

Who is online

Users browsing this forum: No registered users and 170 guests