Go to start of banner

# What is a Hangprinter and how does it work?

Hangprinter is a parallel line driven open source fused deposition modeling 3D printer notable for its unique frameless design. It was created by Torbjørn Ludvigsen first in 2016 and got multiple iterations (versions). The printer is part of the RepRap project where many of the parts of the printer are able to be produced on the printer itself (partially self replicating). Frameless means that the machine uses the surrounding room (ceiling, walls, floor) to be mounted/attached. Hangprinters were already installed in huge halls with over 7 meters height and 4 meters distance per anchor. The biggest known object printed with a Hangprinter is the Tower of Babel wih 4.5 meters in total height. Modern Hangprinters typically consist of a ceiling module with control electronics and mechanics on it, some floor anchors and and effector with an extruder mounted on it. The extruder is moved through space by tensioning lines which are installed between the ceiling module, the effector and the floor anchors.

Imagine you would install a Hangprinter in your living room or your workshop (e.g. rectangle shape) and you put your ceiling module to some place where enough space is avaible. In most cases that might not be the middle of the ceiling because there's a lamp or so. You will try to find good anchor locations at the bottom where you will not trip into lines. So maybe it looks like this:

Installation at a workshop
(Fred Hegenberg / Chalters Robotics)
Some studio installationThe Tower of Babel (with Torbjørn in front of)

# General concept (kinematics, spools, coils, lines)

Hangprinters have 4 axes, called ABCD, and they have no limit switches. The D axis controls the Z direction and the A, B and C axis control the movement of XY in an overlaid way. XYZ movements are calculated by default Pythagoros (trigonomic) laws. A cartesian position can be basically defined by $//$. This calculates the desired distance between the anchor and the effector, regardless of any anchors or effector positions. Hangprinter does not move like regular CNC machine. There are no linear rails or lead screw driven mechanics. Instead it moves by spooling up and down tensioned lines from drive spools. While this happens there occure mechanical issues because the winding or unwinding is uneven. The more line is on spool there is more "buildup". That means that the effective radii of the spools increase. To compensate for this there exist algorithms. Regarding the firmware there are possibilities to activate this feature. The line buildup compensation also calculates regardless of anchor or effector positions basically. The firmware doesn't care if the anchors are symmetrically placed out or not, it just calculates four desired line lengths (A, B, C, and D) one by one.

For somebody who never built a Hangprinter it might be really confusing how the lines pass from starting point to endpoint. All 4 spools release lines to allow controlled (tensioned) XYZ movement. The most important parts are the line guides between the ceiling module and the effector, and the line guides between the frame anchors and the effector. The line guides differ from Hangprinter to Hangprinter. It's hard to define the exact concept for all of them. Trikarus orientates at Hangprinter v4 but also previous versions, as well as on different custom implementations found on the web.

Each axis is made up by one spool (wheel) attached to one motor. On each spool there are wound up lines. In total Hangprinter is controlled by 9 lines. Usually D axis controls 3 lines and ABC axes are commanding 2 lines each. There are two concepts for winding: either wind multiple lines on the same spool (single coil) or provide separate coils for line each line (multi coil).

There are additionally two concepts for guiding the lines through the mechanical assembly parts: single line and double line mechanism. Building a hangprinter with doubled lines helps preventing overtightening the Hangprinter mechanics (reduces force) and they better constrain axis rotations (keep positions). This avoids possibly missing steps due to line buildup. Doubled lines require a lot more line per spool. Single lines require less amount of line in total and it might be enough to build with single lines when using buildup compensation algorithm from firmware (you maybe need to experiment with it). Doubled line mechanism has to be enabled in firmware too if implemented physically (if fork firmware repository is used). Please note that the lines have to be parallel. Even if you use doubled lines you still have four regular pivot points ABCD but they are measured / calculated slightly different. If you move the effector as close as possible to one of the anchors, you should get a line length of 0. If the lines are not parallel, there will be a line segment that you cannot wind in between your two pivot parts. The effect of not being parallel becomes smaller as you move the effector away from the anchor, but it does not become 0. This will give you worse calibration.

