Home        Store        Docs        Blog

Arduino and BESC30-R1

(Nate Cordova) #1

Hello everyone,


I had a question about the basic ESCs that come with the T100 thruster: how do you arm it? I have been trying to pass it a number of PWM signals from an Arduino, but I can get any beeps or lights out of it.

Is there some documentation for the ESC (BESC30-R1)? I can’t find anything on the bluerobotics site, or on the code sharing page that the esc links to on its page in the store.

And lastly, what is your power recommendations for just testing a single thruster? A car battery?

Thank you,


(Rusty) #2

Hi Nate,

Sorry we don’t have any documentation posted publicly yet. We’ve been working on the documentation and it is located here right now: http://docs.bluerobotics.com/besc/.

You arm it by sending a pulse of 1500 microseconds. Using the Arduino, I would recommend using the servo.writeMicroseconds(1500) function so that you can ensure you are sending exactly 1500.

A car battery will work great for thruster testing. Other options include lithium polymer batteries (3s, 11.1V) or a DC power supply.

Let us know if you are able to arm the ESC.



(Nate Cordova) #3


Thank you for pointing me to that documentation. We are going to go arm the ESC and try the code that was on the website to see if turn the motor in a little bit. I had another question for you though:

We were testing last night and we powered the +/- cables of the ESC with +/-12 volts as that was the recommended voltage supply and we took a volt meter to the power and ground cables of the PWM cable and that too was reading 12 volts. I don’t think that is supposed to happen and could damage some arduino boards. Is that an ESC defect? Or is it supposed to read 12 volts?

After we found this out, we stopped testing for the night. We did though try taking a voltmeter from the signal cable of the PWM and ground and found that to be very small, which is to be expected.

Any additional help would be great,


(Rusty) #4

Hi Nate,

That’s definitely not supposed to be the case. Can you tell me which wires you were measuring? They should be ground, +5v, and signal. The middle pin does not need to be connected, so you can remove that pin or cut the wire it that’s the one that is wrong.

Let me know. If it’s defective we’ll send you a new one.


(Nate Cordova) #5

Yes, I was measuring the red and brown/black wire of the PWM cable set. And yes I did remove the red middle wire. I didn’t know that the board was actually powered by the +/- 12 volt input.

(Rusty) #6


Alright. Is it working okay now? Thanks for pointing out that issue. I’ll have to test a few of ours to see if there is a defect.


(Nate Cordova) #7


yes, it is working. I am just not connecting anything to the red wire in the PWM female connecter. We tested the T100 today against the seabotix btd-150 and it did very well:) we are very pleased and will be ringing you guys for a large order of thrusters soon.


(Rusty) #8


Great! I’m glad to hear the testing went well. I’m sorry the ESC had some issues, but glad that it’s working! We originally designed our performance specs around the BTD-150 so it should be very comparable.


(Duane Engle) #9


I’m interested in running the Basic ESC with an Arduino, using the I2C bus instead of PWM. That should give me a head start on using the BlueESC. I’ve been trying to figure out the I2C command structure . Is it published yet?

Also, I’m having trouble finding the source code for the BESC-R1 firmware on Github. I could figure out the command set from that, if I could find the right file. Thanks!

(Rusty) #10


The Basic ESCs have I2C capability but you have to access the pads on the board directly. The Basic ESCs have the stock protocol that is in the tgy firmware. We have not yet updated it for the protocol used on the BlueESC. We would like to do that eventually, but it has not been done yet.

If you are interested in reprogramming the ESCs and changing the command structure, you need an AfroESC Programmer.


(Duane Engle) #11

Thanks, Rusty,

I have looked at the code in the tgy firmware, and if I’m not mistaken it needs to be modified for forward/reverse operation.

I may take a shot at doing that, but I’d like to start a look at the BESC-R1 source code. I can’t seem to spot the right file on Github. Can you point me to it?


(Rusty) #12


The Basic ESC uses the “afro_nfet.inc” configuration file. The firmware has the settings specified in “tgy.asm”. The forward/reverse operation is triggered by “.equ RC_PULS_REVERSE = 1”.



(Jeff) #13


Per your reply to Duane “We have not yet updated it for the protocol used on the BlueESC. We would like to do that eventually, but it has not been done yet.”

Has this been done? Is is possible to use the same I2C protocol on the BlueESC and the AfroESC?