My interest in microcomputers and the International Space Station developed together. Early in my exploration of microncomputers, I wanted to make something that could track celestial objects through the sky. The Sun, Moon, and planets were early candidates. Then I found this — a 3D-printed satellite dish that moves!
I had no idea that you could see the ISS as it passed overhead — sometimes high in the sky, sometimes low. Sometimes for a long time, sometimes for a short time. In fact, the ISS is “overhead” about six or seven times a day — but you can’t see it in the daytime, you can’t see it when it’s in the Earth’s shadow, trees and houses block your view when it’s low to the horizon, and you can’t see it when it’s cloudy.
Inspired, I decided to build my own satellite dish that would point to the ISS and track it as it passed overhead. Along the way to the finish line, I learned about celestial navigation, star magnitudes, azimuth and altitude/elevation, two-line elements, stepper motors, and more.
Baby Steps
There were many. things I needed to learn before I could put everything together.
Can I determine when the ISS would be visible at my location?
Can I print a number that would tell me where in the sky the ISS is right now?
Can I get an arrowhead on a stepper motor to point to a dial face indicating the altitude and direction to look and see the ISS?
Can I print and drive a satellite dish?
How do I calibrate the dish?
Pieces of the puzzle
One of the resources I used in the final design is https://api.n2yo.com. This is a REST API.
You send it some parameters, you get data back. According to the author,
“The purpose of the API is to provide data for software/web developers to build satellite tracking or prediction applications.“
Another API resource is https://forecast.weather.gov which gives me a measure of cloud cover expected during a future pass. (There’s no point setting an alarm for 3am to see a passing if it’s completely clouded over!)
I wrote getpasses.py to run on a headless Raspberry Pi Zero W. getpasses.py queries the https://api.n2yo.com and the https://forecast/weather.gov REST APIs. It then prints a table of visible and/or invisible passes. (Lately, I only do visible passes, but during development I also did invisible passes so that I could run tests even when the Sun was shining.) Here’s what getpasses.py logs.
(Scroll the table left and right to see all the columns)
Red timestamps are in UTC and green timestamps are in the local timezone.
The columns are
Column
Meaning
sAZ
azimuth (compass direction) where the ISS will first appear above the horizon.
sAL
altitude of the ISS when it first exits the Earth’s shadow and becomes visible. (Altitude here does not refer to the height above the surface of the Earth. It’s an elevation — the angle you have to raise your arm to point to it.)
maxAz maxAl
the azimuth and altitude of the ISS at its highest point in the sky.
eAZ eAL
the azimuth and altitude when the ISS blinks out because it is below the horizon or has entered the Earth’s shadow — ending that pass.
dur
the number of seconds that the ISS will be visible on this pass.
mag
the brightness of the ISS. The more negative, the better. The ISS is BRIGHT!
clouds
the percentage of cloud cover.
Calendar Updates
Every day at 3pm, getpasses.py runs and writes all this data to a file. This flat file is read by an Apple Script on my MacBook Pro that I launch manually. The script takes the details of each upcoming visual pass and adds an entry to my Calendar so that I can plan ahead and watch the pass live if I choose. The further out in time, the less accurate the prediction. By running getpasses.py daily, the predictions for future events are as accurate as can be expected.
A most critical function
getpasses.py does not track the ISS as it passes overhead. getpasses.py tells me when future passes will occur. It also adds a line to crontab for each visible pass. At the time of the predicted pass, the crontab line launches trackISS.py. It is trackISS.py that computes where the ISS appears at that instant and controls the satellite dish to point to the ISS as it moves across the sky.
Here’s a sample of what getpasses.py writes to crontab.
A sky chart is worth a thousand words. The https://heavens-above.com web site provides a sky chart for each visible pass. It shows when visibiliy begins and ends and traces its path across the sky. Looking at the skychart gives you a much clearer picture of whether the pass is worth observing directly. Long trails high in the sky are great. Short, low trails are not. I review these charts each time I run the script to update the calendar.
Long, high ISS path. A “must see” if the weather cooperates.
Short, low ISS path. Sleep in!
Calibrating the dish
The physical dish and components are mounted onto a long board. To use the dish, you take the board outside and align the board along the North/South longitude. Once the board is aligned, you then need to adjust the dish so that it is pointing at the Southern horizon. When trackISS.py starts, it assumes the dish is pointing due South and zero altitude. These are arguments passed in on the crontab line. The simple stepper motors I use to move the dish can’t tell where the dish is pointing. calibrate.py is a program to manually put the dish into the proper orientation. I visually see if the dish is pointing South (180 degrees). It’s dead on or it’s either left of South or right of South. I’d empirically determined how many steps it takes to move the dish 1° (left or right). If I see the dish is too far to one side, I hit either the < or > to swivel the dish by 180° (x steps) in the appropriate direction.
If I overshot, South, I hit a key and backtrack 90°.
If I undershot, South, I hit a key and continue in the same direction but for only 45°.
I keep swiveling left or right by ever decreasing angles until the dish is either dead center on South. It’s a binary search for the correct position and only takes a few taps for even the most grossly misaligned dish.
The first thing trackISS.py does during a pass is to blink an LED a few times to warn bystanders that the dish is about to move. It also sounds a klaxon. (This annoyed my wife no end several times per night, so it has since been silenced.) trackISS.py accesses https://celestrak.org to get the list of two-line elements (TLEs) from NORAD. TLEs are literally two lines of numbers. Each space object tracked by NORAD has a TLE. The numbers in the TLE are updated daily and are used to calculate the position of that object at any future time. Here’s a sample of what NORAD provides. The TLE for the ISS is the first entry.
After initialization housekeeping, trackISS.py enters a loop with a 1/4 second delay. During each pass through the loop, trackISS.py calls the skyfield Python library to compute the azimuth and altitude of the ISS. trackISS.py doen’t care if the ISS is visible. It tells you the spot in the sky where the ISS is. Tracking works for visible and invisible passes.
Once the position is computed, trackISS.py sends commands to the two stepper motors. There is an imperceptible lag between computing the ISS position and the dish physically moving there. Since the starting position of azimuth: 180° and altitude: 0° was assumed, it’s easy to compute how many steps each motor needs to take to point to the actual ISS azimuth and altitude. After the ISS has gone below the horizon (a negative altitude), the dish parks itself back to [180°,0°]. That’s trivial. The dish knows how many steps each motor has taken during a pass and simply takes that many steps in the opposite direction.
Building the disk
I used the Thingiverse model that inspired me. Details of that build can be found on Thingiverse. I won’t repeat the details here.
Putting all the hardware together.
The main software components run on a headless Raspberry Pi Zero W. The Pi connects to two stepper motors — one for azimuth and one for altitude. Each stepper has its own driver circuit. There’s a warning led and a piezo speaker used for the klaxon. A 1602 LCD displays the current azimuth & altitude during a pass. The LCD is connected to the Pi through an Arduino board. A separate PyPortal sits near the dish and displays a map of the world with the position of the ISS. This display runs continuously to show the point on the Earth’s surface that is directly below the ISS.
Conceptually, it looks like this.
Conceptual view of the ISS hardware
It actually looks like this:
Here’s the real deal.
Running the app
trackISS.py produces this log as it runs. Each time the azimuth or altitude changes, it prints a line. The line shows how many steps the motor needs to take (left/right or up/down) to move the disk into position.
Lastly, there’s a video of the first, night-time, confirmation that the dish really does point to the ISS. When the tree and rooftop come into shot, there will be an arrow pointing left. It’s pointing to a tiny, white dot moving left. THAT’S THE ISS! When the camera pans down to the apparatus, you can see the dish is pointing to the dot.
There are things I’d like to change about my setup.
It’s not easy to move from the lab to outside or another site. The components are not glued to the board. It’s easy to knock something loose. I’d like to mount all the components onto a PCB and do away with most of the wires.
The dish itself is not level and plum. It kind of droops a bit and is held together with painter’s tape.
There’s a lot of backlash. The altitude motor is mounted on top of the platform that swivels through azimuth. That’s more mass to move than desired. I’d like to have both motors glued to the board and provide linkages to the moving parts.
I look forward to making those things happen. I just hope I’m done by the time the ISS is decommissioned and plunges back to Earth.
I have written previously about my SONOS speakers and my family’s frustration with the app that controls them. See SONOS Speaker API Overcomes App Limitations In that blog post, I resolved my wife’s biggest issue with the SONOS app. She now has a two-button device that plays and stops her favorite playlist on the speakers in the basement.
But my biggest pet peeve remained unresolved until recently. Each speaker has its own, independent volume control. This is a double-edged sword. It’s great because my wife can blast her playlist in the basement while I’m upstairs playing my classical playlist at a much subdued volume. On the other hand, if we want to play a party mix over all twelve speakers in the house, I have to set the volume on each speaker individually.
For my wife’s solution, I implemented an MQTT broker, subscriber and publisher.
A Raspberry Pi Zero W runs a Broker program and a Subscriber program at boot.
Both apps are written in Python. The Broker listens on the network for any MQTT traffic and forwards that information to all Subscribers that have expressed an interest in the data. When the Subscriber starts, it tells the Broker what traffic it’s interested in.
The two-button device is the Publisher. When the PLAY button is pressed, the device sends a sonos/play message to the Broker. The Broker forwards this message to the Subscriber. The Subscriber responds by calling the SONOS library (soho) to control the speakers. The Subscriber runs on the Raspberry Pi Zero because the SONOS Library is beefy and needs the power and a lot of dependencies. As long as I had a Pi Zero in the mix, I decided to also use that for the Broker as well. The Broker and Subscriber are just two processes that happen to be running on the same hardware.
I was able to use this existing infrastructure to solve the volume control problem. I just had to write a Publisher app to cause the existing Subscriber to set speaker volumes in addition to launching my wife’s playlist. I decided to write a SwiftUI app for my iPhone for Publisher. Here’s what the new architecture looks:
The iPhone app has a slider and a Volume button that sends a message to the Broker which passes it along to the Subscriber. With this button, I can set the volume of all the speakers to the same specific value.
The Minimize Volume button tells the Subscriber to scan the volume levels of all the speakers, find the minimum value, and adjust the volume on all the speakers to that minimum level. The Maximize Volume button sets the volume to the same value as the loudest speaker.
Finally, Whisper sets the volumes to a level that is just barely audible — you can tell the speakers are on, but they don’t interfere with phone calls or people at the door.
For over a decade, I’ve wanted to attach an action camera to my bicycle helmet to make time lapse and long form videos. Now that I’ve worked out many of the kinks you can check out the cool results on my HYPERBIKE YouTube channel.
In 2017 I attached a 3D printed PLA GoPro HERO 3+ mount to my bicycle helmet (the same helmet, sans stickers) but it had some serious problems. The footage was too jittery to use, video stabilization was not as advanced or as available as it is today. More seriously, I attached the mount to the helmet with a bolt that actually touched the top of my head. If I had an accident it could have caused serious injury.
Fast forward nine years, I designed a GoPro compatible base designed to be 3D printed from flexible TPU filament and safely zip-tied to my helmet between the forward vents.
The camera holder is an adaptation of https://www.thingiverse.com/thing:6978330. The GoPro HERO 4K has a 165° lens so I removed some material from the interior corners of the holder around the neutral density (“ND”) filter for a better field of view (“FOV”) reducing corner vignettes from the holder.
When 3D printing flexible filaments, I find it beneficial to remove as much friction from the feed mechanism as possible. The easiest way I found to do this is to mount the spool on a paint roller clamped to a nearby shelf. The paint roller has smooth rolling bearings and the fuzzy roller holds the spool securely. This works so well I need to be careful not to pull the filament too quickly because the weight of sagging filament is enough to cause the whole spool to unroll.
I still like to use the TPU settings from this older video from Angus at Makers Muse, one of many awesome design and 3D printing YouTube channels. I could probably print a little faster but I like the quality and rarely need to shave minutes off a print time of a few hours. I’m really happy with how well I’ve tuned the support settings to be functional yet removable, a challenge with a tough filament like TPU.
I use this same GoPro HERO 4K camera holder for my 5″ quads so I know it works well and can stand up to a beating.
This camera mount, being flexible, has a fair amount of bounce and wiggle, but the modern GoPro HERO 4K has a built in gyro and embeds the motion data in the video files. I use Gyroflow to join and stabilize my videos with beautiful results.
I took it out for a few bike rides and it worked great but there was a LOT of wind noise. I never noticed wind noise in the drone footage because the quads are so loud, but on a bicycle with dialog, the intermittent loud roaring was far from ideal. The camera microphones need a “wind guard”, also known as a “muff”, or “dead cat”. These are the furry covers you always see on microphones to diffuse air energy before it gets picked up. They’re affordable and available, but I didn’t want to wait for shipping, so inspired in part by this guy, I searched all over the house for something sufficiently sacrificial, furry, and immediately available.
I found a whole bag of these little cat toys so I hot glued some cool looking black ones to the 3D printed camera holder. The GoPro has two microphones, one on top and one in front right under the lens.
Now my camera looks like Bert from Sesame Street with a goatee.
I needed to carefully trim the lower muff so it was not visible from the camera.
The cat toy dead cat works great. Ideally maybe something with longer fur that is a collection of different lengths like the commercial options may be an improvement but this is what I had and I’m really happy with it. This was a quick cheap effective hack that’s still working for me.
What will you make next?
Workshop 88 makerspace is sponsored by Comparion Insurance. Local agents who know insurance inside and out, able to easily guide clients through the complex process of finding policies to match their unique needs.
I collect bottle openers, one for each vacation destination or brewery visit. They’re kept in chronological order on a rack I made in 2017 from the oak cabinetry panel of our old kitchen refrigerator. To be honest, it was 80% full the day I finished it nine years ago. Keeping them under the 3D printers and over the PCs in this high traffic area is problematic, they are frequently knocked down. I needed a new sensible extensible solution.
It makes more sense that they’d be kept on the “beer fridge” so I designed a modular magnetic rack system for them in FreeCAD. The rack is a 290mm x 25mm dovetail that just barely fits on the Prusa2 (Klipper/RAMPS modified Prusa i3 MK2s) print bed. My original design was 300mm long but didn’t fit on the bed, so I shortened it in the spirit of “design for manufacture”. I printed the hooks below on Sam Bell 2 (a home built i3 clone functionally identical to the Prusa2). I chose blue and white to match the colors of the München Biergarten magnet already on the white refrigerator. After some iteration to determine adequate spacing, tolerance for mounting the 4mm x 2mm magnets, and a few more iterations to get a good fit for the hooks on the dovetail, I started cranking them out in PLA. The hooks print best one at a time so I spaced them out and for the first time I configured and used sequential printing. Sequential printing can print multiple parts but it prints each one after the other instead of all at once. They all turned out great.
Side note: My fathers father, William “Herbert” Williamson fixed clocks, watches, and jewelry. He had many unique and interesting tools. When I was four years old I always wanted to play with his brass and rawhide hammers. I remember occasionally seeing them when he opened the lower left drawer of his workbench and I think I only got to touch them once. I can hardly imagine the stress level while handing a four year old a hammer in a small clock workshop. I’ve since inherited them and it gave me great joy to finally be able to use the rawhide hammer to drive in all the magnets.
It’s all done and it turned out better than I expected.
Note: The silver bar on the freezer door contains nine promotional bottle openers from one visit to the 2023 Design-2-Part manufacturing trade show, whereas on the refrigerator door the bottle openers are each unique to a trip in chronological order.
Bonus Content
If you are curious, this is what the inside looks like. I occasionally like to take a picture after restocking which is roughly annually I realized after digging up these photos.
This is probably my biggest fitness headwind but it brings me joy. I’ve veered waaaay off the topics of design, making, and 3D printing.
Now back to your regularly scheduled programming.
What will you make next?
Workshop 88 makerspace is sponsored by Comparion Insurance. Local agents who know insurance inside and out, able to easily guide clients through the complex process of finding policies to match their unique needs.
Workshop 88 had a Makita track saw rail without a saw to go with it so I thought I’d try designing a 3D printed sled for the saw. Workshop 88 has a few circular saws so I was looking for a way to make a “universal” sled. Luckily, I found that a surplus steel bar originally for hanging file folders was a good fit for the tool mount slot at the front of the saws.
I learned a couple of interesting things in the process, like somehow the Ryobi battery operated saw magically had a base that perfectly fit against the side guide in the rail, so it could be used directly without an adapter. The other thing I learned from Jim is that circular saws can be either left-handed or right-handed. The corded Menards Tool Shop circular saw is right handed and the battery operated Ryobi is left handed.
I sketched the profile of the track in FreeCAD and iterated 3D printing profiles that fit snugly but moved freely with the slot, then modeled the slot holes and bosses needed to securely install the steel mounting bar using M3 socket head cap screws.
When happy with the fit I extended the model to a length that would extend under the saw past the blade that would also fit comfortably on the Qidi X-Plus 3 printer. Finally I added a Workshop 88 logo for decoration. Thanks again Canuck Creator for donating the 3D printer to Workshop 88 at the Midwest RepRap Festival (MRRF)! It really has been a great upgrade for the Makerspace.
I cleaned the bed, used a little Aqua Net hairspray for added adhesion security, and loaded up a spool of Polymaker red PLA to match the saw. Thanks Polymaker for the sponsorship!
It fit together beautifully! Only the very astute reader may notice that the picture of the one on the 3D printer is a mirror image of the working one below. After printing for nearly 3 hours I excitedly removed it from the bed to discover that I had extended the wrong end of the thin prototype and the tool mounting bar slot was at the wrong end! I was so confused at the time, but when I realized the mistake at open house, we all laughed. I’ve since corrected the CAD and printed the working non-Bizarro version depicted below.
It turned out great. The bar allows lateral adjustment of the saw to really dial in the clearance between the track and the blade. The broad PLA bottom rides smoothly on the low friction strips, and the tolerances are tight enough for high accuracy cutting without binding. I’m super happy with this design.
It’s a very niche design for a particular saw and track, and the CAD file is a little hackish, but if you are interested, here are the CAD and step files for download:
The new addition to the wood shop lives on the shelf with the circular saws. We all can’t get over how well the Polymaker red PLA matches the color of the saw, too.
What will you make next at your local makerspace?
Workshop 88 makerspace is sponsored by Comparion Insurance. Local agents who know insurance inside and out, able to easily guide clients through the complex process of finding policies to match their unique needs.
It’s springtime in the American Midwest, which means flowers are blooming, birds are chirping, the grass is getting greener, and at my house the fountains need to be set up for the summer. This fountain pump was struggling for a day then stopped pumping altogether and started rattling loudly. When I went to order a replacement pump I realized this was already a replacement pump from only 3 years ago, so I thought I’d do a little digging to see what went wrong and see if anything was serviceable.
The little 6W 500 liter per hour pump is a familiar AC impeller type and I found that one of the impeller blades had broken off. I was impressed at the amount of scale on the fountain and the degradation of the impeller specifically. I hadn’t thought about it but I guess it makes sense as we continually add water to replace evaporated water, constantly increasing the concentration of dissolved minerals in the solution.
With the replacement pump already installed in the fountain and nothing left to lose, I decided to whip up a 3D printable impeller model in FreeCAD based on the broken part to see if I could repair the pump.
Here are the FreeCAD and 3D printable .step files:
I printed it in Inland PLA on my VORON Trident 3D printer. I thought I might have trouble with the thin wall cylinder at the top but it turned out alright.
I used clear silicone RTV adhesive to glue the impeller into the magnetic rotor body, then went to Workshop 88’s Thursday open house (every Thursday from 7:00pm – 9:00pm).
When I got back home I reassembled the motor, ran a drill up the center to ensure smooth operation, then tried it out.
Holy Moly, did it work!
It sprayed water all over my bench and workshop.
I don’t know how durable the PLA impeller will be but now I have a spare pump for home and shop projects, or maybe I will experiment with impeller designs, or maybe to shuffle back into that fountain every 3 years (lol).
A quick and fun project enabled by open source software and 3D printing.
Workshop 88 makerspace is sponsored by Comparion Insurance. Local agents who know insurance inside and out, able to easily guide clients through the complex process of finding policies to match their unique needs.
Members of Workshop 88 makerspace have been involved with hacker conventions and badge culture where they would design, program, fabricate and distribute badges at hacker conventions like THOTCON.
These badges each utilize an FS1000A RF transmitter and and XY-MK-5V RF receiver (similar to this) to build two way radio modem,S11145UV Sensor, and a Funduino Pro Mini Arduino compatible micro-controller. The THOTCON 0x4 badge project including source code, libraries, PCBs, and documentation is here: https://github.com/Workshop88/thotcon0x4
Since these devices served their purpose eleven years ago and haven’t been touched since, it’s safe to assume this inventory of devices can be hacked and reused. Let’s verify we have everything needed to [re]program one of these.
The Arduino Pro Mini is a small Arduino compatible board based on the ATmega328P. It does not have a USB connector so an external serial programmer is required. Fortunately there were two in the box with the badges and the badge crafting team even fabricated a board with pogo pins for in circuit programming without soldering.
Programming was as easy as it ever is on the Arduino:
Matched the markings on the Funduino to those on the serial board to connect them correctly
Found an appropriate USB Mini cable in Workshop88‘s eclectic and diverse cable cabinet
Downloaded and installed the Arduino IDE on the laptop
Ran the Arduino IDE
Loaded the Blink example
Plugged the serial programmer into the laptop USB
Selected the board and COM: port after letting the boards manager and libraries update
Compiled and uploaded
Enjoyed the satisfying blinking light
These Arduinos are are ready to be updated and re-programmed for adaptations of the THOTCON 0x4 badges or in new member projects!
If you’re interested in Arduino or hardware hacking or badge culture come visit Workshop 88 at our open house every Thursday from 7:00pm – 9:00pm
A lot of dust can be generated in the workshop, especially with power tools. The dust is neither healthy nor pleasant to breathe. Effective air filtration in small workshops need not be expensive or complicated, here we show how to make a cheap effective versatile air filter for dust and particles from a box fan, furnace filter(s), and 3-D printed clips (or the handyman’s secret weapon: duct tape).
For years in our wood shop we’ve used this 20″ box fan with a fine 20″ wide furnace filter taped over the back or inlet side of the fan. Having served us long and well she’s past retirement condition, so I worked in some upgrades while replacing it.
I love duct tape as much as the next hacker or DIY’er (RIP Red Green), but I never liked its permanence in this application. The fan made a great air filter but no longer could easily be used to move more air for ventilation, so I designed and 3D printed some simple brackets that allow easy placement, removal, and exchange of different filters on two of our fans. At home I also use the more fiberous high flow air filters to collect the majority of over spray when spray painting.
I designed the bracket in FreeCAD, 3D printed it and a mirror copy in Polymaker PLA on the makerspace’s Quidi 3 Plus 3D printer. The source FreeCAD file, STL, and Step files are included in this zip.
The part is simple, but I was sure to design in generous tolerances and an access hole for the screwdriver needed to install the part (two concepts I wish the VORON team had embraced as well as Prusa has).
I had to select longer sheet metal screws from the makerspace’s generous eclectic fastener collection, as the stock screws were only long enough to hold the grating on, with no length to spare.
Now filters are easily dropped into the brackets and removed. There is no need for a tight fit in the brackets as when the fan is on the filter is drawn tightly to the rear grating.
So happy with the first one, I printed and installed a second set on the other fan.
I noticed a slight difference in the dimensions of the second fans plastic grating caused the brackets to be bent outward slightly. I could have updated the dimensions of the design and printed another set, or I could have used a knife to shave a little plastic off the edge of the fan grating, but I decided the easiest thing to do would be use a heat gun to deform the brackets on the fan, which could even have been done with a hair dryer on PLA.
Bonus content: Big Feet
You may have noticed that we replaced our fan’s feet with boards. We find the fans are far less likely to tip, blow, or get knocked over in the shop with the broader base, which also turns out to be more durable than the stock plastic fan feet. (The first thing I ever designed for 3D printing was a replacement foot for a 20″ box fan)
Note the base extends farther from the back of the fan than the front to better handle the force of the airflow.
One fan has a base held on with zip ties, the other employs sheet metal screws.
One of the zip ties had broken, that was an easy repair. While I had the back grating off I replaced the broken zip tie through the spacer we fortunately had not lost, tightened, and cut off the plastic end with end nippers so as not to leave sharp corners.
The other fan had not yet had its base replaced but Tom and I decided to re-use the base from a fan that we wore out last year and chose to install it with more sheet metal screws. We carefully aligned the foot to the bottom of the fan and clamped the foot to the table, then punched the hole locations to the sheet metal. After drilling the pilot holes (not pictured) we selected four matching broad head short sheet metal screws and assembled the fan base.
Voila!
Two affordable versatile shop air filters with the bonus of a sturdy base.
Here’s how we threw together a quick vacuum sweeping helper to keep the workshop clean using scrap wood, screws, 3D printing, and shop tools including using four saws five ways.
A super nice thing about the makerspace is the wide variety of tools that are readily available, this project used (in order):
A piece of scrap plywood
The table saw with crosscut sled to straighten the rough cut sides of the triangle
A pencil, nail, and scrap wood as “Hacker’s Compass”
The drill press for the jigsaw starter hole
The jigsaw to cut the circle
The table saw with the fence to cut the sides of the triangle square to uniform width (height)
The compound miter saw to cut mitered ends on the sides
The Qidi X3-Plus 3D printer and PLA for the hose adapter (thanks again Canuck Creator and Polymaker for donating the 3D printer and PLA)
The paper cutter and scissors to cut the name out nice and square
Packing tape to affix the name
It needed a 16″ wide mouth for the best results with push brooms, and a 4″ inlet for the dust collector hose. We found the perfect rough cut triangular piece of scrap plywood in Workshop 88’s ample wood supply.
The edges of the triangle were trimmed straight and square on the table saw using the crosscut sled.
We marked 4 inch diameter (2 inch radius) circle using our “Hacker’s Compass”. The “Hackers Compass” is a scrap piece of Masonite from the back of a projection TV riddled with ventilation holes that, with a nail or screw and pencil, can mark arcs and circles. The improvised compass, initially needed to draw a large circle, started as a joke but turned out to be super useful and now is an easy go-to tool hanging in the shop.
The drill press was used to drill a 5/16″ hole just inside the edge of the circle for the jigsaw blade.
The workpiece was clamped to the edge of the workbench and after ensuring the workbench was out of danger, the large circular hole was quickly cut with the jigsaw.
A 4 inch hose adapter was designed in FreeCAD and successfully 3D printed after a couple failed prints due to mistakenly loading PETG instead of PLA (Doh!).
Another piece of scrap wood was selected for the edges.
The U shaped scrap was cut into 2 irregular strips on the band saw, then cut to the roughly one inch height dimension on the table saw using the fence to guarantee both sides were the same height.
The ends were mitered and cut to length on the compound miter saw, then screwed into place. The failed 3D printed adapter in the picture illustrates where the hose adapter will screw into place.
The hose adapter was screwed into place with wood screws and washers, then finally we affixed a laser printed name with packing tape. Voila!
Live in action!
This was a fun and useful project that cost next to nothing and took almost no time to make.
If you want to take a better look around Workshop 88 makerspace, see our 360° virtual tour.
Visitors are first greeted by our charming entrance, then our charming members. Our creative and knowledgeable community is one of our greatest strengths (not pictured here).
The makerspace is divided into five areas, the first is the general meeting room. This area is primarily used for meetings, classes, laser cutting/engraving, 3D printing, crafts, and projects.
The electronics lab hosts tools and supplies for projects of all sizes and skill levels, from basic breadboard circuits to SMD PCB fabrication, from Arduino to Raspberry Pi and beyond. This is one of the most used areas in the makerspace.
The metal shop not only houses our Atlas lathe, SIEG manual/CNC mill, metalworking tools, and supplies but we also have a good inventory of metrology equipment for precision measurement.
And finally we come to the storage area where we keep everything that does not belong in the rest of the space. Here, members store personal supplies and projects alongside club projects and Workshop 88 surplus inventory including extra tools, equipment, 3D printers, robotic arms, CNC machines, a robot skeleton that can play a Theremin, and more.
Workshop 88’s entrance is NOT on Main Street. Contrary to what your navigation system will tell you, do not use map apps to find the entrance.
Workshop 88’s entrance is in the public parking lot at 530 Pennsylvania Avenue, Glen Ellyn, in the back southwest corner.
Workshop 88’s sign and entrance cannot be seen from the street. Pennsylvania Avenue is one way west, turn left (south) right after the mailbox, before Main St. There is additional street parking in the neighborhood and a free parking lot behind the fire department on the northwest corner of Pennsylvania Ave. and Main St.
Rear of the brick pedestrian walkway in the parking lot, Workshop 88’s sign can be seen from here. This is about halfway from the street to the entrance.