spool conceptmultiple coils for - one per line (muti coil spool)one coil for multiple lines (single coil spool)

line concept

Single lines

Double lines ABCD (called "mechanical advantage")

### D Lines

The three D lines D1, D2 and D3, coming from the spool, directly passing the keeper roller block (near the spool), are distributed into three single horizontal angle changer roller blocks and then they pass vertical roller blocks (some V shape bearings in a block with ceramic inserts), which are mounted on the ceiling plate (yes there are a lot of custom blocks for this required ). The vertical roller blocks are aligned exactly symmetrical on the ceiling plate. Imagine a triangle shape. The edges of that virtual triangle have the same effective length as the effector distances of two ceramic insert holes each. However, the D lines are further taking their way from the vertical roller blocks to ceramic inserts on the effector corner top side. Because Trikarus uses doubled lines they are winding around another V shape bearing and go back to the direction of the ceiling plate again. They pass the same vertical roller blocks again using the second ceramic insert for each. Finally the ends of the D lines are mounted with three ceiling guitar tuning mechanisms which allow to properly fix them using locking screw and to adjust them in height while doing Building basics, checks, maintenance later.

∑ In total each D lines passes four ceramic inserts, 3 different blocks and the effector, and is reeled over five V shape bearings. Then it ends up in the tuner. That makes 12 ceramic inlets and 15  shape bearings for the D lines.

drive with spool

# →

keeper roller block

# →

angle changer roller block

# →

vertical roller block

effector corner

# →

vertical roller block

# →

ceiling guitar tuning mechanism

### Thoughts about the keeper roller blocks for D lines

The keeper roller blocks at the ceiling plate can be used to keep the D lines near the spool. Choosing a direction, like shown in the following picture, will set it to clockwise or counter-clockwise. For spooling / de-spooling it should be tested what works better or if there is any noticable difference at all. The version on the left side has slightly more line grip because there is more line on the V bearing surface. This variant could give worse life time of lines maybe. The direction can be easily inverted without disassembling anything. You just need to spool off all the line and run the drive in the same rotational direction the same amount of length, so whole line gets spooled up again. You may need to go a bit more off the the printer center to keep the lines tightened all their way. This belongs to the amount of buffer / total of lines on the spool.

### ABC Lines

The ABC lines are completely different than D lines, but A and B and C line feeds are done the same way. Explaining with A lines, the lines A1 and A2 come from spool and to vertical roller blocks (near the spool) on the ceiling plate. They turn around in that blocks and are fed to the base frame roller blocks slanted. The locations where the ABC lines leave the ceiling plate can be set individually - there is no forced pattern with fixed distances except you need to pay attention to omit collisions. Each line has it's own base frame roller block. So each lines passes a V shape bearing, leaves the block and is fed into the effector corner's upper ceramic inlet and then the V shape bearing. There it is wound (same doubled line feature like D axis) and it comes back again from the corner's bottom V shape bearing and another ceramic outlet to the base frame roller block entering quite another ceramic inlets and a V shape bearing. Finally the line is bent over some ceramic insert to leave the block getting connected to the frame guitar tuner mechanism. The lines A1 and A2 both share the same tuner to fixate them.

∑ In total each A (or B or C) line passes 5 ceramic inserts, 3 different blocks, passes the effector, and is reeled over five V shape bearings. Then it ends up in the tuner.

drive with spool

# →

vertical roller block

# →

base frame roller block

effector corner

# →

base frame roller block

# →

frame guitar tuner mechanism

### XYZ movements and de-coupling of D lines and ABC lines on effector (effector corners)

The following drawing illustrates (left image) that the ABC lines are not directly coupled with D lines. The effector is the central collector element because it joins all 9 lines. So there might be the thought of the idea that 3 lines have to meet in a pointy joint connection each. But this is not a must - it's only a "can". If you have a close look at the effector you can see the distance $//$. This is okay to exist. At Trikarus the offset is some millimeters (less than 10 mm).

