Categories
Builds

Street Light

Not sure why, but I wanted to create my own street light. It features LEDs, an ESP8266 microcontroller with WiFi and notifications, resin-cast lenses from silicon molds, 3D printed parts, as well as some store bought piping.

The Tools

  • 3D printer (Creality CR-10)
  • dremel with saw attachment
  • mini blowtorch
  • hot glue gun
  • soldering iron
  • hand saw
  • C/C++ (Python3 server)

The Materials

  • black and clear PLA filament
  • 2 part silicon mold compound
  • 2 part epoxy resin compound
  • food coloring and epoxy tiny
  • M2 bolts and nuts
  • sandpaper
  • grey filling undercoat rattlecan
  • high temp matte black paint rattlecan
  • pvc pipe
  • ESP8266 micro controller

The Design

Designing the initial pieces

I eye-balled the design after staring at pictures of street lights. I noticed that they are different everywhere. Some have fully round covers, others are cut out like I have. Some have small backs, some large. Some are black with yellow outlines, some don’t. The pro is that I just need to design something close, the con is that there’s no single classic design.

The above files were all designed in Solidworks. They are meant to be assembled using M2 bolts/nuts to give it the industrial look. I didn’t design the pole/stand yet because I wanted to get a feel for the size first before deciding on the pole height and thickness.

The Build

Initial print with “transparent” PLA

I was really unhappy with the “transparent” PLA that i used to print the lenses. There were 2 versions I printed in attempting to get it clear. They were a big fail, but I ended up using it to make a silicone mold which I use to cast resin which worked out much better!

Old silicon mold compound was rock hard

Of course my existing silicone compound had expired. I didn’t even know they have expiration dates. You can see it’s nearly full, only used it once for a test. Had to buy compound as these have about a 1 year shelf life, or a few months if you open the bottle.

Making the silicon mold

I used a glue gun and foam board to put together a tiny box for the mold. I also glued the lens the bottom to prevent it from shifting.

Mold poured

The mold takes about 12 hours to cure. There was absolutely no smell, and the compounds were easy to clean, unlike 2 part epoxy resin.

Green resin casted!

I normally color resin with a few drops of food coloring, but usually you can use acrylic paint. I bought some resin coloring just for kicks and the green came out perfect. The red however was way to opaque and I resorted back to food coloring to get a more translucent resin.

Finally looking legit!

Green and yellow came out perfect the first time. Red took me 3 times to get right. I don’t have a degassing chamber so there are tiny bubbles, I think it will help with diffusing the LEDs under. We shall see!

First test with level converter for 3.3v to 5v signalling on the 8212b

ESP8266 is a 3.3v controller. 8212b is a 5v signal. Here I am doing a quick prototype test to see if the signalling works… spoiler alert, it didn’t. Adafruit’s NeoPixel library didn’t like it.

Soldering took forever!

I used 5v neopixels (8212b) to form an array of lights, 10 LEDs for each street light. I mounted card stock under it to help with the color and adhesion.

Debugging digital signals from the 8212b channel

Using 5v Arduino Nano I was able to get good signalling to the 8212b neopixels. However, this needs WiFi so I switched to a beloved ESP8266 3.3V microcontroller. I could not get the signal to work correctly using Adafruit’s NeoPixel library. Instead I had to switch over to FastLED.

Nightmare comparing signals between Nano and ESP8266!

I used my trusty Rigol to try to diagnose the difference between the signal libraries. At the end of the day, I don’t have time to debug the Adafruit library and running with FastLED. Also look how clean the signal is! those series resistors really help with bounce!

Top of the street light pole
The base of the light
Pole mount to conect to the pipe.

I bought a cheap PVC pipe to use as the metal light pole and just fabricated the base, cap, and mounts. I then painted everything with silver/metallic paint which came out much better than I expected. I had to sand the smooth PVC pipe a bit which gave the paint a grainy metal finish which was perfect.

Pre-painted base

