Introduction: Longboard Underglow
Perhaps you were destined to make a longboard look hella sick. Perhaps you were bored out of your mind in quarantine. Whatever the reason is, putting underglow on your board is a pretty great way to trick it out. I've made a WS2812 LED strip controller with an accelerometer, a bluetooth module, and an Arduino Nano.
A basic understanding of Arduino and soldering. The ability to ride a skateboard would be cool too.
Note to Maker (You).
There are many different longboard form factors, component availabilities, and ideas of what underglow should look like. Therefore, your lights will almost certainly not match what I have. This guide describes the general design process of my glow, but treat it more as a suggestion. Put your own spin on it!
- Put LED lights under board with multiple preset patterns.
- Wirelessly control said patterns.
- Automatically turn off when picked up, to avoid blinding people.
- Arduino Nano
- HC-06 Bluetooth Module
- ADXL345 Accelerometer
- 2 x WS2812 LED Strips + Connectors
- 2.54 mm Female Headers
- 22 AWG Solid Core Wire
- USB Battery Bank
- Capacitor (100 uF)
- A Longboard (obviously)
- Soldering Iron + Solder
These are Amazon affiliate links so I earn a little commission with each sale. If you don't already have these supplies and want to support future projects of mine, follow these links! :)
Step 1: Plan Out and Breadboard
Plan what features and patterns you want on your board. This is a fairly open ended step. It's entirely up to you to determine how complex or simple you want it. If you want the bare minimum, a battery, Arduino, and LED strips are all you need.
Once you're satisfied with your setup, draw a nice, neat system diagram. This will come in handy when you transplant it to perfboard or PCB.
I want addressable LEDs so I can make fancier looking patterns.
I don't want to bend over and press a button to change my pattern, so I'll use a Bluetooth module and my phone to do it.
LEDs can be pretty bright and I don't want to annoy pedestrians when I pick up my board. Therefore, I'll use an accelerometer to detect when the board is being held, and turn off the lights then.
Test, test, test.
Make sure you test your setup on a breadboard before anything else! This makes it far easier to debug your components and program the light patterns. I also recommend testing components one by one, to limit the amount of variables when a bug appears.
Above is the system diagram of my setup. The pins for each component is listed on each arrow.
Step 2: Program
The code I provide at this link is purely foundational and involves only the Bluetooth module. To change the pattern, use a Serial Bluetooth app on your phone. Change the pinout according to what you need.
I designed my code to make it relatively easy to include new patterns and change pinout. To create new patterns, put the proper strncmp statement in the req_handle() and make your pattern function in patterns.h.
You will need both glowy_basic.ino and patterns.h. Be sure to include them under the same folder when programming your Nano. They've been split apart, to avoid making a massive, unwieldy file. This is by no means industry ready.
If you don't want to use my code? Make your own! The libraries are straightforward and easy to use.
FastLED.h (For LEDs)
SoftwareSerial.h (Serial for Bluetooth)
Step 3: Transplant to Perfboard
Beware, this is gonna be tedious.
(If you can put it on a PCB instead of perfboard, I highly recommend it.)
Perfboard is the middle ground between a prototype on a breadboard and a full fledged PCB. It was the best option I had on hand to make this somewhat permanent. My intention was to make this shield style (using female headers to connect parts) so that I can reuse critical components. Make sure you solder a bypass capacitor in parallel with your battery connection. This will soften the blow of sudden current changes of your LED strips. I can't detail every single solder joint I made but I learned several things during this process.
Lay it out.
Take your components and lay them out on your board! Planning where and how they fit together is important for avoiding time-consuming mistakes.
Solid core wire is a must have. It is far easier to fit stripped solid core into the holes of perfboard, since it wont split apart like stranded wire.
Measure thrice, cut once.
To have a somewhat neat perfboard, make sure you really know how much wire you need to use to link one point on your board to another.
Checking it twice.
Frequently use a multimeter to ensure continuity between points and ensure that there are no shorts. This will help prevent accidentally destroying batteries.
What a Relief.
Solder joints don't handle stress and strain very well, so you need some form of strain relief to handle unplanned loads. This is especially important, since your board experiences a lot of vibration. I personally used bent staples to secure wires and wire bundles.
Step 4: Attach Parts to Longboard
It's smooth sailing, now that the perfboard is done.
This is where the velcro comes in. I intended to use velcro because it's fairly strong yet removable.
- Put the male side of the velcro on the longboard itself. The male side is easier to clean, if you decide to ride without underglow.
- Put the female side of the velcro onto the battery pack and bottom of perfboard.
- Attach the LED strips.
- Attach the battery and the perfboard.
Avoid putting wires or components right above the wheels. If turning too aggressively, the wheel can touch and damage these items.
Avoid putting wires or components on the tail either, since they will contact the ground. For obvious reasons, this will damage these items.
I did not follow this advice myself due to my lack of 3D printer, but I highly recommend designing protective covers for the strips and the perfboard. Exposed electronics, like above, are highly susceptible to damage from high speed debris and water flung up by the wheels. Protective covers would mitigate such damage and increase the longevity of a device like this.
Step 5: Have Fun!
Go forth and flex your new board (safely & responsibly).
Ideas to expand on:
- Protective covers
- A proper Bluetooth interface
- Patterns reactive to acceleration
- Other sensors?
Participated in the
Arduino Contest 2020