@tutorial: Homemade electric scooter

Let's build our HOMEMADE electric scooter. This should be a very easy electronic project. The most difficult part is the construction of the scooter and by that I mean the brushless motor connection with the wheel. You'll see an easy way to transfer the motor rotation to the wheel. Make sure you'll read all the extra info, all the schematics, and download the codes and STL 3D files from the links below in this tutorial. Also read all the comments

External Link: https://electronoobs.com/eng_arduino_tut18.php

by: ELECTRONOOBS on 2026-05-31

Please use the LINKS in this tutorial to buy your parts. That will also help my workshop and the price for you will be the same. Thank you very much.


1. PART LIST


Ok, let's see what we need for this project. I'll explain more than one option so you'll find the full part list below. Depending on the option that you'll go for, you'll have to buy different components. Of course we will need a scooter. I've coose a big one because I'm a heavy guy. Please note that the price in my case is a little bit higher because I need big and powerfull parts (my weight around 100kg). Of course, if you weight around 60kg you won't need a heavy duty motor and neither a lot of batteries.


120A ESC: LINK eBay

480W brushless motor: LINK eBay

4500mAh LiPo battery: LINK eBay

Arduino NANO: LINK eBay


One way bearing: LINK eBay

One way hex bearing: LINK eBay

Slide potentiometer: LINK eBay

Rot potentiometer: LINK eBay

10mm bore GT2 pulley: LINK eBay

8mm bore GT2 pulley: LINK eBay

GT2 6mm timing belt: LINK eBay

Steel spring: LINK eBay

1AWG Cooper wire: LINK eBay


Check the STL files if you want to print your own case.


1.1 TWO OPTIONS


I'll present you two options. The timing belt + gears and the direct pully system. I'll go with the direct pulley system since is much easier for me. In case of using timing belts and gears, you'll have to fit the gear between the wheel and the support of the scooter and that part is usually difficult. Also you'll need a tension system that will tension the belt. That's why I'll use the direct pulley system with a 3D printed pulley that I've designed.


Ok, so I'll go with the second option with the 3D printed pulley that you could also download from the link below and print it yourself. Follow the instructions there for the print. You'll find a few examples with different sizes. Take in mind that a bigger diameter pulley will give more top speed but lower torque. I prefere torque so I'll go with a small pulley. In the full part list you'll find the other components for the timing belt and geared pulley option. Check the part list before you start this project.

Download: Pully

Main schematic


Ok, so now let's take a look on how we will join all the electronic components. We need to supply 14.8V from the batteries to the ESC. The ESC will be connected to the brushless motor and also to the Arduino in order to supply 5V to it. To the Arduino we add a potentiometer and we are done. Take a look at the schematics below. There are two types of potentiometers that you could use. It all depends on you. If you use the lineal sliding potentiometer, just add an elastic rubber band and you are good to go. If you use the normal potentiometer, you should 3D print the speed control files that you could also download from a link below. Print that case, solder the potentiometer and screw it inside of the case. The case has holes in order to be able to screw it on the rudder of the scooter. You have some examples photos below. An extra part that we will see later is to add a speed counter to this arduino using a magnetic sensor on the wheel.


I've 3D printed the potentiometer case and install it on the scooter rudder using two 3mm screws, the case already has holes for the M3 nuts.

As you can see in the schematic above, the brushless motor has a triple phase input that has no polarity. If the motor spins in the oposite direction just swap two of the wires one with each other. I recommand you to add a 100uF capacitor to the 5V pin of the Arduino. The 5V voltage from the BEC of the ESC could have some noise with peaks and the 100uF cap will improve the voltage.


You will also need the 3D parts for the battery case, link for that below. That case will be placed on the main axis of the scooter. The designs are just the top and bottom parts of the case. Those part could get screwed on the metal tube and then the sides will be made of plywood. Check the construction photos for more.

In this part we will mount the metal body that will support the brushless motor. We will also talk about the pulley system and how the one way bearing works. Make sure you read all the steps and all downlaod all the files that you need. Thank you.

3. Building the support


Ok, the most difficult part of this project is to fit the motor next to the wheel and make sure that there will be a good connection between the wheel and the 3D plastic pulley. So I first cut a 90 degreee V-shaped steel bar 29cm long. I make two wide holes in that bar so I could later move the abr close or farther from the scooter body in order to perfectly fit the pulley on to the wheel.


Ok now I fit the bar on the scooter body adn drill the two holes in to the scooter body. Once I do that I measure the distance where I have to screw in place the brushless motor. I drill holes for that as well and screw the motor in place. Make sure the metal bar won't touch the motor shaft.

Ok now let's talk about the pùlley. The pulley has to be centered with the wheel so the curved shape will fit perfectly. On one side we have a normal bearing that could rotate in both ways. On the other side we have two one way berings that will act like a clutch. Since those bearings are round shaped, we should use double component epoxy and glue those inside of the pulley. As you can see in the picture below, the bearing hole of the pulley has some vertical bars in order to improve the glue effect.

