This is our attempt at making a arduino controlled electric skateboard.


For this project we need a brushless motor, a ESC that controlls the motor and capable of handling high currents, several LED´s, Arduino Uno board, two 3S LiPo batteries connected in series (22,2V), cables, and soldering material.

First of all, you need to know which motor to buy. In our case we have the Turnigy 245KV which is ideal for us as its a very powerfull motor that can handle our weight. Second of all, we need a controller for the motor. We have a YEP 120A ESC to controll the motor. We also need a power source, which are our 2x 3S Lipo Batteries 5000mAh. This batteries are the most used on DIY electric skateboard projects as they las very long and also produce a large amount of energy which we need for our motor.

YEP ESC 120A -

Turnigy 245Kv -

LiPo 3S 5000mAh -


First of all we are going to try the LED´s of the indicators for our Skate. Each led need a resistor which is connected to one leg of the LED, and the other leg to a pin in the Arduino board. We want 3 LEDS on each side to be activated by a Push Button.

We then connect the buttons for each led series. Our buttons are not regular push buttons which means they can only cut or let current pass. So, weve created a Loop which is always doing the same pattern, and when we press our button the leds light up, and when we unpress it, the leds turn off. Were basically cutting the ground port and uncutting it again and again. One leg of the pusbutton goes to the Arduino ground port, and the other leg goes to the PCB connected to all the LEDS.

Once we check that everything works, we solder solder each component to a PCB.


Our batteries need to be connected in series, so for this we create a connection for them. We need to connect the positive of one battery to the negative of the other one. And later, with the extra cables we have at each battery, both of them connected to the positive and negative cables of the ESC.

You can try to power up the ESC first with a font if you prefer just to test it out as you dont want be using your batteries 100% of the time when experimenting with arduino.


Once we have the batteries connected, we need to connect them to the ESC which also goes to the motor connections.

The ESC has 3 cables, Red, Orange and Brown. We need to connect the orange cable to port 9 (or any digital port), and the brown cable to a ground pin. DO NOT connect the center cable.


Ok, so now we have all the connections settled. We now need to make a support for the motor and also the gears for the wheel. We design the parts in solidworks and later on we send it to our 3D printer to start printing.

We have measured our own trucks and wheels which may vary from skate to skate. Our dimensions may not work for everyone.


With everything in place, we proceed to make the build in the skateboard. We use double sided velcro to fix the batteries, esc and arduino board into place.

First we used blue sellotape to adjust everything in place, and later on we used the velcro.

Step 7: CODE


// Creators: Mauro Gonzalez & Pere Serrat//

#include <Servo.h>  //Including the servo library
Servo esc; //Including the esc
int throttlePin = 0; //Creating the throttlePin variable
void setup() {   
esc.attach(9); //ESC is attached to digital pin 9
  // LEDS //   
//Defining each port for each LED, and putting them as an output
pinMode(7, OUTPUT);   
pinMode(6, OUTPUT);   
pinMode(5, OUTPUT);
 pinMode(4, OUTPUT);   
pinMode(3, OUTPUT);  
 pinMode(2, OUTPUT);
 void loop() {
 int sensorValue = analogRead(A0);  // Analog pin of the potentiometer into arduino A0 pin
 Serial.println(sensorValue);  //Print us the value 
int throttle = analogRead(throttlePin); //Giving it the throttle value
throttle = map(throttle, 0, 1023, 0, 179); //Mapping the MIN and MAX of the potentiometer with its rotation angle
esc.write(throttle); //Giving the ESC the signal of the potentiometer to regulate the power that it provides to the motor
 // LEDS //   
digitalWrite(7, HIGH); digitalWrite(4, HIGH);   // turn the LED on (HIGH is the voltage level) 
 delay(100);                       // wait for a second  
 digitalWrite(7, LOW);   digitalWrite(4, LOW); // turn the LED off by making the voltage LOW  
  digitalWrite(6, HIGH);   digitalWrite(3, HIGH); // turn the LED on (HIGH is the voltage level)   
delay(100);                       // wait for a second   
digitalWrite(6, LOW);     digitalWrite(3, LOW);// turn the LED off by making the voltage LOW  
  digitalWrite(5, HIGH);   digitalWrite(2, HIGH); // turn the LED on (HIGH is the voltage level)   
delay(100);                       // wait for a second   
digitalWrite(5, LOW);    digitalWrite(2, LOW); // turn the LED off by making the voltage LOW   
Wheels Contest 2017

Runner Up in the
Wheels Contest 2017

Arduino Contest 2017

Participated in the
Arduino Contest 2017