The Z dimension is controlled by D lines only - ABC lines have no influence on it, while ABC lines have mostly impact on XY and small Z correction (e.g. on regular G0/G1 XY moves) to keep lines tensioned. So that means that XY movements are a combination of all four drives. This can easily explained. Imagine the effector is far away from the center of the print platform and you want to move it to the platform center. Such a move needs to change tension for ABC lines to prevent slacking. But when the effector comes closer to the center the line angle of the D line changes too. This angle change needs to be compensated otherwise this would mean that the effector gets lowered in it's Z position. While moving to center the D lines will shorten a little bit to keep the effector just at the same height level (keeping Z height constant is your boundary condition).

Trikarus cornerdefault corner from Hangprinter v3 (single lines)corner from Hangprinter  v3 (doubled lines)

### Line guiding over bearings and requirements of the lines

The lines are the axes of the machine. So they are highly important. Do not use cheap stuff! Tear resistance is rather less relevant because you will not reach the required forces for tearing while regular printing. The only case for breaking lines might be line tripping. Typical Hangprinter problems shows some advanced hints for guiding lines through anchors and effector corners. Additionally the following thoughts belong to the selection of good fitting lines (important properties):

• thinnest diameter
• high rigidity
• low elongation
• high abrasion resistance
• not braided, not textured, no criss-cross weave pattern, but smooth → fused straight line → ideally Monofil Dyneema or Spectra UHMWPE (ultra-high molecular polyethylene / ultrahigh-density polyethylene), generally called "balistic fibers"

### Anchor height relations

The anchor positions might vary alot at your Hangprinter installation. That could be caused by the frame location on your local ground or your toolhead for example. Your coordinate system origin Z0 will be at the position where the nozzle tip touches the print platform. The height positioning in relation to Z0 of all six bottom anchors can be different (positive or negative) and the maths will still work to correctly calculate effector positions as long as the calibration was done properly before. Neitherless you just should keep in mind some things regarding the positions. For example if your anchors are too low you might get problems with line collision at the bottom layers because the lines touch your print platform. To handle this you may need to resize your print platform to make it smaller, or to widen your frame or to raise the height of your anchors for example. Have a look at the following example drawings showing what could happen.

### Alignments of line moving parts

Hangprinter can only work properly if ceiling plate, effector and ABC anchors are horizontally leveled. This is really important. Because we use 2 anchors for A, B and C each, we need to ensure that each anchor pair is at the same Z height. It is acceptable to have varying Z height per anchor pair. But if one anchor in a pair is higher or lower this leads to unequal line lengths which is a base condition to keep upright.

### Line lenghts, effector (mover) positions and build volume (envelope), printable object size and effective bed shape

The bigger the build volume the longer the lines on the spools have to be. If physically the lines run out, then your effector can't move any further. Dimensioning the line lengths is essential and belongs to the type of Hangprinter you want to build and some firmware parameters (line buildup compensation).

The drawings in whole Trikarus documentation assume that ABC anchors are installed symmetrically around the frame and have the same distance from origin. But as explained before it's possible to have totally different lengths of ABC (like in some "real world case" without symmetric frame) and different ABC anchor point locations. That's no problem for the firmware because the XYZ coordinates are calculated by trigonometric functions and a set of known anchor positions (which you need to calibrate correctly before moving the Hangprinter). The firmware will calculate the individual (micro)steps per spool required to make a correct XYZ move based on those calibration values. In practical use there might be complex situations if angle differences or line length differences get too high. It's a task of mechanical "debugging" and calibrating a lot of values for the printer firmware.

