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.

Mounted ESP8266 cpmtroller to the bottom

Ok, I got kind of lazy here. I used hot glue to mount the ESP8266 board to the bottom, and used an old broken USB cable to power it via the Vin pin. The board itself runs at 3.3v but the Vin pin accepts 5-20V dc. The broken USB cable red/black wire is a 5V/gnd and I cut off the extra data cables.

I’ve been running this and slowly iterating the code on the server-side. It works great, just writing new plugins when I get the time.

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
Builds

Paint Racks

Emma’s paint collection is getting pretty big. It was impractical to find colors in her basket, so I decided to create some parametric wall-mount removable paint racks to hold her Apple Barrel paint collection.

The Tools

  • Fusion 360
  • Lightburn
  • CO2 laser cutter
  • clamps
  • rubber bands

The Materials

  • 5mm birch wood
  • wood glue
  • drywall screws

The Design

I wanted the racks to be easily removable so I made slots for the screws to easily go in at the ends of the rack. I initially made it to hold 12, but it ended up being too wide.

I would post the Lightburn/SVG/DXF files, however, the design is dependent on the thickness of the material. 1/4 inch MDF ranges from 5.5-6.3 mm. The birch I used was 5mm. Also, the laser kerf (thickness of the laser cut) even though small, may be different than your machine. To do it right, you really need to open the file in Fusion and save the sketches yourself after updating the parameters.

Initial design with handle for easy carrying

The design is completely parametric so the bottle diameter, height, count, and material thickness are all customizable so I can use this to hold anything else like paint cans, sauce bottles and spices, etc.

Didn’t have great clamps, rubber bands should do!

Birch wood seems to have a lot of ash when cut on the laser so I had to take a damp towel to clean off the edges otherwise the glue job is a complete mess.

Mistakes

The stock I used was slightly curved which caused distance issues with the laser’s focal point. Not a big deal, but I should add some weights next time to flatten out the stock

Rubber bands are not ideal for gluing things. After the initial prototype, I utilized some strategically placed clamps and the result was much better. Also, if the wood is slightly curved, I realized that you can use the curve to your advantage to put pressure on the connecting edges.

Categories
Builds

Rocket Ice Cream Cone Holders

I’m always on my computer. I was eating a cone and couldn’t put it down. Ever since the historic launch of astronauts back into space on American soil by SpaceX/NASA, rockets have been on my mind.

And here we are — rocket shaped ice cream cone holders.

The Tools

  • 3d printer
  • digital caliper
  • fusion 360
  • cura / octoprint
  • small metal files
  • 3d printing pen

The Materials

  • silver, black, red PLA
  • sugar cones
  • lots of ice cream for R&D

The Design

I did a first draft in fusion that was all one piece to test the stability and sizing. 3 fins for balanced stability, a bulge-y toy like rocket shape, and some windows for fun

Here is the first draft, super sturdy

The first pass at it was pretty good. I wanted to make sure the bottom had a hole for the cone, so I wouldn’t have to worry about cleaning up leaky cones. Also, i set the height to try to make the tip of the cone look like the flame.

Version 2

Emma did QA testing on the first design by eating a lot of ice cream. She knocked it over once, which made me make the fins wider. From a physics standpoint, the scoop of ice cream can not extend past the imaginary triangle drawn between base.

Version 3

I was kind of worried about kids getting their fingers stuck in the window holes, so I filled them up and decided to add a 3rd color. Also, the windows have a raised texture to provide better grip. Version 2 fins were glued in (using a 3D pen). This version has no glue! The fins were redesigned with tabs that pop in to the silver base. It did require some sanding to account for the tolerance of my printer. The windows were a tight fit, but popped right in with some light force.

Final design, 10 pieces total, no glue

And here is the final design!

Mistakes

None. I never make mistakes.

Just kidding, this is the best part. I actually had several fails related to the same issue. I printed the silver body upside down to avoid adding support material, however, because of the smoothness of the PLA, the piece did not adhere and the prints messed up several times. To fix this I added a “raft” support that you can see in the pictures below which is just disposable material that easily separates from the print, to allow for more adhesion area.

You can see the “raft” base on the right.

Updates

