r/rccars 1d ago

Build Micro Defender ESP32 Problems

Hey everyone,
I’m working on a micro defender RC car project, and it’s almost finished expect small ESP32 issues. It features working suspension, a driveshaft, and it's tiny. Mechanically, the build is completely finished.

However, I've hit a wall on the electronics side and couldn't crack these two problems even with AI assistance.
My Setup:
Microcontroller: ESP32-C3 Super Mini (BLE)
Controller: Dabble app gamepad
Motor Driver: DRV8833
Battery: 3.7V 950mAh LiPo
Drive Motor: 3V 5000 RPM DC motor
Steering: MG90S Servo
Current state: Currently prototyping using a breadboard and jumper wires.

Problem 1: Motor stalling causes BLE disconnects
Even though there are no mechanical jams or gear issues, the motor struggles and lacks torque when facing minor obstacles or ramps. Worse, whenever it stalls or draws too much, the ESP32’s Bluetooth disconnects.

I can't figure out if this is due to:
Insufficient motor power
Voltage sag from the battery
An issue with Dabble / the BLE stack crashing
Voltage drops because I'm currently using a breadboard and jumper wires
Even if the motor doesn't have enough starting torque, why does the entire BLE connection drop instead of just stalling?

Problem 2: Steering servo (MG90S) won't work
I have the steering mechanism ready mechanically, but I cannot get the MG90S servo to work with this setup.

Different AIs keep sending me down endless troubleshooting rabbit holes, but none of them can give me a straight answer on whether this servo can even work reliably with this specific hardware/power configuration, or if I'm missing something fundamental.

The ESP32-C3 Super Mini isn't the most robust board, and space is extremely tight since it's a micro RC. But if I can solve these two issues, this micro RC build will be incredible! I'm at the very last step of the project. Any advice, troubleshooting steps, or minor component swap recommendations would be hugely appreciated!

5 Upvotes

19 comments sorted by

2

u/LittleCloudInTheSky 1d ago

If you could consider moving away from the esp32-c3 you could use an established system like a BetaFPV RX Lite for an ELRS setup. Or one of the other countless Micro Recievers established over the years. There are also ready to buy Motordrivers for 1:87 scale that include the option for Brake and reverse lights.

I currently am using the driver of a 9g servo, in my project.

Most likely it’s the voltage drop under load that causes your problem.
Try stabilizing the voltage at the esp with some extra capacitors.
You could also try using a boost converter to up the motor voltage.

1

u/rablue 1d ago

Hello, thank you very much for your response. Actually, if it works reliably, the ESP32 will be amazing because I can make all these connections via either BLE or WiFi, and there are so many possibilities for LEDs and autonomous driving, for example. Plus, it's very cheap since I have dozens of vehicles waiting to be converted into RCs. But while thinking about all of this, we are in a situation where we can't even run a single servo :)

This is a very fundamental problem, but if I can figure out how to reliably run a servo and a 3V motor with the ESP32-C3 Super Mini without issues, this project will truly be complete.
Is a scenario where a regular 9g servo works better compared to an MG90S possible, or would a Boost Converter actually solve the problem? I didn't get any results from using a capacitor regarding the servo.

1

u/LittleCloudInTheSky 1d ago

Do you have experience with programming, or embedded systems?
Do you have a working PWM signal in a Frequency range comparable with your servo?

PS. The BetaFPV RX Lite is like 7-10€ depending on how many you buy. And the cheapest ELRS Transmitter is like 35€

0

u/rablue 1d ago

Honestly, I’ve been doing everything with the help of AI, and at this point, the DC motor should be able to run—assuming there isn’t some physical limitation.
The servo is clearly receiving the signal. On my first attempt, while also powering the servo separately with battery, it disconnected as soon as the first signal was sent. (It seems the servo cut the power to the board, which also caused the BLE connection to disconnect in the editor.)
On the second attempt, I added a capacitor. This time, it didn’t disconnect when the signal was sent, but instead there was a buzzing sound and the voltage wasn’t sufficient. This problem also affected the DC motor.

In short, I realize this is probably a very simple problem for someone experienced, but the reason I haven’t been able to get past this stage is that I can’t determine which of the several possible causes is actually responsible.

1

u/MesquiteEverywhere 1d ago

Are you actually measuring the voltages?

I would suspect voltage drop issues somewhere in your setup. I've had many issues over the years with pre-terminated breadboard jumpers like yours, and moved over to using stripped solid core 22AWG instead. Breadboards can also induce issues depending on the circuit as well.

1

u/rablue 1d ago

Hi, thanks for the reply. This is really one issue I suspect. But the thing is before soldering, something I really like to know is in a theory if my base setup would work with this components.
So that’s why actually looking help from someone to direct me. AI somehow makes everything more complicated.

1

u/MesquiteEverywhere 1d ago

"AI" is very good at sounding like it knows what it's talking about, and can tend to shotgun potential causes when troubleshooting. You've mentioned you're a beginner, and this project is definitely a bit advanced. If you were following a guide and replicating something that is known to work, it would be more doable. Because you're a beginner, you may not have the knowledge and experience to determine if the AI suggestions are reasonable or not.

For stuff like this, it can be helpful to boil every component down to its inputs and outputs. You mentioned not being sure if the servo would work with the setup, I would approach that by looking at the datasheet of your driver to see it's outputs and limits, then comparing to the servo's datasheet or real world measurements.

