Electric Skateboard v3.0: The Banana Board

Introducing my third prototype electric skateboard: the Banana Board! It’s lighter, cooler-looking, and has a longer range than the second electric skateboard. This board features a CNC cut deck, a longer range than my previous skateboard, new electronics, and a smaller electronics enclosure. Weighing in at 11 pounds, it’s also the lightest electric skateboard that I have built so far. This post will be a rough guide/build log on the Banana Board. I’ll make a video on it as soon as I upgrade my computer.

CNC deck:


The deck I used was cut from 1/2″ scrap plywood using my dad’s homemade CNC machine. I started the design process in Photoshop, where I imported and refined a deck design. I then took the resulting image file over to Inventor, where I made a 3D model of the deck. Then I took the 3D model and brought it over to Mastercam X5, where I was able to generate the code needed to cut the deck.

Down in the garage, I loaded the .NC file into Mach3 Mill, drilled some pilot holes using a counter-sink bit, then cut the deck using a 1/4″ end bit. I repeated the process again, and ended up with two identical decks. I’m really happy with the deck style I chose; it’s the perfect balance between speed and control for an electric skateboard!

Here’s the G-Code I used to cut the deck: Deck.NC

New Electronics:


The new circuit for the electric skateboard consists of 2x 3s 4Ah 20C Li-Po batteries hooked up in parallel in order to power a 3s ESC, rather than a 6s like on the old skateboard. This means that the top speed of the skateboard is limited to about 22km/h. However, the speed limit is a good thing. These brushless motors are more efficient at lower speeds, and even though we used less capacity batteries, we get slightly more than 10km per charge.

The receiver we used was once again the GT2B, but I’m planning on replacing it with one of my Bluetooth smartphone receivers to make it more of a commute vehicle, rather than a super fun toy (which it most certainly is!). The drive system/motor assembly was the same as the one in the electric skateboard v2.0.



This electric skateboard is a great improvement over the old versions. It’s light enough to carry, yet has enough power and endurance to really be used as a “last-mile” commute vehicle. This particular board is for my 9-year-old cousin (who’s feet are shown in the very first photograph of this post) but the board definitely has enough power to propel a growing teenager like myself, and my dad (but not at the same time!).

The next board is going to be a variation of this banana board, but it’s going to include a chain-drive, and the electronics from the previous electric skateboard. I’m going to be making very detailed videos on this project, and many of my other projects once I finish building my editing workstation PC, so be sure to subscribe to my YouTube channel if you haven’t already!

Read more

Electric Skateboard v2.0 Tutorial!

Here’s the tutorial for my electric skateboard version 2.0! This skateboard is similar to the electric longboard, but this time I’ve added a Bluetooth smartphone controller, a dual battery charging system, and we also used aluminum parts for the drive system. Additionally, we’ve made the deck shorter, so now I can actually use this board to get to school and back! Here’s the link to an instructable I wrote on this project.

Starting my own web-store!

Ever since the release of the original electric longboard, I’ve had tons of requests to sell/release the Bluetooth skateboard controller that I made. So far I have three prototypes complete; the third one has three operational channels and a really sweet looking Android app.

Hopefully, by mid-September I’ll be able to etch this last prototype using my dad’s CNC mill. When that’s done, I’ll put up the controllers on where anyone in the world can buy one! Plus, the controller is open-hardware!

Read more

Tiny Weather Station: A Failed Project with ESP8266 WiFi Module


This is the story of a failed weather station upgrade attempt. About a week ago, I looked at my main weather station and I made a list of things I wanted to improve upon. Specifically, I wanted to make it smaller, use a smaller solar panel, and incorporate WiFi. Instead of ordering proper instruments like a thermometer, barometer, ect, I decided not to wait, and simply use what I had on hand. I called this prototype “TinyWeatherStation” and got developing.



To power this smaller weather station I decided to use a 5v solar panel I had laying around, and a single cell lithium battery from my old Blackberry. Once again, I decided to use the LM317 variable voltage regulator to charge the battery. I used a 1k ohm and a 10k ohm trim-potentiometer to set the voltage to 4.2 volts. I tested this setup under a kilowatt lamp and the charging current peaked at about 200mA, very good. The quiescent current was 0.7mA, a great improvement over the 5mA of the old weather station.



The brains of this project would be, once again, an AtMega328. The biggest improvement over the previous weather station was the absence of a secondary linear regulator; the AtMega is powered directly off the battery. Now, this is where things began to go wrong: the headers I used to hold the AtMega were the wrong type. I used these pin headers in the last project, but this time they wouldn’t hold the chip properly. The poor connection somehow increased the quiescent current to 7mA. Bleh.


For the instruments, I used a photoresistor, the DS18B20 thermometer, and one of the pins of the AtMega, which measured the voltage of the battery. Getting the photoresistor working was the toughest part. I used the lux meter on my phone, and compared it directly to the voltage of the photoresistor and a 1 million ohm pull-down resistor. The resulting code looked something like this:

float getLux() {
float lux = analogRead(A1);
if (lux >= 1 && lux <= 17) { lux = 120000; } if (lux == 18) { lux = 110000; } if (lux == 19) { lux = 100000; } if (lux == 20) { lux = 90000; } if (lux == 21) { lux = 80000; } if (lux == 22) { lux = 70000; } if (lux >= 23 && lux <= 24) { lux = 60000; } ... if (lux >= 966 && lux <= 1023) { lux = 3; }
return lux;



I actually liked using the ESP8266 module. It was very easy to use; AT commands are easily sent to the module by the AtMega through the SoftwareSerial library. Here’s a diagram of code on the AtMega:

Untitled Diagram (1)

The AT commands would look like this:

AT+RST: Resets the module

AT+CWJAP=”WiFiNetwork”,”password”: Connects to WiFi network

AT+CIPSTART=”TCP”,”″,80: Connect to via port 80

Now… here is where it gets interesting. You can transfer data to a webpage through the URL using GET. Here’s an example URL:

If you were to load that URL in your browser, it would send a GET request for, along with the GET variables x, y, and z, where x=20, y=40, and z=30. Essentially, you can transfer variables using a GET request, and the ESP8266 is capable of sending GET requests. I began exploiting this transfer of variables by writing a very simple PHP webpage on my home server. Using the following code, I was able to extract the value for the variable “volt”:

echo $volt;

If I were to load that page with a value of 2 for volt in the URL, I would see the number two on my screen. I was able to use the same principle to transfer data from the ESP8266 chip, to a MySQL database. The source code from my project is available here.

Why the project did not work, and what I learned from it:

The main down-fall of this project was the high battery consumption caused by the AtMega, ESP8266, and LM317 charging circuit. In the future I would use a much more efficient switch-mode power supply/charger, and invest in some low-power chips and better headers for said chips. I did however manage to record some voltage data from my balcony before the lithium battery went kaput:


Read more