Although the black windows push in and are firm, I would consider adding some tab to help keep it in place. For the fins, PLA is not a very flexible material and will snap. This is called low “tensile” strength which is the amount of give before it breaks. If I were to use something more flexible, I would add tiny clips to the fin notches, so that it could snap into place. Right now the fins push into place, but without any material flexibility to snap and keep it in place.

After more QA testing, I’ve found that not all cones fit this. Keebler sugar cones are too long. Great Value ones work fine. I need to update the fins to make them longer.

Categories
Builds In Progress

Mini Mailbox

I receive (and send) lots of packages from my front door. I love creating scaled versions of things, particularly undersized. I decided to recreate a small version of the classic USPS mailbox for my front door as a place for packages to be held.

Additionally, my idea is to add LEDs, a camera, and make it WiFi enabled so I can monitor at all times, assuming the delivery carriers understand what it’s for. Hopefully I can make it intuitive enough but still retain the classic unmistakable design.

The Materials

  • 1/4 inch MDF
  • wood glue
  • painters tape
  • blue paint
  • inkjet adhesive paper
  • LEDs
  • WiFi camera
  • adhesive spray
  • colored card stock
  • flexible TPU filament

The Tools

  • laser cutter
  • fusion360
  • lightburn
  • Cricut Maker
  • paper trimmer
  • Canon Pro-100 inkjet
  • 3d printer

The Build

Fusion version

I envisioned this to be about 2 feet tall. The parametric design would let me adjust the dimensions. The hardest part of the design (and newest challenge for me) is the curved top. So far, everything I’ve created is pretty square. For this, I’ll have to use some tricks to make the curved top.

Cutting out the curved top

Cutting this took forever! It’s basically an alternating pattern of cuts. In Fusion360, I measured the inner curve length, and built a new piece based on that. The outer curve length is irrelevant for this because the cuts would provide the longer length that I need.

It came out super bendy! So excited. After test fitting the top curve, in the future, I’m going to make the piece slightly shorter than the inner curve surface. Even the the top is doing most of the stretching, the bottom also stretches as well so leaving some room would do just fine. I didn’t leave any tolerance to i had to really tape down the piece well during the gluing process.

First test assembly

Always remember to use the correct height when setting your laser/bed distance. The laser beam is hourglass shaped, and the middle of it should be the middle of your material. I didn’t quite adjust it right so the edges were slightly angled and required a little sanding.

First delivery!

Emma wanted to be the first one to deliver a message in the new mailbox. She is the best!

Testing some packages

I had a difficult time deciding on the right amount of storage. I think the majority of packages will fit in here. it’s roughly 13x13x17.

Glued together and ready for paint

Glued all the pieces together. I used tape to hold down the top curved wood while using wood glue. Everything came together as expected!

Painted with decals and logos

After painting, I added the logos and also lined the inside with colorful rainbow card stock. I also added a little disclaimer label in case somebody actually believes it’s a real mailbox.

Final product installed outside

Here is the mailbox with all the logos and actually being used outside!

Updates

MDF legs on concrete are not great. I’m going to design flexible TPU feet for it to protect it from bumps and scrapes, but also leave it off the ground to prevent moisture.

My original designs were built for 6.4mm MDF. I adjusted the material thickness to 8mm, then generated this STL for flexible TPU. The reason is that I’ve found that TPU needs quite a bit of tolerance. Even if there is extra room, I can fill it with glue.

Installed the feet with a hot glue gun

20% flexible TPU infill + 2mm tolerance fit perfectly! The flexible material really helps to protect the piece and also prevent it from sliding.

Camera installed and live

Using double sided padded tape, I mounted a camera to the top and now get motion alerts. Going to finally put this project to rest for awhile. Thanks for reading!

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

Creality CR-10 Riser Kit

The CR-10 is an amazing printer. However, it does take up quite a bit of precious area in my small workshop so I decided to build a thin case under it. The computer is in the rear part of of the case, and the front will have drawers for storage.

The Materials

  • 1/4 MDF
  • M4 screws
  • CR-10 3d Printer
  • Wood glue

The Tools

  • CO2 laser cutter

The Build

Original CR-10

Here is the original CR-10. There’s that big ugly box on the side of it. It’s so tall that another couple inches isn’t going to matter.

