Printing the Klein Bottle

klein bottle print

klein bottle finished
After building a few utilitarian objects I decided to really push the envelope of what my 3D printer could do. I wanted to build the Klein Bottle model by Dizingof as soon as I first saw it because it’s so cool looking.

In addition, it makes a great test print because it’s a very large STL file (23MB!) which takes forever to slice (84 minutes!) and produces a 14MB gcode script that takes a long time to even load and display in Pronterface. If you can slice and print this model, you can slice and print anything!

From a topography standpoint, it is challenging for a 3D printer for several reasons.

  • The area that touches the base plate is very small (unless you add a raft of material under it) so if you don’t have good adhesion of your first layer, the whole model may lift up and slide around.
  • It has lots of vertical holes that need to be bridged. Without a dual extruder system that uses support material, your printer needs to make use of gently increasing overhangs and sometimes just stretching strings of ABS from one side of the gap to the other.
  • Finally, it’s a tall thin model. Not quite as bad as the Empire State Building, but if you have excessive vibration you may find that the top of your print is jumping all over the place. Plus, at 102mm, it’s actually a few mm higher than the rated size of my Prusa Mendel’s build envelope. I made it work by taping straws over my frame rods so that the X-axis belt could slide over them without damage as it got to the very top and pushed beyond.

I have the overview movie stitched together from videos here:

And a video of the full 1 minute per frame timelapse here:

Of course, it didn’t work perfectly the first time….I had to start the Klein Bottle print about four times before I figured out the trick to get it to stick to the build plate. The trick was to zero my nozzle about a layer UNDER the build plate surface. (So that it was scraping the build plate…) Then, when starting the print, I manually held the build plate down about one layer thickness (just press down hard against the springs) as the very first layer of the klein bottle print is really very small (just the tips of the touchdown points) and then let the 2nd layer act as the “true” first layer. The second layer has a lot more surface area and sticks much better. Even then, if you have a bug in your gcode that lets the build plate cool down to 60 Centigrade instead of staying at 110, the print may eventually break off and start sliding around after several hours while you are not watching it and POOF, Carrot Top!

Failed Attempts at the Klein Bottle print ortions

Improving my printer recursively

The most common class of useful objects to print that you can find on Thingiverse are upgrades and accessories for 3D printers. Once you have a 3D printer working, you can improve upon it by printing more or better parts.

Wire Spool on Floor

Dislike having to manually unroll plastic filament and leave it laying on the floor for your printer? Add a few inline skate bearings to this Spool Roller STL file and you’ve got a snap on auto-rolling filament spool mount for your printer.

Snap On Spool Roller

Spool Roller

Having issues with wires going everywhere? Print a few snap on wire clips that will hold them to your frame rods…
Wire Clips

Is your Z-Axis end-stop too difficult to adjust? Print the parts to build an upgraded model (with $5 worth of parts from the hardware store) with a bit textured knob for easy adjustment.

End stop Parts

Adjustable z-endstop

Think your current printer is getting old? Have it print parts for the next generation printer….

Who has a 3D printer?

I built a Prusa Mendel RepRap printer from a kit sold by MakerGear. It took me 22 days working about 2-3 hours every other day to assemble the kit to a point where I can print parts. I still have some wire management to sort out, and I’ll probably eventually build a cabinet for it, but the basic printer is finished after around 25 hours of work. Here is an animated gif I made of the time-lapse photos of the assembly process.

Animated GIF of the build process

Animated GIF of the build process

My first print was a teardrop (the RepRap logo) shaped shot glass by raldrich.

Teardrop Shot Glass

Next up….printing all of the cool additions, upgrades, and add-on’s for my 3D printer, plus a box of spare parts.

Finishing the trim pieces

I am finishing up the trim pieces for the bubble display. The last component is the top cover that will hide the top of the acrylic tubes (and hopefully keep bugs out of them!).
3/4 of a 2" pvc tube spray painted silver

I cut the side off of a piece of 2″ PVC pipe and notched the ends to fit over/around the vertical end support and various mounting hardware. Then I used a universal metalic spray paint to give it a metalic look. Unfortunately, they didn’t have “alunimum gray” as a color option in spray paint that works on plastic, so I had to go with “Satin Nickel” which has a subtle bronze/gold tint to it. I’ll try it on the actual bubble display and if it doesn’t match closely enough I can always use it as my plastic bonding base coat and paint over it.

