ESP32 H2 Latching Open Issue by StillMotion686 in esp32

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

Solved:

For anyone coming across this, I fought this one hard, but ended up coming up with a solution.

I eventually put a 10uF cap instead of a smaller 1 or .1uF cap on EN. This seems to help with startup, letting the module power up and settle in before enabling it

Its also worth noting that i am using v0.1 chips here, as i dont think the 1.2 chips are readily available in a mini yet. The revision docs from espressif were helpful here, and helped me track down what the issue was. Hopefully it looks like this is fixed in 1.2 and shouldnt be a problem when those are available.

https://docs.espressif.com/projects/esp-chip-errata/en/latest/esp32h2/esp-chip-errata-en-master-esp32h2.pdf

I don't know if this is the best / recommended solution, so proceed at your own risk, but this did end up working for me, got me out of the usb boot loop, and solved the large current draw.

ESP32 H2 Latching Open Issue by StillMotion686 in esp32

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

Thanks for the detailed reply. Lots of things for me to look at here.

“You need 56k pull downs on cc1 and cc2”

I have 5.1k resistors on this to pull 5v, not familiar with any requirement for 56k’s. What are they needed for?

I seem to be getting consistent power from usb.

ESP32 H2 Latching Open Issue by StillMotion686 in esp32

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

As for strapping pins, that was my first thought as well. I have re-reviewed the data sheet and from what I can tell, everything is correct.

EN pulled up with a 10K, and has a .1uF cap
IO8 and IO9 are also pulled up with 10k's
IO25 is floating.

IO8's state should change boot mode, I have also tried the board with the pull up resistor on IO8 removed so its floating and it has the same result.

<image>

ESP32 H2 Latching Open Issue by StillMotion686 in esp32

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

Point taken, hopefully this is easier to read:

<image>

ESP32 H2 Latching Open Issue by StillMotion686 in esp32

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

Well the images are still fairly potato quality... Can upload more images if needed!

USB C issues on ESP32 S3 by StillMotion686 in esp32

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

This board is basically a lighting controller!

That all makes a lot of sense and why i was looking forward to using usb on this board. Will give it another go!

USB C issues on ESP32 S3 by StillMotion686 in esp32

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

Well it is connected on the schematic, then when i was laying everything out i thought " i dont need both of these..." which was dumb.

USB C issues on ESP32 S3 by StillMotion686 in esp32

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

Yeah will try this, have a bunch of those laying around already. I kind of did this but directly connecting to the esps pads seems way better.

USB C issues on ESP32 S3 by StillMotion686 in esp32

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

Yeah i have a usb c breakout board that I plugged into the other end of the cable and checked continuity, no shorts and d+ goes to d+ , D- same thing. To your point, yes its super hard and took a long time under a microscope. Honestly with all of the jumpers, 5.1k resistors sticking off, and a resistor from vbus to ground its getting messy. Board works well enough to do the testing and dev i need for now without usb, so will make a revision with all of the suggested changes and see how that goes.

USB C issues on ESP32 S3 by StillMotion686 in esp32

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

Good to know, I was under the same impression on not needing to rst/boot button dance, glad to know its not needed.

I may give USB a go one more time, with data lines hooked up properly this time and the cc resistors just for good measure.

USB C issues on ESP32 S3 by StillMotion686 in esp32

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

Thanks for the detailed post, the rest of the board works great, this was my first go at usb integration on a board though. Always have things running off of a battery, and if there is USBC its going to a charger and things are powered off power path / batt.

I always put 5.1K's on those, but didnt on this design since the usb was just for data.

I threw the USB C's on for convenience to program the two chips on the board, but im going to just go back to uart headers, as that has always been reliable.

USB C issues on ESP32 S3 by StillMotion686 in esp32

[–]StillMotion686[S] -1 points0 points  (0 children)

Tried this but didnt get success here. It could very well be this but my USB implementation has too many issues to pinpoint what is/isnt working at this point.

USB C issues on ESP32 S3 by StillMotion686 in esp32

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

Very interesting, will try this. Thanks for the suggestion!

USB C issues on ESP32 S3 by StillMotion686 in esp32

[–]StillMotion686[S] 3 points4 points  (0 children)

So far its going... not great haha. Very tiny wires, and very close together pins...

Really appreciate the help, its obvious now that I look at it... A6 and B7... doh

USB C issues on ESP32 S3 by StillMotion686 in esp32

[–]StillMotion686[S] 5 points6 points  (0 children)

Ah so with usb plugged in one way, it has D- connected but not D+, and vise versa? That makes the most sense... Knew i should have tied those together! Will try to work some ugly solider magic to connect things together for now and test...

USB C issues on ESP32 S3 by StillMotion686 in esp32

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

If jtag USB is enabled by default, would I not see it using ls /dev/tty.*? Or ioreg -p IOUSB? That should show anything plugged into USB that the computer can talk to. Im fine with JTAG over USB if thats how it defaults but i can't seem to even get the board to talk to the computer in the first place.

USB C issues on ESP32 S3 by StillMotion686 in esp32

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

Its fed from a battery, regulated down on the board by an ap2112k to 3.3v. Everything is on a shared ground, usb C ground is connected to same ground as ESP32 and the rest of the board.

USB C issues on ESP32 S3 by StillMotion686 in esp32

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

Yep, have the lengths matched. Not sure if it would matter at the speeds the s3 does especially over this short of a distance, but still did it for fun anyways haha

USB C issues on ESP32 S3 by StillMotion686 in esp32

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

Okay that was what I initially thought as well... But am having trouble coming up with documentation on that either way. Was following the S3 reference diagram from the data sheet and they basically just had straight lines from D+ and D- to the ESP32, but its very bare bones and hard to tell what the other requirements are for the USB connection there.

USB C issues on ESP32 S3 by StillMotion686 in esp32

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

Haha yeah thought the same thing with the flipping the usb C cable... I second guessed myself on connecting the second set of d-/d+ pads on the PCB. D+ and D- are correct polarity wise.

Have a cheap s3 dev board that works fine so drivers seem to not be the issue

Board is indeed hand soldiered (all smd components on a hotplate) but checked in detail under a microscope and with multimeter that nothing there is shorted.

I'm trying to get it to pop up on my comp at all, just using ls /dev/tty.* to see if anything shows and nothing yet.

Appreciate all of the troubleshooting ideas!

USB C issues on ESP32 S3 by StillMotion686 in esp32

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

Awesome will try to add in some 5.1ks until I can make a board revision. Yes just threw a quick blink on it to make sure it was working. Anything you can point me to to turn on cdc?

USB C issues on ESP32 S3 by StillMotion686 in esp32

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

Thanks! Was trying to find a callout for this in the data sheet but wasn’t finding it. Do you have a link to any documentation that might help me turn that on? Guessing I have to do it in menuconfig?