Introduction: Electric Skateboard V2.0: Smartphone Controlled

Picture of Electric Skateboard V2.0: Smartphone Controlled

Here's a DIY electric skateboard that is very easy and fun to ride! This project was based off our previous Instructable, the electric longboard. However, the electric longboard lacked some key features, like a built-in charging system, a proper on/off switch, and a Bluetooth smartphone controller. The electric longboard was also too large (the deck was 45" long!) and thus it could not be used as an every-day commuting device. This skateboard has all of those features, and it's also way shorter, which makes it an even better option for commuting.

This skateboard has a maximum speed of 30km/h, and a range of 10km when going full speed. You can get an even greater range if you go slowly, because this electric motor is more efficient at lower speeds. The acceleration is good, and the motor has enough torque to handle moderate hills.

The design of the drive system has been changed slightly. The plastic gear has been replaced with an aluminum one, a washer has been removed, and I also changed the design from using 90mm flywheels, to smaller, more readily available, 83mm flywheels.

This skateboard has regenerative braking, can be programmed with different acceleration rates, and can go backwards. I'm also going to show you how I built my prototype Bluetooth controller, which is able to control the throttle, and display battery voltage via smartphone. If you don't want to build your own controller, you can buy a professional, ready-made version from Current Control Systems, which is my personal store! (It will be available mid-September)

Step 1: Materials

Picture of Materials

Here's a list of the parts:




  • Skateboard deck
  • Truck spacers (optional)

Total Cost: ~$350

Where did I get our parts from?

High demand for parts:

The parts I have listed are in very high demand right now. If a part is in back-order or simply out of stock, you may need to choose a suitable replacement instead. Leave a comment on this Instructable if you are unsure about the specifications of a replacement part.

Step 2: Drill the Gear and Washer

Picture of Drill the Gear and Washer

The first step is to drill some 1/4" holes through the 36 tooth pulley and 2" washer using a drill-press. I used the diagrams above as guides by printing them out and gluing them to the gear and washer. While drilling, I applied WD-40 to the hole to make drilling easier. These two parts are going to be required for the next step.

Step 3: Assemble the Wheel

Picture of Assemble the Wheel

Next up is modifying one of the wheels by attaching the 36 tooth pulley to it. Take one of the flywheels off, and place the 36 tooth pulley into the wheel, with the pulley hub facing the wheel. You may want to place some spacers/washers between the pulley and the wheel, but it's optional.

Align the pulley holes with the holes going through the flywheel, and then thread the 1/4" by 2.5" bolts through the pulley and the flywheel. You're going to need a lot of torque the first time you thread these bolts. I only used four bolts because I lost two of them. You should use 6 bolts.

The bolts should stick out the other end of the flywheel. Go ahead and put the 2" washer on the ends of these bolts, then secure the washer with 1/4" nuts. This wheel assembly essentially pancakes the wheel between the 36 tooth pulley and the washer. It's a very sturdy design.

Step 4: Attach the Motor Mount

Picture of Attach the Motor Mount

To attach the motor to the trucks you're going to need a motor mount. Cut the following mount out of 1/4" aluminum. You can use a jigsaw, provided that it has the correct blade. Use a drill press for the holes.

This mount should be welded approximately 30mm from the start of the wheel axle (see video in introduction). I didn't have a welder, so I had someone weld it on for $20. You should dry fit the components on this motor mount (before welding it on) in order to find out what angle you need the motor mount to be at. You do not want the motor mount to scrape your board, or the ground.

Step 5: Attach the Motor

Picture of Attach the Motor

Attach the motor to the motor mount by using M4 by 12mm bolts, and M4 washers. The holes I drilled in the motor mount are a tiny bit larger than the bolts; this is so I can apply a little bit of pressure to the belt if it is loose. If your belt turns out to be really loose in the next step, you can make these motor mount holes larger.

Step 6: Run the Belt Between the Pulleys

Picture of Run the Belt Between the Pulleys