I make sure the bearing spin direction is correct and I glue the bearings inside of the pulley using double component EPOXY and now that the pulley is prepared, we should fit it on the 1cm diameter shaft of the motor. Now the system is ready. On the other side of the pully we have a normal 22mm bearing so if you think is necesary add the second V-shaped metal bar on to the other side with a screw that will fit inside of the 22mm bearing. This second bar is optional since the curved shape of the pully won't let it get out if it's well presed agains the wheel.

So add the pulley and put it a little bit on top of the wheel and now tight the metal bar screws so it will get pressed against the wheel. You could also use a small hammer and press it a bit more before tighting the screws. The pully has to be not to tight but not to loose neiter. Add some glue to each screw so it won't get untighted due to vibrations while riding.

Ok, no the most difficult part is done. We have the motor in place. Using your hand test if the motor could spin freely in the oposite direction and if it will apply force to the wheel in the good direction. That's the point of using a one way bearing. So the motor won't create backward voltage while you are not accelerating.


Now let's see the final aprt where we will join all the electronics together and fit everything in the main battery case that we will build as here. Also check the full part list below in order to know what you'll need for the next part.


In this part we will mount the electronics part. We have to solder wires to the potentiometer. Those wires are 5V and GND from the arduino. The middle pin will be the analog read. Next, inside of the arduino code we create the PWM signal and apply that to the ESC. The ESC will control the power to the brushless motor. With the 14.8V LiPo battery we supply everything.

We have to test everything if it works. For that connect everything on a test board or so and upload the enxt code. This code will read the value on the potentiometer and apply a PWM pulse to the ESC. Be careful and make sure that the potentiometer range is correct. in the code I map the values from 1024 to 600. If your potentiometer is connected backwards, change that range because if not, the motor will be always accelerating and decreasing the speen instead of increasing it.

4.1 Bild the case


Download the bottom and top 3D parts for the case, link is below. Print them following the instructions there. Also cut the 4 plywood pices for the sides. Prepare the plywood sheets and add carbon fiber vinyl for better look. Now place the batteries on the bottom support as we can see below.


Now that we have the battery in place and the plywood sides places, we prepare the front part of the case. We have to place there the ESC. Thw annoing thing is that the ESC will only start if the small push button is pressed so we have to add a hole and a 3D printed button so we could start the ESC from the outside of the case.


We fix in place the ESC using M3 screws and a thin metal sheet. Be careful that the plastic button is in front of the push button. Now solder the wires from the potentiometer to the Arduino, 5V, GND and analog pin A0. Also solder digital D3 pin to the ESC and also share GND with it. pass the 3 wires from the motor to the inside of the case and solder them to the ESC. Remember to use a lot of heat shrinking tubes for insulation.


Now we can close the case and screw it in place on the main axis of the Scooter using small M3 screws. Then pass the wires to the motor. I've used zip ties to fix those wires in place.

Now that everything is prepared, let's chech the code. In the next part we have the code esplained for the HOMEMADE electric scooter. Upload that code to the Arduino NANO. make sure that you have the correct range for the potentiometer. In this part we will take a look over the code I've used for this homemade electric scooter. Te idea is more than easy. Read the potentiometer value, create the PWM signal and control the motor.

First, make sure that you ahve the servo.h library because we will need that. Usually ESCs have a range from 1000us to 2000us pulse for the control where 1000us is no rotation and 2000us is full throttle.


But in this case the ESC that I've used has a double range. For signals from 1000us to 1500us it will spin CW and signals from 1500us to 2000us CCW. So in the code I'll make sure the signal will always be between 1505 and 2000us so it will never spin backwards.


So first we include the servo library. This, using the servo.writeMicroseconds, will create the PWM signal. We create a servo variable named "motor" in this case. Next we create the variables for the analog pin A0, which will be the input from the potentiometer. Also I create the variable for the speed signal that will go from 1505 to 2000.

Now in the Setup loop we attach the servo signal to pin D3 and start the signal with a 1505 value so the ESC won't enter into setup mode. Next I add a small delay so the scooter won't start immidietly.


In the loop we read the analog pin value. This will give us a value between 0 and 1024 where 0 is GND and 1024 is 5V. Depending on how you've connected the potentiometer, you'll have to map the value from 1024 to 600 or backwards. It's map till 600 because there will never be a full rotation of the potentiometer, since that is not posible on the scooter rudder.


If the throttle input is higher that the real speed, we increase the speed till we have the same value. If it is lowe, we decrease the ral value till we have the same amount. That's it. Now we constrain the PWM valeus from 1505 to 2000 and write the real value to digital pin D3.


Leave a comment

Please login in order to comment.

Comments

ADVERTISERS
ADVERTISERS
PCBWAY