The machine's acceptable working area is limited by a lot of factors like line tension. There exist a well defined "reachable volume". Previously the raw shape situation at the total bottom and maximum height was discussed. The largest print area shape at the bottom of the machine is some kind of hyperbolic triangle or 3-point polygon. While the printer's Z coordinate rises when printing, the print volume shape shrinks until maximum Z is reached. The resulting volume between that is shaped roughly like a tetrahedron, with all six edges bent towards the origin (some kind hyperbolic too). The three bottom edges are bent upwards because the lower anchors need to be below the effector, to give it a downwards pull. All six edges bend towards the origin because of gravity. At the limit of the the tetrahedron wall, it is impossible to get an outwards pointing force or velocity, no matter how hard one tightens the lines. Gravity will pull the effector inwards until lines have sagged enough to give them a working angle. The better angle lets the lines pull outwards with a force that equals out the inward-pulling gravity.

The firmware defines a print radius to simplify, so however, the resulting shape, which should be respected when slicing 3d models, is a regular circle! And in regular slicers you can only slice in cylinders or boxes. There are no known slicers to allow the special shape that Hangprinter has. This would be a major feature request indeed to maximize the working space.

It's another question what especially can be understood as the "maximum Z". The maximum Z could be the height where ABC drives have no more influence on the XY movement - means that Z can be displayed as a onedimensional point because XY coordinates are coincident on the Z axis (X0, Y0, maximum Z) - that would be just the top spike of the tetrahedron. In reality typical Hangprinter construction does not allow to ever reach this point because the effector would hardly crash: there are some mechanics in the way (fixation arms, drive spools, electronics or whatever)! So the maximum Z is a mixture of the highest mechanically reachable point (where the effector is still below the ceiling and no contact with assembly parts) and the highest printable coordinate without having collision of your printed object. It's better to talk about a specific maximum print height. Let's call it $//$ which will define the height of the print volume in the used slicer software profile. Together with the known print diameter you can define a really rough cyclindric shape for your slicer.

If you imagine a boolean volumetric merge (see pictures below) of slicer's cylinder, the hyperbolic tetrahedron, the shape cutoff due to unreachable maximum Z and the line collisions with printed geometry, the shape will be a really complex non-regular one. Hangprinter's build volume shape will be roughly a kind of trumpet or funnel which has some cutoff at the top. So it's absoluteley not a classic build volume with constant proportions in any direction.

To ensure your print won't fail in higher coordinates ideally you would need to simlute if there are collisions between the nine tensioned moving ABCD lines and the print object or other assembly parts of the printer (including the print platform itself). At the moment (state of may 2020) Torbjørn is coding some simulation tool to do this. More information about line collision and printing can be found at Printer profiles, slicing and filaments.

### Print diameter

The drawing shows some diameters $//$ to $//$$//$ is the outermost diameter of hangprinter which you can use to plan the desired room size (for Trikarus $//$). $//$ is the maximum diameter which can be fit into the triangle shape of Trikarus. $//$ displays the maximum print diameter in theory. Actually this diameter cannot be exactly reached because the lines cannot be tensioned that amount (except at the spike directions of the three frame forks. More realistic is $//$ which takes care for a maximum $//$ at the effector points and anchor points. Within the frame it's possible to move the effector to the outermost (middle) positions which are the three anchor points. At the outermost effector positions in the middle of two anchors the third anchor pair lines will get more slack. So in those positions (extreme positions) the positiong error gets worse. There is a rule of thumb that says that you can travel 1/3 of the distance from origin X0 Y0 Z0 to points between two anchors along all three anchor directions (see also RepRapFirmware and calculations). This will create your maximum print diameter. As you can see the print diameter is much smaller than the "frame". Do not forget the dimensions of the effector while thinking about this topic. The circle created by the 3 points D1, D2 and D3 creates an usuble "dead" radius which defines the minimum size of the effector frame. The question is not what points the effector frame border can reach but what points the nozzle tip can reach!

### Effector move positions and shapes

Effector is in home position X0 Y0

Effector reached maximum distance between 2 anchors

In reality this is not possible due to overtightening / missing line tension

Random position of the effector

The more the effector moves to the outside of the center the positioning gets more inaccurate.