In this step, I'm going to be running the belt between the motor and the wheel. Start by putting two of the included washers on the shaft of the trucks (where the wheels should go). Then run the belt between the 36 tooth pulley on the wheel, and the 14 tooth pulley. Slide the wheel on the shaft of the trucks, and then slide the 14 tooth pulley on the shaft of the motor.

Attach the wheel to the trucks using two washers and a nut that came with the trucks. You may need to temporarily remove 2" washer from the wheel in order to do that.

Using the two setscrews that came with the 14 tooth pulley, secure the pulley to the motor shaft. You may need to file the shaft into a square in order to get a good grip. Use thread-locking fluid on all bolts/nuts/screws.

This drive system is way more durable than our old drive system on our electric long-board. The aluminum pulley is the major change; it doesn't crack like the plastic did on the old drive.

Step 7: Attach the Trucks to the Board

Picture of Attach the Trucks to the Board

Your trucks should have come with 8x 3/16" nuts and bolts. Use these to secure your trucks to your deck. I used some spacers just to get a little bit more clearance.

The deck I chose is a skateboard deck where I simply drilled new holes for mounting the trucks. I also reinforced the deck with fiberglass, which made it really heavy, yet strong. If you're going to do this project, choose a deck that is mostly flat, and has plenty of clearance.

Step 8: Build the Electronics

Picture of Build the Electronics

The electronics for this skateboard were assembled according to the diagram above.

The batteries were hooked up in series (positive to negative) to produce the 6s or 22.2 volts needed for the ESC. The ESC was also hooked up in parallel to a T-Plug, which is located outside the case, and is used for charging the battery pack. In theory, you can charge the batteries using just the T-Plug, but the cells of the battery pack discharge at different rates, so I used a 3s to 6s converter to hook up the balance connectors in series as well. The 6s balance cord also located outside the case, and it is accessible by opening up a plastic lid.

I also removed the fan from the ESC because it was not needed; this significantly reduced the height needed for the enclosure.

The batteries, ESC, and motor are hooked up using 4mm banana jacks and 10 AWG wire. You're going to have to solder the banana jacks to the appropriate pieces of wire in order to make this circuit. Make sure to insulate the banana jacks with heat-shrink tubing!

In order to turn the ESC on/off without having to take off the case, I decided to dissemble the ESC switch, and wire it up in parallel to a larger toggle switch, which is located on the side of the enclosure. If I needed to turn off the board in an emergency, I could just kick the switch with my foot in order to turn the board off.

For the receiver, you can either use the GT2B 2.4Ghz receiver by connecting it to the ESC via channel 2, or use the Bluetooth Skateboard controller which is explained in the next step.

Step 9: Prototype Skateboard Controller

Picture of Prototype Skateboard Controller

Here's how to make a prototype Bluetooth Skateboard controller. My controller is based off the AtMega328, which is the same chip that the Arduino Nano uses. What you see above is the equivalent circuit, if you were to build this circuit, program my code, and download my Android app, you'll have you own electric skateboard controller.

Here are all the materials:

  • Arduino Nano
  • HC-06 Bluetooth Serial Module w/Breakout
  • 2x 220 ohm resistors
  • 47k ohm resistor
  • 10k ohm resistor
  • 2 LEDs
  • Perfboard
  • Male and Female JST connector

Building the controller:

Solder the components according to the diagram above. The three pin connector is a male connector, it connects to the ESC. Your ESC should have a BEC (Battery Eliminator Circuit). This circuit will provide the 5-6 volts needed to power the controller. Program the Arduino with the code attached to this step. The LED on pin 13 will light up when there is a connection from the HC-06.

The circuit can also measure the battery voltage via the JST connector to the right. Hook this JST plug to the positive and negative of the ESC to measure the voltage.

The app for this controller is Android only! It's really simple to install, just open this file directly with your smartphone, and the app should install. The file is .apk format, which is an installer for Android phones.

The app is really easy to use, just pair your HC-06 to the device, refresh the list, connect to the HC-06, and then use the slider to control the throttle of the board. It's very similar to the GT2B, but you may need to change the settings on the ESC to match up with the max, min, and neutral throttle of the receiver.

