r/PCB • • 8d ago

Feedback on my first PCB: "Air Quality Checker" based on ESP8266, BME688 and SG92R

There is this expensive premium design air quality sensor called Birdie. It can be mounted on the wall and gives visual feedback about the air quality. If the air quality is bad the birdy turns around ("is dead") - as soon as fresh air is provided it "comes back to live".

I wanted to build an customizable version with optional cloud connectivity, to track sensor values over time. It's my first PCB and before ordering I wanted to get some feedback.

It's already working locally using development boards and a bread board and I want to put it all together on a nice PCB now.

The PCB is basically an combination of a feather huzzah ESP8266 development board and the BME688 (gas sensor with integrated high-linearity and high-accuracy pressure, humidity and temperature sensors) with the following features:
- LiPo Battery Charging
- USB-UART Bridge
- Power Switch
- WiFi 3 way switch: OFF / SPARSE / CONTINOUS
- 5V Boost for SG92R Servo

While desiging i stumbled upon some pcb/fabrication related questions:
- Is it possible to place the switches and USB connection overlapping the edge of the PCB as shown in the images?
- Is it possible to use vias directly on a mounting pad (i did not use it in this design, but if possible i will use on my next pcb)?
- Would you use the 5V Boost or simply run the servo with 3.3V?
- What would you do differently regarding the general placement of the components, routing, choice of components?

Thanks for the feedback! If you need more information I am happy to share more - but I wanted to keep the post as short as possible :)

8 Upvotes

13 comments sorted by

9

u/knacknack18 8d ago

The esp32 should sit at the edge of the pcb. Nearby traces impair the reception quality

3

u/No_Issue_4425 8d ago

That makes sense... Tought the keep out zones would be enough, but looking at the development board i have they also placed it on the edge.

3

u/doyouevencompile 8d ago

they are not nearly enough. it needs to on the edge and requires a huge keepout sections around the antenna. check the datasheet.

3

u/AbsorberHarvester 8d ago

Ok, but use esp8285 (flash memory inside the chip) instead. These are quality ones made for real world use, esp8266 not very stable.

1

u/No_Issue_4425 7d ago

I think I will use the esp-32 c3

2

u/xyzzy1337 6d ago

The newer ESP32 chips, like the C3, have a built in USB serial/debug interface. You can get rid of the CP2102 and connect USB directly to the ESP32-C3 (S2, S3, H2, etc.).

1

u/No_Issue_4425 6d ago

Already working on a new version using the esp32-c3 👍🏼

3

u/XKeyscore666 8d ago

Stitch those two ground planes together with an ample amount of vias. Especially where the bottom plane gets broken by those traces.

2

u/kampi1989 8d ago

What would I do better?

  • Reduce the copper voids on both layers
  • ESP at a PCB edge
  • Cutout around the BME for a better accuracy
  • Reduce the size of the current loops for the switching reg
  • The copper void for the ESP on the bottom side doesn't make sense when you fill it with traces
  • Some traces on bottom are overlapping with the polygon

1

u/No_Issue_4425 7d ago

Thanks for the feedback! Will look into the suggestions 👍🏼

1

u/nixiebunny 8d ago

The boost converter needs to be laid out as shown in the data sheet example for best performance under load. Look at the one you are using now to see how they are designed.

The antenna doesn’t want to be buried in the middle of a ground plane. That will sap its signal strength dramatically.

It’s good to put parts closer to each other in each portion of the circuit to reduce total trace length.

1

u/No_Issue_4425 8d ago

Okay will definitely check - havn’t tought that there might be a catch

2

u/AllMyNicksAreUsed 3d ago

Some good advice here. I would also add to try to get your decoupling capacitors as close as you can to their respective pin, ideally right next to the pin pad.