The line angle never can reach 180 degrees or higherPossible line angle will maybe a maximum of ~ 150 degrees or even lower

Different shapes and volumetric merge resulting to get receive the build volume

regular tetrahedronhyperbolic tetrahedroncylindric print volumeHyperbolic movable section and maximum
cylindrical print volume in one drawing

Pre-estimation of build volume and rough planning your Hangprinter geometry

Hangprinter needs to be setup every time it changes the space where it is installed. Depending on the mounting distances of the anchors and used hardware components (motor power, part strength), the maximum possible build size will vary greatly. To correctly prepare printable objects a calibration routine has to be done before. This routine is complex and errorprone yet. If the calibration is not done the motion system will just fail quickly. Trikarus was tested to reach around 500 mm of build radius and 1000 mm of build height without well configured line buildup compensation. With proper compensation calibration instead we can precisely reach the full volume.

The creation of the GCode paths is cumbersome because you maybe need to reconfigure firmware parameters and slicer profile settings. And you will may need to simulate possible collisions before running a week or month taking print. The system lacks real time positioning and load orientation feedback, therefore the motion cannot rely on current relative distance between the load and the anchors.

To estimate or enlarge the build volume you will need to adjust or replace a lot of different possible things like

• widen up your ceiling plate module's D line anchor points and make longer beams at the effector (not so cool if built once)
• make a larger print platform (not so cool if built once)
• change to bigger drives with more power for tensioning (not so cool if built once)
• go higher with your ceiling module
• enlarge the bottom anchor distances from the center axis (Z axis)
• etc.

The print objects are targeted to generally be really large - especially really high in Z dimension. So most users install high output hotends to their Hangprinter. With prominent (well known) hotends like E3D Volcano or Super Volcano it's possible to print fast and big (10x more output than regular FFF desktop printer). But that also implies to be unable to print tiny objects. Small details are not possible with a big hotend. Instead this could be done with a second hotend with a smaller nozzle. There's also a large list of things which could be done for more advanced Hangprinters.

For doing a good planning please check out RepRapFirmware and calculationsBuilding basics, checks, maintenance and all the other pages containing useful information to re-think.

Effector mass, tension, inertia und printing speeds

Trikarus effector is much heavier than regular Hangprinter effector because it has a lot more rigid 3d printed parts and norm parts on it. This makes it slower in point of acceleration and deceleration. It raises the required brake force to withstand, otherwise the effector will drop downwards (gravitational constant) on a power loss. A heavier effector, the dimensioning of drives and extruder, and the frame size limit your print speed. You also need to compensate rotational forces on the effector which come from dragging filament and power/data cables around and accelerating the motors. This has great influence on line tension and the print quality.

Hangprinters are a lot more complex in handling and understanding than most regular desktop 3d printers.

• huge build volumes possible - no problem to make 3 meter prints)
• build volume is not fixed to a machine frame. It's fixed to your mounting. You can adjust the size (anchor positions) to your specific needs
• totally cheap in comparison to commercial printers in the same league of size. Most printers like BigRep, BLB The Box or Tractus T3500 cost \$30.000 or more (but they are more reliable than a self-built one for sure)
• low energy consumption (in case you build it similar like we or Torbjørn did)
• mechanical maintenance easy (hardest thing to do is changing the lines or removing messed up lines)
• more complex to calibrate and adjust things
• more complex to use (slicing, build volume, homing)
• missing features to make it more reliable (tension sensors, heated bed)
• components not well reachable (ladder required)

# How to build a generic Hangprinter myself?

Building a Hangprinter is a consuming task. It takes a lot of time and maybe less or more money. You will need a mass of knowledge about 3d printing, hand crafting, electronics and software and reading a lot of documentation to be aware of the problems which might occure. You maybe also are going to kill some electronics and tools when building the shit out of it - like i did. For example while building i fried a TMC stepper driver of my Duet board without known reason, shortened some gyro sensorm buried a rotational encoder and twisted up a lot other things. I failed to model some parts and had to reprint many parts again and again. That makes it more expensive but it's just normal. Building the machine would have been impossible without being able to work in a FabLab because there you will find all the required machines and tools like 3D Printers, Lasercutter, welding machine, different drilling machines, lathes, vinyl plotter and much more.