The base fit the PVC pipe perfect, thanks to my trusty digital caliper. The base is slightly hollow to allow the ESP8266 controller to fit within the base flush. The only thing that is needed is a 5v micro USB cable which I left a cutout for.

Above is the C/C++ source code for the light itself. In order to keep code flexible, it acts as a thin client that connects to WiFi and listens to requests on the LAN via UDP packets to port 31337. I chose UDP just to keep it simple. I didn’t need any packet acknowledgement because I consider this low priority traffic (pun intended).

Basically light turns on, connects to wifi, then waits for a light pattern to be received. The pattern then plays continuously until the next pattern is given. The code is organized as a basic solid state machine with only 2 states for the time being.

The pattern string is 2 characters.. “XY” where X is the color (or brightness intensity) and Y is the time interval. R is red, Y is yellow, G is Green, C is clear. If the first character is a number 1-5, then that signals (pun intended) the light to change the brightness. Finally, the letter E specifies the end of the sequence.

For example, “11R5C1R355Y3C5E” – Sets brightness low, then long red light, quick clear, medium length red, set max brightness, medium length yellow, then clear for a long time, then repeat. Currently there is no way to turn on more than 1 light at a time.

The server side code is where all the heavy lifting gets done to monitor weather, stocks, pings, and other fancy events. I thought about building all that into the light to be standalone, but then realized how spoiled I am with high level coding and didn’t want to bother.

I’ll post the server-side code later after a bit more work. It’s running on Python 3 right now. I’m currently working on it to allow “plugins” so anybody can add a plugin for “weather”, set their own thresholds, and design their own light patterns for each event.

Mistakes

The big black panel was 3D printed.. what a waste of time. Next build I would opt to use the laser with a piece of acrylic or plexiglass instead just for durability and time savings.

Categories
Tools

Creality CR-10 3D Printer

My first 3D printer was the gateway machine into the world of design and fabrication. Many years ago, thought 3D printing was way out of my reach. Now, printers are pretty common and the technology is stable yet still growing rapidly.

I found an online deal on an ANET A8 DIY printer for $150 and cut my teeth on that machine. It was modded like crazy using parts printed from the machine itself, and in due time, everything on it broke and was replaced one way or another. The bed, nozzle, controller, power supply, it was a rough but wonderful learning experience.

This Creality CR-10 was my second FDM (fused deposition modeling) printer. Almost 3x the price, but 10x more reliable, simple, and sturdy. If you want to learn things the hard way (like me) then get a DIY kit and build it yourself. If you don’t find joy in things breaking and waiting for replacement parts, then get this.

No machine is perfect (or maybe that’s my excuse to mod things). Here are some tips that will make this machine amazing.

Printing Bed

The bed is the flat heated area that the material is layed out onto. This printer comes with a thick square glass sheet usually made of borosilcate glass which is particularly able to handle fluctuating temperatures.

Wisamic Borosilicate Glass Plate Bed 300x300x3mm for 3D Printers Prusa, CR-10 CR-10S S3, Mendela, AO Series

The piece of original glass that came with my printer was warped. I’m not sure if was always warped, or became warped with the tens of thousands of hours of use. The first layer of print was getting really difficult because some areas were too squished, other areas the plastic would not stick. Always check your glass with a metal straight edge to ensure flatness. There are some people that “fix” warped glass by padding areas with tape. I tried that, didn’t work, decided to spend $22 and now my printing area is perfect.

Bed Adhesion

Now that your printing bed is perfectly flat, it’s time to get the material to properly stick to it. I’ve tried everything, Aquanet hairspray, blue painters tape, masking tape, even slurry. The solution people seem to like the most is Kapton tape or PEI. Currently, I am using a special adhesion surface that seems to be working very well.

BuildTak 3D Printing Build Surface, 12″ x 12″ Square, Black (Pack of 3)

Printing ear protectors for face masks during COVID-19

These square plastic sheets seem to work very well. The caveat is that they definitely need to be cleaned with isopropyl between prints. Even though your parts may seem to come off perfectly, there is definitely a chemical residue that it leaves behind which makes prints eventually not stick to the surface.

