banner perso

Some links about me. Many of my 3D designs are free. I also post on Google+ and in another blog, oz4.us

Tuesday, January 28, 2014

Features and improvements for a would-be homemade Ultimaker 3D printer

How would I re-design the original Ultimaker?

Quite some changes on the back of
my Ultimaker Original (aka v.1)!
The Ultimaker 1 (aka Original) is a well-built printer. It is probably one of the oldest and still best designs as proved by its incredible longevity.

I bought mine two years ago and, still, I feel quite confident that it would compare favorably in many aspects against a 30K€ FDM printer that a client bought last month. Is Stratasys really serious with this beast? May be there are better properties (eg. less warp due to fully enclosed?) But it also features a smaller build volume, a ridiculously limited and exceedingly expensive printing set of material. They also solved warping ABS by printing on... ABS beds (just try to remove it now when you forgot the in-between support!). You bet they bought Makerbot: overpriced "serious business" printers ought to be past, crappy obsolete printers. Too bad they are polluting MKI with greedy business practices though, and not the opposite.

OK, back to our subject. The "UM1" is one of the few printers you can take around you and which will keep printing very reliably without the need for re-calibration. It is also the only one I still blindly recommend... once the user knows that it is not that trivial to 3D print something. The new UM version is probably better in this regard, but it loses some "hackability" that I am fond of...

Still, the Ultimaker printers are big and they sometimes do not suit all my needs. If I was to re-design a clone, there are a few cosmetic but also structural modifications I would make, especially to the original design. Actually, many of my designs are all about improving the printer. Time to summarize what I did and what I would like to do!


As you can see on the above picture, clockwise, there is a new filament feeder,  a Z-lever fine-adjuster, silent adjustable rod end caps, an adaptive filament holder with thumb nuts, adjustable feet, and a short belt tensioner. And the inside also has its share of designs: long belt tensioners and bushing blocks, head mount redesign, heated bed...

Geometry

I would redesign it entirely with Openscad, because I am a programmer, and it is extremely efficient to get a thoroughly parametric geometry.  Talking of that, Daid (the developer of Cura) started to design the Titan, in Openscad. It was a very promising printer based on the Ultimaker design but he stumbled upon some complex issues given the very small size he targeted. It is not unlike the Tantillus (modeled in Blender), and which is a fully working printer. Though, it relies on so called "imperial" hardware, while I only will use modern, non-hegemonic, "democratic" hardware, like the metric system ;)
  • I would like to use elements that are easier to source. Some MXL belts are neither easy nor cheap to find. It is even worse for some few items such as the heating cartridges that are (or were) weirdly expensive at the official shop, just like the thermocouple electronic PCB. There are tons much cheaper ones on eBay, but most often they are not interchangeable.
  • My overall size would be different. I would love to switch to an overall 40 cm width (may be a bit bigger), 25 depth (half or so), 20 height (half or so), so I can carry or store it easily around. The UM will just not fit on my bike! More seriously, smaller geometries also would reduce sloppiness in the structure, increasing the print quality in turn. Actually, most of what I ever printer was not tall! And when it was big, it was always longer than larger. And finally, a shorter depth for the bed would probably reduce the Z vibrations.
My adaptive filament holder, extruder,
Z-level, rod end caps, belt tensioners...
Here, printing wood filament.
  • I would keep the 8mm X/Y axes and 6mm head bars, which are an excellent compromise. I would still like to add some angular rigidity by, e.g. doubling the static head bars, but it would probably add a lot of weight on the gantry. A large linear rail may help better. There are also completely different gantries such as smart hbots (or "corexy": check this amazing list of printer types and this post about issues), but it would be a major shift out of the Ultimaker paradigm that works so well. The main drawback is its incompatibility with direct filament drive: they are really heavier but they give more opportunities to hack something new than with a bowden-based setup.
  • Also, I may try to add a secondary Z-screw opposite to the existing one, either coupled with a belt to the existing Z screw instead of another stepper motor. Adding this would secure the bed vertically, but switching to three Z-screws makes also mechanical leveling possible (the screws would have to be correctly held without over-constraining the whole of course).
  • Have a better reel holder, more versatile than the overly complex one that accommodates only a very few kinds of diameters. It would also come with an adjustable support that accommodates raw coils of filament.
  • The LCD controller could be embedded in the top side within the wall near the feeder wheel (like this UM derivative, e.g.). It would no more protrude from the chassis (ugly and dangerous), and it would still be near the eye. By the way I would add more buttons, because the existing one may be funny but it is quite annoying in my option to move into subfolders all the time. Eg. I would have separate rotary buttons for the temperature and speed, which are the most often tweaked functions, and a panic stop button when something goes horribly wrong.
  • It would be nice to have optional doors to mount on the sides to reduce both fumes and noise. Now, capping the printer would require a huge top because of the protruding bowden tube compared to e.g. a Makerbot. The best setup would be a carrying box that can be used either as a seat for the printer or dismantled to get the doors to close the 3 sides of the printer.

Mechanical tuning

Efficient belt tensioner and X/Y bushing block (ref.)

  • Belt tension: the existing design just has NO belt adjustment mechanism, which is a real pity. The sliding blocks are probably the worst part of an Ultimaker 1. I would almost certainly use my banana X/Y bushing blocks. for the long belts and the these for the short belts.


  • 3-pivot-only hot bed system. The default Ultimaker 1 had no hot bed, and it relies on four screws and springs. This would make sense only if the bed was not planar enough (which in turn is the very first thing to check!).

