Showing posts with label 3D printing. Show all posts
Showing posts with label 3D printing. Show all posts

Thursday, May 1, 2025

Laziness is the mother of invention

For about 20 years, we've been using a set of Logitech Z-2200 speakers as our TV speakers. But they have an inconvenient volume control that requires one to get up from the sofa to turn the knob. Most of the time, it's enough to adjust the volume with the TV's internal control, but sometimes the speakers' knob needs to be tweaked. I had a gear motor lying around that never got used for a project, and so I set it with a blue pill microcontroller board, an IR receiver scavenged from a broken toy, a drv8833 driver, and some 3D printed parts, some lasercut plywood to keep things in place, a skate bearing, and a laser cut case, so now I can turn the volume control knob by pressing some unused buttons on our Blu-ray player remote. There is a satisfying whirring noise when it turns.

Arduino source code is here.



Saturday, April 6, 2024

Plastic belt buckle

Quite a while back, I came across a discarded belt with a broken buckle. I kept it in my "long stringy things" box in the garage until I could figure out what to do with it. Finally, today, I designed and 3D printed a new buckle for it, along with plastic rivets. I replaced all the metal, and now I have a no-metal belt that hopefully can clear airline security without being removed (not tested yet).





Saturday, June 3, 2023

More film photography

I acquired a Yashica 12 medium-format TLR camera from the 1960s. (The lens hood is 3D printed, though.)


I'm still learning how to use it, but here are some pictures on the Waco river walk. The bridge was taken with Arista 400 and the other pictures with HPS5. I need to learn to focus better. 





Friday, February 17, 2023

Curmudgeonly griping

One of the standard gripes about modern manufacturing is how many items break down because the manufacturer saved a very small fraction of the price, sometimes only a few cents. I find myself frequently resoldering mice and headphones, presumably because the wires were too thin, but there at least there is a functionality benefit from thin wires.

The most recent is our GE dryer where the timer knob always felt flimsy, and finally the plastic holding the timer shaft cracked. The underside revealed thin-walled plastic holding the timer shaft, reinforced with some more chambers made of thin-walled plastic. Perhaps over-reacting, I ended up designing a very chunky 3D-printed one.

I suppose there is an environmental benefit from using less plastic, but it needs to be offset against the environmental cost of repair and replacement. Adding ten grams of plastic would have easily made the knob way, way stronger, and that's about 0.01 gallons of crude oil, which is probably an order of magnitude less than the crude oil someone might use to drive to the store for a replacement (or a repair person being called in; in our case, it wasn't obvious that the knob was the problem; I suspected the timer at first, and disassembled it, before finally realizing that the knob had an internal crack that made it impossible for it to exert the needed torque).




Sunday, September 13, 2020

Concrete dumbbells

My son needed some 25 lb dumbbells for home workouts, since we took him out of his school's workouts due to COVID, but our local stores were out. So we made concrete ones, using 3D printed molds. A bonus of concrete: because they're bigger for the same weight, they make one look stronger.

Build instructions are here.



Monday, May 18, 2020

Wobble board, gamified

Last year, I made an adjustable wobble board for balance practice: a plywood disc with a 3D-printed plastic dome rocker. One thing that I always wanted was some sort of a device that would measure how long I was staying up on the board, detecting when the board edge hit the ground. I imagined things like switches under the board or even a camera trained on the board.

But what I forgot is that I already carry the electronics for the detection in my pocket. A smartphone has an accelerometer, and so if it’s placed on the board, it can measure the board angle and thus detect the edge’s approximately touching the ground. I adapted my stopwatch app to start and stop based on accelerometer values, and made this Android app. Now all I need to do is lay my phone on the board, and when the board straightens out the timer starts, going on until the board hits the ground. There are voice announcements as to how long I’ve been on the board, and a voice announcement of the final time.

Source code is here.

Instructions on building the wobble board and links to the 3D printable files are here.

One forgets how many things can be done with a phone.

I think my best time is just under a minute, with the board set to a 19 degree maximum angle.

Sunday, April 5, 2020

Paddles for classic video games

I made some Atari 2600 style USB game paddles for use with Atari emulators and Pong. They're mostly 3D printed with a little bit of electronics (STM32F103CxT6 board, two switches and two potentiometers) and emulate the Stelladaptor's paddle mode (you can also use them as a two-button mouse, with each paddle controlling one axis).  Build instructions are here.


Thursday, March 26, 2020

DIY projects for hunkering down

This is a time of tragedy. But I've been very fortunate, having steady employment, and (so far) a healthy family. And lately I've had the opportunity to do a lot of fun DIY projects.

I'm teaching online. Mostly, I'm doing it by writing short notes, broken up into discussion-thread-sized bits, and posting them on a discussion forum. But I also recorded some short video segments today, which reminded me that our one camera tripod had a broken hub. So I designed and 3D printed a new one. (Design files are here.)

It's been bothering me for a while that one of our bathroom faucets had rounded knobs that had to be grasped firmly by the fist to turn. This means that you get the knobs dirty when you start the water with dirty hands, and then after you wash up you get your hands dirty from the knobs when you turn off the water. Levers are way better: you can either move them with elbows or you can ensure that you push on one side with dirty hands and on the other side with clean hands. I printed some lever attachments that slide over our rounded knobs. (Design files here.)


The grocery store was out of toilet paper. So we ordered some giant commercial-establishment bathroom rolls. Of course, they don't fit our toilet paper holders in the bathrooms, so I made this one out of some scrap wood and a handlebar from a broken-down scooter:


My usual form of exercise--the climbing wall--has been shut down. So, I've had to switch to tennis. I found out that it's hard to move around playing tennis in long pants, and I didn't own any shorts, so I found some old khakis in my scrap cloth box, and cut them down and hemmed them:

