Basic ESC R3 Example Code for Arduino

Introduction

A simple electronic speed controller for the T100/T200 Thrusters and M100/M200 Motors. This new R3 version is based on the BLHeli ESC design with upgraded features and performance!

Example Code

This example uses the Arduino Servo library to control the speed controller. This provides an update rate of 50 Hz and can use any pin on the Arduino board as the “servoPin”.

If you’ve never used Arduino before, we suggest checking out some tutorials!

If you power the Arduino before powering the ESC, then the ESC will miss the initialization step and won’t start. Power them up at the same time, power the ESC first, or press “reset” on the Arduino after applying power to the ESC. You may need to adjust the neutral signal delay time as well, depending on your setup.
#include <Servo.h>

byte servoPin = 9;
Servo servo;

void setup() {
	servo.attach(servoPin);

	servo.writeMicroseconds(1500); // send "stop" signal to ESC.

	delay(7000); // delay to allow the ESC to recognize the stopped signal
}

void loop() {
	int signal = 1700; // Set signal value, which should be between 1100 and 1900

	servo.writeMicroseconds(signal); // Send signal to ESC.
}