Hi I want to experiment with the ESP32-C3 module on my own board design, I have copied the circuit from the ESP32-C3-DevKitC-02 schematic as a start. I have included the USB to UART IC, regulator etc.
Is there any firmware that ships in the ESP32-C3-DevKitC-02 module already that would make it different from my duplicated circuit?
In other words, assuming I made no mistakes in the duplication should I be able to talk to it like the dev module (eg in the Arduino interface) without any firmware installation first? Or do I have to take additional steps?
Also can anybody explain what the difference is between ESP32-C3-DevKitC-02 and ESP32-C3-DevKitC-02U ?
Thanks for any comments.
ESP32-C3 using dev module circuitry on custom board
-
- Posts: 3
- Joined: Tue Nov 30, 2021 12:38 pm
Re: ESP32-C3 using dev module circuitry on custom board
I can't speak to the differences between the development boards but I just completed a project using the ESP32-C3. (Like all the ESP32 devices, I really like it!)
Since I will be using the ESP32s for a lot of future projects, I didn't/don't want to duplicate the programming circuitry on each board. That uses space and adds cost. Now, I just add one small 6-pin connector with 0.050" spacing to the board for programming. Just the pads are all that are really needed. I then designed a programmer with the male pins to mate that connector. It also has the transistor circuitry to automatically put the device into programming mode. No buttons for manual reset and boot. It plugs right in, no cables. I program and then remove the programmer. Saves a lot of time, space, and additional cost.
That being said, no. There is no special firmware that comes with the development board that you will need to carry over into your design. I used a C3 development board to do some initial testing until my custom boards with the ESP32-C3-MINI were delivered. The code was the same.
I can post information on the programmer if you are interested.
Since I will be using the ESP32s for a lot of future projects, I didn't/don't want to duplicate the programming circuitry on each board. That uses space and adds cost. Now, I just add one small 6-pin connector with 0.050" spacing to the board for programming. Just the pads are all that are really needed. I then designed a programmer with the male pins to mate that connector. It also has the transistor circuitry to automatically put the device into programming mode. No buttons for manual reset and boot. It plugs right in, no cables. I program and then remove the programmer. Saves a lot of time, space, and additional cost.
That being said, no. There is no special firmware that comes with the development board that you will need to carry over into your design. I used a C3 development board to do some initial testing until my custom boards with the ESP32-C3-MINI were delivered. The code was the same.
I can post information on the programmer if you are interested.
-
- Posts: 3
- Joined: Tue Nov 30, 2021 12:38 pm
Re: ESP32-C3 using dev module circuitry on custom board
Great thanks for the helpful reply! Ok its good to know it should look like a dev board to the PC.
Yes I was planning something similar, with a bed of nails on the test jig and an array of pads on the DUT. I presume you have 3V3, GND, U0TXD, U0RXD, EN and GPIO9 on your connector?
Your reply gives me a bit more confidence, thanks!
Yes I was planning something similar, with a bed of nails on the test jig and an array of pads on the DUT. I presume you have 3V3, GND, U0TXD, U0RXD, EN and GPIO9 on your connector?
Your reply gives me a bit more confidence, thanks!
Re: ESP32-C3 using dev module circuitry on custom board
Here is a picture of the programmer. Yes, it has IO0, EN, RX, TX, GND, and 3.3V. I should have named the IO0 pin "BOOT" because I found out later that not all of the ESP devices use IO0 as the boot pin.
RX and TX have LEDs so you can see the traffic. There is also an LED indicating that the 3.3V is good. I suppose this could be used as a generic programmer for 3.3V devices but I built it specifically for ESP devices. (Before this one, I did a generic programmer for 5V OR 3.3v devices but with no EN/BOOT circuitry.)
Besides the desire to have a programmer that had the EN/BOOT circuitry on it, I found that several off-the-shelf programmers had underpowered 3.3v regulators on them. I kept getting brown-out reboots. That's when I figured I would have to design my own. I could beef up the regulator, use a smaller connector (.050 spacing instead of .100), and add the EN and BOOT circuitry. It is small, about the size of your thumb. The reason it necks down where the pins are is so it can clear any components that may be on the board being programmed. I used the FTDI device instead of the Silicon Labs device, mostly because of the available package types. The FTDI was more hand solder friendly. The whole thing worked out great. I haven't tried it but I would guess that pogo pins aren't necessary. If the board has through holes instead of the female connector, I would think that just inserting the programmer and have it rest against the walls of the through holes would be enough.
Happy to help with your project.
https://www.dropbox.com/s/bsl6wq2xch04m ... r.jpg?dl=0
RX and TX have LEDs so you can see the traffic. There is also an LED indicating that the 3.3V is good. I suppose this could be used as a generic programmer for 3.3V devices but I built it specifically for ESP devices. (Before this one, I did a generic programmer for 5V OR 3.3v devices but with no EN/BOOT circuitry.)
Besides the desire to have a programmer that had the EN/BOOT circuitry on it, I found that several off-the-shelf programmers had underpowered 3.3v regulators on them. I kept getting brown-out reboots. That's when I figured I would have to design my own. I could beef up the regulator, use a smaller connector (.050 spacing instead of .100), and add the EN and BOOT circuitry. It is small, about the size of your thumb. The reason it necks down where the pins are is so it can clear any components that may be on the board being programmed. I used the FTDI device instead of the Silicon Labs device, mostly because of the available package types. The FTDI was more hand solder friendly. The whole thing worked out great. I haven't tried it but I would guess that pogo pins aren't necessary. If the board has through holes instead of the female connector, I would think that just inserting the programmer and have it rest against the walls of the through holes would be enough.
Happy to help with your project.
https://www.dropbox.com/s/bsl6wq2xch04m ... r.jpg?dl=0
-
- Posts: 1
- Joined: Tue Dec 07, 2021 1:57 am
Re: ESP32-C3 using dev module circuitry on custom board
@ Chevelle thank you for posting all the info on how to separate the USB->UART onto a separate board, I was just thinking about what would be a good way to do that & what to use to temporarily connect the two etc.
@ OP I recently went through a similiar thing except I made a custom devboard for the USB-C3-MINI. I basically just followed the schematic for the ESP32-C3-DEVKITM. Everything worked great without a hiccup, no firmware needed etc, well it didn't come with a bootloader but the ESP-IDF software sent one when uploading the sketch, everything just worked for me by following the tutorial. Unfortunately I cannot say whether arduino ide has the full functionality of the ESP-IDF to get your bootloader on there..i guess your fallback is if it doesn't work you can install the esp-idf & follow that tutorial. For me, when I monitored the serial port before uploading my sketch, the UART was sending endless 0xFFFFF's, then after uploading the first hello world sketch it speaks normally with all the boot messages etc.
For desigining the board, the only gotcha I can think of, on their schematic watch out for the parts marked NC, (not connected) so there are pads but no part, meaning there is no electrical connection wherever they have an NC part, so at that point in the schematic you stop the trace right there & don't do anything past it. Like if they have a pin connected to NC component connected to ground, don't connect that pin to ground. Also I took some liberty with the capacitors, they are very careful with their capacitors & I didn't bother I just put some 1uFs whereever it made sense. That being said I have not stress tested this thing so maybe that will come back to haunt me. Also for the UART traces I sent them thru vias up & down all over the place, good news everything works great & I can upload at 400k baud no issues whatsoever.. I guess that's not high-speed enough to worry about pcb layout. For the UART chip I used the basic part from jlcpcb, (CP2102-GMR) it was self explanitory pin-for-pin, works great. I used 4 layer pcb & pretty much just routed things however it seemed natural.. I tried to keep the ground plane clear, I put gnd on the 2nd highest layer, then below that +3.3V (with traces if needed) & bottom layer was a ton of traces with meager looking ground backplane. I did do some vias underneath the module to gnd plane since my top layer gnd is pitiful.
Next up for me is to try from the bare chip.. don't expect much size savings becuase I am forced to use 0402's whereas the premade module has 0201's. Plus the premade module is fine tuned for the antenna & crystal & probably a lot more.. basically I'm guessing there is a reason they focus on making all those modules for us. nonetheless I'm going to try the bare chip just to see if it works. But I can report that once outside the module it was pretty forgiving. Also I can report I used jlcpcb assembly service to place the MINI & all the other components for me & it worked great. Can't really solder the MINI by hand since its pads are all underneath the module.
U vs non-U is just the antenna coax connector vs a PCB trace, identical otherwise.
@ OP I recently went through a similiar thing except I made a custom devboard for the USB-C3-MINI. I basically just followed the schematic for the ESP32-C3-DEVKITM. Everything worked great without a hiccup, no firmware needed etc, well it didn't come with a bootloader but the ESP-IDF software sent one when uploading the sketch, everything just worked for me by following the tutorial. Unfortunately I cannot say whether arduino ide has the full functionality of the ESP-IDF to get your bootloader on there..i guess your fallback is if it doesn't work you can install the esp-idf & follow that tutorial. For me, when I monitored the serial port before uploading my sketch, the UART was sending endless 0xFFFFF's, then after uploading the first hello world sketch it speaks normally with all the boot messages etc.
For desigining the board, the only gotcha I can think of, on their schematic watch out for the parts marked NC, (not connected) so there are pads but no part, meaning there is no electrical connection wherever they have an NC part, so at that point in the schematic you stop the trace right there & don't do anything past it. Like if they have a pin connected to NC component connected to ground, don't connect that pin to ground. Also I took some liberty with the capacitors, they are very careful with their capacitors & I didn't bother I just put some 1uFs whereever it made sense. That being said I have not stress tested this thing so maybe that will come back to haunt me. Also for the UART traces I sent them thru vias up & down all over the place, good news everything works great & I can upload at 400k baud no issues whatsoever.. I guess that's not high-speed enough to worry about pcb layout. For the UART chip I used the basic part from jlcpcb, (CP2102-GMR) it was self explanitory pin-for-pin, works great. I used 4 layer pcb & pretty much just routed things however it seemed natural.. I tried to keep the ground plane clear, I put gnd on the 2nd highest layer, then below that +3.3V (with traces if needed) & bottom layer was a ton of traces with meager looking ground backplane. I did do some vias underneath the module to gnd plane since my top layer gnd is pitiful.
Next up for me is to try from the bare chip.. don't expect much size savings becuase I am forced to use 0402's whereas the premade module has 0201's. Plus the premade module is fine tuned for the antenna & crystal & probably a lot more.. basically I'm guessing there is a reason they focus on making all those modules for us. nonetheless I'm going to try the bare chip just to see if it works. But I can report that once outside the module it was pretty forgiving. Also I can report I used jlcpcb assembly service to place the MINI & all the other components for me & it worked great. Can't really solder the MINI by hand since its pads are all underneath the module.
U vs non-U is just the antenna coax connector vs a PCB trace, identical otherwise.
Re: ESP32-C3 using dev module circuitry on custom board
Harbaughfan, (I won't hold that against you.)
Glad to see that your project worked out. Mine did as well although I made a few different decisions. I too used the DEV board schematic as a guide and had no trouble with the NC or zero value components. I used all 1206 components. I bought a resistor and capacitor assortment based on that size. They are small yet reasonable to solder. I'm OK soldering down to 0805 for onesy-twosies but would rather not do it for a full board or a project where I will be making 10 or more. For all my projects, I have used ALLPCB for fabrication. A very similar service to JLCPCB. Even their websites are similar.
All of my projects so far have been fine as two layer boards. (I am an old fart that started my career in the late 70's at Hughes Aircraft where my electronic designs were done on a drafting board with ink and/or tape.) I don't go to four layer boards unless there is some serious RF stuff on them. The polygon fill gound planes on both sides have kept the performance nice and quiet. I don't use the Arduino IDE or the ESP-IDF for development. I use Visual Studio with the Visual Micro plug-in. Works for me.
For the programmer, I used the FTDI device more because is came in a more solder friendly package than the CPXXXX devices. They cost more but I was only making 6 or so. If I was making lots of these programmers, I would probably go with the less expensive device.
The programmer loads to the ESP32 at 921600 no problem.
I have pretty much settled on the ESP32-C3 and ESP32-S3 devices as my go to micros. I'll use the WROOM versions where I don't need to go ultra small. I can solder them and their exposed pads are available for troubleshooting. (Not that that ever is necessary *cough*). I did use the ESP32-C3-MINI on a project with all 0805 devices because we wanted it very small. I had ALLPCB do the assembly. Worked out great.
Glad to see that your project worked out. Mine did as well although I made a few different decisions. I too used the DEV board schematic as a guide and had no trouble with the NC or zero value components. I used all 1206 components. I bought a resistor and capacitor assortment based on that size. They are small yet reasonable to solder. I'm OK soldering down to 0805 for onesy-twosies but would rather not do it for a full board or a project where I will be making 10 or more. For all my projects, I have used ALLPCB for fabrication. A very similar service to JLCPCB. Even their websites are similar.
All of my projects so far have been fine as two layer boards. (I am an old fart that started my career in the late 70's at Hughes Aircraft where my electronic designs were done on a drafting board with ink and/or tape.) I don't go to four layer boards unless there is some serious RF stuff on them. The polygon fill gound planes on both sides have kept the performance nice and quiet. I don't use the Arduino IDE or the ESP-IDF for development. I use Visual Studio with the Visual Micro plug-in. Works for me.
For the programmer, I used the FTDI device more because is came in a more solder friendly package than the CPXXXX devices. They cost more but I was only making 6 or so. If I was making lots of these programmers, I would probably go with the less expensive device.
The programmer loads to the ESP32 at 921600 no problem.
I have pretty much settled on the ESP32-C3 and ESP32-S3 devices as my go to micros. I'll use the WROOM versions where I don't need to go ultra small. I can solder them and their exposed pads are available for troubleshooting. (Not that that ever is necessary *cough*). I did use the ESP32-C3-MINI on a project with all 0805 devices because we wanted it very small. I had ALLPCB do the assembly. Worked out great.
Who is online
Users browsing this forum: No registered users and 182 guests