A usable Z-adjuster.

  • Z-leveling: at the very least I would use this manual Z leveling system. Now, there are interesting designs like like this integrated E3D head, but I would better try to reduce the weight to the maximum and not embark the probe.

Note that there are two issues with Z leveling: the first is to set the tiny distance between the nozzle and the bed, especially when you change the bed or when you start playing with bizarre layer heights.

But it is also useful to change the firmware so it detects the Z height of the bed at three or more points and it skews the shape of the object accordingly. Now, indeed, it would skew the object, so I would really like an automatic physical bed leveling, so that it is kept horizontal and at the right distance whatever the changes made to the bed of the head. Update: done!! Automatic bed leveling and tool height adjustment. yay!

Hot end

The existing hot end one may be fine, but for two issues.

  • First, is it amazingly annoying to mount and remove or clean. At least I would change the design to something like this, that can be dismantled without losing all the calibration (what a pain!). Second, it can be made less heavy and much simpler (way too many parts in my opinion).


  • Also in my opinion, hot ends like the E3D are usually more reliable in the long term. They also print more kinds of plastics without trouble (at higher temperatures: I hate PEEK). Now, retraction is sometimes an issue as the upward-moving molten plastic may freeze instantly when the thermal barrier is very short, making it very hard to resume.


The stock hot end with a heat sink and much easier structure (left),
vs. the PEEK-free, simpler, and all-metal E3D for the Ultimaker (right)

  • Finally, I would like to change the nozzle of the hot end quickly and easily, but this is not an easy thing. Changing the entire hot end may be easier, with a clip-on design for example and quick lever.

Filament feeding setup

The drive itself is a complex thing. It is a very long time I did not try the default wooden setup. But building a gear out of plywood is crappy in my opinion, better print this and that, e.g.

  • As for me, I would keep or improve on the rollerstruder, as it is proved to be very reliable for me in the long term, and it is easy to deal with. But there are some points to improve (idler hinge, bigger bolt, more tuning...).

The rollerstruder. I spent a hundred of hours on this filament feeder!

  • I also would keep my bigger bowden tube. The default diameter is too small for some filaments, which increases friction to the point the feeder fails. Using a 4 mm ID bowden tube actually never annoyed me, even with heavy retractions.



Electronics and firmware


  • suicide mode so that the printer switches itself off after printing. But it would be nice that the firmware let me force or ignore it or leave the switch-off command as defined in the g-code file.


  • Add some useful sounds (eg. beep when manually set temperature is reached). It is quite easy so I cowardly asked this as a feature request in Marlin! ;)

All the electronics including the beefed up power supply,
and suicide circuit (using an SSD on the mains).

  • Using and positioning a beefed up power supply under the hood. It would produce 19V, regulated 12V and regulated 5V on a convenient connector on the outside wall, together with all IO ports for easier experiments (see the last picture of this post and more about the power supply).


  • Higher feet to host all the electronics, including the power supply. Now, it could reduce the vertical print size, so there may be a trade-off. Or better, put the electronics vertically behind a door so they are much more accessible, e.g. to tweak the stepper power on the pololu boards.

Illuminating with leds on the opposite side is a
convenient means to see how things are going
(printing nylon trimmer line)

  • Replace the bulky plywood air conduct and the noisy fan for something like this (btw, this design needs improvement as it is flimsy and approximate on my printer).


  • Led lighting on all corners, that can be switched off separately. Indeed, I often use light reflections to check for the printed surface quality, and would love to switch only the opposite lights when needed.


  • Main board: may be try to switch to another ARM-based board. It would give much more power than an Arduino, and the embedded processing capability left would do some other work. These from Olimex are very cool, and fully open source while the Raspberry Pi also is very cool, but it is mostly closed source.

  • A raspberry PI with octoprint would be a nice intermediate solution, so as to replace the now-very-useful ulticontroller with a more powerful touchscreen web terminal (eg. with a detachable android smartphone...). And Octoprint already supports a webcam support. It would just need a nearby USB plug at the top of the printer instead of long cables all everywhere.

Conclusion

The Ultimaker 1 aka "Original" is not only a great printer as is. But it is also an excellent printer which is open to all kinds of hacks, tests and improvements.

Newer middle-range printer remove a lot of the possibilities in exchange to a sleeker design that probably sells better. But this comes with the cost of a much lower "tweakability" for me. The user will have to stick to whatever is sold by the company because it is getting harder and harder to fiddle with it., like with any industrial product. In some cases, the "users" will even have an obsolete product sooner, with no more support, spare parts nor software upgrade (just flee away from Makerbot in this regard).

In the end, the newer middle-class 3D printers are certainly not well-suited to my hacked way of life. I would love to make my own printer, precisely tailored to my needs, and based on all what I experienced with the Ultimaker 1. But that is the graal of most if not all heavy users of 3D printers.

Huh, I ... just .. should ... stop ... thinking about it!

About Me

My photo

If you know me and you cannot tell exactly what my real job is, then you probably found the right Jeremie. Check zax.fr for some pointers.

I am self-employed and I help start-ups, research centers, small companies with their needs related to computers, sensors, data processing and mechatronics. If you have a project and know what "R&D" is, then you already sparked my interest ;)