Schematic Review: 12V DC Motor Controller - Page 1
Forum section: electronics / projects

author: lemm
author_rank: Contributor
timestamp: August 31, 2025, 05:46:11 pm
content: Hi everyone,I've taken your suggestions to heart and have created a completely new schematic with the modern components you recommended.I hope this new design is much safer, more efficient, and more robust. Before I move on to the final PCB layout, I would be very grateful if you could take a look at my complete schematic (I will attach the image in the post) and let me know if you spot any potential issues or have any suggestions for improvement.Project Overview:MCU: ESP32-C3-MINI-1Power Supply: Single-stage MP2315 for a direct 12V→3.3V conversion.Motor Driver: DRV8871 with a hardware current limit set to ~2A.Protection: Kept the fuse/diode/TVS protection and added all the recommended decoupling capacitors.Battery: I am using a 3S (12.6V max) pack.Motor: N20 Mini DC motor 12V with encoder built-in.Thanks for your time! 😊

author: tooki
author_rank: Super Contributor
timestamp: August 31, 2025, 06:00:05 pm
content: Well, for starters, the INA219 error floobydust mentioned in the duplicate thread:Quote from: floobydust on August 31, 2025, 05:56:02 pm

author: tooki
author_rank: Super Contributor
timestamp: August 31, 2025, 06:38:17 pm
content: Quote from: lemm on August 31, 2025, 05:46:11 pmWhat is your actual battery voltage, or rather, how many cells are you using? If you’re calculating 12V based on rounding down from thepeakvoltage (4.2-4.3V per cell) and using 3 cells in series (4.3V x 3 = 12.9V) then you’re fine, but your voltage will be below 12V at the nominal voltage of 3.7V/cell (3.7V x 3 = 11.1V).On the other hand, if your 12V is rounded from thenominalvoltage using 4 cells in series (3.7V x 4 = 12.8V), then your peak voltage will be WAY too high for your motor controller: 4.3V x 4 = 17.2V. The motor controller is specified for an absolute maximum of 15V, but with the maximum normal operating voltage of 13.5V.Quote from: lemm on August 31, 2025, 05:46:11 pmWhy not a newer model like an -S3 or -C3? Maybe even a mini variant, since you’re not using that many GPIOs.Quote from: lemm on August 31, 2025, 05:46:11 pmAs mentioned, you may need a higher-voltage part depending on your actual battery voltage. Also, more modern parts may be more efficient.You need to give the chip its own decoupling cap (usual 100nF ceramic should be fine) on its 3.3V logic supply pin.Quote from: lemm on August 31, 2025, 05:46:11 pmSame here, needs a decoupling cap.Quote from: lemm on August 31, 2025, 05:46:11 pmWhy do the step to 5V? Nothing you’re doing is going to be that sensitive, just skip the 3.3V post-regulator and configure the MP2307 to 3.3V directly. (Also, again a newer part may be more efficient. I doubt you need 2A of 3.3V, and a newer, lower-output-current buck regulator would be more efficient at the probably just 100mA or so that you’ll draw.)Quote from: lemm on August 31, 2025, 05:46:11 pmSince you have the free GPIOs, consider adding a JTAG header for debugging. The official Espressif programmer (ESP-PROG) is just around 11 francs, which is money well spent IMHO. I use the 10p miniature JTAG connector (2x5p 1.27mm box header) on my projects, but if you’ve got the space, you can use the full-size header.Based on the somewhat older parts you’re using, am I correct to guess that you prototyped this using little breakout board modules, and now just want to integrate it onto a single board?

author: electron_plumber
author_rank: Regular Contributor
timestamp: August 31, 2025, 06:57:31 pm
content: You're missing a current-limiting resistor on pin 7 of the MP2307. Max voltage on that pin without a resistor is 6V according to the datasheet.The buck converter is also a discontinued part, but I assume you're aware of that.Nit picky, but I also recommend avoiding 4 wire cross junctions.

author: floobydust
author_rank: Super Contributor
timestamp: August 31, 2025, 07:17:07 pm
content: What is the purpose of R10 100k pullup on IO27?TB6612 /STBY pin has an internal 200k pulldown, so your 100k pullup would leave it floating at ~2.2V, which is OK but not in standby mode on power up. It should float low.IO27 does not seem to be for special boot mode on the ESP32-WROOM-32D, those are GPIO0, GPIO2.ESP32-WROOM-32D & ESP32-WROOM-32U Datasheet Version 2.6NRND is old?https://www.espressif.com/en/products/modules

author: lemm
author_rank: Contributor
timestamp: September 01, 2025, 07:18:24 pm
content: Hi everyone,Wow, thank you all so much for the detailed feedback! As a beginner, this is incredibly helpful. I figured I might have made some errors, but I didn't realize some parts were discontinued. As you correctly guessed tooki, this design is based on a working prototype I built with breakout modules, and now I want to move to a single, reliable PCB.To help you give the best advice, here are the exact specs for my project:Battery: I can confirm it's a 3S (12.6V max) Li-ion pack.Motor: It's a small 12V DC geared motor (N20 with encoder).MCU: I just need Wi-Fi so I can control the motor with my smartphone.Goal: My goal is a simple, cheap, and efficient final board.I would really appreciate if you could please suggest some parts I should use instead of what I have now? I'll try to update the schematic with your advice.Thanks again so much for the help!

author: tooki
author_rank: Super Contributor
timestamp: September 01, 2025, 11:09:44 pm
content: Quote from: electron_plumber on August 31, 2025, 06:57:31 pmNo, it isn’t. It’s NRND (not recommended for new designs), but still available.

author: lemm
author_rank: Contributor
timestamp: September 02, 2025, 03:21:34 pm
content: I've gone back and selected a new set of more modern components for my project. Now I'm using the ESP32-C3-MINI-1, MP2315 (I will skip 5V and go straight to 3.3V), and the DRV8871, and I'm keeping the INA219. Is this a good selection, or do you have even better options or ideas? I will try to create a new circuit diagram based on your feedback. Thanks again for helping me learn and improve this design!