Instead of hiding the snow skis away in storage after the snow season, Miloš put his skis on display with WiFi-controlled LED lighting effects to remind him of the snow season all year round.
Seeing that this idea could be applied to other sports and hobbies, we wanted to find out more about Miloš's project. Perhaps, you could do a similar artwork and LED display with cricket bats, hockey sticks, pool cues, and table tennis bats, just to name a few.
We caught up with Miloš to learn more.
Please introduce yourself to our readers, Miloš, and what got you interested in electronics.
I’m a graduate electrical engineer from Serbia, currently pursuing a Master’s degree with my main focus being on robotics. I got interested in electronics at a pretty young age of around 7 or 8 when my Dad gave me a small set of screwdrivers. There wasn’t a single toy I haven’t disassembled, which led to me trying to get my toy cars going faster by adding additional batteries using pieces of wire and scotch tape. In my head, it was, more batteries more voltage, and it could have worked, but I later figured out that all I did was add batteries in parallel. A few years later, my parents got me one of those kits for learning electronics and I wouldn’t let go of it!
There’s a common theme to makers pulling things apart in their younger years, right? Tell us what motivated you to build your Ski Lamp project?
While most people would choose a hot summer day and laying on the beach underneath the sun, I'm one of the people who prefers a clear winter's day and a freshly groomed ski slope that I can attack. Nothing beats the adrenaline rush of being in the snow and going down that hillside. The only sad thing is that when you return home, you pack up your skis in the bag and store them in the garage for a year until it's time to hit the slopes again. It's a shame since I think skis on their own look awesome and I wanted to mount them on the wall. But I didn't want to stop there, I wanted to add a bit of flare to it and make it look more awesome, so I decided to make a lamp using an RGB LED strip.
My idea was for the skis to be crossed with a glowing mountain shape in between. The LED strip came with an IR remote, but I wasn't happy with the controller which is where this project comes into light. I decided to make my own simple RGB controller based on the ESP8266 which can be either controlled over WiFi or using the IR remote. So I got to soldering, coding, and cutting wood until I was finished with the lamp. As mentioned already, the lamp can either be controlled by the remote that came with the LED strip, or it can be controlled over WiFi using an Android app that I made using Blynk. I think this project is a great entry into simple IoT for readers because it shows how you can make something controllable using your phone without having to play with relays and high voltages which can be intimidating or dangerous for new tinkerers, while still getting something that can be useful around the house.
It does look great and a clever way to store your skis. What parts does it use?
Here is the full list of parts that I needed for this project:
- RGB LED Strip - it came with a 12V power supply, IR remote, and an RGB controller which I took apart so I can take the IR receiver from it
- ESP8266-07, though any other version of the ESP8266 would work of course
- USB to TTL converter, because it was a standalone ESP8266 module for programming it
- 3 x IRF530 N channel MOSFETs
- LMP258 Op Amps, 3 of them are needed, so I used 2 ICs
- 3.3V linear regulator
- 9V linear regulator, though, when I look at it now, after some time, it could have worked without it completely
- 10k and 1k resistors
- A few random ceramic capacitors I used for the 9V linear regulator
- Screw terminals
- Antenna - not necessary, see text
As for the other non-electronic parts, I used a piece of scrap wood I found laying around to cut the mountain shape out of it, any piece of plywood will do. A can of gray spray paint, and some little square wooden planks (12x12mm) that I used to trace the shape of the mountain on the back. The LED strip is glued there.
How does it all work?
I’ll begin by explaining the ways in which the lamp can be controlled. The lamp can be controlled either using the IR remote that came with the LED strip or over WiFi.
To be able to use the remote with the ESP8266, I took the receiver from the RGB controller that came with the LED strip. After connecting it to the ESP8266, I wrote down all of the values from the remote so I can use them in the code later.
As for controlling it over WiFi, I went with Blynky. Blynky is a free app on Google Play which in the free version allows adding a few buttons and sliders to a screen and essentially making a custom app that can be easily interfaced with the ESP8266 because there is a library for it that handles everything.
Here is how the electronics part of it all works.
The N channel MOSFETs are used as switches which we are driving with a PWM signal from the ESP8266. The problem here is that the ESP8266 works on a 3.3V logic level and the MOSFETs I used had a Vgs threshold level of around 4.5V. To fix that, I put a comparator made out of an Op Amp between the ESP pin and the MOSFET gate which raised the voltage from 3.3V to almost 9V, which was more than sufficient to drive the MOSFET gate.
Each MOSFET is connected to one of the RGB channels on the LED strip, meaning, that by changing the duty cycle on a particular colour, we can either make that colour stronger or weaker and in that way, we can combine the 3 PWM-s to create all sorts of colours and we can also program effects.
Going by the photos, it looks like you have an antenna connected to the ESP?
I just attached an antenna to get a better WiFi signal, it's not needed really, but I had one laying around so I thought I would use it.
How is it powered and what current does it need?
It uses the 12V power supply that the LED strip came with, as for the current, it highly depends on the LED strip length used in the project, but here, a 2-3A power supply should be sufficient.
How did you go about coding? Did you repurpose somebody's code or start from scratch?
I started by experimenting with examples from the Blynky library and from the IR remote library, and when I got those parts working separately, I just grabbed the things I needed from each code and combined them into the code that is now running on the ESP.
Looks like you are handy with woodworking as well. Can you tell us about the timber construction?
For the timber construction, there are two parts to it; the big board that is the mountain itself and the small wooden planks that go around the perimeter of the shape about 10mm inside it.
The board is just a big board I found laying around (any kind of wooden board would do, this one was around 7mm thick).
I grabbed a big ruler and tried designing a modern, minimalistic, low poly mountain shape. Once I was happy with the design, I cut it out using a table saw, though something like a Jigsaw or even a hand-powered Japanese Wood saw would do the trick. After that, I painted it with grey spray paint and just taped a few pieces of paper as snowy peaks. After that was done, I flipped it around and followed the edge slowly cutting and gluing the small wooden plank pieces.
What challenges did you need to overcome with the build?
Some of the challenges I had to overcome included trying to keep the board as low profile as possible so it wouldn't make the whole mountain sit weirdly on the wall, and playing around with the colour values trying to map everything to the remote nicely.
One thing that could have gone bad is, that during testing, I kept the whole LED strip on the reel and didn't think about it heating up while I was working with it, only to see that the temperature reached 130°C on the thermal camera, have the picture of that!
Would you do anything differently if you started again?
Yeah, for sure, especially because I went with all of the components that I had around the room (this project was from April of 2020 so you can imagine why). I would probably just completely abandon the 9V power rail I used and only stick to 3.3V and 12V to make the whole system simpler. And from there, I would go and check if I can maybe get some MOSFETs that could work with 3.3V logic. The dream build for this project would be to of course use addressable RGB LED strips for even cooler effects.
The last thing I would change is the Blynky part. While it's a great way to get into controlling things with your phone, I would probably now run something like a small server on the ESP and make a small Android app that can connect to that server.
What part are you most proud of and why?
I'm most proud of the finished look of the whole thing of how the whole mountain appears to glow as well as all of the effects I've programmed into it.
If our readers want to build something similar, will you have the code and wiring diagram available?
I have the full final code for the ESP and I also have all of the codes I used to test different parts of the system.
Great. We’ll make the code available on our website. Is there anything else that our readers should know about your project that we haven't discussed?
I think the questions covered most of the things when it comes to the finished project. The only thing that I would maybe discuss and add (also have pictures for that) is the whole prototyping process that leads to the project itself. By that, I mean that it's a good practice instead of going head first into a project and trying to do everything at once, it's a much better approach (and even faster) to actually go and test the implementation of a single aspect of the project followed by another single aspect of the project and so on.
For this project, the example of that would be first testing the IR receiver and trying to read the data from the IR remote, trying to get Blynky to communicate with the ESP, trying to control an LED strip with a MOSFET, trying to change colours using 3 channels, trying on different colours and effects.
Finally, where do you get your inspiration from? Do you follow any particular makers on social media?
Most of my inspiration comes from my passion for making things, so I can see a lot of things as a potential project, and if that's followed with an idea that I deem to be good, I get right into it! Of course, some of the makers I follow on YouTube would be people like GreatScott, AndreasSpiess, Maker's Muse, and Teaching Tech among many others.
I'm also an active member of element14, and the variety of blogs and projects there as well as videos spark up a lot of new ideas.
Perfect. Thanks for showing us your project, Miloš. We hope you get back onto the slopes soon.