bright alunumum screen covering the end of the tube
I used high temp hot glue to affix bright aluminum screens into the ends of the top piece, which will hopefully minimize the incidents of insects trying to get a drink and falling into the tubes. Admittedly, this may be a bigger problem in my not terribly well sealed garage than the office building where the bubble display will live…but it doesn’t hurt, and it also makes the ends of the cover look more professional.

Text on the Bubble Display

The text of the logo is recognizable even in water. With glycerin I think it will be even nicer looking.

I’m actually cheating by rendering text as a bitmap image and then using software to load the bitmap into the arduino. So really, this is a video that demonstrates my ability to display arbitrary graphics, not actually generate text. (But I do plan on embedding a simple font table in the arduino so that the arduino can just render generic text.)

Bubble Display Frame Trim

Now that I have the electro-mechanical systems working, I am focusing on finishing the trim pieces for the frame that will hide the electronics and top of the tubes.
Plywood panels stained dark mounted on the bubble display base

This mostly consisted of notching a few slots in the pieces of plywood for the aluminum bottom pieces and cables to go through, and a day’s worth of work with a spray gun.
bare plywood laying on a plastic dropcloth with an air compressor and spray gun
stained plywood sitting outside drying

I had initially planned on using bright aluminum window screen mesh in a half tube shape over the top of the upright acrylic tubes, both to keep bugs out, as well as to give a nice visual appearance. But once I tried it out, I didn’t like the appearance, and couldn’t think of a good way to mount the ends of the screen cleanly. I am now considering using the old standby PVC pipe (probably painted some solid color with plastic spray paint). The other option is to buy a large clear acrylic tube (square or round) and use that in the same place. This would allow people to see the tops of the tubes (perhaps too well…it’s too bad McMaster doesn’t sell frosted acrylic tubes…) This is my current prototype:
using a 2" PVC tube (cut lengthwise) as a prototype top cap

Bubble display fiber optic relay

Because the air hose is connected to the center of each square acrylic tube, the 60 LED lights on the bubble display are mounted almost between tubes, very close to the left edge of each tube. This means that a particular LED contributes light to both it’s own tube, and the one to it’s left. On the far right side of the display this makes mounting the first LED easy, as it is well away from the outside aluminum support upright. However, on the far left side of the array, the hole for the LED is right up against the aluminum support upright. The LED’s have a square circuit board below them that makes the entire unit wider than just the LED, and it won’t fit.

bundling together several fiber optic cables using heat shrink tubing
fiber optic relay bridging gap from LED to hole under the last acryllic bubble tube

I knew this would be an issue from the beginning, and had designed my way around it using a bit of fiber optics. Of course, the far left tube is slightly dimmer than the others…but then again, so is the far right tube (which only has one LED).
the last tube is slightly less bright due to the fiber optic relay

60 tubes working!

Yes, I finally have all sixty tubes mounted and working. I still need to swap out two or three of the under-performing motors, and calibrate all motors, and do a lot of cosmetic finishing work (cover pieces for the top and bottom), and some software tweaks….but it’s finished enough to actually work!

22 of 60 tubes running – First scaling up problem rears it’s ugly head.

Here is a video of 22 tubes running with water:

Now for the bad news….22 tubes actually measure 22 1/8″ wide. (apparently each tube is actually 0.00568 inches larger than 1″) This means my entire display would be 3/8″ too narrow, which just won’t work with the tolerances I have designed into my tube holder. That is why I only have 22 tubes in this video….the 23rd tube was just far enough off to not fit into it’s proper hole.

I fixed it by cutting the tube holder into 3 pieces and mounting them with a 1/4″ gaps between them.

A gap cut into a board

I also had to space the end pieces of aluminum farther out, which meant I had to drill 4 new holes to mount the side brackets to the bottom board 1/2″ farther apart. Luckily the T-Sloted aluminum mounting system allowed me to easily move my L-Brackets up slightly to hit the new holes.
mounted to two new holes 1/4" farther out

Unfortunately, I mounted the Shift MOSFET circuit boards on TOP of the screw heads holding the tube support board, so I had to take them all off to re-position the tube support board. Annoying, but not the end of the world.
circuit boards hanging off after I removed them to unscrew the board

So, after a bit of additional work, I now have all 60 tubes working.