If you don't want to build your own controller, you can buy one from Current Control Systems. It will come with a professional app, more channels, and better battery voltage accuracy. Plus, you'll be supporting me!

Use the prototype Bluetooth skateboard controller and app at your own risk!

Step 10: Place the Electronics in a Case

Picture of Place the Electronics in a Case

To protect our electronics, I made a case out of fiberglass that was attached to the deck using 6x 1/4" bolts.

Our case had two conduit fittings, one for the motor wires, and one for the balance and charging connectors. I just found these conduit fittings lying around, and they served really well for keeping the inside dry. I drilled two holes for the conduit fittings, fed the fittings through, and secured them with the nuts. For the charger port fitting, I even glued a gift-card to the cap to act as a lid.

I also drilled a hole for the ESC toggle switch, and then secured the toggle switch to that hole using a nut. Now I can turn the board on and off using the switch, and charge the batteries through the charging port. The electronics were secured to the case with lots of Velcro. I used some sticky neoprene foam to form a tight seal between the fiberglass case and the deck.

If you are interested in how to make one of these fiberglass cases, here are the steps:

  1. Build a mould, I built one out of foam
  2. Stretch a thin layer of plastic over the mold
  3. Put 14oz. fiberglass over the mold
  4. Pour epoxy and disperse it enough to soak the fiberglass
  5. Throw it in a vacuum bag for 24h
  6. Take it out
  7. Bog the case
  8. Sand
  9. Paint the case
  10. Drill and insert the conduit fittings/switch

You don't have to make your case out of fiberglass, you can use plastic, acrylic, wood; almost anything to protect the electronics. I simply had lots of fiberglass!

Step 11: Charge the Board!

Picture of Charge the Board!

Charging the board is really easy! It's much easier than charging the old electric long-board. All you have to do to charge the board is connect a male T-Plug charging cable (that comes with the IMAX B6) and a 6s balance cable to the charging port, set the charger to 5 amperes, and charge away!

The charging speed is going to be limited by your charger, and the power-supply for your charger. In my case, the charging speed was limited by the charger's 50 watt power limit. If I had a 100 watt charger, I'd be able to charge the board at roughly twice the speed.

Step 12: Extras

Picture of Extras

In our attempt to build a second electric skateboard/long-board, I built a prototype deck with a built-in fiberglass case. The deck felt stable, but it unfortunately snapped during testing. I didn't want to spend any more time building decks, so I took an old skateboard deck, reinforced it with fiberglass, and used it for this project.


Included with this step are the 3D models for the washer and large gear. I used these models to make the drawings for the Instructable and video. You can open these files with a CAD program like AutoCAD or Inventor.

Final thoughts:

This board is awesome! It certainly turns heads when I ride down the street! Our next project is an electric longboard/skateboard/pennyboard, which utilizes some cool CNC parts. For that board, I'm planning to improve the charging system even further, use a more powerful motor, and make the board lighter and more compact.

If you liked this project, check out my blog for more info, and more cool projects!

I've spend a long time making this project and Instructable, so if you have enjoyed this and/or find it useful, take a second to vote for me in the Remix 2.0 contest!

Step 13: Version 3.0: the Banana Board

Picture of Version 3.0: the Banana Board

Shortly after completing version 2.0 I began working on version 3.0. I nicknamed this board the "Banana Board" for obvious reasons. It features a CNC cut deck, compact design, and a longer range (while sacrificing top speed). The board weighs 5 kg, or 11 pounds, making it the lightest board I have made so far. I'll be using the Banana Board for my daily commute and as a test-rig for my Bluetooth smartphone controller (available mid-September).

I'll be making a tutorial for this board, along with a tutorial for a chain-drive electric skateboard, so, so stay tuned!


Nick_Tesla (author)2016-06-28

I noticed you are also an arduino nano (essentially) and software serial to control your longboard. Have you experienced any glitches while trying to brake? Mine seems to be having a conflict between the software serial library and the servo library. It works fine when I use a normal radio.

It could be a difference in ESCs , or maybe my problem isn't what I think it is, but I was wondering if you encountered it.

