Android Controlled Electric Longboard
This project started when I was walking down Newbury Street in Boston and saw a person weaving through traffic on their electric longboard. From that instant, I knew I needed one. After doing some research, I found that my only options were to buy a $1000+ American made longboard or a $500+ Chinese made longboard that would be destined to disintegrate on its first ride.
During a "The Saturday Thing" at the Edgerton Center, MIT, I found a student who had built an electric longboard years ago out of spare parts around the shop on a budget of $400. Looking at his design, I saw many features that could be greatly improved such as the heavy 1/4" aluminum housing and the pair of Kelly Controlls ESCs that were spec'd out for a much more powerful build. All of this meant that I could design my own for a fraction of the price of a consumer longboard, while increasing the power and range.
As with all projects, the first step was building a bill of materials or BOM in Excel. I found that by using lithium polymer batteries and brushless motors designed for remote control applications and making some parts by hand, I was able to cut the price to $200 while keeping a 3000 watt brushless outrunner motor and a 220 watt-hour battery.
The next step was fitting the parts together in a digital Solidworks assembly to "work out bugs with placement" and design the power transfer system to drive the wheels. The first prototype used a toothed belt attached to plastic pulleys that I had 3D printed due to cost and availability. In the end, I found that this design was not capable of transferring the large amount of power that the motor "put out". Version 2 of the transmission used a #25 chain drive attached to a steel 10 tooth sprocket on the motor shaft and a 3D printed 30 tooth sprocket with custom mounting holes (maybe throw in something about how it was printed out of fiberglass and nylon so it wouldn't break even though Z harrassed me relentlessly about it).
Once the mechanical systems were in place, I could start working on the electronics. The first design used an AVR based Teensy 3.1 connected to a HC-06 Bluetooth serial adapter. The controller sent a PWM signal to a 2500w ESC (electronic speed controller). The ESC takes the PWM signal and power directly from the battery to drive the brushless motor. In the final revision, the Teensy 3.1 was changed to an Arduino Nano to reduce cost while keeping the same functionality.
With the mechanical and electrical systems finished, the only thing left to finish was the software. I started by using a serial terminal app on my HTC One M9 to send strings of data from the phone to the Arduino. From there I created a simple app that would start and stop the motor depending on whether a button was pushed. This only required a very simple high level protocol as the Arduino only needed to differentiate between two different signals. The final version of the app used a slightly more advanced protocol to send the position of a digital slider to send an exact power output to the Arduino. For the first ride, I cut the power in the driver to a maximum of 25%. Having mastered riding the board under low power, I kicked it into high gear and was thrown off the board the moment I touched the speed slider. This is when I discovered the need for an acceleration curve. I added a few lines of code to the app that would limit the board to a maximum acceleration. With this, the board rode smoothly and safely (as safely as a 3000 watt skateboard can be ridden).
Despite this, the final design was not without flaws. An onboard charging system was omitted to reduce cost meaning that every time the battery needed to be recharged, it would have to be removed. The electronics were also open to the elements, meaning that the board could not be ridden in the rain or through puddles. For a next version, I would like to mold a case out of fiberglass or carbon fiber, replace the smartphone control with a physical joystick or slider, replace the outrunner motor with a pair of in-wheel hub motors and add an onboard charging circuit.