The most expensive part of the printer after finalizing it, is the filament when printing something with it. So a good advice: try build some stable machine!

There are different versions (iterations) of Hangprinter available. They deal with different core designs including different firmware (Marlin, RepRapFirmware) and therefore different helper software, GCodes and other implementations - and they ultimately lack of detailed documentation. There are also differences in calibration routines. The clarifcation of these differences was not really available yet and that might be frustrating while trying to work out the core concepts and needed "maker vitamins" to build up your own machine. Not everything is compatible to each other. Hopefully documentation of Trikarus Project helps to overcome these problems.

To make a Hangprinter you need a lot of working space. Check out the room you want to install the printer. The ceiling should be stable (should survive 20-30 kg of vertical mass) and it should be even enough to make the ceiling module horizontal later on. You will need a good "temporary" machine frame if your desired room does not deal with those attributes. Additionally you will need space where you can install your ABC bottom anchors. To tighten the lines they have to be installed the rigid way.

The following core electronic components can be chosen from to build a Hangprinter:

1. 3D Printer Controllers and Breakouts and firmware
2. Drives
1. regular Nema 17 stepper motors
2. brushless DC motors
3. Closed loop motor controllers and firmware ( highly recommended)
2. Mechaduino Firmware fork from Torbjørn
3. Smart Stepper Firmware Fork from Torbjørn (works for Mechaduino too)
4. Smart Stepper Firmware official (works for Mechaduino too)
2. MisfitTech Smart Stepper (Smart Stepper is a hardware fork from Mechaduino)
1. Smart Stepper Firmware Fork from Torbjørn
2. Smart Stepper Firmware official
3. Smart Stepper Firmware Fork for Trikarus
3. ODrive Shield
1. ODrive Firmware from from Torbjørn

... okay that's a long list. How shall i decide now?

• If you want to build cheapest 8 Bit electronics and with less electronics: use Arduino Mega 2560 + RAMPS +Marlin Firmware with HangPrinter support (fork) + regular Nema 17 motors. That's it
• If you want to build cheaper with 8 Bit electronics and closed loop control: use Arduino Mega 2560 + RAMPS+Marlin Firmware with HangPrinter support (fork) + regular Nema 17 motors + Smart Stepper or Mechaduino
• If you want to build with 32 Bit electronics: use Duet + RepRap Firmware (v2 or v3) official + regular Nema 17 stepper motors
• If you want to build with 32 Bit electronics and closed loop motor control with brushless DC motor drives: use Duet + RepRap Firmware Fork from Torbjørn (v2) + brushless DC motors + ODrive shields + ODrive Firmware from Torbjørn
• If you want to build like Trikarus: use Duet + RepRap Firmware (v2 or v3) official + regular Nema 17 stepper motors + Smart Stepper+ Smart Stepper Firmware Fork for Trikarus

You will also need one million other small and huge parts and tools to build a Hangprinter.

# To check out before building one!

Please have a close look at Typical Hangprinter problems. Hangprinters are technical inventions with a lot of features and a lot of possible proven problems too. To prevent you having a construction nightmare please keep calm and make a good plan before investing time and money.

# Design goals of Hangprinter - a quick excerpt of the original Hangprinter motivation

The Hangprinter concept evolved over several iterations and got different milestones and design goals to reach for breaking changes. The most recent design goals for Hangprinter concept are

• compact machine
• easy-to-manufacture machine
• easy installation
• large print heights, above one meter
• parking the printer at the ceiling while not in use
• print big at low cost
• make a useful machine
• make it silent (allows installation in more regular living rooms)
• automatism for calibration to have a high repeatability (make it handy to print with) → make it reliable (and safe)