ritesht93 (author)Nick_Tesla2016-07-30

Hi there.

Im new to RC and electronics.

Can you kindly tell me what is the 3 terminal device that is connected to arduino and bluetooth?

is it a MOSFET or 7805 5v regulator or something else?


EladH2 (author)ritesht932017-12-18

It's the connector to the ESC

I am almost certain it is a 5V regulator. He is using this because he essentially built his own arduino. If you use an arduino Nano like the diagram describes you wont need this.

Also for anyone looking at my comment, I figured out my issue wasnt any mistake on my side at all it was a faulty XBEE chip.

pheelipb (author)2016-07-21


Can anyone tell me what this is thing that's connected to the Arduino and Bluetooth?

EladH2 (author)pheelipb2017-12-18

as fabian287 said, it's the connection to the ESC

PingalaS (author)pheelipb2016-09-02

I gues its a switch, but I'm not sure

setrak12. (author)pheelipb2016-08-11

i think it is a 3v reg ..bcs the bluetooth does work on 3.3

fabian287 (author)setrak12.2016-08-12

its the 3pin esc connection

ritesht93 (author)pheelipb2016-07-30

even i want to know the same? .. It seems it is 1 of these 2:

7805 5v regulator or a MOSTFET?

Any1 please reply

TimothyG55 (author)2016-09-22

Did any of you have a problem with esc? For some reason my throttle doesnt work. Even though my servos do work when i hook them up

EladH2 (author)TimothyG552017-12-18

It's possible you're using a buggy code.
The original code has a mistake on line 5:

SoftwareSerial mySerial(6, 5);

SoftwareSerial mySerial(5, 6);

Hope I was helpful!

DragosC13 (author)2017-05-16


I have a problem getting the bluetooth module to work.

I can pair the phone to the HC-06, and I can connect it, and the red light from the HC-06 board stops blinking.

But when I try to send any data, it does nothing. I tried to use several Bluetooth apps to send commands to the Bluetooth module, but nothing works.

Do you have any idea what the problem is or how I can debug it further?

Thank you.

EladH2 (author)DragosC132017-12-18

I found the solution!
The original code has a mistake on line 5:

SoftwareSerial mySerial(6, 5);

SoftwareSerial mySerial(5, 6);

Hope I was helpful!

Jasonbacon (author)2016-08-09

Can I use caliber 2 trucks with different wheels (I believe they are 90mm)

imitt12 (author)Jasonbacon2017-10-26

You'd need to have a proper motor mount for the Caliber IIs, because of that D-shaped hangar. This one ought to do it.

Jasonbacon (author)Jasonbacon2016-08-09

could I do this on a longboard as well?

Jasonbacon (author)Jasonbacon2016-08-09

All of the trucks and wheels I have are longboard stuff, ( the trucks are 50 degrees )

KekBoi (author)2017-08-31

Hi, this instructable look very nice

but i have one thing i didnt understand here, why would you use an ESC of 150A

when the electric motor Const Amps is 60A? aint it an overkill for this, wouldnt it work with an ESC of 60A?

i am new to this so i might didnt understand it.

if anyone can explain this to me it would be really appriciated!

Thanks in advance!

imitt12 (author)KekBoi2017-10-26

You always use an ESC of higher amp rating than your motor, so you don't burn them both out at top speed. The 120A rating on the ESC is continuous amperage - it can run at that for a long time, but it'll be more demanding on the electronics, and it'll get hot really quick. However, if you're running it at 60A, that's half the current, so it'll last a lot longer and be happier doing it. So, a 120A ESC can comfortably run a motor at 60A all day, and last forever, whereas a 60A ESC can run at 60A continuously, but will start to heat up a lot faster than the 120A one, and will eventually burn out. It's like running your car's engine at redline all the time. Yes, it can do it, but you'll eventually destroy it if you run it too long.

ChristianH43 (author)2017-05-11

Hello - when i tried to upload the arduino code, it said " "#include <wiring.h>""

anyone who can help solve this? What i read is that others have had same problems, and is there someone who can help?