I took apart my CR-10 to examine all the wires, components, etc so I could get a good idea of where to place everything.

Here are the internals of the printer. Pretty basic stuff actually. The power supply is the biggest thing. The board for controlling stuff, the mosfet for handling high current to the heating bed, a couple fans. I also added a raspberry Pi to run OctoPrint.

The drawer with pull cutout

Based on previous projects, I am not going to leave any tolerance for the drawer. I put 1-2mm before and there was a huge gap, so going to gamble with a perfect fit here.

Finished cutting, everything but the top assembled

I glued the drawer together to prevent any screws sticking out messing with the clearance. The main case however is bolted together with M3 hardware. Getting ready to mount the components in! I decided to add a 1mm clearance to the drawers, I think that’s the right amount for all projects going forward. I did a quick test with 0 and it was just too tight.

Internals installed, what a mess

I used double sided tape to mount the power supply, Raspberry, and other stuff. Surprisingly all the hole cutouts I measured pretty accurately! Maybe I’m finally getting better at this.

Final product with printer running

Put everything back together, removed the printer rubber legs and let the printer sit flush on the enclosure. Everything fits perfectly, the drawer works great. I left the top screws off just in case I need to get back into the internals. Gravity does a good enough job of keeping it in place.

Printer back in action

Back on line printing again. Steady helping to make masks/equipment for donation for this CoVid-19 thing.

Updates

I added a nice coat of matte black paint to match the printer. Normally I like to leave MDF unpainted, but wanted a more unified look for the printer.

Side view of the printer

I thought I did a pretty good job with the fan grill.

Picture of the drawer

I left the inside of the drawer unpainted to make it easier to see the stuff inside.

Final product busy printing masks

Categories
Builds

Raspberry Pi Rubik’s Cube Case

I have a 3TB RAID1 ext4 NAS and set up a Raspberry Pi 2 to serve as a streaming media center. I wanted to come up with a cool case. Since the dual drives + Pi is roughly square-ish, I came up with the idea to make a rubik’s cube case. Initially it was just going to be a solid block, but then I decided to make it actually rotate horizontally.

The Materials

  • 1/4 MDF panels
  • color card stock
  • Raspberry Pi / NAS hard drives, power cables
  • black matte spray paint
  • wood glue
  • spray adhesive

The Tools

  • CO2 laser cutter
  • wood glue
  • Fusion360
  • Lightburn

The Build

One side of the cube with the color panels

All the panels will be made of 1/4 MDF. If you look closely, you can see the perforations between the color panels that is meant to allow air flow.

First cut, surprisingly everything is working out perfectly

This is the most cutting I’ve ever done for a project. I used a full 2×4 and them some.

60 watts and 50-60% cutting light butter

I noticed that new/dry MDF cuts much better than old or boards with some condensation. Usually I would have to pop the pieces out, but this project, everything fell out perfectly.

I used card stock to color the panels

I used adhesive spray to add the colored card-stock to the panel pieces. I designed the panels to stick up to give the the colors texture.

The inside of the cube

The design uses a thin cut ring to allow the 3 levels to spin around. I just used wood glue to stick the thin ring to the 1st and 3rd levels, and the middle level circle is slightly larger. I didn’t leave any tolerance, but it was a tight fit and so far works perfectly.

Got impatient placed some of the panels on for a preview
Painted the interior with matte paint

The inside of a rubiks cube is black, so did a light spray of matte paint. Also works to hide the laser cut edges.

Final product, time to install the Raspberry and hard drives.

All that’s left is to install the hard drive and Pi. In retrospect, I made the cube a little too big. I could have spent the time to disassemble the SATA base/connectors. I might redo this to make it more compact.

Installed internals, up and running!

Here is its final resting place, next to my router, serving media. If i didn’t make it able to turn, I could have definitely made the case smaller.

Mistakes

  • built the inside too large, however, might make the most of it by adding motorized movement
  • used card stock instead of adhesive vinyl, which would look more like a rubik’s cube
  • the blue color i’m not a fan of, need a darker blue but we’re in a quarantine because of coronavirus

Updates

  • I got new cardstock and updated the blue color to match the classic cube, so much better!
  • Replaced the Pi 2 1GB with Pi 4 4GB… runs so much faster

