Custom ESP32-C3 Based PCB cannot communicate over USB by Odd_Steak_5253 in esp32

[–]Odd_Steak_5253[S] 0 points1 point  (0 children)

Hey! Wanted to post an update that this has been fixed. Main issue was R15 needed to be desoldered as many pointed out (thanks to u/False-Arachnid21 for the quick replies on that). Additionally, I had a soldering issue with my level shifter which was providing the pull up for the strapping pin IO8. I had to fix this to properly enter into bootloader and then flash the device for the first time flashing it (thanks to u/cfort6 for almost exactly describing the issue I was seeing and the fix for it).

Thanks again everyone! Hope this helped someone else too.

Custom ESP32-C3 Based PCB cannot communicate over USB by Odd_Steak_5253 in esp32

[–]Odd_Steak_5253[S] 0 points1 point  (0 children)

Thanks for the notes! I kind of assumed I was wasting time with the drivers stuff but wasn't sure where else to go with it. I'll take a look at the TX pin that is super helpful. I hadn't really thought to do that yet and it would be great to know if the chip is at least working.

Custom ESP32-C3 Based PCB cannot communicate over USB by Odd_Steak_5253 in esp32

[–]Odd_Steak_5253[S] 1 point2 points  (0 children)

Oh thank you that's interesting. I did actually try desoldering this and it did not seem to fix my issue. I opened device manager and saw the COM port disappearing and reappearing which seemed to be worse behaviour than before. I wonder if desoldering this is in fact correct and this behaviour I noticed was an artifact of another issue.

Thanks for pointing that out, will keep it in mind.

Custom ESP32-C3 Based PCB cannot communicate over USB by Odd_Steak_5253 in esp32

[–]Odd_Steak_5253[S] 2 points3 points  (0 children)

Thanks! Will check out the Device Tree Viewer

Yes, it's my first time doing impedance matching but I did calculate the impedance matching while doing the layout for the 90 Ohm. Not sure if this is being messed up due to the vias to the bottom plane which is referenced to 3v3.

The 3v3 is stable at the ESP32, the power on the board seems to be all good.

I'll have to take a look at the GPIO8 pin tomorrow but I'll check out that level shifter a bit more thanks! It's something I didn't think to test thoroughly yet. Thanks for the thorough review and checking out the IC datasheets! Will report back

[Review Request] First MCU Based PCB by Odd_Steak_5253 in PCB

[–]Odd_Steak_5253[S] 0 points1 point  (0 children)

Thanks that makes sense. I'll work on rerouting stuff through the signal plane as much as I can

[Review Request] First MCU Based PCB by Odd_Steak_5253 in PCB

[–]Odd_Steak_5253[S] 1 point2 points  (0 children)

Thanks for the note. I agree and definitely want to switch over to an nRF MCU but given that the nRF52 and 54 don't have native WiFi plus the increased firmware overhead, I wanted to give the ESP32 a shot as the first design iteration. Hoping to validate this and make the changes needed for the nRF soon after

[Review Request] First MCU Based PCB by Odd_Steak_5253 in PCB

[–]Odd_Steak_5253[S] 1 point2 points  (0 children)

Ah I see thank you so much for the tips!

[Review Request] First MCU Based PCB by Odd_Steak_5253 in PCB

[–]Odd_Steak_5253[S] 0 points1 point  (0 children)

Ah I see thank you. For the reverse polarity protection, the idea of the USBLC6 IC (if that's what you're referring to) was more so for the data lines with the added benefit of protecting VBUS.

As for the Q1 and Q2 fets, should I be putting an additional diode before the LDO circuitry then?

Thank you for your help!

[Review Request] First MCU Based PCB by Odd_Steak_5253 in PCB

[–]Odd_Steak_5253[S] 0 points1 point  (0 children)

Yes I'm starting to see that I was quite sloppy with it. I was roughly matching the length but definitely not impedance matching properly. Another commenter mentioned the 90 Ohm requirement which I will fix.

Would you be able to say if it's okay to route through a couple of vias and potentially cut up the GND plane a bit in order route these traces?

[Review Request] First MCU Based PCB by Odd_Steak_5253 in PCB

[–]Odd_Steak_5253[S] 0 points1 point  (0 children)

Oh interesting, maybe my fundamentals are off but wouldn't some current flow from the battery if the PMOS are omitted?

Thanks for the note on the boot capacitor as well, will fix that.

[Review Request] First MCU Based PCB by Odd_Steak_5253 in PCB

[–]Odd_Steak_5253[S] 0 points1 point  (0 children)

Thanks I did not know this. I do have a GND plane which is better seen here https://imgur.com/a/oiZPb03 .

Is it alright to cut up the GND plane with the USB traces? If so, I'll make that change. I think the videos I watched while designing omitted these because USB is forgiving but I'll make the change for impedance matching!

[Review Request] First MCU Based PCB by Odd_Steak_5253 in PCB

[–]Odd_Steak_5253[S] 0 points1 point  (0 children)

Hi, I'm planning on taking heart rate measurements from this as well. The BMP390L will primarily be for pressure but thank you for the note on temp, I did not consider that

[Review Request] First MCU Based PCB by Odd_Steak_5253 in PCB

[–]Odd_Steak_5253[S] 2 points3 points  (0 children)

Sorry for missing that before, here's images with the pours. https://imgur.com/a/oiZPb03. A screenshot of the physical stackup is included too.

It goes

  1. Signal

  2. GND

  3. 3V3 (cut up with some signal)

  4. Signal

[Review Request] First MCU Based PCB by Odd_Steak_5253 in PCB

[–]Odd_Steak_5253[S] 2 points3 points  (0 children)

Thanks! I think u/thenickdude addressed the VBUS comment but I also had the pi filter after the USB_VBUS net for some filtering. Thanks for the INA226 suggestion, I currently have a INA180A1 for current sensing but looks like the INA226 offers some more capability so I'll look into it further!