I’ve been building my own CNC machine this year, and slowly designing parts to go with it. I needed a dust shoe to collect all the wood and MDF shavings. Didn’t want to pay $150+ and it seemed like a fun project to design to get acquainted with airflow.
The pink version was my first design. It was comprised of 2 parts (actually 3 but 2 were glued together for better printing orientation without supports).
The idea is to have 1 piece permanently attached to the spindle. The other piece snaps down vertically into the mount. In theory it seemed like it would work, but in practice, as the CNC cut deeper, the materials would push up against the brushes and make the piece pop off 🙁
Into the trash and onto V2. I still wanted the show to have multiple pieces so I could remove the parts and have room to work under the spindle.
The ring, after being squeezed into the flat plate under it, mounts onto the 80mm spindle. Then the front and back pieces slide on to the plate via a groove, then the front and back pieces are secured with binder clips!
The brush strip can be found online, and is just cut to length. There is a groove inside that lets you jam the bristles and the part was designed to be nice and snug. It was printed in PETG for durability.
There are many spool holders out there. The problem is there are many spool sizes that makes it hard to build a universal one that works well. I decided to make a spool holder that mounts horizontally and uses the weight of the spool itself to keep the spool in place.
This is version 7 of my design, it’s still in progress and was a good motion study for the joints in CAD. How will it work in practice? We’ll soon find out.
This year my goal is to focus on designing more complex assemblies that rely on gears, joints, or parts that leverage the flexibility of the material itself to its advantage as in compliant mechanisms. https://en.wikipedia.org/wiki/Compliant_mechanism
This part is very specific to my sink, although I could probably rebuild this so the ring clips utilize the flexibility of the material to expand or contract allowing more generic fits.
It’s ugly, I know, but functional. The main exercise here for me was to design pieces that snap together, with the correct tolerances for my machine.
I bought some cheap adhesive hooks for the shower but the were poorly designed, flexed, and did not hold up enough weight. Amazon sells a 20 pack of suction cups which I got for a variety of projects so I created these durable hooks to go with them.
Here is the file to download. All the parameters of the suction cups are variables, so if you buy different ones, just enter your specific dimensions.
The design allows for the larger round part of the suction cup to slide in, then slide up unto the smaller diameter area at the top. The bottom of the hook features a mini extension exactly the thickness of the suction cup to keep the hook perfectly horizontal and also get the most leverage from the suction cup as well.
The best orientation to print this is sideways for the best strength.
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.
3D printer (Creality CR-10)
dremel with saw attachment
hot glue gun
C/C++ (Python3 server)
black and clear PLA filament
2 part silicon mold compound
2 part epoxy resin compound
food coloring and epoxy tiny
M2 bolts and nuts
grey filling undercoat rattlecan
high temp matte black paint rattlecan
ESP8266 micro controller
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.
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!
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.
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.
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.
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.
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!
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.
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.
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.
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!
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.
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.
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.
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.
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.
CO2 laser cutter
5mm birch wood
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.
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.
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.
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.
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
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.
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.
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.
And here is the final design!
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.
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.