Categories
Builds

Espresso Station

This is a little cubby drawer station I made to go with my Breville Barista Express machine. It is meant to store drink mixes, tea, espresso supplies, sugar, cups.

The Tools

  • 60 watt CO2 laser
  • rubber bands
  • Fusion360
  • Lightburn

The Materials

  • 5mm birch plywood
  • wood glue
  • sandpaper

The Build

The main body with mini handles for easy lifting, and a small wall around the edge

The empty space will have a drawer that slides in and out for main storage of tea bags, supplies, etc.

Draw with openings on both sides

I designed the drawer with a 2mm tolerance on all sides and found out that was way too much. I should have done 1mm or less. I put the hole handes on both sides to allow for air to escape because I assumed it would be a tight fit.

My trusty 60 watt CO2 laser

This is my first project with birch plywood. I did NOT know that the middle layers of the plywood were not 100% filled. Surprisingly, this 5mm birch cut much easier than 6.3mm MDF.

Rubber bands and wood glue

Putting together the pieces was messy. I used steel wool to brush off the ash from the laser cuts, but it still got everywhere.

Wood dried and cleaned

I tried to sand off the dirty ash, but found out that a damp cloth worked even better to clean up all the dirty ash from the surface.

Finished product

I engraved a little coffee logo on the front just for fun. In retrospect, the design is much too long, I could have made it a little more compact.

Mistakes

  • top-front piece was designed with no interlocking joint and relies entirely on glue
  • the 2mm gap tolerance for the drawer is way too much
  • tried to sand off ash instead of wiping it down
  • design too long, need to shorten it
  • found out i added tolerance to BOTH pieces, doubling up on the gap
  • need to engrage the logo a bit darker next time
  • need to round off the fillet on the handles more to match the drawer handle

Updates

Redid the design to make it shorter, also fixed the front top piece so that it interlocks properly. I also burned the espresso logo in the front darker and rounded off the fillets.

More reasonable looking
Categories
Builds

LEGO Minifig Display Case

I previously built a minifig display case but it was big, heavy, and awkward. It also did not have a glass cover in the front and seemed to collect lots of dust, so I decided to redo it.

The Tools

  • Fusion 360 / Lightburn
  • 60 watt CO2 laser
  • staple gun
  • drill (only for pilot holes)

The Materials

  • 1/4 inch MDF
  • 5x3mm circular neodymium magnets
  • plexiglass
  • support board
  • sawtooth picture frame mounts
  • epoxy
  • hot glue gun

The Build

Shelves with engraved placement markings

I decided to make it 5 columns 4 rows of minifigs so 20 per display case. The Fusion360 design is totally parametric (I think) so I can easily adjust these to customize it.

Case put together

There are 3 types of material used. 1/4 MDF for the frame and shelves, the white support board (like you get from cheap bookshelves), and plexiglass for the front cover.

M3 nuts and bolts to hold the frame together

I used bolts for the 4 corners of the frame. I did not want to use glue. Here you can see the notch that holds the M3 bolts.

Glass with magnets holding the cover

I used neodymium magnets, 5x3mm circles, to hold the front glass together. The 1st and 3rd shelves have notches where I used epoxy to glue 4 magnets to the shelf. There are also 3mm holes cut in the plexiglass. It’s kind of weird, but works and I didn’t have to use any hinges.

Added the minifigs

I used a hot glue gun to mount the minifigs using the engraged indicators for perfect spacing!

Small collection of figures

After the first one was a success, I made 2 more. Still need another one!

Mounted using picture frame hangers

I used 2 sawtooth picture frame mounts per display case to mount everything to the wall. All done!

Mistakes

  • probably could have designed the frame mounts in the other direction so the frame can sit flush on a flat surface

Updates

I created another size for my 4 larger minifigs. It really tested my parametric design, which didn’t do so well so I had to make updates.

2×2 custom frame

I noticed that my MDF was pretty fresh, so it was dry and also not as thick as I spec’d it out for. Also, I put the magnets in the middle, but since there is only 1 shelf, it’s a little wobbly. Going to add stoppers the top and bottom to make sure the glass sits straight.

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