I'm not sure, but in my little expirience with Arduino, I think that you would need to download and include the Arduino library on your computer, this is a very simple problem to solve, and just look up "Arduino Wiring Code Library" and follow instructions. I hope this helps!

JohnH858 (author)2017-04-09

Do you know how I could do this build without a wireless controller? I want to put this build inside of a childs push kart (plasmacar) and would like to be able to accelerate from a pedal or handle. Any help is appreciated

scls (author)JohnH8582017-04-24

I think you can do this with a simple servo tester

HonglinH (author)2017-02-08

Landwheel electric skateboard had made the truth, more stable and safe, maybe you can try.

AldenD (author)2015-12-29


I'm working on the bluetooth control with smartphone and I ran into a problem.

So I used your V2 of the arduino and .apk but did not want to use the Voltage reader.

I only use pins D9 - D6-D5 - GND - Vin. I think the soldering was done right. But the board doesn't respond.

I got an Arduino uno R3. Hc-05 module.

Do i need to make changes to the arduino program for this to work?

Thanks !

AldenD (author)AldenD2015-12-30

I got it to work. For the people intrerested. => bottom part of his electronic circuit is not necesarry. so you only need a bluetooth module. the 3 pin connector for your esc signal wire and an arduino.

the code you should use is (you will have to download the PWMServo library (google it)):

#include <PWMServo.h>

#include <SoftwareSerial.h>

#include <Arduino.h>

SoftwareSerial mySerial(5, 6);

PWMServo myservo;

String inString = "";

unsigned long startTime;

unsigned long otherTime;

int prev = 150;

float vPow = 5;

float r1 = 47000;

float r2 = 10000;

int voltcheck = 25;

double b = 85; //Braking

double n = 90; //Neutral

double m = 120; //Accelerate

