While the original skateboard had some interesting electronic features, I had bigger plans for this version. I wanted to support on-the-fly adjustment of parameters, as well as getting data out of the skateboard while it was being ridden. On the old board I had one multi-colored LED that was my only way of communicating with the outside world. I also wanted to make upgrading the software as easy as possible so that I had no excuse to try new code.
Similar to the mechanical components, there were several ideas I wanted to cary over from the original skateboard. The gyroscop/accelerometer and microcontroller had worked out well. I had used a cheap reed switch as a deadman's switch with no issues. Using a large contactor to control master power was another keeper. I had been happy with the OSMC based motor controller. All these items made it over into this skateboard.
Looking around on the SparkFun site, there were all kinds of fun toys to try to incorporate. I settled on the following new components:
Additionally, I wanted to make some improvements on old functions and add a few features as well.
Here's a diagram of the various power buses, and which components attach to them.
All this added up to a much more ambitious electronics set up than I'd attempted before. I filled many pages in a notebook with circuit diagrams, googled around a bit on various topics, and then jumped into building a prototype.
I got the trusty breadboard out and started attacking pieces of the overall system. I made sure I could use a transistor to keep the contactor engaged. I used a voltage divider to get voltage readings from the 6 cell LiPoly battery. I used transistors to switch the high-current LED headlights on and off. I verified I could read infrared signals, and read/write Bluetooth data.
The addressable LED strip was a bit of a challenge. I was using a Netduino2 as the microcontroller. This microcontroller runs interpreted bytecode, which resulted in it being too slow to send the very timing sensitive signals to the LED strip. I eventually decided to use an Arduino microcontroller to deal with the LED strip, and to leave the rest of the tasks to the Netduino2.
While I was working on the electronics, I also spent time designing and building the software. Read about that process here.