How to Build an Electric Longboard With Phone Control





Introduction: How to Build an Electric Longboard With Phone Control

About: Designer, Maker, CNC Enthusiast, Drone Maker

Electric longboards are awsome!



Update #1: Grip tape installed, some tweaks to the speed controller have meant I have got more speed out of the board but range has stayed the same! video coming soon. Working on nunchuck controller as well.


Motor, Esc:

Trucks/motor mount/ drive train:

So I thought I would stray a bit from multirotors for this post and write a log of how I built my electric longboard. It has been something I have wanted to get for a while now and with all the projects I have been doing on my CNC, I decided to build one myself. (Could’t really use the CNC as it doesn't have a very large work area) I am going to start by giving an outline of my project goals and how I intended to achieve them:

1. It must be of sufficient length and width to make it stable.

2. It must be capable of reasonable speed (15+ mph).

3. The range must be at least 8 miles as my nearest town is about 4 miles away.

4. I want to be able to control the longboard with my phone (android).

5. I want to have a voltage readout on my phone so I know how much battery remains.

WARNINGS: The code and app are not perfect by any means, they are very much still in beta. Please be careful with the stop button as depending on what esc you use, the brakes can be very aggressive and may throw you off the board.

Disclaimer: I am not responsible if you fall off your board and/or hurt yourself in any way because the acceleration or braking or speed is too aggressive due to my app/code/any part of this “tutorial”. If you use my code and app please test thoroughly with your particular set-up to make sure it doesn't hurt you. It may take some tweaking… If you have any queries then leave a comment :)

please visit my blog and check out the other stuff that I make!

my youtube channel:

Step 1: ​THE PLAN

There are two aspects of this project that I think will be most difficult. First, mounting a motor to the trucks of the long board and setting up a drive train. (I have a plan for this) Secondly is going to be the way to communicate between the ESC (the device that contra the motor) and my phone. For the first problem I am going to use a company called dielectric who make trucks with motor mounts are welded on and they come with pulleys and a belt and wheels. (I was going to build this part myself but I was under time constraint and I wanted to spend most of the time working on the electronics.) (See my PLANS page on my blog ( some ideas on making a motor mount) With that problem sorted we move on to the electronics. I am going to use an arduino nano and a bluetooth module (HC-05) to control the board from my phone. To write the app I am going to use Mit App Inventor which is a free on-line tool for building simple apps.

Step 2: The Board

I started out with a board that I made ages ago and had been sitting in my workshop for a while collecting dust… I decided to sand it down and re-varnish it with some clear matt varnish.

Step 3: Trucks and Motor Mount

Next, I installed the trucks that I got from the kit I bought from them had all the parts you need to set up the drive train.

The motor I used was a turnigy SK3 192KV. It has a lot of power but is slightly slower in terms of RPM with a six cell. But the extra torque is great because I can pull away from stationary on the motor. This is not recommended as it can wear the motor. The ESC is the Turnigy RotorStar 150amp ESC. I don’t recommend using this particular one but I do recommend one with at least 100amp rating! use an RC Car one. I just happened to have this lying around for some reason… If you do go for one of the truck kits like I did, follow the instructions on the website to set them up. I had to drill out the slots in the wheel which the bolts go through to hold on the pulley to the wheel.

Step 4: Electronics Enclosure

I then drilled some holes in the 4 corners of a screw sorting box like this one:

I then did the same to the board itself and then used some button head bolts to go through the board and the box and secured them with nuts. I then layed a layer of foam to stop the bolts damaging the electronics that will go in the box. The foam also helped keep the batteries fixed in place as when the lid is shut it presses the batteries down into the foam keeping them from sliding about.

Step 5: Now for the Hard Part... Electronics


For powering the arduino and monitoring the battery voltage I used the balance plug of the lipo and not the BEC

In the picture of the circuit boards, you can see the bluetooth module, the arduino nano and a little bit of PCB that i used to connect all the wiring and jumpers to. This was to keep everything relatively tidy and allowed me to esablish a common ground to connect to the arduino's ground as it only had 2 pins for ground and I needed a few.

In the picture of the plastic enclosure on the left is the esc which has a velcro strap holding it down. In the centre is the arduino and bluetooth module with a little bit of pcb to organise the wires. On the right is the six cell battery that I modified into two 3 cells joined together but sharing a balancing plug.

To power the arduino I am drawing from 2s of the 6s lipo to give me about 7 volts input depending on charge level (the arduino can handle an input up to 20v I think…). I am also connecting an analogue pin of the arduino to 1s of the lipo to use as the battery monitor. If each cell drops below 3.5 volts it can start to damage the lipo so that’s what I set the low battery warning in my app for. Here is the code for my arduino:

#include // import the serial library

#includeSoftwareSerial Bluetooth(10, 11);

// RX, TXint BluetoothData; // the data given from ComputerServo ESC;

long previousMillis = 0;

long interval = 1000;

void setup(

) {// put your setup code here, to run once:



Serial.println(“Bluetooth On”);



void loop()

{// put your main code here, to run repeatedly :

if (Bluetooth.available()){;




int sensorValue = analogRead(A0);

float voltage = sensorValue * (5.0 / 1023.0);

unsigned long currentMillis = millis();

if (currentMillis – previousMillis > interval) {previousMillis = currentMillis;

if (voltage <= 3.5)Bluetooth.println(“Low Battery”);

else Bluetooth.println(voltage, DEC);



So essentially the code takes the number from the slider in the app and then sends it to the servo in a from it can recognise using its Serial Library. For the battery voltage monitoring, it reads the value of one of the cells of the lipo and converts the analogue symbol into a value. this value is then sent back to the phone to be displayed. I have yet to figure out how to round this number so it doesn't show up as a really long decimal on the screen...

And here is the app: bluetooth_controller.apk (download and change file extension to .apk) Upload it to your ANDROID phone and install. When you open it you need to connect to the arduino and press the stop button, then plug the battery into the ESC. it will beep a bit and then you are set to go, use the slider to adjust speed gently and always push off and then engage the motor!

Step 6: Finished, Be Careful!

Move It

Second Prize in the
Move It



  • Water Contest

    Water Contest
  • Creative Misuse Contest

    Creative Misuse Contest
  • Clocks Contest

    Clocks Contest

120 Discussions

Do you have to redownload all of the data to the arduino every tome you want to use it?

How much does it cost in total?

I have App Inventor experience and want to build my own app. Since I want to see your app and what you did is there any way you could send the app inventor blocks and layout? Thanks


1 year ago

nice build tutorial! I just started to make my own. Wich will be very similar to your build! (build log)
I will try to make the best quality board under 400 $

Would the app work w/ an iPhone 5s, also a huge fan of this kind of stuff, keep it up!

Hey, I was just wondering if it was possible to gdt a better look at the curcuitry, like the wires from the batteries and the wires soldered into the phero board/ copper, where are they from?

5 replies

Im planning on doing a new build so I will include better circuit diagrams in that!

sorry, but I don't have any for this build.... so....

Arduino Question: would you mind explaining the 3 wires that go to the battery? One is ground, and 2 go to slots in the balance port of the battery?

nah all good man didnt mean to put in the question mark

Can you put some better pictures of the arduino setup? Front and back of the arduino?

1 reply

Or made a video a few seconds long showing it?

Hey I know I asked earlier, but I was wondering if it was possible to get some more views of how it is wired up? like pictures or something maybe?

Hey Nickolae, Any update of this project? Is necessary Arduino UNO? What motor do you recommend in quality/price? you can show better where each cable is connected arduino, esc and bluetooth? Thanks a lot! a lot of people are following this project from Spain ;)

Hi, I have some error with the code:

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

The sketch name had to be modified. Sketch names can only consist

of ASCII characters and numbers (but cannot start with a number).

They should also be less than 64 characters long.

How_to_build_an_electric_Longboard_with_phone_control_code:1: error: #include expects "FILENAME" or <FILENAME>

#include // import the serial library


How_to_build_an_electric_Longboard_with_phone_control_code:3: error: invalid preprocessing directive #includeSoftwareSerial

#includeSoftwareSerial Bluetooth(10, 11);


exit status 1

#include expects "FILENAME" or <FILENAME>

This report would have more information with

"Show verbose output during compilation"

enabled in File > Preferences.

2 replies

Hi! I'm experiencing the same error. Were you able to resolve it?

Sorry, I have no idea what is going on here... It still works perfectly on my duino nano... maybe post it on the arduino forums and see if anyone can help you figure out the problem! Software is not my strong side!

I live in a very hilly place, so what would be your recommendation for a motor with enough lower to get up hills? And what ESC should I use as good that has good braking?

1 reply

Hi there, I would recommend a motor with a low kV such as the one I used but that may not be enough. If you are in a very hilly area I would recommend a dual motor setup (one driven wheel at the front and one at the back) this will ensure you have adequate power and won't loose traction so easily. As for ESC you will want one with a very high current capacity (150amps) and it should be an rc car ESC as these have good brakes that can be adjusted so it doesn't fling you off the board when you brake!