Schematic review for ESP32-S2-WROOM + TMC6200-TA

Hi all! I’ve been having a lot of fun discovering this community. Hoping I can give back in some way.

I’m working on designing a PCB using an ESP32-S2-WROOM module and a TMC6200-TA 3-phase driver. I’m new to PCB design, and could use some help from more experienced engineers in reviewing my design in schematic form before I move on to the next step.

I will be using 6-PWM control mode. At the moment I have yet to add connections for phase current sensing. Maybe later…

List of datasheets, schematic files and whatnot available here.

.PNG of schematic:

Thank you in advance! Already having lots of fun with this…

1 Like


This is interesting.

Two things, the picture is very blurry, I cannot read the schematics. Also I do not use kikad. Could you please post a PDF or a a hi-rez schematics?

Secondly, this:

ESP32 is notoriously bad at ADC, due to the fact that it is not a true MCU, but designed to work for Wi-Fi use cases. These problems are well documented, nothing new here.

Your current sense measurements will not come out the way you may think. Unless you plan on using the MCU for wi-fi, there are much better MCUs for that purpose. All that said, since this is an educational exercise, perhaps it is better for you to use ESP32 since you have already done the schematics?

Looking forward to seeing your hi-rez schematics.



Thanks for your response. Apologies for the low-res image. Here is a .pdf which I hope will be better.

Also I appreciate you pointing out the ESP32’s poor track record for ADCs. I wasn’t familiar with that. I do have reasons for sticking with the ESP32 for the moment, but I will certainly take what you shared into consideration for my next design.

Looking forward to hearing back – I’m very new to this so please feel free to correct anything and everything!


Apart from the ADC, I don’t see any issues with the core concept. I have a few questions and comments.

Question: How did you calculate the value of Rp?

Question: You got a bunch of hodge-podge capacitors here:


Why are they so different? Any grand idea behind that designs decision? If not, please stick to a couple snubbers / strategically placed decouples, plus some reasonable bulk capacitance of the same size. Your BOM will thank you later.

Comment / Question: What is that R1 doing there? If you are trying to build an input low-pass RC filter, that 10k is meaningless. If you are trying to use it for bulk capacitance discharge when you turn off the power, that 10k is way too low, you will need something over 100k, and large enough footprint to absorb the power you will be pumping into when your circuit is on. If the latter, I’d remove it altogether because your circuit will absorb the buffer very quickly anyways. If the former, to paraphrase Obi-Wan, you need to go back and rethink your filter design.

Comment: If I understand correctly you are thinking of doing this:

That is a Bad Idea™. Why? Because you will be:

  1. Chaining an LDO to another LDO which already has an LDO attached to it (the 5V internal).
  2. LDOs are notoriously inefficient and you will overheat your driver.
  3. Divert the 12V power away from the gate driver to an external and kill the driver.
  4. Underpower the ESP32 which is notoriously power hungry because as I said it’s not really an MCU but WIFI chip and when used as such it requires huge amounts of power.

This is perhaps the biggest design flaw of the schematics. I would instead add a buck step-down converter from VMO+ to 11.5V, hook THAT converter to the 12V to supply extra power to the driver, and this will turn off the internal driver LDO and improve heat management. Then, I will attach the LDL1117 to this external buck step-down, and then the ESP32 to the external LDO. Then re-work the schematics as the specs are advising:

You can borrow/get a very cheap buck step down design from my Lepton design. See how I did it there. You need to be a little careful because I believe I did drop to a little above 11V but still, please double check my design.

Last, I see you use the 5VOUT to power a level shifter. Again, do not use the 5V of the driver, these are for internal driver consumption. Use another LDO to drop the 11.5V from the external buck converter to 5V, then use that to drive whatever else you need. Same reasoning as above.

I hope my comments/suggestions are helping you.


1 Like


Just getting back from ROSCon in Kyoto and seeing your response. Thank you so much for the detailed pointers. I’m learning a lot from them.

I’ll make some fixes and upload them here in the near future: Hopefully someone else out there will be able to learn this thread in the future :slight_smile:

Edit: Regarding the capacitors, I stole that design choice from OP in this thread, but I don’t have a good justification for using those capacitor values. Maybe I misinterpreted what he was going for there, but from videos like this I’ve heard that using different values will help account for interference of different frequencies.

Haha, Japanese freaking out from gaijin being able to go back I yet? I’m going there next month, let’s see. Hope you had great time.

That is true however your choice is about bulk capacitance. That’s not relevant there.

That’s a size/dimensions board choice, not capacitance and since that was already designed I didn’t want to comment too much, it’ was a done deal.

Looking forward to seeing your redesign.


Hi @Valentine

As much as my design is complete and the first board made, I really am taking a bit of a leap in terms of my knowledge and experience. I only powered ahead without posting it to the forum for critique because my free time comes in fits and starts (as you can tell from the 3 month gap in my posts) so if I don’t push ahead when I can I don’t get anything done.

The point is I would very much appreciate your input into anything questionable you notice in my design choices.



hey @4nswer,

Have you built the board?

I think Valentine has given you more feedback than I could, but one thing I noticed is this:


Here, EN is tied directly to 3.3V, and you’re trying to pull it low with the switch to effect a reset. But the switch will connect it through the 10K resistor. While it will close the circuit, I don’t think it will actually be pulled low.

I think you need a pull-up resistor, and much lower valued series resistor, if any.

Hi, does the ESP32-S2 version support 6pwm now.
It is compiling fine in Arduino IDE, I just wanted to check with you guys since the docs state that 6pwm is not supported by the S2 and c3

It compiles, but the ESP32 S2 does not have MCPWM peripheral, so 6-PWM is currently not supported…

If you try to use it, it won’t work.