And, finally, I sewed a mask for myself and one for my wife for when we go to the grocery store. Mine used this design and the one for my wife used this one, except that I added some heavy gauge insulated copper wire to shape the nose ridge area. (I used cotton T-shirt material as per this article, layered with some microfiber for one of the masks.)

Saturday, December 23, 2017

Cellular automaton snowflake generator

I made a simple cellular automaton snowflake generator in OpenSCAD. By default it uses Stephen Wolfram's rule that a hex cell stays alive once alive and a cell is generated if it has exactly one neighbor.


Christmas Day addition:
Adding a tiny bit of indeterminism--a chance of 0.5 of generating a cell instead of certainty--makes things look more like a real snowflake, though. Tap on Customizer in the above link if you want to play with it.
And here it is on our Christmas tree. Merry Christmas!

Monday, November 13, 2017

Flying rings

My five-year-old has been really enjoying our Aerobie Pro flying disk, but it has too much range to use at home or in a backyard. The patent has expired, so I designed a 3D-printable version with a similar airfoil profile and customizable diameter and wing-chord. The inner one is 100mm diameter (20mm chord), and can be used indoors. Here are the files.


Wednesday, November 1, 2017

Captain Proton's Ray Gun

The kids and I are big Star Trek fans (well, the 5-year-old is just a fan, not a big fan, as yet), and my son wanted to have Captain Proton's Ray Gun. Captain Proton is a cheesy character in a fictional series of 1950s movies in Star Trek Voyager. So, I guess, he's a fictional fictional character. I found some photos of a prop, traced the images in Inkscape, exported to OpenSCAD, and made 3D printable files, which are here. I printed it (it prints in two halves that join together), but we have yet to paint it (may not paint it right away, as in silver and gray it will look too much like a real gun at a distance to use outside the house).


Friday, September 29, 2017

Gamecube controller to USB adapter

I wanted to make an adapter that lets us use our Wii dance pads and Gamecube gamepads with PC-based games. It seemed like it would be fun, for instance, to play Tetris using one's feet on a dance pad. One can do this project for under $4 or so using an stm32f1 development board. Here are instructions.


Saturday, September 16, 2017

Adding a USB charging port to an elliptical machine

Last night I added a USB charging port to our elliptical machine, using a $0.70 buck converter, so that we can exercise while watching TV on a tablet even when running out of batteries. Here are instructions.

Note, too, how the tablet is held in place with 3D printed holders. My next elliptical upgrade project will be to make it be a part of a USB game controller (the other part will be a Wii Nunchuk) so that one can control speed in games with speed of movement.

Tuesday, May 30, 2017

Drawers for small electronic components

With various ongoing projects, I've acquired a lot of small electronic components in little baggies. To store them, I designed a set of customizable plastic drawers that I could run off on my 3D printer. I am stingy, so I tried to reduce the amount of plastic that goes into them by making dividers thin and a grid-like pattern for the walls.


Friday, March 31, 2017

Star Trek cookie cutters for First Contact Day

In honor of First Contact Day, my big kids wanted to make Starfleet insigna and Vulcan IDIC cookies. So I generated some 3D printable cookie cutters (Starfleet; Vulcan).


Sunday, March 5, 2017

Super-simple fractal terrain generator

Here's a very simple algorithm for generating random terrains: Start with a equilateral triangle in the x-y plane. Add a uniformly and symmetrically distributed random z-offset to each vertex. Bisect each resulting edge and add a random z-offset at the newly added point, half of the magnitude of the random offsets earlier. Repeat several times.

The algorithm is no doubt known, but some quick searches for terrain generation algorithms didn't turn it up, so I am posting for people's convenience.

There are some artifacts at internal triangle boundaries that better algorithms presumably don't have, but the algorithm is super simple to implement, and because it is based on triangles it directly makes a triangular mesh. Here is some code which does this, starting with a hexagon divided into six equilateral triangles, and putting out an STL file.


Wednesday, February 22, 2017

Going from 2D drawings to 3D printing

I wanted make a 3D-printable Valentine's day card for my wife, with an inflated red heart on a white background, so I spent perhaps too much time playing with algorithms to "inflate" a 2D drawing of a heart into a 3D polyhedron that I can load into OpenSCAD. Here's the card I ended up with.

After Valentine's, I still worked on refining the Python code that did the inflation. The code is now an easy to use Inkscape extension, which adds the ability to save to an inflated SCAD or STL file. The official repository is here.

The final algorithm I settled on is a non-linear scheme that sets the height of the inflation of a 2D image at a given point in the image x by approximating the Lp norm (E(Txp))1/p of the exit time Tx of a random walk started at x. For further adjustment, you can replace Tx with min(Tx,K) where K is exponentially distributed, which flattens the inflation in inner regions. The code could use a lot of optimization (using pypy instead of cpython improves runtimes by a factor of 10, but Inkscape only bundles python) as on my laptop the code takes about 45 seconds with default settings on one of my simple test images.

While my original Valentine's day card used p=1, I have since found that p=2 produces more nicely rounded output.

Friday, December 30, 2016

Use 3D printer as a plotter/cutter

My 3D printer is fun, but I like to extend functionality, so I designed some additional snap-on parts that lets me also use it as a pen plotter and cutter. For instance, I had it draw a butterfly coloring sheet on a blank T-shirt for our four-year-old to color with fabric markers. Here are instructions.

Tuesday, December 6, 2016

3D-printable cookie cutters with Inkscape and OpenSCAD

We thought that our 4-year-old would enjoy a Pikachu cookie cutter for Christmas, but I didn't like the existing designs on Thingiverse. So I wrote a Python script, eventually packaged into an Inkscape extension, that generates a 3D-printable OpenSCAD file from a color-coded SVG path file. Instructions are here.