My original blue painter’s tape method

Blue painters tape works very well. However, the blue color will stain and stick to your material and it is quite difficult to remove the piece from the glass bed. If you are having a hard time getting a piece to adhere, I would fall back on blue painters tape.

Remember that the object you’re printing also affects adhesion. If you’re printing a large object, plastic shrinks when it cools down, so the piece is likely to curl and pull away from the bed. In those instances, you need to think about printing with a “raft”.

The green part is a raft

The extra wasted material on the edge of the object helps give it more surface area to stick to the bed.

Categories
Builds

Drink Coasters

Machines that serve a single purpose are fun. But it’s even more fun to combine different materials and machines. I decided to make drink coasters that were laser cut out of foam place mats and print 3d coasters and a holder to test all my filaments for moisture.

The Materials

  • cork placemats from IKEA
  • tons of different filaments (PLA and wood)
  • spray adhesive
  • dessicant packages

The Tools

  • 3d printer
  • laser cutter
  • fusion 360
  • lightburn
  • cura
  • food dehydrator

The Build

This build is pretty simple. I cut out 80mm circles from the cheap cork placements I got from IKEA.

The design is super simple, just enough height to cover at least the foam pad

The real reason to make these is to test my filament. All filament spools are subject to moisture which causes print quality to have issues. With PLA, you will hear cracks and pops (which is the water vaporizing at 200C) and the prints will become flakey and uneven.

Here are all the different filament colors I have

Several of my PLA spools were damanged from long term exposure to humidity. If you want to test filament without printing, simply bend it and if it snaps easily, then there is moisture in it. Good dry filament should be able to be bent (permanently deformed) but not snap.

In order to fix filament, you can put it in the oven at about 140F-160F for a few hours.

Putting my food dehydrator to use!

I didn’t want to use the oven and preferred to do a longer slow moisture extraction, so I used my food dehydrator, removed the top, cut a circular hole in a cardboard box, and put the top of the blower in the hole. I also cut out air outlets at the bottom of the box to allow the air to flow out from top to bottom.

New color changing filament. Coaster wasn’t big enough to see color change, but i still got a really nice blue coaster out of it.

After drying out the filament, the prints started looking much better. No flaky surfaces or brittle filament. I then designed a holder for it that fits 6 coasters.

I used special wood-infused filament for the holder.

This special wood-infused filament can be stained like normal wood and even smells like charred wood when printing. Overall, happy with the coasters and it was a good exercise in understanding the affects of moisture and how to fix it and save my spools.

Updates

It’s not too late but I want to add engraved logos on the coasters to make them a little more interesting. Not sure what the logos should be yet, but it should be easy to throw under the laser and etch in.

Categories
Builds

Giant LEGO Minifig Mount

Instead of a display case, I wanted to make a wall mount with lego pegs that my large LEGO minifig lights and clocks could sit in. They come in 2 different sizes.

Measured the buttons to fit into the minifig
Categories
Builds

Marshmello Helmet

Every project is cooler with LEDs. I made this neo-pixel and Arduino powered helmet with both battery or 5V plug in power.

Categories
Builds In Progress

Megaman Blaster

Front of the cannon

I custom designed in OpenScad this front of the cannon with LEDs

Backside of canon tip

The back was designed to have holes exactly the size to mount LEDs in. The pieces were printed with “translucent” PLA to diffuse the light.

Gotta have the helmet

I found a mini helmet online and printed a small scale version of it.

Initial print, super rough

This is the assembled first print. There was so much sanding that I had to do. I learned a lot about how to fill holes and smooth out the lines in the print. The support material that was broken off left so much work to be done.

I used some 3M filler to smooth out the print lines

Especially around the yellow lightbar the print was really rough. The post prep on this part was intense.

After sanding and painting

Did about 5 sessions of filling and sanding with bondo before I got it to a point where it was nice and round. Here’s me holding the canon. It has a handle inside. Still need to build the electronics.