Introduction: Interactive Arduino Powered LED Skis
Sick of the dull blackness of night skiing? Fear not! Arduino programmable interactive LED skis will brighten your evening.
These home built skis have LEDs embedded under the p-tex and top sheet. An Arduino and accelerometer controls the lights. Whether touring or spinning laps at the local hill, skiing is a great way to interact with the winter environment. Adding LEDs to the skis adds another layer of interactivity to the slopes. This instructable will walk you thorough what you need to enhance your skis to make you the brightest two-planner on the slopes.
These are not instructions on how to build skis. It is meant to illuminate new the possibilities for those who already have a vacuum setup or ski press. Ski building materials and instructions can be found at ski builders and at the Ski Lab or Snowboard Materials. Commercial skis could also be hacked to improve their radness.
Step 1: Materials
You will need ski building materials or an old pair of skis you don't mind tearing up. For information on ski building and layup see the skibuilders.com forum. Building or modding skis can be dangerous - be safe.
For the electronics:
- 1 Arduino
- 1 10m RGB LED strip
- 2 LED strip drivers or a LED shield such as this ARD0689
- 12v battery pack - the bigger the better, small battery packs will only last a few minutes at full power.
- 1 Push Button
- Several meters of Flexible Wire(I used extra speaker wire)
- MPU6050 accel/gryo
- Barrel Jack
Nuts and bolts:
- Enclosure for the electronics
- 8 Tee Nuts or Threaded inserts (one for each wire)
- 8 Pan-head bolts
- 8 Spade wire connectors
- Wire connectors
- Heat Shrink and Flex Wire Wrap
- Electrical tape
- Soldering Iron
- Vacuum bag setup
Step 2: Prep the Skis
ONE LAST DISCLAIMER: BE SAFE- building skis can be dangerous. Some methods put enormous stress on your equipment. Homemade or modded skis may fail and could cause serious injuries.
I wanted the LEDs to be in the ski base so they would reflect off the snow. This meant building them into the skis core and then covering them with clear base material. In addition I wrapped the LEDs up onto the top of the ski so there would be some light on top as well.
- Use a router to cut a groove in the bottom of the ski core. It should be close to the same depth as the thickness of the LED strip. If it is too shallow you will have a bump in the middle of the bases.
- Route or drill a hole at the tip and tail. The hole in the tip allows the LEDs to wrap up onto the top of the skis. The hole at the tail is for all the wires to pass onto the top and connect to the threaded inserts.
- Drill holes for the inserts and tack them in place with a dab of glue. The exact procedure will be different for different types of inserts. I used generic tee nuts since I had some laying around. Quiver killers or similar threaded inserts would be better.
I also put pressure sensors in the skis. They didn't work so ignore the last pair of tee nuts.
Step 3: Attach the LEDs
The strip I used had adhesive on the back which made attaching it easier. Run the LEDs along the groove in the base of the skis. Carefully fold the wires up through the hole in the tail. Make sure you don't break any of the connections. Use a little hot glue to tack the wires in place.
- Fold the LEDs up through the hole in the tip of the ski and onto the top. Cutting part way through the silicone covering helps make the bending the LEDs easier. Affix the LEDs to the top of the skis.
- Solder wires to the the terminals on the LED strip. Wrap them in heat shrink and tack them to the ski with a little hot glue. Solder the other end of the wires to the threaded inserts. One for each wire. These will act as the terminals to attache the wires running from the control unit.
- Make sure to write down which wire is which.
- Cover the top of the inserts with tape, this will prevent epoxy from filling the inserts during the ski layup and pressing.
- Take accurate measurements of where the nuts are. You won't be able to see the nuts once the top sheet is on so you will need to know exactly were to drill. MORE IMPORTANTLY, don't be like me and loose the paper your write it down on.
Step 4: Finish the Skis
Layup the skis, cut them out and spiff them up.
Drill through the top sheet to get access to the threads of the tee nuts.
Thread some small bolts into the nuts.
You can see the LEDs and wires through the fiberglass in the photos.
Step 5: The Connectors
The connectors are essentially a "disposable/breakable" link between the skis and the Arduino. I wanted a system that could pull apart without destroying the electronics in the ski. It also provides a meathod to disconnect myself from the ski without undoing all chords running up to the controller.
I found some two wire connectors at the local hardware store. I just taped them together to make four wire connectors. I didn't spend much time looking around. There are plenty of better connectors out there. It think magnetic ones might be the best.
To build the connectors:
- Solder spade connecters to the end of each wire
- Attache the other end of the wire to one of the two wire connectors
- Wrap the end of the wires in a little heat shrink
- Wrap the entire length of wires with flex tubing
- Wrap the wire, connectors and flex tubing with electrical tape
- Bolt the spade connecters to the tee nuts in the skis.
Step 6: The Controller and Wires
The core of the electronics are an Arduino Uno, accelerometer and a pushbutton. The button cycles through the different settings.
The following applies to my code only, yours may be different.
- The accelerometer uses interrupts, you must wire it to the interupt inputs (Digital pins 2 and 3 for the uno) Wire it as:
- INT -> Digital 2
- SCL -> A5
- SDA -> A4
- GND -> GND
- VCC ->3.3V
- VCC ->5V
- CIN -> D6
- DIN -> D7
- GND -> GND
- D12 & GND
The battery pack I picked up also had a USB. I powered the Arduino with the USB and the wired the drivers directly to the barrel plug from the battery pack.
The divers keep the Arduino isolated from the higher current powering the LEDs and make powering the LEDs super simple.
Run the wires through the wire wrap down to the ski connectors for each ski. Make them extra long so you can stuff the batteries and controller in your pack or pocket.
Lastly make or buy an enclosure for the electronics. I cut up some extra HDPE to make an enclosure.
Step 7: Code
I am not a good coder. I'm much better with chisels and planes than I am with ones and zeros. What I came up with works, that is about all I can say about it. I'll improve it later, right now I want to test them.
Each time you press the button it cycles through different flashing/fading patterns. The first fades through all the colors. The second fades and blinks and the third kind of pulses. The last one flashes when the accelerometer reads an impact. Next time around I'll put the accelerometer in the ski.
A couple notes about my sketch.
Make sure to download and install these libraries
- 1. Button.h (to make debouncing buttons easier) https://github.com/t3db0t/Button
- 2. Wire.h (for the LED drivers)
- 3. RGBdriver.h (for the LED drivers) https://github.com/letsgoING/Libraries/tree/master/LEDStripDriver
- 4. I2Cdev.h (for the MPU6050 gyro/accelerometer) https://github.com/jrowberg/i2cdevlib
I was getting FIFO OVERFLOW errors when using the Arduino Uno. My understanding is that the UNO isn't the fastest controller. This combined with my less than stellar code caused the error. To fix this I edited the MPU6050_6Axis_MotionApps_20.h (part of the I2Cdev file library collection)
On line 261 change the last 0x01 to a 0x03 or 0x04. This slows down how fast the information is added to the file and gives the UNO the chance to read it before it overflows. More information can be found here:
Step 8: GO SKIING...
Feed the wires though your pant leg and up into a pack. Run the button to a pocket or some other convenient location. I just put the button in my pants pocket. It was big enough to press through the fabric.
Connect your skis to the controller, go skiing and be rad.
After taking these out, there are a few things I'm going to change in the code but for the most part everything worked well. Round two will have gyros in the ski and will use addressable LEDs.