Diy Mini–Las Vegas Sphere
Hi, my name is Ben and I’m 15 years old.
In this instructable, you will see how I made my own mini–Las Vegas Sphere. I will show you how I made it from researching all the way to a final design. My main goal was to make a simple and budget friendly mini sphere that could be used as a night light and also have at least one animation. This was a surprisingly much harder design, and it challenged me in new ways of modeling and soldering.
Overall, this was a hard challenge and probably my hardest small project.
Supplies
Most of this stuff has links although the generic things or the tools don’t.
- Materials
- Filament (I used just PLA)
- you need at least either a white or a transparent color for the diffuser.
- CA glue
- accelerator (recommended)
- solder
- Electronics
- Arduino nano every
- Ultra thin Led lights
- Breadboard wires
- 5v 15amp PSU
- power connector
- wire
- IR sensor
- Tools
- Scissors
- Tape (optional)
- Sharpie
- 3d printer
- printer
- multimeter (recommended)
- Solder iron
Background
I thought of designing this model when my old night light died. I decided to try and fix it. Although when I disassembled it, I tried to replace many parts but as I narrowed down the problem I realized that the actual LED was broken. As I was planning to buy a replacement part, I saw this challenge and thought that this would be a cool new way I could create a new night lamp. I first planned on making a simple night lamp that had a light and a 3d printed shell that looked like the planets or the Death Star. However, as I was browsing through YouTube, I came across this video which explained how the Las Vegas Sphere worked. It was very interesting and in the end, I wanted to make my own.
Sketch/questions
Before I started even sketching the design I needed to research how I would make this. There were 4 things I needed to research.
1. LEDs and resolution
2. Electronic components
3. Size/Model
4. Code
I researched this using Youtube, Google and other people’s instructables.
LEDs and Resolution
To start I needed to get the main question which was what LEDs should I use. I first needed to consider my constraints. I wanted the LEDs to be simple to code, need to be RGB (multicolor), and budget friendly. I was first planning to use some leftover RGB strips I had here, but then I saw this person's video and he used a flexible PCB board with mini RGB LEDs. However, as I added up the cost I realized that it would be way too out of my budget. I leaned back to using my leftover RGB LED strips unit I learned about Ws2812b LED lights. These LEDs were much more complex and only used 3 pins. It had 2 power pins (positive and negative) and a data pin. It also allowed you to code each LED individually which would give more flexibility in my code. I also needed to figure out the voltage. If I did 12v it wouldn’t need to be back powered which is where the LED uses too much voltage, so you notice a voltage drop on the end of the LED strip. I decided to go with 5V as 12V is normally used for LED lights that can't be back powered and they were much cheaper. Now that I had the type of strip I wanted I needed to figure out its size.
Resolution
The size of the LED strip would greatly affect the resolution. If the size was too big then there would only be 5 LEDs in a square inch. That would lead to a really low resolution. I found some ultra narrow LED strips that were only 2.7mm wide! The size of each LED was a 2020 which meant 2.0mm x 2.0mm. The normal LED strip’s LED size is a 5050 (5mm x 5mm). Although it was a bit more expensive than the normal ones, I was able to pick it on a deal for only $30.
Electronic Components
Now I needed to choose what electronics I would need. I was first planning to make my own IR remote too but as I added up to the cost I decided not to. The reason it would be more expensive is due to buying a PCB, buttons, and microcontroller. I also had the IR remote from my old night light so I decided to just use that one. Next, I needed my IR receiver and microcontroller. I decided to go with VS1838B as my receiver because I already had some. If you are planning to make this yourself you can buy a different one as I think (not 100% sure) it should work ok with the code. Finally, I needed to choose my microcontroller. I really liked working with Arduino Nanos. I really like Nanos because they have lots of pins, they don’t use much power, size, and how easy they are to set up and code. I say they are easy to set up and code because it takes only a few seconds to compile while the esp32 takes like 1 minute to compile which makes it really slow to debug and test code and it has a USB connected to it so I don’t need to wire it to a microcontroller that has a USB connector. However, I wouldn’t be able to use a nano due to it not being strong (SRAM and memory). That LED me to need an Arduino Nano every because It has 3 times more SRAM. As I thought I was done with this step I forgot about 1 last thing. That was how would I power it.
Power
Ws2812b LED strips need a lot of power. Each light (R, G, B) needs 20 milliamps. That means a full white is about 60 milliamps. Then if I have 160 LEDs per meter and I have 5 meters that means 48,000 milliamps or 48 amps. That’s how much it could draw at full brightness. Although since there were so many LEDs it didn’t need full brightness. So, I changed the max brightness to 25%. That reduced the amount to only 12 amps. Now I needed to model the part in Fusion 360.
Size/model
I first needed to figure out if I wanted the microcontroller in the base or hidden inside where the LEDs are. There were 3 ways I came up with. The first way I could do this is by spiraling the LEDs up although that would be very hard to do. The 2nd idea was to line the LEDs like longitude (horizontal). This would give space for routing wires, but it would give too much space and mess up the resolution. My final idea was to line the LEDs like latitude (vertical). This would remove all space and give a really good resolution but would also make it more of a challenge to wire and look weird in a certain direction. For example, if I looped it around the circumference of the circle and had multiple of them from the sides it would look perfect but at the top, it would look a little uglier. Sadly, I wouldn’t be able to fix this although having a white diffuser should diffuse most of it. This would bring my final problem which was circumference. As I would divide the sphere into 2.7mm sections (led width) it would significantly increase the length of LED because each time I went up one section it would lead to almost a double increase of LED length needed. You could also think of it as the surface area of a sphere.
Sketch/modeling
Now that I had my sketch I couldn’t have dimensions as I needed to just do trial and error of how large the sphere would need to be. If it was a few millimeters too big then it would be a significant increase of LED length needed. After many tests, I ended up with a 100mm sphere. It would be a little small, but the diffuser would make it look larger. Now I started to model my first sketch.
Sphere (modeling)
I started by modeling my sketch. I started off by making a circle that has a 100mm diameter. I then created a line to cut the circle in half. I also added another cut 5/8ths through the circle. Then I revolved the sketch to make a sphere. Finally, I used the 5/8ths line to cut the bottom off. Next, I needed to figure out how to attach the lights.
Lights (modeling)
Now I needed to figure out how to add lights. If I just wrapped them around the sphere it would be very hard to keep them in place and it wouldn’t be controlled. I needed it to be controlled because it would look very ugly and very hard to code. As I was thinking of ideas I thought of creating lines like a staircase. However, as I made it I realized that the staircase idea would make it look like a cone and not a sphere. That’s because a sphere shape is curved so in certain parts it looks almost straight but then the higher you get it starts to curve inward. I then thought of another idea that could give perfectly horizontal lines and create a sphere.
Lights_2 (modeling)
To do this I needed to cut the sphere. I planned on using a construction plane but I realized you can't pattern them which means it would take a lot of time to cut the model. Here’s a forum about it. I realized that I could pattern with surface tools. Surface modeling is another type of modeling in Fusion 360 which does 2d modeling instead of 3d modeling. I realized that I could use surface modeling as construction planes. This allowed me to pattern the surface as if it were a construction plane. I then cut the model to get small sections of a sphere.
Lights_3 (modeling)
Now I needed to hollow out the inside and combine it with the real sphere. I started by extruding the cuts to where I got just the smooth edges. I then did that with all of the cuts and I ended up basically with a shell of a sphere. Finally, I combined it using the cut tool which showed the result I wanted. Basically a blocky sphere.
Summary of modeling lights
I basically needed to remove the smoothness on the sphere to make a controlled area for the LEDs to wrap around. What I did was make objects that were just the smoothness of the sphere. I then used that object to cut out of the central sphere to create a blocky and controlled sphere.
I would love to hear if you had any better ideas on how to do this as this was probably more complicated than it needed to be.
Measure (modeling)
Next, I needed to measure the globe to see if it was small enough. As I said in step 5 I needed to make sure that the sphere wouldn’t use too many LEDs. To do this I had to measure the circumference of each circle on the sphere once I got all my measurements it added up to a little more than 5.5 meters which was too much. I decided to just cut the first section on the bottom off which brought it down to a little less than 5 meters.
Finishing Touches (modeling)
Finally, I added the rest of the stuff. That included a dome and a stand. I also hollowed out the sphere to reduce filament waste and give more space. I added holes for the plug and a place for the IR receiver could go. I was planning to have the IR receiver be exposed but I felt like that would ruin the aesthetic. I decided to have it hidden inside but close to the outside. Finally, I added a fillet on the top and bottom to make it more smooth.
Code Setup
To start I needed to figure out my IR receiver values or signals that it sent out. I started by using some example code here. The code also helped explain how the IRremote library worked. Now that I had the signals it sends for each button I then needed to align that up to PWM signals.
Next, I needed to write the colors I wanted. Since we all decipher colors differently, I wanted to match the color I saw on the controller to the color I wanted the LED strips to be. To do this I wrote some code that used 3 potentiometers that controlled all 3 colors. So, one potentiometer would control R for red another potentiometer would control G for green and finally the same for blue. I then had the Arduino Nano send the PWM signal that came like (0,0,0) which meant 0 red, green, and blue and I could then create whatever color I wanted to make. Now I needed to record these values.
You can see how I wired it at the top.
Spreadsheet
Now I recorded my values. I like using spreadsheets because of how organized they are. I first labeled all of my buttons. I then wrote down my value next to the button. Now I needed to record my PWM values. First, I aligned the color I saw on the controller to the color I wanted the LED strips to be. Then I read to the serial monitor to see what color it showed. It showed an output like (255,255,0) which was yellow, and I then wrote that on the spreadsheet. Now it was time to make the real code.
Final Code
Finally, I needed to make my own code.
To start this code I decided to change the libraries which made it much easier to code. I went with the fastLED library because I saw more tutorials on how to use it. I first defined all of the variables I wanted like pins. Then I defined how many LEDs were on each row. That gave me a shortcut on what LED I wanted. Instead of having to count each LED if I knew how many LEDs were there before it then I could just count the LEDs on that row and add the other rows up. I also opened new animations I could make. Next, I defined each remote value. Now I needed to correlate that to a PWM signal to the LED strip. I did this by using a switch statement. It's basically a lot of if statements but much more simplified. For example, my statement is “if” the value (the variable) is correct “then” do something “else”. This is a very simplified use of it but there are many other cases you can use this, and you find more details here. I was planning to go for simple animations without images but as I realized how easy it is to code, I decided to add some.
Animations
To start coding my animations I needed to figure out how many I wanted. To start I only had 4 buttons so I could only do 4 animations. The first one I wanted was spiral mode which would basically spiral a rainbow. Then I used the 2nd button to have a fade animation. This would make a rainbow of each level. Next, I used the 3rd button to have a fireworks animation. This would be my first complex animation. I wanted it to look like a firework starts from the bottom, flies in the air, and explodes. I did this by turning the first LED in each level white for half a second. As it rose I had it explode and used the random function to randomly turn on LEDs on each level. So, the first level would light up then the second and so on. After that, I was really impressed that I could code that so then I decided to code the emoji face that is very popular. First, I worked on the eye. I gave a place I wanted the LED to be. For example, I wanted it to be the 100th led. Then to have it move back and forth I used math, and had it move that one LED. Then I worked on the second eye and the smile. Since the LED was so small I decided to have multiple LEDs act as the eyes and smile. So instead of one LED activating for each eye, it activates 5 to give a larger circle.
Assembly
I will show you how to assemble it and some of the problems I encountered.
I will warn you that it was very, very hard to assemble.
First I needed to cut the LEDs to length. Make sure that you are careful when cutting and only cut where the copper pads are. Next, I needed to get the number of LEDs on each row. Instead of counting each LED individually, I made a model in fusion that counts them for you. I got some of the dimensions and then I converted it to a 1:1 scale drawing. Once I printed it (on paper, not a 3d printer) I got an almost perfectly aligned replica that counted up to 40 LEDs. This made it a million times faster to count them. I then labeled them with what row they were and how many LEDs there were. I also recommend writing them down on a sheet of paper.
Soldering_1 (assembly)
Now I needed to solder them. It took a very long time to solder them because the copper pads were so small and didn’t want to bond with the solder. I soldered 2 rows of metal wire that were positive and negative. To prevent short circuits I used hot glue as insulation. This was much cleaner than wires but took me a longer time because I was checking for shorts. I recommend you only do this if you have a multimeter to check for short circuits. You can check by using the resistance mode, placing one probe on positive and one on negative and if it shows 0 or beeps then that means you have a short. I also highly recommend you tin the data pads as I didn’t which made the 2nd soldering steps very hard.
Glueing
Now we have to glue the LED strip. We are not going to solder the data pins yet because they are far apart but once the LEDs are mounted on the sphere then the LED's data pins are right next to each other. To glue this, I recommend using some CA glue with accelerator. Double check that you’ve written the number of LEDs on each level and remove the tape.
Soldering_2 (Assembly)
Now we need to solder the data pins. First, tin the LEDs if you haven't and tin the wires. I also recommend reducing the data wire length as mine were too big which led to a very ugly seem. Once your data lines are all soldered you need to test that it works. That means we need to upload the code.
Note:
Even though the soldering looks like 2 steps it took me an entire day to solder. If you decide to do this just have some patience as you solder everything. Also, be very fragile as the wires will want to come undone which could rip the copper pad messing up the entire strip.
Code (assembly)
Now we need to code it. First, you’ll need to make sure that my IR remote values line up with yours. To test this upload the code to your Arduino and press buttons. You’ll know everything works if you can change colors. If nothing happens you need to go to the serial monitor. Each time you press a button it should show the value. You’ll need to change each value and have it correspond to my values. Next, you need to set up LED levels. So now you need to input how many LEDs on each level. For example, if the 1st level of LEDs is 50, 2nd is, 50, and 3rd is 48 then it should be written as 50, 50, 48 in the values. Now all the colors should work and 3 of the animations should work. Finally, if you want the emoji animation you’ll need to enter a few more values. You’ll need to enter where each led. So you’ll start from the bottom and add up to what LED it is. See the photo for more details.
Wiring/3d Model
Now we need to finish the wiring. You can follow the wiring diagram at the top. Then follow the pictures on how to insert all of the components. I recommend gluing the IR receiver and power connector. Finally you can glue the diffuser (white dome) to the base but I don’t think you need to.
Results
This was very hard to make but I love the outcome. For my first LED project I think it turned out really good.
(The photos look much worse than it is because it can’t capture all of the LEDs. I tried to get a video of the fireworks mode but due to there being so many things happening at once the camera cant focus and capture the video smoothly which led to just a blur.)
Next Step
I’m very happy with how this project turned out. This was my first time ever working with LED strips and Ws2812b LEDs. It was definitely more complex than I was planning it to be. I really loved this one but I’m definitely going to make a v2. Here are the things I want to improve. First, I want to remove soldering for me and for all of you guys. I was expecting that the coding would be the worst part (I’m not great at coding) but surprisingly it was the easiest. The assembly and soldering was the hardest as the copper pads didn’t want the solder. I also want to make the sphere bigger. I plan on having my second sphere have 2 sets of strips instead of 1. Although that means I will need an even stronger microcontroller. I plan on using an esp32 which is much stronger and can run LED strips like a breeze. It also has wifi which I plan to use. I can remove the IR remote and use my phone to run it. Lastly, I wanted to have more animations. Overall, I really enjoyed this project and after learning through all my failures I plan on making a new one soon.