• Welcome to RCTalk! 🚀

    Join the #1 RC community where hobbyists connect, share, and get expert advice on RC cars, trucks, boats, drones, and more!

    • Friendly & passionate RC enthusiasts
    • RC tips & troubleshooting
    • Buy, sell & trade RC gear
    • Share builds & upgrades

Control ESC with Microcontroller directly?

This site may earn a commission from merchant affiliate
links, including eBay, Amazon, and others.
What the heck is going on here?
Hey — the original intent of this thread was simply to inquire about signal characteristics for a specific setup I’m working on.

Unfortunately, the conversation got a bit sidetracked with off-topic replies and reactions that don’t really contribute to the technical discussion.

Happy to clarify any specifics if you're interested in the actual signal behavior I’m troubleshooting.
 
I appreciate your perspective, but I don’t quite agree with the characterization. I’ve stayed on topic and asked a focused, technical question — nothing more.

I’m not expecting everyone to have the answer. The thread’s here for those who’ve worked on similar custom setups and might recognize the issue.

So let’s leave it open for others who might have direct experience. That’s all I’m after.
 
Hi everyone,

I'm building an RC car (1/8 probably). I bought a 120A ESC by Surpass Hobby and wanted to control it with a Raspberry Pi.
Does anyone have experience with this type of control? I don't want to use the generic joystick Transmitter with the wheel, I want the Raspberry Pi to directly give commands to the ESC through the 3-pin BEC connector.


Any tips appreciated!

View attachment 243734


It wants to see 1000us to 2000us pulses, (microseconds), at a 50hz refresh rate, though that's pretty flexible, the key is the pulse length. Many ESC'S "Initialize" by looking for a full sweep from min to max range since transmitters may not hit exactly 1000 and 2000, or can be set to further endpoints.

1500us will be idle, 2000us will be full throttle, 1000us will be full reverse or full braking depending on esc setup.

This is also how servos are controlled.

Some ESC's can calibrate to either endpoint as min/max.

I made an Arduino drive an ESC to run a brushless bump box- thread.
 
Thank you lots @tudordewolf . This is exactly what I was looking for. Will definitely check out your Arduino driver :)

Glad to help, I remember how buried that information was when I sought it.

There's probably a servo control library you could incorporate into your code for simplicity, same PWM logic.

You could even run the Pi off the BEC's +5V line.
 
Glad to help, I remember how buried that information was when I sought it.

There's probably a servo control library you could incorporate into your code for simplicity, same PWM logic.

You could even run the Pi off the BEC's +5V line.
Hell yea it's buried lol.
Unfortunately the BEC gives 6.1V, but it could be possible with an extra converter.
Even then, Pi can draw a lot of power when transmitting video and communicating with the controller.
 
The first thing I did was ask chatGPT and it said 50 Hz and some arbitrary amount of microseconds which it pulled out of its donkey.
I am trying to build a long range, video transmission RC, which is why I'm inquiring about this signal.
Do you have an oscilloscope? That should be able to tell you I think.

Nevermind. I see our electronics guru has entered the conversation 😁
 
Hey — the original intent of this thread was simply to inquire about signal characteristics for a specific setup I’m working on.

Unfortunately, the conversation got a bit sidetracked with off-topic replies and reactions that don’t really contribute to the technical discussion.

Happy to clarify any specifics if you're interested in the actual signal behavior I’m troubleshooting.
We never got any real info and you were quick with an attitude.
I’m still waiting and genuinely interested in this specific set up.
 
Hi everyone,

I'm building an RC car (1/8 probably). I bought a 120A ESC by Surpass Hobby and wanted to control it with a Raspberry Pi.
Does anyone have experience with this type of control? I don't want to use the generic joystick Transmitter with the wheel, I want the Raspberry Pi to directly give commands to the ESC through the 3-pin BEC connector.


Any tips appreciated!

View attachment 243734
I see @tudordewolf already answered.

You definitely want an oscilloscope or something you can visualize and measure the pulses. In theory it's exactly as described but the actual pulse and response can vary a bit depending on what it's driving. i.e. no all ESC, servos or what ever are calibrated the same. You may also need to adjust the min/max pulse a bit, so be prepared for some tuning.

The ESC provides the power for the system. If it's a 5A BEC @ 6V, that's 30 watts. It should be fine for an Arduino. The high output BECs are usually for driving lots of high-torque servos. Some of them can draw 7-8A at 8V.

One thing to look at is to make sure you Arduino I/O voltage matches what is expected by the ESC signal voltage. I believe that some Arduino can have 3.3.V other's have 5V. Most BECs are 4+ volts, but I don't know what the signal voltage is coming from the receiver?

Very mature @Littlemotor
Anyways, closing this thread and opening a new one due to your passive-agressive comments overcrowding the thread.

Some direct, non-passive aggressive, feedback here. Take it if you like or you can tell me to get lost. Either way is good.

This is not a tech support line where you file a ticket and someone answers your question. This is a community and you get crowd sourced answers.There will be rambling, there will be questions, there will be jokes. None of that is meant to put you down. If anyone was going to put you down, they would simply tell you that.

Everyone here is cool and they genuinely want to help people. You will have a much better time if you can roll with it.
 
I see @tudordewolf already answered.

You definitely want an oscilloscope or something you can visualize and measure the pulses. In theory it's exactly as described but the actual pulse and response can vary a bit depending on what it's driving. i.e. no all ESC, servos or what ever are calibrated the same. You may also need to adjust the min/max pulse a bit, so be prepared for some tuning.