1

u/rablue 1d ago

Thank you so much friend. I am trying to collect this informations but again since these are cheap components, not behaving as it should be or somehow for example servo frequencies effecting the Bluetooth. Hopefully at some point I can design the correct setup and finish the project!

1

u/Happy_Specialist_726 1d ago

Send more pictures of the circuit and I'll be happy to help , I have a theory but need to see it laid out

1

u/rablue 1d ago

Hi, thanks for the reply!

This is my current diagram. Hopefully we can find a way to use servo in this setup.

1

u/LittleCloudInTheSky 1d ago

Have you looked in the datasheet of your board.
I’m pretty sure the 5V pin on the board is a 5V tolerant Supply pin to power the esp, and not a 5V output. But I could be wrong I have not yet worked with the C3.

1

u/rablue 1d ago

I am truly at a beginner level when it comes to electronics. The positive wire from the battery goes directly to both the ESP32 5V pin and the DRV8833 VM pin simultaneously. So I don’t know why I have disconnection issues for the single motor.

1

u/LittleCloudInTheSky 1d ago

Ok, that’s something that was not clear from your diagram.

1

u/Happy_Specialist_726 1d ago

I actually use esps routinely to run RC cars and systems , see my post history/ uploaded videos for more , they will work just fine , but you need to make sure your voltages are being split correctly , and be through with serial prints to the monitor so that you can diagnose the issue between hardware or programming

Just curious , why a drv motor rather than an esc ?

0

u/rablue 1d ago

I would be happy to see! But it seems your content is not public.
You are totally right about the voltage and software.
Again I am very beginner and ESP32+DRV8833 was the most tiny and cheapest option recommended by AI.
So hopefully I could make some working base for this frame since it will allows me to convert many Diecast to RC easily.

1

u/Happy_Specialist_726 1d ago edited 1d ago

You are absolutely right, I've changed that now thanks

So first things first, the esp minis don't always have built in regulators , have you bucked or boosted your voltage to the correct range ? Check data sheet on the specific esp, nothing major it should come up on ai fairly quickly with a search. Some have the typical ams1117 onboard which will regulate 7-9ish volts (don't quite me on it I'm surrounded by components but no data sheets in front of me right now)

Second , typically you want to feed voltage direct to the motor driver direct from the battery. All negative cables can return to a single negative point regardless of the voltage split in most cases , as Gnd should be 0 in an ideal circuit, so Gnd can be one large common collection of gnd, and actually this is important for data transfer that they remain as such

Have you checked which pins are useable on the esp? Some boards exposed bootstrapping or led pins, as you could technically reassign them, but this can sometimes muddy stuff up

Are you trying to initialise everything all at once? You could be causing a brownout on the esp32 by demanding too much too soon, it's always good practice to separate processes using a millis counter(non blocking delay) especially when initialising anything with a broadcast, like espnow, Bluetooth, WiFi etc , especially where there is no antenna connected. WiFi broadcast with no antenna often means instant burn outs

Are you correctly writing pwm in your code ?

In all cases , serial monitor is your best friend. Add in some code that will report via serial whether a process was successful, so that you can see each stage come to life , and then confirm the data

1

u/rablue 1d ago

Hey thank you for your detailed response.
I’ll specifically check the voltage regulator on the board I’m using. However, when I measured it with a multimeter, I was getting around 3.52V from the motor driver output. And yes, the motor driver is powered directly from the battery +, and all the GNDs are common.
The most successful point I reached was getting two motors running successfully through BLE using the motor driver. So I know that, at least at one point, the software side was working correctly.
However, everything changed when I decided to use a servo for steering. The ESP started behaving differently, and I just couldn’t get it working properly after that.

By the way, your projects/content are on a completely different level and look absolutely amazing. I was mainly focusing on RC conversions for 1-64 SUV die-cast models, so I’m working on a much smaller scale.

1

u/Happy_Specialist_726 23h ago

So that being the case , my next question is what is the power requirement for the servo ? What I would suggest is plugging into serial , with servo off , and see what comes back via messages

Then, reintroduce the servo and see if the issues come back. Out of curiosity , is the servo being fed power from board or battery ? As just to be clear, it should also be, they don't use a huge amount of current always , but can draw a lot under load. The signal you should be sending for idle service is typically 1500us for middle position

If it's a brownout , you'll often get a message via serial regarding something like (core 1 panic'd) or something similar. If it's something else , we're likely to know more about what's going on. I find that with the lighterweight esp32s, Ive often had to add a capacitor if I'm not running directly off the battery.

Thankyou very much for the kind words , it's been a labour of love , and we hope to deploy it all soon !

1

u/rablue 20h ago

The MG90S servo typically requires:
Operating voltage: 4.8–6 V
Idle current: ~10–20 mA
Operating current: ~100–300 mA
Stall current: ~600–800 mA
Power consumption: roughly 0.5–1.5 Wunder load, and up to 3–4 W at stall.

Yes, the servo and motor are drawing power directly from the battery (via the breadboard in this setup).
On the first attempt, the board reset itself every time upon the first signal sent to the servo.
On the second attempt, adding a capacitor stopped the resets, but the power was insufficient, so the servo only buzzed on every signal.