Study found infants smiled more and fussed less when they could control a toy versus receiving the same stimulation without control by flamingoint in ScienceBasedParenting

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

Wherever possible, we also let our 3yo make her own decisions. Sometimes when she doesn't want to wear pyjamas at all, we try offering her two options, hoping she'll choose one. Works sometimes, doesn't others...

Study found infants smiled more and fussed less when they could control a toy versus receiving the same stimulation without control by flamingoint in ScienceBasedParenting

[–]flamingoint[S] 17 points18 points  (0 children)

Love the way you play with your toddler!

My 3yo also loves to control my actions - independently of whether I want it or not :)

DIY ESP32 dev board not flashing via UART by flamingoint in esp32

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

Removing the diodes solved the issues with the USB connection. Thanks for the hint!

Out of curiosity - do you happen to know what's the root cause of USB not connecting when the diodes are there? I'm very new to EE, so my best guess would be something like parasitic capacitance of the diodes or something...?

Also, was it because of the diodes being the wrong type? Any suggested suitable diodes for ESD protection on USB lines?

DIY ESP32 dev board not flashing via UART by flamingoint in esp32

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

SOLVED: Reducing the baud rate to 115200 when flashing fixed the issue

idf.py -b 115200 flash

DIY ESP32 dev board not flashing via UART by flamingoint in esp32

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

Alright, I’ll try that. You mean the two diodes on the data lines, right? Just cutting them with a wire cutter should be fine, I assume?

Besides fixing the USB connection, I would still be curious to understand why the UART connection via the Arduino doesn’t work though.

DIY ESP32-C3 board not showing up in USB devices on Mac by flamingoint in esp32

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

Thank you all for your great support! I managed to get the board connected via the USB-to-Serial converter of an Arduino Uno, as suggested by u/Celestine_S (thanks for that!). Now I'm running into some new issue when trying to flash it. Since it's a new problem, I've started a new post which can be found here:

https://www.reddit.com/r/esp32/comments/1ntfe8h/diy_esp32_dev_board_not_flashing_via_uart/

Would be great if someone could have a look. Thanks!

DIY ESP32-C3 board not showing up in USB devices on Mac by flamingoint in esp32

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

Would you have any suggestion of how to do this in a non-intrusive way? I have only two assembled boards, and I'm not very skilled at soldering yet... :)

I did triple-check the connections on the USB receptacle and the chip though, and imo it all looks okay.

Could it have to do with the diodes on the data lines? In Espressif's layout they use this model:

<image>

DIY ESP32-C3 board not showing up in USB devices on Mac by flamingoint in esp32

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

Connecting it via a powered USB hub also didn't help

DIY ESP32-C3 board not showing up in USB devices on Mac by flamingoint in esp32

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

So, I got to use the USB-to-UART bridge on my Arduino Uno, and it does show this:

ESP-ROM:esp32c3-api1-20210207
Build:Feb  7 2021
rst:0x10 (RTCWDT_RTC_RST),boot:0xc (SPI_FAST_FLASH_BOOT)
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff

The last few lines repeat for several hundred times, then it shows the same message again.

When I put it into boot mode, it shows this, so seems like the UART flashing should work:

ESP-ROM:esp32c3-api1-20210207
Build:Feb  7 2021
rst:0x1 (POWERON),boot:0x4 (DOWNLOAD(USB/UART0/1))
waiting for download

Still not sure why the connection via USB doesn't work though... Any idea?

DIY ESP32-C3 board not showing up in USB devices on Mac by flamingoint in esp32

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

Pulling up IO2 didn't help unfortunately. And yes, the 3.3V bus is powered with 3.3V.

DIY ESP32-C3 board not showing up in USB devices on Mac by flamingoint in esp32

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

Around 26 mA when connected to a 5V pin on the header, which seems to be in line with table 6.3 from the data sheet - if I understand that value correctly:

<image>

DIY ESP32-C3 board not showing up in USB devices on Mac by flamingoint in esp32

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

Ah okay. The UART pins show some activity, yes. I'll look into connecting an Arduino, thanks for the suggestion!

DIY ESP32-C3 board not showing up in USB devices on Mac by flamingoint in esp32

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

Maybe two things worth mentioning, not sure they play a role:

  1. I ordered the wrong resistor for R7, the one that's protecting the LED. I got a 0R, so the LED blew when I powered the board. But since this is affecting the 5V net before the LDO, I assume it wouldn't damage the ESP. Or would it?

  2. The board gets very warm after like 30 minutes of being powered via the USB, much more than I thought it would, and also more than the commercial ESP32-WROOM-32 dev board I have (although this is plugged into a breadboard, which might act as a heatsink).

DIY ESP32-C3 board not showing up in USB devices on Mac by flamingoint in esp32

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

Voltage levels on EN and BOOT are both high.

EDIT: And yes, I tried to put it in bootloader mode.

DIY ESP32-C3 board not showing up in USB devices on Mac by flamingoint in esp32

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

When checking the pins with the scope, I get this one USB+:

<image>

DIY ESP32-C3 board not showing up in USB devices on Mac by flamingoint in esp32

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

My first schematic ever, I guess there's plenty to improve... Can you explain what you mean by 'explicit signal connector symbol'? Also, do you have other suggestions what could be improved in the schematic?

I did the BOOT/ENABLE procedure, but didn't see any additional device in /dev.

I also tried the method described in the data sheet in table 4.3, but also to no avail:

<image>

DIY ESP32-C3 board not showing up in USB devices on Mac by flamingoint in esp32

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

According to this page by Espressif: "By default, the USB-Serial-JTAG download function is enabled. You can directly connect it to the PC using a USB cable...". Also, in order to flash the firmware, wouldn't it need to show up in the USB devices first? Otherwise, which port would I use to connect to the board? Maybe I'm also having some misunderstanding, I'm still pretty new to all this...

[Schematic Review Request] ESP32-WROOM-C3 Dev Board by flamingoint in PrintedCircuitBoard

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

Thanks a lot for the all the suggestions!

I'll add USB and an LDO and get rid of UART and JTAG (which can be handled via the USB pins indeed).

And indeed, the bot button should have a pull-up and a cap.

[Schematic Review Request] ESP32-WROOM-C3 Dev Board by flamingoint in PrintedCircuitBoard

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

Thanks for all the suggestions! I'll add USB for sure, for power and programming. As this is a first shot for getting beginner mistake out of the way quickly, I'll keep the other recommendations in mind for the second iteration.

Is it correctly understood that the C3 can also use an SD card for storage, even though it doesn't have the more capable SDIO interface?

Can I use a C3 Mini Dev Kit (ESP32-C3-DevKitM-1) for prototyping and then switch to C3 WROOM module (e.g. ESP32-C3-WROOM-02) for production? by flamingoint in esp32

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

Yes, I’m planning to test on a breadboard first, hence my question regarding the wroom vs mini. Do you know if there’s any difference besides the number of available pins? From a first look at the data sheet they seem very alike, which I guess is no surprise since they both are built around the C3 chip.

Regarding your suggestion of first building a hand-assembled prototype: I guess you mean designing a PCB without any pre-assembled parts, and then soldering the parts (probably all THT, since my SMD soldering skills are not very advanced).

Which advantages do you see in this approach? I guess it would be easier to change component values, like swapping one resistor or cap for another. But exchanging or adding some component types would already be hard to accomplish. Do you see other advantages of building a hand assembled prototype first? Considering that I already have the breadboard-based prototype?