The ESC provides the power for the system. If it's a 5A BEC @ 6V, that's 30 watts. It should be fine for an Arduino. The high output BECs are usually for driving lots of high-torque servos. Some of them can draw 7-8A at 8V.

One thing to look at is to make sure you Arduino I/O voltage matches what is expected by the ESC signal voltage. I believe that some Arduino can have 3.3.V other's have 5V. Most BECs are 4+ volts, but I don't know what the signal voltage is coming from the receiver?



Some direct, non-passive aggressive, feedback here. Take it if you like or you can tell me to get lost. Either way is good.

This is not a tech support line where you file a ticket and someone answers your question. This is a community and you get crowd sourced answers.There will be rambling, there will be questions, there will be jokes. None of that is meant to put you down. If anyone was going to put you down, they would simply tell you that.

Everyone here is cool and they genuinely want to help people. You will have a much better time if you can roll with it.
Exactly. Should’ve seen the bullshiit PM he sent me that I was not able to even reply to because he locked it… I know everything I need to know about this guy, and have no use for him.
 
Devil's advocate from the guy who answered the question: I can see where OP is coming from.

They asked a simple question: "what's the protocol for driving an ESC?" - that's perfectly reasonable for a hobby forum.

They were polite with responses that immediately took a critical and dismissive tone and talked down to them despite being unable to actually answer the question asked. Suggesting that they were wrong for not using a generic radio / receiver, that they were "reinventing the wheel," etc.

They didn't get an actual answer until Page 2, twenty-five replies later.
 
Last edited:
This is really interesting to me. I tried to do something similar to this years ago. Made it as far as reading and interpreting receiver output with an old O scope from college but couldn't figure out how to properly recreate it.

I was attempting to make long range transmission with old CB equipment. After several failed attempts I came to the conclusion I simply wasn't smart enough. I'd sure like to read more about how you accomplish this goal.
 
Devil's advocate from the guy who answered the question: I can see where OP is coming from.

They asked a simple question: "what's the protocol for driving an ESC?" - that's perfectly reasonable for a hobby forum.

They were polite with responses that immediately took a critical and dismissive tone and talked down to them despite being unable to actually answer the question asked. Suggesting that they were wrong for not using a generic radio / receiver, that they were "reinventing the wheel," etc.

They didn't get an actual answer until Page 2, twenty-five replies later.

Sure I can see that, but I didn't see it as passive aggressive?

Back to this is not tech support. I know that people will ask questions, my friends will give me crap and it's more of conversation than an direct answer sometimes.

It is what it is and it's better than most forums and even tech support. Because Spektrum tech support wouldn't couldn't give the answer you gave.
 
Devil's advocate from the guy who answered the question: I can see where OP is coming from.

They asked a simple question: "what's the protocol for driving an ESC?" - that's perfectly reasonable for a hobby forum.

They were polite with responses that immediately took a critical and dismissive tone and talked down to them despite being unable to actually answer the question asked. Suggesting that they were wrong for not using a generic radio / receiver, that they were "reinventing the wheel," etc.

They didn't get an actual answer until Page 2, twenty-five replies later.
No, I was asking questions as I was genuinely interested in WHY the beaten path was not what he was after. Jerold replied perfectly to what transpired. The guy actually took offense to being asked ANYTHING, then literally began going after me because of his piss-poor, and holier than thou attitude. He then decided to be PASSIVE AGGRESSIVE when he came at me in PM’s and talk down to me in a message that I could not even respond to because he locked it. That’s like a child sucker punching someone, then running away. 🙄🤷🏻‍♂️ Wtf…
 
Last edited:
No, I was asking questions as I was genuinely interested in WHY the beaten path was not what he was after. Jerold replied perfectly to what transpired. The guy actually took offense to being asked ANYTHING, then literally began going after me because of his piss-poor, and holier than though attitude. He then decided to be PASSIVE AGGRESSIVE when he came at me in PM’s and talk down to me in a message that I could not even respond to because he locked it. That’s like a child sucker punching someone, then running away. 🙄🤷🏻‍♂️ Wtf…

One less person that you'll need to help in the future.
 
No, I was asking questions as I was genuinely interested in WHY the beaten path was not what he was after. Jerold replied perfectly to what transpired. The guy actually took offense to being asked ANYTHING, then literally began going after me because of his piss-poor, and holier than thou attitude. He then decided to be PASSIVE AGGRESSIVE when he came at me in PM’s and talk down to me in a message that I could not even respond to because he locked it. That’s like a child sucker punching someone, then running away. 🙄🤷🏻‍♂️ Wtf…
I messaged you directly because your replies have been irrelevant to the original question and your constant emoji reactions are nothing but passive-aggressive noise.
You haven’t added anything useful to the thread — only cluttered it with side commentary where real technical input could have been. This is exactly why the message lock exists, and I’m glad it does. You seem more interested in taking potshots than in actually contributing, and it’s not a good look.
Anyway, that’s my final word on it. The thread will stay open for people who actually have experience to share. You can stop being weird now.
 
I messaged you directly because your replies have been irrelevant to the original question and your constant emoji reactions are nothing but passive-aggressive noise.
You haven’t added anything useful to the thread — only cluttered it with side commentary where real technical input could have been. This is exactly why the message lock exists, and I’m glad it does. You seem more interested in taking potshots than in actually contributing, and it’s not a good look.
Anyway, that’s my final word on it. The thread will stay open for people who actually have experience to share. You can stop being weird now.
Then stop mentioning my name. Kick rocks dude.
 
Last edited:
Back
Top