void setup() {

pinMode(13, OUTPUT);



digitalWrite(13, LOW);


void loop() {

if (mySerial.available() > 0) {

int inChar =;

if (isDigit(inChar)) {

inString += (char)inChar;


if (inChar == 'n') {

int x = inString.toInt();

if (x <= 180){



inString = "";


if (inChar == 'm') {

digitalWrite(13, HIGH);


startTime = millis();



if ((millis() - startTime) > 210) {

digitalWrite(13, LOW);





fabian287 (author)AldenD2016-08-11

hello i tryed to use your sketch but i became a error:

C:\Users\Fabian\Documents\Arduino\libraries\PWMServo\PWMServo.cpp:2:20: fatal error: wiring.h: No such file or directory

#include <wiring.h>


compilation terminated.

exit status 1

Fehler beim Kompilieren für das Board Arduino/Genuino Uno.

can you help me :D

tinab4283 (author)fabian2872017-01-02

Hi, I got the same error.
Once I removed the first line, " #include <PWMServo.h> " that error went away. however, a new error pops up that I haven't been able to figure out.

smcneese (author)AldenD2016-02-26

Can you send me the android app or let me know of another compatible app. I cannot get the one on this site to install.

hitsuinakamura (author)AldenD2016-01-02

Hi AldenD, the bottom part that we don't need is the resistors, leds and the connection to the jst right? that means that we can only control the throttle with no voltage detection if im correct? thanks

AldenD (author)hitsuinakamura2016-01-02

Correct, only throttle control and no working voltage meter inside the app.

you should only connect pins to Vin( I got my bec on the 5V though) , Gnd D9 D6 D5 pins on your arduino

hitsuinakamura (author)AldenD2016-01-05

I got an error and how do I fix this? Do I need to download #include <Arduino.h> library or I have downloaded the wrong PWMServo zip?:

Arduino: 1.6.7 (Windows 10), Board: "Arduino Nano, ATmega328"

Build options changed, rebuilding all

C:\Users\User\Documents\Arduino\libraries\PWMServo\PWMServo.cpp:2:20: fatal error: wiring.h: No such file or directory

#include <wiring.h>


compilation terminated.

exit status 1

Error compiling.

This report would have more information with

"Show verbose output during compilation"

enabled in File > Preferences.

AldenD (author)hitsuinakamura2016-01-05

It is indeed a problem with the pwmservo.h.

You should download the one on this webpage:

the second download link:

Download Paul’s version 2 library with Teensy, Teensy++, Mega, and Sanguino support. This version also supports Arduino 1.xx.

The program is running great with me. So everthing should be solved after you have the good library. Make sure you copy pasted correctly btw

hitsuinakamura (author)AldenD2016-01-06

Now it says done compiling. No wonder I pick the first link of PWMServo. Thanks bud, now I will try to upload it and testing it.

Hi, I have built and try the code. I noticed that the code that u do;

double b = 85; //Braking

double n = 90; //Neutral

double m = 120; //Accelerate

are to scary for me to ride the board. Maybe because of I am using Enertion R-SPEC motor and VESC. Does it means if I put the values a bit low or high will change the setup? and I am not sure what value is minimum or maximum for the purpose of trial and error. Anyway, thanks dude.

AldenD (author)hitsuinakamura2016-01-06

So the code did work right?

I'm not an expert first of all. But what I understand is that the code just gives a the number of the slider (of the app) to the ESC. I'm not quite sure what the numbers 85-90-120 do exactly.

BUT you should not try to program this code. You should change your settings of the ESC. Can you connect the VESC to your computer and change the throttle curve.

I'm using a Alien power system ESC that has the settings soft/smooth acceleration and quadratic throttle curve (gradually increasing the throttle when pressed.)


JesseS68 (author)2016-02-16

Where did the T-Plug come from? I don't have that on my ESC (, and am not sure if/how to add that.

JosephA45 (author)JesseS682016-12-10

i feel like this guy is just not answering questions... already many mistakes and omissions on this instructable... the balance ports are wrong on the diagram... no mention of the t plug... no instructions on how to charge these dangerous batteries for people with no experience... no mention of a series connector...

NEERAJN9 (author)2016-11-26

Can I use any brushless outrunner motor?

Is there a Min or Max kv requirement while selecting one?

Will 4000kV will be dangerous to use in a e-longboard?

samn65 (author)2016-09-07

where is the link for the program for the regenerative braking for esc.

OffirS (author)samn652016-11-26

yeah, would be graet to know how you configure the ESC with the program card

TahaB10 (author)2016-10-12

Hey you didn't mention how thick the motor mounth is on the drawings and the washer neither.

djarden88 (author)2016-10-05

my battery has a 5 port plug not 4? what the hell? so now the 2 x 3S -> 6S Splitter JST-XH wont fit on , how can i fix this?

TimothyG55 (author)2016-09-24

For some reason my esc, pretty much the same one that Vlad used, does not want to work with 2- 3s batteries in series. It works fine with one battery though. Can anyone help me figure out how to solve this issue?

quatchiguy (author)2016-08-18

Great instructable! I made it with the Bluetooth module and it works perfectly! I have a few questions, however. How do you make it go backwards using the smartphone controller? Also, is it possible make the volume rockers control speed rather than the screen slider? I hate it whenever my screen freezes while I'm riding. Thanks!

fabian287 (author)quatchiguy2016-09-23

can you send me a picture of the connections? Because i have trouble with my

TahaB10 (author)2016-09-17

what kind of deck did u use? can u send me link please or the name of the deck

ArnoM3 (author)2016-09-12

Would these trucks also work for this project?

Because for the Paris trucks, shipping to Belgium costs 60 dollars...

PingalaS made it! (author)2016-09-02

Hi people,

I've made a 3D printed bracket to hold the ESC to your board for those who prefer to place the ESC outside the case for better airflow.

Here's the link to donwload the file:

And here you have some pics:

About This Instructable




Bio: I'm a highschooler who is interested in technology, science, and engineering. In my spare time I work on projects that allow me to learn ... More »
More by comsa42:Fast Electric Skateboard LiPo Charging System (BMS + CC/VC PSU)Carbon-Fiber Electric Skateboard DeckDIY Nunchuck Controller for Electric Skateboards!
Add instructable to: