# Trikarus Project (Hangprinter)

A cable driven large scale 3d printer at the Industriemuseum Chemnitz

# Intro

[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2025-05/scaled-1680-/x9JbAFgATqS177qd-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2025-05/x9JbAFgATqS177qd-grafik.png)

## Welcome dear guest - this is the Trikarus Project homepage!

This is the public documentation space for the Hangprinter machine artwork implementation called "Trikarus". On this space you can find a lot of information about the project and how it is made off.

Trikarus is a custom Hangprinter (large-scale 3d printer), made in FabLab Chemnitz, specially designed for the 4th Saxon State Exhibition at the scene "Machinery Boom" (MaschinenBoom) of Chemnitz Museum of Industry to the anniverary "500 years of industrial heritage in Saxony" in 2020 and later happenings. It was postponed to be exhibited in late 2020 due to global Corona/Covid-19 crisis - i just call it the "coconut crisis" to have a better feeling about that situation. MaschinenBoom happened from 11 July 2020 until 30 December 2021.

[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2025-05/scaled-1680-/qo0VXrsGbEZVh7gT-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2025-05/qo0VXrsGbEZVh7gT-grafik.png)

*Teaser image by [<span>https://web.saechsisches-industriemuseum.com/chemnitz.html</span>](https://web.saechsisches-industriemuseum.com/chemnitz.html)*

Neithertheless we did not give up to plan and build Trikarus. It's a completely non-commercial long-term experiment and project to focus on making Hangprinters more popular and more usable. It's the first Hangprinter implementation which comes with a massive documentation with focus on understanding the core principles (including failed experiments).

It comes with a lot of (experimental) features that "regular" Hangprinters do not have yet like gyro sensor, IMU sensor, Z limit switch, capsulated line guards (felts at the bearings), segmented print platform, a stable mounted hotend, filament feed sensor, IR Z probe, emergency halt, monitoring and other things. Things like parking the effector in position and a filament feeding unit at the bottom are going to be tested out as well (but are no existent yet).

Trikarus is also some "regular" kind of Industry 4.0 project because it utilizes different devices, sensors and actuators by exchanging data the IoT way. A mostly open source utilizing software stack is running 3d printing server, a visual data monitoring and a lot of scripts to automate and stabilize as much as possible. A great palette of things can be done completely remote and with less effort by a well configured client with proper access permissions (security cascade).

The project is called "Trikarus" because the printer's effector is a kind of flying thing. The name also fits to the to former airport "Ikarus" in Chemnitz. The "Tri" stands for the triangle shape of the effector as well as for the print platform and the anchor situation. There's also the old [greek story of "Ikarus"](https://de.wikipedia.org/wiki/Ikarus) where Ikaros, son of Daedalus, installed some wings and flown too near to the sun. His wings melted and he crashed into the ocean. Belonging to this project the sun is the extruder, mounted on the yellow lighted effector, and the ocean is the print bed with blue tape acting as adhesion promotor on it. Sometimes Trikarus comes too far to coordinates it cannot reach and will collide with it's lines.

Trikarus uses a Duet 2 Controller with official RepRapFirmware v3 and runs with Nema 17 stepper motors. It has closed loop control (servo motors) by installed Smart Steppers from MisfitTech, mounted on those Nema 17 motors. It can be set into so called "torque mode" by running commands from Repetier Server or serial console which is running on an Raspberry Pi. The Raspbery Pi is attached to Duet 2 by LAN and USB. To use torque mode the Smart Stepper run a special fork of Smart Stepper firmware which implements it (like Torbjørn did) but without I2C functionality. The Raspberry Pi works as remote multi tool for the complete machine and has to do a lot of important and cool jobs.

## Overview of content

Start with the [What is a Hangprinter and how does it work?](https://old.stadtfabrikanten.org/pages/viewpage.action?pageId=65405294) to get an orientation.

## Videos

Because videos help to understand we made a lot of clips for different problems and solutions. We put them on our self-hosted PeerTube instance.

[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2025-05/scaled-1680-/J1h3zDjDS6qpU0y9-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2025-05/J1h3zDjDS6qpU0y9-grafik.png) [![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2025-05/scaled-1680-/aU2erIxqqq3eMd7I-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2025-05/aU2erIxqqq3eMd7I-grafik.png) [![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2025-05/scaled-1680-/VIb1JnPgrX9QyHP3-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2025-05/VIb1JnPgrX9QyHP3-grafik.png) [![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2025-05/scaled-1680-/G8yFJKIXIK8V1XTp-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2025-05/G8yFJKIXIK8V1XTp-grafik.png)

[https://videos.stadtfabrikanten.org/video-channels/trikarus/videos](https://videos.stadtfabrikanten.org/video-channels/trikarus/videos)

## Hardware Features

- based on Hangprinter v1-v4 + own ideas and a lot of working and also failed baby experiments, existing knowlegde from the former past, and a lot of stuff from the widy spidy web
- key phrases  
    
    - frameless printer, hanging printer, Hangprinter, room printer, Freiraumdrucker, Seilwindendrucker, winch printer, rope printer, wire printer, cable-driven parallel 3D printer CDPP, redundantly constrained, line-on-spool, completely restrained positioning mechanism (CPRM), kinematically redundant
- typical layer heights 0.45 ~ 2.00 mm
- printable material: PLA (because no heated bed)
- consumed time: more that you can imagine
- a lot of lessons learned 
    - consumed filament: over 3 kg of wasted filament for failed prints, failed model geometry and better model iterations; around 10kg of filament in total
    - destroyed parts which were replaced while building: rotary encoder, gyro sensor, stepper motor driver and much more
- <span class="placeholder-inline-tasks">Software &amp; remote control → see [Network infrastructure and software](https://old.stadtfabrikanten.org/display/TH/Network+infrastructure+and+software)  
    </span>
    
    
    - Duet Web Control (Duet 2 Ethernet/Wifi)
    - <span class="placeholder-inline-tasks">Repetier Server &amp; Repetier Server Monitor  
        </span>
    - <span class="placeholder-inline-tasks">Monitoring with Grafana, InfluxDB and collectd  
        </span>
    - <span class="placeholder-inline-tasks">mjpg\_streamer for Webcam  
        </span>
    - UPS powered server infrastructure: Raspberry Pi and Freifunk can be maintained for 4 to 10 hours even after switching off the power in the museum (for neat evaluation of the metrics, saving of configs, etc.)
- GCode/Firmware: RepRepFirmware with configured HangPrinter kinematics mode and Marlin compatible dialect for slicing
- <span class="placeholder-inline-tasks">32 Bit Duet 2 Ethernet electronics</span>
- <span class="placeholder-inline-tasks">sensors</span>
    - Infrared sensor for auto leveling in the Z direction
    - <span class="placeholder-inline-tasks" style="color: rgb(255,0,0);">limit switch for maximum Z coordinate (not working stable yet because cable collisions can occure) - not integrated in routines yet  
        </span>
    - Filament feed sensor on the extruder realised by generic knob encoder
    - <span style="color: rgb(255,0,0);">Filament feed sensor on the filament conveyor (double monitoring) - <span class="placeholder-inline-tasks" style="color: rgb(255,0,0);">not integrated in routines yet</span> due to hardware issue  
        </span>
    - 3x analogue bubble levels for rough leveling the effector
    - <span class="placeholder-inline-tasks" style="color: rgb(255,0,0);">digital gyro MPU 6050 for checking of the surrounding room by measuring and collecting vibration and temperature data (more could be done with this data later) - not integrated in routines yet  
        </span>
    - <span class="placeholder-inline-tasks" style="color: rgb(255,0,0);">digital IMU MPU 9250 for precise leveling and measurement of the effector inclination (angle) and vibrations → helpful monitoring for printer calibration (loose / tight tension) or error behavior analysis (e.g. strong floor vibrations) - not integrated in routines yet  
        </span>
- <span class="placeholder-inline-tasks">actuators</span>
    - Aero Titan Extruder with Super Volcano Hotend for 1.75 mm filaments and 1.4 mm nozzle (approx. 10x higher output than normal desktop printers) - PT100 sensor
    - <span style="color: rgb(255,0,0);">Active filament unwinding device with monitor and integrated load cell (10kg) - under development  
        </span>
    - emergency halt button (this is crucial for printing with safety. It was repeatedly validated to be the best idea you could have building up a large machine with higher forces in extrusion)
    - <span class="placeholder-inline-tasks">closed loop servo motors (MisfitTech Smart Stepper)</span>
    - <span class="placeholder-inline-tasks">fancy yellow LED stripes at the effector and ceiling module  
        </span>
    - <span class="placeholder-inline-tasks">three laser pointers for easy machine calibration (mechanically capsulated by mounting on the top side of the translucent polycarbonate ceiling plate)</span>
- backup recovery of print (printer can be shutdown and revived later in case the power was not gone (no brake system existent yet)) - experimental
- different hardware features 
    - translucent UV resistant polycarbonate (Macrolon) ceiling plate for a good view of all components (for maintenance, laser pointers and design)
    - <span class="placeholder-inline-tasks">more rigid lines (doubled lines for each axis) provide better flex compensation and keeping orientation than single lines</span>
    - fine adjustment of the lines with guitar tuners
    - thumb screws for quick release of messed lines
    - transport rings on the top side and grip handles on both sides for better handling of the ceiling module
    - advanced side carriers at the spools to catch de-spooled lines (prevent lines to get into ball bearings) and for possibly later drive break implementation
    - all parts portable with regular car for various events
    - magnetic adjustable PTFE filament tube guiding from bottom to ceiling module
    - magnetic line winders (reservoirs) for idling lines (bypassing)
    - thick and well isolated main cable for wiring between ceiling module and effector (heavy weight). Acts also as some simulation for Hangprinters which would have more than one extruder or contain more advanced tools
- <span class="placeholder-inline-tasks">frame</span>
    - large frame with support for 3d printed parts up to approx. 2.5 m height x 1 m diameter
    - total frame dimension ~2.8 height x 2.25 m diagonal
    - stable frame parts printed from PETG
    - collapsible frame that can be transported by car
    - can be set up completely by 3 to 4 people
    - can also be used partially (fork corners only)  
        
        - install ceiling module at the room's ceiling with some eyelets / spacers
        - <span class="placeholder-inline-tasks">place the three anchors together with the frame corners (tubular steel assemblies) on the floor</span>
        - <span class="placeholder-inline-tasks">then it corresponds completely to the actual Hangprinter principle</span>
- contains a lot of different recycled spare parts from different things like old computers, power supplies and cables
- black/yellow design
- low power consumption: max. 200 watts when everything is running (extruders, motors, lighting) - usual operating power is etween 50 and 100 watts

## Trikarus' core modules, dimensions and weights

See[ Bills of material and hardware compenent features](https://old.stadtfabrikanten.org/display/TH/Bills+of+material+and+hardware+compenent+features) to get more information about electronics.

**Effector (mover) assembly**

~3.9 kg - measured by luggage scale - weight includes ceiling cabling partially

[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2025-05/scaled-1680-/VULXroKf0XOOYyWD-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2025-05/VULXroKf0XOOYyWD-grafik.png)

**Ceiling mount assembly**

- ~16 kg - measured by luggage scale
- ceiling module with homed and fixed effector: dimensions roughly 1.0 m x 0.45 m (height)

[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2025-05/scaled-1680-/zHh1XuOWzdhts2Lf-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2025-05/zHh1XuOWzdhts2Lf-grafik.png)

**Exhibition frame**

- foldable heavy-weight steel frame
- max 1.6 m long beam segments

[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2025-05/scaled-1680-/lBQbYgHAibnptdD4-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2025-05/lBQbYgHAibnptdD4-grafik.png)

**print platform**

- height + angle adjustable print platform
- max 1.3 m long beam segments

[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2025-05/scaled-1680-/ZTbEzoJCdAwtJN6W-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2025-05/ZTbEzoJCdAwtJN6W-grafik.png)

## Limitations / missing features / caveats

- high volume output extruder but maximum print speed is limited due to missing BLDC drives (faster, but more expensive)
- high weight of effector and main cable
- no heatbed
- [no I2C connectivity between Smart Steppers and Duet disables some special features of Hangprinter firmware](https://gitlab.com/tobben/hangprinter/-/issues/38)
- not all features working which could be needed, like the Z limit switch at the top
- old, unmaintained RRF v2 firmware
- a list with more missing things and feature requetsts can be found at [What next?](https://old.stadtfabrikanten.org/pages/viewpage.action?pageId=73040235)

## Targets and demands of Trikarus project

- not intended to be a high quality machine that ever could or should be mass-produced
- manufacture large objects. it's strength is in build volume, not speed or precision
- it's a printer with support for large spaces. Accordingly, an extruder was installed that has significantly more output. This means that the parts to be produced require more material and are therefore much more expensive than conventional 3D prints. Since misprints are priceless, the machine hardware has to be better. Therefore, more costs for closed loop steppers and Co. were estimated here. So it's not a cheap project
- was built for exhibiting → aims for stable function, quality and optics and is therefore not as inexpensive as regular hardware projects
- education (showing the procedure and the possibilities of Hangprinters and 3d printing) for visitors and other people
- learning by doing
- experimental &amp; further development (open knowledge contribution)
- self-actualization
- maybe go mobile from exhibition to exhibition, such as MakerFaires
- validate, test, improve the Hangprinter working principle
- modern art / machine art / maker art / hacker art - every machine is also a work of art, an inspiration and an expression of creativity or original ideas or solutions
- create a good and more complete documentation for Hangprinters, which explains how to operate and maintain the machine. This documentation focuses on the usage of RepRapFirmware but it explains also some differences to Marlin Firmware
- extension to ceramics printing (postponed)

## Contribution and questions

Trikarus is not some kind of fork project to completely rebase on. It is made to contribute as much as possible to the main Hangprinter project. So please do not rely on this as main source and please commit your questions and developments to the ressources provided by the source repositories linked in the bottom section at[ What is a Hangprinter and how does it work?](https://old.stadtfabrikanten.org/pages/viewpage.action?pageId=65405294) ("Important web ressources for Hangprinter"). If you have questions and ideas for Trikarus you can drop us an [email](https://fablabchemnitz.de/impressum/). If it is related to Hangprinter in general you can drop us too or put it directly into the gitlab repositories of Torbjørn Ludvigsen.

![(Info)](https://old.stadtfabrikanten.org/s/-6fzg5h/9012/tu5x00/_/images/icons/emoticons/information.svg) Some different project files were pushed into Gitea → [<span class="rwui_content rwui_has_icon  rwui_has_icon_right ">Trikarus @ Gitea</span>](https://gitea.fablabchemnitz.de/vmario/Trikarus "Trikarus @ Gitea")

## Thanks!

Special thanks to Torbjørn Ludvigsen for all the time for years now investing into so much effort respecting experiments, coding and testing Hangprinter related knowledge. You got a special positions at the tool head.

[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2025-05/scaled-1680-/3flQCBvXubbXZTBr-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2025-05/3flQCBvXubbXZTBr-grafik.png)

Trikarus project would not have been possible to make without the FabLab Chemnitz people, machines, tools and knowledge. Thanks to Mathieu for the prototype frame of the printer, to Georg for giving 2 more hands while building up and testing at the museum and to Daniel for organizing and transporting a lot of different stuff. Cheers also to Jens, Steffen, Marcel, Jannis, Stefan, Sven and Tommy.

Another appreciation goes to Freifunk Chemnitz which delivers flexible infrastructure regarding to Wifi. Thanks again to Stefan and Martin helping out with technical stuff.

Thumbs up to the special idea i got from The Case Digital regarding cable guidings.

Finally for giving us the possibilty and space to make that project a huge Hallelujah is going to the Chemnitz Museum of Industry with Jürgen Kabus and Thomas Schmäschke for organizing and spending so much time.

[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2025-05/scaled-1680-/cBm4bUIrTqOjy4CT-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2025-05/cBm4bUIrTqOjy4CT-grafik.png)

# FAQ / Decisioning

This page contains some information about different decisioning which were met when designing hardware and software related things.

<details id="bkmrk-why-stepper-motors-a"><summary>Why stepper motors and not brushless (BLDC) motors?</summary>

<table aria-label="panel macro" class="wysiwyg-macro" data-macro-body-type="RICH_TEXT" data-macro-id="81134d34-80fe-4555-bfb3-6cb762f6a1d7" data-macro-name="panel" data-macro-parameters="title=Why stepper motors and not brushless (BLDC) motors?" data-macro-schema-version="1" style="background-image: url('https://old.stadtfabrikanten.org/plugins/servlet/confluence/placeholder/macro-heading?definition=e3BhbmVsOnRpdGxlPVdoeSBzdGVwcGVyIG1vdG9ycyBhbmQgbm90IGJydXNobGVzcyAoQkxEQykgbW90b3JzP30&locale=de_DE&version=2'); background-repeat: no-repeat;"><tbody><tr><td class="wysiwyg-macro-body">- 

</td></tr></tbody></table>

- <span lang="en">Stepper motors are significantly less expensive and also require cheaper control electronics / hardware (comparison ODrive + BLDC vs. stepper motors with smart stepper) </span>
- <span lang="en">Stepper motors are easier to handle with standard 3D printer controls </span>
- <span lang="en">the official Hangprinter project does not yet have a ready release branch for the BLDC variant (either RAMPs with Marlin Fork or Duet 2 with RepRapFirmware Fork)</span>

</details><details id="bkmrk-what%27s-the-reason-to"><summary>What's the reason to use Smart Stepper?</summary>

Because they just work! And they work better than clones or the one's from Tropical Labs. But you can check out yourself some alternatives:

1. [MisfitTech Smart Stepper](http://misfittech.net/nema-17-smart-stepper/)
2. [https://github.com/thmjpr/nano\_stepper (advanced fork of MisfitTech Smart Stepper)](https://github.com/thmjpr/nano_stepper) - that might be interesting to try out later
3. MakerBase Servo42 (fork of MisfitTech Smart Stepper)
4. [Tropical Labs Mechaduino](https://tropical-labs.com/shop/mechaduino-0-2-pcb/)
5. [uStepper](https://ustepper.com/store/ustepper-boards/27-46-ustepper-s.html)
6. [Wembi](https://www.kickstarter.com/projects/109167261/wembi-closed-loop-motorupgrade-for-3d-printer?lang=fr)
7. Trinamic PANdrive
8. [All in one stepper motor](https://www.reichelt.de/all-in-one-schrittmotor-nema-17-1-8-2-55-v-act-17hs44172802-p260763.html?PROVID=2788&gclid=EAIaIQobChMInJnqr-je6QIVhKwYCh1-IgfuEAkYBSABEgJjhvD_BwE&&r=1#av_tabholder)
9. [ethersweep](https://github.com/Neumi/ethersweep)

</details><details id="bkmrk-why-so-powerful-step"><summary>Why so powerful stepper motors for the drives?</summary>

<div class="panelContent">- <span lang="en">The strongest Nema 17 motors (holding torque) were selected that we could find to avoid using heavier and more expensive Nema 23 motors</span>
- <span lang="en">it takes a lot of strength to build enough line tension while creating stable movements. Most Nema 17 motors are not that strong.</span>

</div></details><details id="bkmrk-why-did-you-mount-th"><summary>Why did you mount the spool drives vertically?</summary>

In Hangprinter v1-v3 the drives were mounted horizontally. Since Hangprinter v4 they are vertically aligned because Torbjorn uses BLDC motors. We decided too make them vertical too, even with the Nema 17 stepper motor, because in case the lines wind off accidentally it's much easier to remove knots. In general it's a question of design and space saving which is hard to answer. Maybe some features like drive brakes could be done better by doing the drives horizontally, or maybe not.

</details><details id="bkmrk-why-did-you-choose-t"><summary>Why did you choose the Duet 2 Ethernet?</summary>

- <span lang="en">because 32-bit electronics allow more signal processing and faster stepper movements than an old 8-bit controller based on the Mega 2560 </span>
- <span lang="en">because the firmware for the Hangprinter is supported out of the box </span>
- <span lang="en">because there is more debugging / connection options via the Ethernet port </span>
- <span lang="en">there are various extensions (PT100, IR Probe) that fit perfectly</span>

</details><details id="bkmrk-why-are-you-not-usin"><summary>Why are you not using the official RepRapFirmware v3?</summary>

- because the forked firmware version from Hangprinter project contains better algorithms for line buildup compensation and other things like doubled line feature. We would need to update the official firmware.

</details><details id="bkmrk-why-did-you-use-an-i"><summary>Why did you use an infrared Z probe?</summary>

- <span lang="en">because infrared sensors are accurate and support many materials → glass, wood, tape, etc. </span>
- <span lang="en">it just mustn't reflect too much</span>

</details><details id="bkmrk-why-did-you-use-a-po"><summary>Why did you use a polycarbonate sheet for the ceiling plate?</summary>

- <span lang="en">because it is transparent and therefore offers very good insight into all components. This is very helpful for maintenance </span>
- <span lang="en">because it just looks good</span>
- <span lang="en">because it’s flame retardant. Significantly better than wood</span>
- <span lang="en">because it is elastic and therefore holes and threads can be easily inserted into it (no brittle fracture behaviour)</span>
- <span lang="en">note that you should buy a UV resistant one!</span>

</details><details id="bkmrk-why-didn%27t-you-use-a"><summary>Why didn't you use a heated printing platform?</summary>

- <span lang="en">Heated beds are major sources of errors. Printed parts peel off when the temperature is not right and the materials that are printed on heated printing platforms are usually also more expensive. Since we intend to produce large and lengthy 3D prints, we have agreed to print using more inexpensive PLA. No heating is required for this (but it would help alot, because also PLA warps in large scale parts) </span>
- <span lang="en">a heating bed of this size would be complex and expensive to build and to run (power requirements)  
    </span>
- <span lang="en">rooms with underfloor heating may be interesting</span>

</details><details id="bkmrk-why-cylindrical-pins"><summary>Why cylindrical pins and PTFE segments instead of screws in the line guide assemblies?</summary>

<span lang="en">So that the reels are in place at all important points and do not shear or wobble to the side → Goal: Increase accuracy and reduce shearing of the lines by skipping</span>

</details><details id="bkmrk-why-was-a-router-ins"><summary>Why was a router installed on the ceiling plate?</summary>

<span lang="en">The router serves on the one hand as a mesh repeater, on the other hand as a switch and for knotting ethernet devices. This makes Trikarus extremely flexible. This saves the purchase of a single switch or a WLAN stick. With Freifunk, the printer can be integrated into external environments relatively easily (in regions around Chemnitz). The TP-Link router used was selected because the device was left over and was "recycled" for the project purpose. The smaller GL-ARM300M router we ordered failed to flash the Freifunk Gluon firmware (too old uboot bootloader prevented the 16MB memory block from flashing). We did not find a smaller router alternative with gluon compatibility and at least 2 LAN connections yet. An ideal device would contain Wifi, 2 or 3 ethernet ports and SIM card slot.</span>

</details><details id="bkmrk-why-did-you-install-"><summary>Why did you install a Raspberry Pi?</summary>

- <span lang="en">to run a server that simplifies remote maintenance. From the time the ceiling module hangs on the ceiling, any maintenance is difficult and only possible with a ladder. With Repetier Server and bash tools, almost all tasks can be done without having to constantly climb up and down except of eletrical or mechanical issues  
    </span>
- <span lang="en">so that a 3D print server can be installed that can be scripted (API usage)</span>
- <span lang="en">so that different actuators and sensors via GPIO expand the functionality of the printer (gyro, IMU, filament feed encoder, relay controls) → by using the GPIO functionality, the module network consisting of UPS, Rasperry Pi and router cannot be easily disconnected from the printer. A wireless connection of the sensors to the Raspberry Pi would then be necessary to evaluate the information or to control the modules. By using Duet 2 Wifi, the Raspberry Pi and Duet would be linked via router. Decoupling so that the Raspberry Pi, UPS and router are located next to the printer would then be possible and would help to reduce the weight.</span>
- <span lang="en">The advantage of Raspberry Pi + Duet is that some tasks can run separately: cron scripts to automate switching on and off and monitoring while DWC controls the print job (Repetier Server is not a requirement, but an advantage). DWC can be used as a backup strategy, so to speak</span>

</details><details id="bkmrk-why-did-you-use-repe"><summary>Why did you use Repetier Server?</summary>

- <span lang="en">because we have had basic experiences with it before. Otherwise we would have used Octoprint for sure  
    </span>
- <span lang="en">Repetier Server has an advanced API connection that Duet Web Control does not (yet) have in that fully featured way  
    </span>
- <span lang="en">because there you can exclude "broken" regions of a running print (GCode filter) </span>
- <span lang="en">because Repetier Server offers an extended functionality for saving and restoring failed prints </span>
- <span lang="en">because it supports custom macros to run python, bash or other scripts (extcommands.xml)</span>

</details><details id="bkmrk-why-did-you-use-a-up"><summary>Why did you use a UPS instead of a power bank?</summary>

- <span lang="en">because power banks generally do not switch from mains to battery supply quickly enough (tested). This will cause the Raspberry Pi to restart unexpectedly. However, a UPS is specially designed for this. </span>
- <span lang="en">Many power banks cause "Under Voltage" event on the Raspberry Pi, as they do not deliver a clean 5V voltage or not enough power. This makes the Raspberry Pi unstable and leads to unforeseen crashes</span>

</details><details id="bkmrk-why-the-elaborate-ma"><summary>Why the elaborate machine frame?</summary>

- <span lang="en">so that we have something shapely, transportable (car), robust and unique in the industrial museum that fits the exhibition</span>
- <span lang="en">the maximum height of about 3 meters was a requirement on the part of the industrial museum. Therefore the frame was limited to a height of approx. 2.80 m. we built a steel square tube frame because it is significantly cheaper than an aluminum square tube frame. </span>
- <span lang="en">we wanted to keep vibration and bending as low as possible, which is why we deliberately chose a larger cross-section and mass (3 mm bending at 1.5 m long square tube beam 40x40x3 under 85 kg load)</span>

</details><details id="bkmrk-why-is-the-filament-"><summary>Why is the filament feeder connected via Bluetooth?</summary>

<div class="panelHeader" style="border-bottom-width: 1px;">  
</div><div class="panelContent">- <span lang="en">In this way you save yourself a data cable, which should extend from the floor to the ceiling</span>
- <span lang="en">furthermore, the feeder unit can be supplied with power separately, which also saves a power cable to the ceiling. That keeps intact the Hangprinter idea</span>

</div><p class="callout warning"><span lang="en">at the moment the feeder is not present because it's a work in progress thing</span></p>

</details><details id="bkmrk-the-electronics-look"><summary>The electronics look confused!</summary>

<span lang="en">I am an engineer and not an electrician. I have made everything to the best of my knowledge and belief. Of course, much better. I talked to electricians from our FabLab and tried many tips to implement or take them to heart. Another iteration of the printer and with a little more time can be done much more with the cable scheme and the hardware selection. However, this was not possible for this prototype. I also did not know about caveats with SPI/I2C and really long wires. I later found out the harder way that long cables are no good idea for I2C or SPI interface. It can be managed, but you need more things. Have a look at [https://hackaday.com/2017/02/08/taking-the-leap-off-board-an-introduction-to-i2c-over-long-wires.](https://hackaday.com/2017/02/08/taking-the-leap-off-board-an-introduction-to-i2c-over-long-wires/)</span>

</details><details id="bkmrk-why-did-you-connect-"><summary>Why did you connect 5V relays to the Raspberry Pi, although these cause problems because the voltage level does not match?</summary>

- <span lang="en">Because there were no ready to buy 3.3V modules in Germany and the delivery times from China were too long. In principle, good alternatives are commercially available: </span>[https://www.ebay.de](https://www.ebay.de/itm/5Pcs-Optokoppler-Relaismodul-Relais-High-Level-Treibermodul-fur-Arduino-3V-3-3V/333469820543?_trkparms=aid%3D1110006%26algo%3DHOMESPLICE.SIM%26ao%3D1%26asc%3D225646%26meid%3D85e272423b384a4cadb4795cc4f4f12d%26pid%3D100005%26rk%3D2%26rkt%3D7%26mehot%3Dpf%26sd%3D233465825810%26itm%3D333469820543%26pmt%3D1%26noa%3D0%26pg%3D2047675%26algv%3DSimplAMLv5PairwiseWebWithImageNsfwFilter&_trksid=p2047675.c100005.m1851) <span lang="en">(3.3V opto coupler modules)</span>
- <span lang="en">The now used modules in Trikarus were both connected via 5V USB from the Freifunk router because they consume too much power and exceed the permissible maximum limit of the Raspberry Pi. It is known that the modules used still do not work 100% reliably with 3.3V without magic tricks, since they have different logic voltages (logic level shifter may be necessary). See also [https://www.raspberrypi.org/forums/viewtopic.php?t=72862](https://www.raspberrypi.org/forums/viewtopic.php?t=72862). The solution lies in a couple of dirty Raspberry Pi software hacks which should be replaced by some better things.</span>

</details><details id="bkmrk-why-was-filament-mon"><summary>Why was filament monitoring not implemented with RepRapFirmware's on-board implementations?</summary>

<span lang="en">RRF only supports filament monitoring when printing from SD card. We have therefore considered that we monitor the filament at the exit (from the filament spool) and entrance (to the extruder). Because whether the filament is conveyed correctly can fail at various points from the path from the spool to the nozzle. The ground filament feed system monitors whether the weight changes (HX711 load cell), whether the filament winds off the spool (Force Sensor) and whether it moves through the extrusion tool as well (getting in contact with rotary encoder sensor). The evaluation takes place via Raspberry Pi GPIO (only digital inputs, no analog inputs) and the Bluetooth pairing with the Arduino Nano of the filament feeder on the ground. It is admittedly cumbersome, but meaningful! Events can be programmed via the Repetier API that transform the information into corresponding actions.</span>

</details><details id="bkmrk-why-didn%27t-you-use-u"><summary>Why didn't you use U shaped bearings?</summary>

<span lang="en">At the time of construction and implementation, I was not clear about the differences between V and U bearings in Hangprinter terms. A conversion to a U-bearing would certainly be a good idea.</span>

</details><details id="bkmrk-why-did-you-use-such"><summary>Why did you use such a thick cable from the head plate to the effector?</summary>

<span lang="en">The control cable is suitable for mechanical movements and contains several wires for the different sensors and actuators. Trikarus contains (experimental) sensors than a common Hangprinter, which is why more wires are necessary. A ribbon cable would have been unsuitable for the dimensioning and for shielding reasons (Trikarus cable is shielded and more suitable for I2C long wires). Unfortunately, the use of the control cable also results in a higher weight and a worse effect because the cable sags heavily. It must therefore be supported by some mechanical guiding solution.</span>

</details><details id="bkmrk-why-did-you-wire-the"><summary>Why did you wire the Smart Stepper this way?</summary>

- because the used Duet does not provide an I2C interface to connect like Torbjørn did with his "convenience wiring" - that's what i thought a long time. Then i found out that this is not true because Duet has I2C too but marked as TWI (i was not aware because nobody documented it well)!
- because you can flash the Smart Steppers easily with Arduino IDE directly from Raspberry Pi by USB. So USB even makes sense when doing a convenience wiring!
- because you can pull date into InfluxDB monitoring quickly
- because you can control by USB interface. This is slower and less versatile then on Duet RTOS but its also much easier to develop. And it allows to easily interact with a sort of other tools like simple bash or python scripts.

</details><details id="bkmrk-why-did-you-choose-t-1"><summary>Why did you choose those laser diodes?</summary>

The integrated laser in Trikarus help to adjust the mechanical parts of the printer. The ceiling module has three integrated red point lasers which are projecting dots to the effector and/or to the ground and/or to the print platform.

Good lasers for this job are

- focusable lens. collimated lasers may have a too widen point projection at the surface which makes it harder to do precise adjustments
- less &lt; 1mW of output power. I tested 5 mW lasers first which are totally unsecure and overpowered for the job
- working minimum distance of 3 meters

I decided to use [Point Laser 635 nm LFD635-1-3(12x30.5) by Laserfuchs](https://old.stadtfabrikanten.org/display/TH/Point+Laser+635+nm+LFD635-1-3%2812x30.5%29+by+Laserfuchs) because they are compact and have low power consumption. They are secure to use beause they have not enough energy to damage eyes (class 2 laser device) and have a good visibility due to 635 nm instead of 650 nm wave length.

</details><details id="bkmrk-please-explain-your-"><summary>Please explain your choice of main cable support</summary>

Regular cable spool, igus twisterband, phone cable, stainless steel carabiner cable spring line or bungee cord will mess around when they get short and will create high load when getting long or are just too unflexible. The only good solution we found (tip from friends) was the VR cable retraction system.

</details><details id="bkmrk-why-you-don%27t-share-"><summary>Why you don't share 3D data of Trikarus?</summary>

Trikarus is meant be a unique non-industrial (non-commercial) artwork project which tries to address and solve (or to dig deeper) different Hangprinter problems in general. We want to contribute with ideas, graphics, measurement series, math formulas, software code, documentation and inpiration. We don't want to be the supporters for manufactured hardware parts which are getting produced an unintended way and which result in risky assemblies. If we would build it again we would change so much. We used a lot of different pieces from the spare parts box. The construction is just not convenient. You might collect totally different parts. The adoption would require complete remake.

Trikarus was made of a bunch of different software pieces like AutoDesk Fusion 360, FreeCAD, OpenSCAD and files from GrabCAD and Thingiverse. To push the Hangprinter main idea it's required to keep sources clean and to give understanding and knowledge to it. Please support Torbjørn's main repo with convenient OpenSCAD descriptors.

</details>

# Hangprinter with Marlin (not used)

## Marlin Firmware for Hangprinter

<p class="callout info">Torbjørn also forked Marlin Firmware and pulled back a lot of stuff into official Marlin feature tree</p>

- [https://github.com/MarlinFirmware/Marlin/pull/9180](https://github.com/MarlinFirmware/Marlin/pull/9180)
- [github.com/tobbelobb/hangprinter/blob/73a0cf91bbc04a59faccd6f042d30d5d22d170a9/firmware/Marlin/Marlin/Marlin\_main.cpp#L819](http://github.com/tobbelobb/hangprinter/blob/73a0cf91bbc04a59faccd6f042d30d5d22d170a9/firmware/Marlin/Marlin/Marlin_main.cpp#L819)

New gcodes:

- G6
- [G95 (torque mode) - G95 Set servo torque mode status. Accepts 0 or 1](http://github.com/tobbelobb/hangprinter/blob/73a0cf91bbc04a59faccd6f042d30d5d22d170a9/firmware/Marlin/Marlin/Marlin_main.cpp#L819)
- [ G96 (zero encoders) - G96 Tell sensor servo to mark its reference point](http://github.com/tobbelobb/hangprinter/blob/73a0cf91bbc04a59faccd6f042d30d5d22d170a9/firmware/Marlin/Marlin/Marlin_main.cpp#L819)
- [G97 (measure) - G97 Get sensor servo length travelled since last G96](http://github.com/tobbelobb/hangprinter/blob/73a0cf91bbc04a59faccd6f042d30d5d22d170a9/firmware/Marlin/Marlin/Marlin_main.cpp#L819)

Adapted gcodes that still use XYZE parameters:

- G0/G1 (inverse kinematics)
- G92

Adapted gcodes that use ABCDE parameters:

- M92
- M201
- M204
- M205
- M906

Adapted gcodes with other parameters

- M665 (set Hangprinter anchor positions / Auto Calibration Simulation Input Parameters)
- M114 S1 (read encoder mm movement since reference point was marked)

New features that also work on non-Hangprinter machines:

- `UNREGISTERED_MOVE_SUPPORT`
- `MECHADUINO_I2C_COMMANDS`

Features that are Hangprinter specific:

- `LINE_BUILDUP_COMPENSATION_FEATURE`

Other changes:

- Uses `NUM_AXIS[_N]` and `MOV_AXIS` instead of `XYZE[_N]` and `XYZ` for indexing and initializing arrays that refer to kinematic axes (movement axes on physical machine) rather than the cartesian axes of incoming gcode.
- Uses `E_CART` instead of `E_AXIS` for indexing arrays that refer to cartesian axes of incoming gcode.

```
G95 A10                 ; Sets the A-motor in torque mode applying 10 units of torque
G95 B15 C15 D20         ; Sets B, C, and D-motors in torque mode
G95 A-35 B-35 C-35 D-35 ; torque mode lower force
G95 A-50 B-50 C-50 D-50 ; torque mode lower force
G95 A0 B0 C0 D0         ; Sets ABCD motors back into position mode


G96 A B C D             ; tells Hangprinter to zero its encoder data on the A, B, C, and D axes.

G97 A B C D             ; asks Hangprinter how many millimeters it has travelled since the previous G96 command along the A, B, C, and D axes. 
G97 A B C D             ; Doing again gives precise numbers about line lenght changes, namely that line A became 93 mm longer, B didn't change, C became 30.5 mm longer, and D became 345 mm shorter. These measurements include line buildup compensation.

G98 A B C D             ; saves the same values into the internal line_lengths variable in firmware. It assumes G96 was issued in origo at a time when lines were tight
```

## Auto Calibration Simulation for Hangprinter (Python script)

The Hangprinter Project has a goal of auto-calibration. That requires locating anchor points by sampling relative line lengths with tight lines at unknown positions. This code tries to optimize the anchor positions to fit the samples of relative line lengths. Note that this code assumes that the B-anchor has a positive x-coordinate. If your machine's B-anchor is negative then your output anchors Bx and Cx will have the wrong signs.

The script will only work if you have closed loop steppers like Smart Stepper or Mechaduino installed. Only with I2C connected hardware a positional feedback is possible to get with M114 S1 command.

## Installation on Windows 10 (64 Bit) with Python 3.7.5

Download [https://gitlab.com/tobben/auto-calibration-simulation-for-hangprinter](https://gitlab.com/tobben/auto-calibration-simulation-for-hangprinter)

```bash
pip install mystic scipy numpy
cd C:\auto-calibration-simulation-for-hangprinter>
```

## Installation on raspbian (Python 2.7)

<p class="callout warning">this does not work with older Python 3.5 which is on Raspbian Stretch (my case), so use old Python 2.7.</p>

```bash
sudo apt-get install libatlas-base-dev python-scipy
pip2.7 install --user mystic # might take half an our to install ...

#get scipy by ready to use wheel file from https://www.piwheels.org/simple/scipy/ because it does not easily compile on a Raspberry Pi (scipy does not compile on raspi https://raspberrypi.stackexchange.com/questions/8308/how-to-install-latest-scipy-version-on-raspberry-pi)
wget https://www.piwheels.org/simple/scipy/scipy-1.3.3-cp35-cp35m-linux_armv7l.whl#sha256=da7755a09413176d91b50de8ce153721927b3e284928d6d86e9b2b1911bb1a69
pip3 install scipy-1.3.3-cp35-cp35m-linux_armv7l.whl

cd /opt
git clone https://gitlab.com/tobben/auto-calibration-simulation-for-hangprinter.git
cd auto-calibration-simulation-for-hangprinter/
```

## Test example (run the script)

```bash
python ./simulation.py

#Output
samples:          11
input xyz coords: 0
total cost:       0.271115
cost per sample:  0.024647

Warning: Data set might be too small.
         The below values are unreliable unless input data is extremely accurate.

#define ANCHOR_A_Y -1160
#define ANCHOR_A_Z  -141
#define ANCHOR_B_X  1004
#define ANCHOR_B_Y   588
#define ANCHOR_B_Z  -119
#define ANCHOR_C_X  -971
#define ANCHOR_C_Y   518
#define ANCHOR_C_Z  -103
#define ANCHOR_D_Z  2892

M665 W-1160.35 E-141.49 R1003.98 T588.05 Y-118.60 U-971.42 I517.82 O-102.67 P2891.90
```

## How to Collect Data Points?

Data collection depends on Smart Stepper and well calibrated line buildup compensation.

- Go into torque mode on all motors and adjust torque magnitude as you prefer.
- Drag mover to the origin and zero counters: `G92 X0 Y0 Z0`
- Mark reference point for all encoders: `G96 A B C D` (Stock Marlin accepts `G96` as a short hand for `G96 A B C D`)
- Repeat 13 - ca 20 times: 
    - Drag mover to position of data point collection.
    - Collect data point: `M114 S1` ([M114: Get Current Position](https://duet3d.dozuki.com/Wiki/Gcode#Section_M114_Get_Current_Position))

## How to Insert Data Points?

Before you run the simulation, open `simulation.py` and modify the main function, near the bottom of the file. Replace `??` with data points collected with your Hangprinter.

```bash
    ...
    # Replace this with your collected data
    samp = np.array([
[??, ??, ??, ??],
[??, ??, ??, ??]
        ])
    ...
```

<table aria-label="code macro" class="wysiwyg-macro" data-macro-body-type="PLAIN_TEXT" data-macro-id="84c3d857-500c-4004-b742-7db846ab7895" data-macro-name="code" data-macro-parameters="language=bash|linenumbers=true|theme=DJango" data-macro-schema-version="1" id="bkmrk-%C2%A0" style="background-image: url('https://old.stadtfabrikanten.org/plugins/servlet/confluence/placeholder/macro-heading?definition=e2NvZGU6bGFuZ3VhZ2U9YmFzaHx0aGVtZT1ESmFuZ298bGluZW51bWJlcnM9dHJ1ZX0&locale=de_DE&version=2'); background-repeat: no-repeat;"><tbody><tr><td class="wysiwyg-macro-body"> </td></tr></tbody></table>

When values are inserted, run again with

```bash
python ./simulation.py
```

## Output Explanation

The first block give some stats trying to describe the quality of the parameters that were found

```ini
samples:         11
total cost:      0.254896
cost per sample: 0.023172
```

It's recommended to use 13 samples or more. Using fewer samples makes it probable that the solver finds bogus anchor positions that still minimizes cost.

Ideal data points collected on an ideal machine would give `total cost: 0.000000` for any sample size above 10. In real life this does not happen. The `cost per sample` value let you compare results from your different data sets of unequal size.

The second block contains the anchor positions that the script found. They are formatted so they can be pasted directly into Marlin's `Configuration.h`.

```
#define ANCHOR_A_Y -1164
#define ANCHOR_A_Z  -144
#define ANCHOR_B_X   999
#define ANCHOR_B_Y   585
#define ANCHOR_B_Z  -115
#define ANCHOR_C_X  -977
#define ANCHOR_C_Y   519
#define ANCHOR_C_Z  -106
#define ANCHOR_D_Z  2875
```

The gcode line that is the third block can be used to set anchor calibration values on a running Hangprinter without re-uploading firmware.

```
M665 W-1164.31 E-143.53 R998.78 T585.33 Y-114.98 U-977.11 I518.88 O-105.60 P2874.87
```

If you have `EEPROM_SETTINGS` enabled you can save these values with `M500`. If you don't save them they will be forgotten when you power down your machine.

## Debug

The script accepts a `-d` or `--debug` flag. It calculates the difference between the output anchor positions and your manually measured ones:

```ini
Err_A_Y:   -52.307
Err_A_Z:   -28.532
Err_B_X:    28.781
Err_B_Y:    35.332
Err_B_Z:     0.022
Err_C_X:    -7.113
Err_C_Y:   -31.124
Err_C_Z:     9.399
Err_D_Z:     9.869
Method: L-BFGS-B
RUN TIME : 1.43998289108
```

For the `Err_ABCD_XYZ`-values to be meaningful you must have inserted your manually measured values into the `anchors` array in the script:

```
   # Rough approximations from manual measuring.
    # Does not affect optimization result. Only used for manual sanity check.
    anchors = np.array([[  0.0,   ay?,   az?],
                        [  bx?,   by?,   bz?],
                        [  cx?,   cy?,   cz?],
                        [  0.0,   0.0,   dz?]])
```

The debug check is only relevant if you suspect that the script outputs bogus values. Error larger than ca 100 mm is generally a sign that something's up.

## Alternative Optimization Algorithms

The script accepts a `-m` or `--method` argument. Try for example

```bash
python ./simulation.py --method SLSQP -d
```

... for the [ `SLSQP` ](https://en.wikipedia.org/wiki/Sequential_quadratic_programming) method that is faster, but requires more data points than the default [ `L-BFGS-B` ](https://en.wikipedia.org/wiki/Limited-memory_BFGS) method.

If you want to use the `PowellDirectionalSolver`, you also need Mystic:

```
git clone https://github.com/uqfoundation/mystic.git
cd mystic
python setup.py build
sudo python setup.py install
```

For more on usage, try

```bash
python ./simulation.py --help

usage: simulation.py [-h] [-d] [-c] [-m METHOD]
                     [-x XYZ_OF_SAMP [XYZ_OF_SAMP ...]]
                     [-s SAMPLE_DATA [SAMPLE_DATA ...]]

Figure out where Hangprinter anchors are by looking at line difference
samples.

optional arguments:
  -h, --help            show this help message and exit
  -d, --debug           Print debug information
  -c, --cx_is_positive  Use this flag if your C anchor should have a positive
                        X-coordinate
  -m METHOD, --method METHOD
                        Available methods are L-BFGS-B (default),
                        PowellDirectionalSolver (requires a library called
                        Mystic), and SLSQP. As a shorthand, you can use 0, 1,
                        or 2, for referring to the three methods respectively.
  -x XYZ_OF_SAMP [XYZ_OF_SAMP ...], --xyz_of_samp XYZ_OF_SAMP [XYZ_OF_SAMP ...]
                        Specify the XYZ-positions where samples were made as
                        numbers separated by spaces.
  -s SAMPLE_DATA [SAMPLE_DATA ...], --sample_data SAMPLE_DATA [SAMPLE_DATA ...]
                        Specify the sample data you have found as numbers
                        separated by spaces
```

# Other cable driven printer projects to look at

<div class="page view" id="bkmrk-generic-cable-bots%2C-"><article>## Generic cable bots, cable-driven parallel 3D printer CDPP

<div class="wiki-content">- [https://www.researchgate.net](https://www.researchgate.net/publication/328890933_Design_stiffness_analysis_and_experimental_study_of_a_cable-driven_parallel_3D_printer?enrichId=rgreq-a84f092f6d626b4a32c33ade1cbd8f50-XXX&enrichSource=Y292ZXJQYWdlOzMyODg5MDkzMztBUzo2OTIyNDU4MTY2NzIyNTdAMTU0MjA1NTY3MjUxNA%3D%3D&el=1_x_3&_esc=publicationCoverPdf)

</div>## SkyDelta

<div class="wiki-content">- [https://designmakeshare.wordpress.com/2013/09/16/introducing-skydelta](https://designmakeshare.wordpress.com/2013/09/16/introducing-skydelta/)
- [https://hackaday.io/project/26938-arcus-3d-c1-cable-3d-printer](https://hackaday.io/project/26938-arcus-3d-c1-cable-3d-printer)
- [https://hackaday.io/project/166527-cable-robot](https://hackaday.io/project/166527-cable-robot)
- [https://www.youtube.com/watch?v=MSONYPXe3bE](https://www.youtube.com/watch?v=MSONYPXe3bE)
- [https://www.youtube.com/watch?v=0mvw4mV-iIM](https://www.youtube.com/watch?v=0mvw4mV-iIM)

</div>## Arcus

<div class="wiki-content">- [https://hackaday.io/project/26938-arcus-3d-c1-cable-3d-printer](https://hackaday.io/project/26938-arcus-3d-c1-cable-3d-printer)

</div>## Delta-T: Tensegrity 3D Printer

<div class="wiki-content">- [https://www.crealitycloud.com/model-detail/62368ff976c115cc0aa0b48f](https://www.crealitycloud.com/model-detail/62368ff976c115cc0aa0b48f)

</div>## RigTig's Big 3D Printer

<div class="wiki-content">- [https://hackaday.io/project/13420-rigtigs-big-3d-printer](https://hackaday.io/project/13420-rigtigs-big-3d-printer)

</div>## CableEndy

<div class="wiki-content" id="bkmrk-https%3A%2F%2Fwww.youtube.">- [https://www.youtube.com/watch?v=sytyQvUXN8Q&amp;feature=youtu.be](https://www.youtube.com/watch?v=sytyQvUXN8Q&feature=youtu.be)

</div></article></div>

# Risk analysis for Hangprinter with FDM extruder

<table class="relative-table wrapped confluenceTable" id="bkmrk-risk-possible-damage" style="width: 92.2325%;"><colgroup><col style="width: 23.4069%;"></col><col style="width: 13.6259%;"></col><col style="width: 11.6697%;"></col><col style="width: 13.0863%;"></col><col style="width: 31.9063%;"></col></colgroup><thead><tr><td class="confluenceTh">**risk**</td><td class="confluenceTh">**possible damage (1-10)**  
**1 = minimum, 10 = maximum**</td><td class="confluenceTh">**probability of occurrence (category)**  
**1 = low**  
**2 = medium**  
**3 = high**

</td><td class="confluenceTh">**rating= scope of damage x probability of occurrence**</td><td class="confluenceTh">**counteraction(s) and hints**</td></tr></thead><tbody><tr><td class="confluenceTd">**line construction**

- lines break / loosen
- guests / guides get tangled → risk of injury (stumbling, pinching off; possibly burning at the hot end
- construction is badly damaged

</td><td class="confluenceTd" style="text-align: center;">10</td><td class="confluenceTd" style="text-align: center;">3</td><td class="confluenceTd" style="text-align: center;">30</td><td class="confluenceTd">- <span lang="en">suitable shut-off of the device operation / entering the construction only by trained personnel </span>
- <span lang="en">check deflection pulleys, check parts for sharp edges or generally mechanical contact points for abrasion </span>
- <span lang="en">check lines knots → do not use simple knots; use special knots</span>
- <span lang="en">use of tear-resistant lines (special fishing line with sufficient traction and diameter) </span>
- <span lang="en">occasional inspection / maintenance (protocol)</span>

</td></tr><tr><td class="confluenceTd">**parts of the machine fall off**

- e.g. screws or plastic parts
- visitors could get hurt
- machine could be damaged (malfunction)

</td><td class="confluenceTd" style="text-align: center;">8</td><td class="confluenceTd" style="text-align: center;">2</td><td class="confluenceTd" style="text-align: center;">16</td><td class="confluenceTd">- secure screws with screw locks or use stop nuts
- check the connection stability in an acceptance report
- occasional inspection / maintenance (protocol)
- produce parts from elastic material (tendency to brittle fracture / prevent cracks) → use a high degree of infill

</td></tr><tr><td class="confluenceTd">**hotend or extruder smokes or burns**

- device destruction
- smoke detectors and sprinkler systems damage the exhibition
- filament / substrate is set on fire

</td><td class="confluenceTd" style="text-align: center;">10</td><td class="confluenceTd" style="text-align: center;">1</td><td class="confluenceTd" style="text-align: center;">10</td><td class="confluenceTd">- redundant thermal sensor
- recent firmware with temperature jump measurement, watchdog and automatic emergency shutdown
- safe installation of the sensors (gluing / screwing)
- regular inspection / maintenance (protocol)
- **consequences when entering are destructive**

</td></tr><tr><td class="confluenceTd">**controller parts smokes or burns**

- device destruction
- smoke detectors and sprinkler systems damage the exhibition

</td><td class="confluenceTd" style="text-align: center;">10</td><td class="confluenceTd" style="text-align: center;">1</td><td class="confluenceTd" style="text-align: center;">10</td><td class="confluenceTd">- electrical inspection / acceptance with detailed protocol
- buy high quality electronics
- use high quality wiring / cabling and shielding (generous cross-sections, good manufacturers)
- **consequences when entering are destructive**

</td></tr><tr><td class="confluenceTd">**Software**

- print does not start
- print result does not match the input

</td><td class="confluenceTd" style="text-align: center;">3</td><td class="confluenceTd" style="text-align: center;">3</td><td class="confluenceTd" style="text-align: center;">9</td><td class="confluenceTd">- extensive testing and logging / documentation
- establish remote maintenance routines

</td></tr><tr><td class="confluenceTd">**collisions between printed part and lines**

- design-related variability of the possible pressure dimensions depending on height Z
- The machine could tangle and damage itself

</td><td class="confluenceTd" style="text-align: center;">8</td><td class="confluenceTd" style="text-align: center;">1</td><td class="confluenceTd" style="text-align: center;">8</td><td class="confluenceTd">- simulation of the model to be printed with the appropriate software

</td></tr><tr><td class="confluenceTd">**errors in print part - vibrations during printing**

- by heavy trucks driving next to the building
- by wobbling on the frame by guests / visitors

</td><td class="confluenceTd" style="text-align: center;">3</td><td class="confluenceTd" style="text-align: center;">2</td><td class="confluenceTd" style="text-align: center;">6</td><td class="confluenceTd">- store the machine on a tight (spring) frame
- situate warning panels with information like "Do not touch.", Print may loose traction." or similar
- select the line diameter so that the installation becomes stable against stretching

</td></tr><tr><td class="confluenceTd">**material loss - tool oozes**

- material spills uncontrollably on the printing platform or at other points in the effective radius of the machine
- due to insufficient screwing between the hot end heating block and the nozzle (thermal transition zone)

</td><td class="confluenceTd" style="text-align: center;">3</td><td class="confluenceTd" style="text-align: center;">2</td><td class="confluenceTd" style="text-align: center;">6</td><td class="confluenceTd">- check for tightness of the strand components and note them in the acceptance report
- regular inspection / maintenance (protocol)
- no further countermeasures possible (cannot be checked - only optically)

</td></tr><tr><td class="confluenceTd">**material does not stick → " spaghetti salad"**

- at the start of printing
- during printing
- leads to wasted material

</td><td class="confluenceTd" style="text-align: center;">3</td><td class="confluenceTd" style="text-align: center;">2</td><td class="confluenceTd" style="text-align: center;">6</td><td class="confluenceTd">- regular cleaning of the printing surface
- check the distance between the platform and nozzle
- check the overhang angle in the print model and calculated support structures
- checking the printing parameters (layer height, extruded volume per unit of time, etc.)
- establish stability in the printing frame (no accidental offsets by warping the machine frame → thus offset in the printing part)

</td></tr><tr><td class="confluenceTd">**material extrusion fails**- extruder problem (clogging) / mechanical defect / heating failure
- material feeder blocked
- material torn

</td><td class="confluenceTd" style="text-align: center;">2</td><td class="confluenceTd" style="text-align: center;">2</td><td class="confluenceTd" style="text-align: center;">4</td><td class="confluenceTd">- kink protection for filament (filament guide → PTFE)
- check for blockages in the hotend

</td></tr></tbody></table>

# Selection of printable objects

The following models should be possible to be generated well for Hangprinter use, that means:

- less or no support material required (because it is more expensive and time intense)
- regular print or spiral vase mode

For some models to match those conditions we need to perform some unconstrained scaling (different scales in X, Y and Z) and sometimes we need to cutoff upper and lower segments from the part. This can be done with PrusaSlicer easily. Note that only some of them were tested out yet.

We made this gallery to give some impressions what could be done with a Hangprinter for example.

<table id="bkmrk-turm-von-babylon---g" style="width: 99.9734%; height: 4697.45px;"><colgroup><col style="width: 25.0003%;"></col><col style="width: 25.0003%;"></col><col style="width: 25.0003%;"></col><col style="width: 25.0003%;"></col></colgroup><tbody><tr style="height: 53.1667px;"><th style="height: 53.1667px;">[Turm von Babylon](https://github.com/tobbelobb/babylon-sketches) - GPL v3.0

</th><th colspan="1" style="height: 53.1667px;">[Armband](https://www.thingiverse.com/thing:53666) - CC BY-SA 3.0

</th><th style="height: 53.1667px;">[Draudi](https://www.thingiverse.com/thing:948565) - CC BY-SA 3.0

</th><th style="height: 53.1667px;">[Voronoi Ball](https://www.thingiverse.com/thing:2940151/files) - CC BY-NC-ND 4.0

</th></tr><tr style="height: 324.083px;"><td style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/9rBslgQKrKgdKMti-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/9rBslgQKrKgdKMti-grafik.png)

</td><td colspan="1" style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/CeYzZxHaDjbUaii0-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/CeYzZxHaDjbUaii0-grafik.png)

</td><td style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/coWp7y8DSS9q4ds7-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/coWp7y8DSS9q4ds7-grafik.png)

</td><td style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/WZDgbIiRKO5DxPpl-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/WZDgbIiRKO5DxPpl-grafik.png)

</td></tr><tr style="height: 53.1667px;"><th style="height: 53.1667px;">[Flower Vase](https://www.thingiverse.com/thing:2738612) - CC BY-NC 4.0

</th><th colspan="1" style="height: 53.1667px;">[Twisted Vase](https://www.thingiverse.com/thing:1068657) - CC BY-NC-ND 4.0P

</th><th style="height: 53.1667px;">[Heatwave Vase](https://www.thingiverse.com/thing:126567) - CC BY-NC-ND 4.0

</th><th style="height: 53.1667px;">[Helix Sculpture](https://www.thingiverse.com/thing:113549) - CC BY-NC 4.0

</th></tr><tr style="height: 324.083px;"><td style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/EsOOVl7IGnri66W8-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/EsOOVl7IGnri66W8-grafik.png)

</td><td colspan="1" style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/lM1BKpmxBTA6kbVT-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/lM1BKpmxBTA6kbVT-grafik.png)

</td><td style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/LPMK38tJw0wuZPue-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/LPMK38tJw0wuZPue-grafik.png)

</td><td style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/yYOxYBR9j1k9xHkY-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/yYOxYBR9j1k9xHkY-grafik.png)

</td></tr><tr style="height: 53.1667px;"><th colspan="1" style="height: 53.1667px;">[Kristall](https://www.thingiverse.com/thing:3037485) - CC BY 4.0

</th><th colspan="1" style="height: 53.1667px;">[Weihnachtsbaum](https://www.thingiverse.com/thing:1913982) - CC BY-NC-ND 4.0

</th><th colspan="1" style="height: 53.1667px;">[Rose](https://www.thingiverse.com/thing:283738/files) - CC BY 4.0</th><th colspan="1" style="height: 53.1667px;">[Moai Statue](https://www.thingiverse.com/thing:662402) - CC BY-SA 3.0

</th></tr><tr style="height: 324.083px;"><td colspan="1" style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/hxkqBXR3qyhHzNDW-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/hxkqBXR3qyhHzNDW-grafik.png)

</td><td colspan="1" style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/AwcXrHzTSFG9EF7O-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/AwcXrHzTSFG9EF7O-grafik.png)

</td><td colspan="1" style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/OBj2KWRsbrAx8lZy-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/OBj2KWRsbrAx8lZy-grafik.png)

</td><td colspan="1" style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/FGl9VLWfyvQ8nlPM-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/FGl9VLWfyvQ8nlPM-grafik.png)

</td></tr><tr style="height: 53.1667px;"><th colspan="1" style="height: 53.1667px;">[David](https://www.thingiverse.com/thing:281053/files) - CC BY-NC 4.0</th><th colspan="1" style="height: 53.1667px;">[Buddha Head](https://www.thingiverse.com/thing:53925) - CC BY-NC 4.0</th><th colspan="1" style="height: 53.1667px;">[Thailand Buddha](https://www.thingiverse.com/thing:2156108/files) - CC BY 4.0</th><th colspan="1" style="height: 53.1667px;">[Yuri Gagarin](https://www.thingiverse.com/thing:4122946/files) - CC BY 4.0</th></tr><tr style="height: 324.083px;"><td colspan="1" style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/iXN1dUprinhNXvAo-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/iXN1dUprinhNXvAo-grafik.png)

</td><td colspan="1" style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/KRY6YWDrmqK02k3n-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/KRY6YWDrmqK02k3n-grafik.png)

</td><td colspan="1" style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/028sVARgQNeTmHFc-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/028sVARgQNeTmHFc-grafik.png)

</td><td colspan="1" style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/wF7ZVzyCDuBu5pwL-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/wF7ZVzyCDuBu5pwL-grafik.png)

</td></tr><tr style="height: 53.1667px;"><th colspan="1" style="height: 53.1667px;">[Voronoi Bunny -](https://www.thingiverse.com/thing:303842/files) CC BY-NC-SA 4.0</th><th colspan="1" style="height: 53.1667px;">[Voronoi Tower](https://www.thingiverse.com/thing:24123/files) - CC BY 4.0</th><th colspan="1" style="height: 53.1667px;">[Crystal Vase](https://www.thingiverse.com/thing:4016620/files) - CC BY-NC 4.0</th><th colspan="1" style="height: 53.1667px;">[Crystal 11](https://www.thingiverse.com/thing:3762707/files) - CC BY 4.0</th></tr><tr style="height: 324.083px;"><td colspan="1" style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/u0Qsje2DoJwI1Fvg-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/u0Qsje2DoJwI1Fvg-grafik.png)

</td><td colspan="1" style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/MKUrNBjX9KIN1vZB-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/MKUrNBjX9KIN1vZB-grafik.png)

</td><td colspan="1" style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/ftk0ZM82StVqTKXN-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/ftk0ZM82StVqTKXN-grafik.png)

</td><td colspan="1" style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/Z7PlnnwmsJX3gh2u-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/Z7PlnnwmsJX3gh2u-grafik.png)

</td></tr><tr style="height: 53.1667px;"><th colspan="1" style="height: 53.1667px;">[Crystal 2](https://www.thingiverse.com/thing:3762707) - CC BY 4.0</th><th colspan="1" style="height: 53.1667px;">[Crystal 3](https://www.thingiverse.com/thing:2726806) - CC BY-NC-SA 4.0</th><th colspan="1" style="height: 53.1667px;">[Gear](https://www.thingiverse.com/thing:3409938) - CC BY 4.0</th><th colspan="1" style="height: 53.1667px;">[Crystal 5](https://www.thingiverse.com/thing:3031049) - CC BY 4.0</th></tr><tr style="height: 324.083px;"><td colspan="1" style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/b1IIcRELwCn5efXQ-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/b1IIcRELwCn5efXQ-grafik.png)

</td><td colspan="1" style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/schZ2YpzRRxCvSdg-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/schZ2YpzRRxCvSdg-grafik.png)

</td><td colspan="1" style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/gZsOFWoCJJZJDM01-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/gZsOFWoCJJZJDM01-grafik.png)

</td><td colspan="1" style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/iuiDoR8KA5MBTtG4-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/iuiDoR8KA5MBTtG4-grafik.png)

</td></tr><tr style="height: 53.1667px;"><th colspan="1" style="height: 53.1667px;">[Crystal 6 ](https://www.thingiverse.com/thing:2973696) - CC BY 4.0

</th><th colspan="1" style="height: 53.1667px;">[Crystal 7](https://www.thingiverse.com/thing:2112004/files) - CC BY 4.0

</th><th colspan="1" style="height: 53.1667px;">[Crystal 8](https://www.thingiverse.com/thing:314864/files) - CC BY-SA 3.0</th><th colspan="1" style="height: 53.1667px;">[Crystal 9](https://www.thingiverse.com/thing:1330791/files) - CC BY-NC 4.0</th></tr><tr style="height: 324.083px;"><td colspan="1" style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/QonXxJvN80dKv9Oc-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/QonXxJvN80dKv9Oc-grafik.png)

</td><td colspan="1" style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/MjGKuJ7v6FyJXGaI-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/MjGKuJ7v6FyJXGaI-grafik.png)

</td><td colspan="1" style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/CH2IZfUyziGgJTEq-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/CH2IZfUyziGgJTEq-grafik.png)

</td><td colspan="1" style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/SK8eop9aN70hiFfp-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/SK8eop9aN70hiFfp-grafik.png)

</td></tr><tr style="height: 53.1667px;"><th colspan="1" style="height: 53.1667px;">[Crystal 10](https://www.thingiverse.com/thing:1450096) - CC BY-SA 3.0</th><th colspan="1" style="height: 53.1667px;">[Spiral Case](https://www.thingiverse.com/thing:2959059) - CC BY-NC-SA 4.0</th><th colspan="1" style="height: 53.1667px;">[Column 1](https://www.thingiverse.com/thing:1622642) - CC BY-NC 4.0</th><th colspan="1" style="height: 53.1667px;">[Column 2](https://www.thingiverse.com/thing:56740) - CC BY-SA 3.0</th></tr><tr style="height: 324.083px;"><td colspan="1" style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/y9gqK5ExD4U95Ne3-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/y9gqK5ExD4U95Ne3-grafik.png)

</td><td colspan="1" style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/BL0samQnMxY1cNq2-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/BL0samQnMxY1cNq2-grafik.png)

</td><td colspan="1" style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/YLHLH0Y85xiaMwOS-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/YLHLH0Y85xiaMwOS-grafik.png)

</td><td colspan="1" style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/5gwAfNuYxbUDaH64-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/5gwAfNuYxbUDaH64-grafik.png)

</td></tr><tr style="height: 53.1667px;"><th colspan="1" style="height: 53.1667px;">[Soul Plant](https://www.thingiverse.com/thing:3675929/files) - CC BY-SA 3.0</th><th colspan="1" style="height: 53.1667px;">[Lofted Vase](https://www.thingiverse.com/thing:2165848) - CC BY 4.0</th><th colspan="1" style="height: 53.1667px;">[Voronoi Lamp](https://www.thingiverse.com/thing:674317) - CC BY-SA 3.0</th><th colspan="1" style="height: 53.1667px;">[Vertical Windmill](https://www.thingiverse.com/thing:2745063) - CC BY-NC 4.0</th></tr><tr style="height: 324.083px;"><td colspan="1" style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/IQ1Ptg8xBkidkMm6-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/IQ1Ptg8xBkidkMm6-grafik.png)

</td><td colspan="1" style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/8GEYDH4Fiwdaljwq-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/8GEYDH4Fiwdaljwq-grafik.png)

</td><td colspan="1" style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/b6UbJmw4FizDSKlb-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/b6UbJmw4FizDSKlb-grafik.png)

</td><td colspan="1" style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/Zk39QKOhlviz9Gix-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/Zk39QKOhlviz9Gix-grafik.png)

</td></tr><tr style="height: 53.1667px;"><th colspan="1" style="height: 53.1667px;">[Tree 1](https://www.thingiverse.com/thing:832278) - CC BY-NC-SA 4.0</th><th colspan="1" style="height: 53.1667px;">[Tree 2](https://www.thingiverse.com/thing:1565099) - CC BY 4.0</th><th colspan="1" style="height: 53.1667px;">[Tree 3](https://www.thingiverse.com/thing:4105303) - CC BY-NC-SA 4.0</th><th colspan="1" style="height: 53.1667px;">[Plant 1](https://www.thingiverse.com/thing:3303620) - CC BY-SA 3.0

</th></tr><tr style="height: 324.083px;"><td colspan="1" style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/RtiLVB9H3Se5Javy-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/RtiLVB9H3Se5Javy-grafik.png)

</td><td colspan="1" style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/OGSbXzbeSQCPOEDL-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/OGSbXzbeSQCPOEDL-grafik.png)

</td><td colspan="1" style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/SmfocUNz8Ulju0es-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/SmfocUNz8Ulju0es-grafik.png)

</td><td colspan="1" style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/WywSSsBFHdTJwCOd-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/WywSSsBFHdTJwCOd-grafik.png)

</td></tr><tr style="height: 53.1667px;"><th colspan="1" style="height: 53.1667px;">[Column 3](https://www.thingiverse.com/thing:1622356) - CC BY-NC 4.0</th><th colspan="1" style="height: 53.1667px;">[Column 4](https://www.thingiverse.com/thing:1594230/files) - CC BY-NC 4.0</th><th colspan="1" style="height: 53.1667px;">[Twisted Vase 2](https://www.thingiverse.com/thing:304913) - CC BY-SA 3.0

</th><th colspan="1" style="height: 53.1667px;">[Twisted Hectagon](https://www.thingiverse.com/thing:2300471) - CC BY 4.0</th></tr><tr style="height: 324.083px;"><td colspan="1" style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/0DBAmzFsMO23nrt1-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/0DBAmzFsMO23nrt1-grafik.png)

</td><td colspan="1" style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/HaLkBXYvJNbxLuLM-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/HaLkBXYvJNbxLuLM-grafik.png)

</td><td colspan="1" style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/aSaqeBStLJnDLd13-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/aSaqeBStLJnDLd13-grafik.png)

</td><td colspan="1" style="height: 324.083px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/MaFiUKsAcFJpwQia-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/MaFiUKsAcFJpwQia-grafik.png)

</td></tr><tr style="height: 53.1667px;"><th colspan="1" style="height: 53.1667px;">[Twisted Frame](https://www.thingiverse.com/thing:178444) - CC BY-SA 3.0</th><th colspan="1" style="height: 53.1667px;">[Twisted Spiral Vase](https://www.thingiverse.com/thing:2829570) - CC BY 4.0</th><th colspan="1" style="height: 53.1667px;">[Twisted Ring](https://www.thingiverse.com/thing:3728268) - CC BY-NC 4.0</th><th colspan="1" style="height: 53.1667px;">[Twisted Extrude](https://www.thingiverse.com/thing:655098) - CC BY-SA 3.0</th></tr><tr style="height: 38.1167px;"><td colspan="1" style="height: 38.1167px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/LhwCbDJkbWSSxxWG-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/LhwCbDJkbWSSxxWG-grafik.png)

</td><td colspan="1" style="height: 38.1167px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/RBi8rq5cepAWAMY9-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/RBi8rq5cepAWAMY9-grafik.png)

</td><td colspan="1" style="height: 38.1167px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/CZhZCRDfBe9RV8cU-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/CZhZCRDfBe9RV8cU-grafik.png)

</td><td colspan="1" style="height: 38.1167px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/aACl0kUfQ5xVYFGm-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/aACl0kUfQ5xVYFGm-grafik.png)

</td></tr><tr style="height: 53.1667px;"><th colspan="1" style="height: 53.1667px;">[Twisted Vase 4](https://www.thingiverse.com/thing:31722) - CC BY-SA 3.0</th><th colspan="1" style="height: 53.1667px;">[Twisted Vase 3](https://www.thingiverse.com/thing:2330100) - CC BY-SA 3.0</th><th colspan="1" style="height: 53.1667px;">[Klein Bottle](https://www.thingiverse.com/thing:25669/files) - CC BY-SA 3.0</th><th colspan="1" style="height: 53.1667px;">[Quad Threaded Rod](https://www.thingiverse.com/thing:608282) - CC BY-SA 3.0</th></tr><tr style="height: 38.1167px;"><td colspan="1" style="height: 38.1167px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/qLosS6he5hmpoblK-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/qLosS6he5hmpoblK-grafik.png)

</td><td colspan="1" style="height: 38.1167px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/zV9aKRPgI0Gah5HA-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/zV9aKRPgI0Gah5HA-grafik.png)

</td><td colspan="1" style="height: 38.1167px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/mD8ZbFUSZzrHT9IO-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/mD8ZbFUSZzrHT9IO-grafik.png)

</td><td colspan="1" style="height: 38.1167px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/m8RtB3vaTsfzwl1S-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/m8RtB3vaTsfzwl1S-grafik.png)

</td></tr><tr style="height: 53.1667px;"><th colspan="1" style="height: 53.1667px;">[Maker Bottle](https://www.thingiverse.com/thing:508037/files) - CC BY-NC 4.0</th><th colspan="1" style="height: 53.1667px;">[Senkschraube](https://www.thingiverse.com/thing:193647/files) - CC BY-SA 3.0</th><th colspan="1" style="height: 53.1667px;">[Icicle](https://www.thingiverse.com/thing:4508366/files) - CC BY 4.0</th><th colspan="1" style="height: 53.1667px;">[Icicle](https://www.thingiverse.com/thing:582797/files) - CC BY-SA 3.0</th></tr><tr style="height: 38.1167px;"><td colspan="1" style="height: 38.1167px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/9VKogs1xOmCmTG61-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/9VKogs1xOmCmTG61-grafik.png)

</td><td colspan="1" style="height: 38.1167px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/1lPqgAnbn18M1ai8-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/1lPqgAnbn18M1ai8-grafik.png)

</td><td colspan="1" style="height: 38.1167px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/KqPfVm9IrGFdUFqS-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/KqPfVm9IrGFdUFqS-grafik.png)

</td><td colspan="1" style="height: 38.1167px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/3HAG1xWu8izC3zhN-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/3HAG1xWu8izC3zhN-grafik.png)

</td></tr><tr style="height: 53.1667px;"><th colspan="1" style="height: 53.1667px;">[Classic icicle](https://www.thingiverse.com/thing:196653/files) - CC BY-NC-SA 4.0</th><th colspan="1" style="height: 53.1667px;">[Turbine](https://www.thingiverse.com/thing:939532) - CC BY 4.0</th><th colspan="1" style="height: 53.1667px;">[Origami Vase](https://www.thingiverse.com/thing:2267093) - CC BY 4.0</th><th colspan="1" style="height: 53.1667px;">[Stratum Vase](https://www.thingiverse.com/thing:104120/files) - CC-BY-ND 4.0</th></tr><tr style="height: 38.1167px;"><td colspan="1" style="height: 38.1167px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/PFfgMXAMwW7qGSfb-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/PFfgMXAMwW7qGSfb-grafik.png)

</td><td colspan="1" style="height: 38.1167px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/uJjTsixMMtengqKN-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/uJjTsixMMtengqKN-grafik.png)

</td><td colspan="1" style="height: 38.1167px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/6KMrIUSOJYFHZKnp-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/6KMrIUSOJYFHZKnp-grafik.png)

</td><td colspan="1" style="height: 38.1167px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/nXyOpXOaqkRny60e-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/nXyOpXOaqkRny60e-grafik.png)

</td></tr><tr style="height: 53.1667px;"><th colspan="1" style="height: 53.1667px;">[Hand 1](https://www.thingiverse.com/thing:1295739/files) - CC-BY 3.0</th><th colspan="1" style="height: 53.1667px;">[Hand 2](https://www.thingiverse.com/thing:31331) - CC-BY 3.0</th><th colspan="1" style="height: 53.1667px;">[Statue of Liberty](https://www.thingiverse.com/thing:1463188/files) - CC-BY-SA 3.0</th><th colspan="1" style="height: 53.1667px;">[Hand 3 ](https://www.thingiverse.com/thing:2216106/files)- CC-BY 4.0</th></tr><tr style="height: 38.1167px;"><td colspan="1" style="height: 38.1167px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/uSlAxhFujo1pTuW5-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/uSlAxhFujo1pTuW5-grafik.png)

</td><td colspan="1" style="height: 38.1167px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/y0xYCJZuBEZo15Ks-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/y0xYCJZuBEZo15Ks-grafik.png)

</td><td colspan="1" style="height: 38.1167px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/MqfXScMx9saXSdeG-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/MqfXScMx9saXSdeG-grafik.png)

</td><td colspan="1" style="height: 38.1167px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/8coyL4zhOiQcp39T-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/8coyL4zhOiQcp39T-grafik.png)

</td></tr><tr style="height: 53.1667px;"><th colspan="1" style="height: 53.1667px;">[High Heel](https://www.thingiverse.com/thing:106979) - CC-BY 4.0</th><th colspan="1" style="height: 53.1667px;">[Bar Stool ](https://www.thingiverse.com/thing:2974209)- CC-BY 4.0</th><th colspan="1" style="height: 53.1667px;">[Turitella](https://www.thingiverse.com/thing:13668/files) - CC-BY 4.0</th><th colspan="1" style="height: 53.1667px;">[Turbine Rotor - CC-BY 4.0](https://www.thingiverse.com/thing:1564718/files)</th></tr><tr style="height: 38.1167px;"><td colspan="1" style="height: 38.1167px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/hgGg8UcQJVi6rGIJ-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/hgGg8UcQJVi6rGIJ-grafik.png)

</td><td colspan="1" style="height: 38.1167px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/1DLfwHfFUIiRhKtI-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/1DLfwHfFUIiRhKtI-grafik.png)

</td><td colspan="1" style="height: 38.1167px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/RfPXnkjD4XG15JqV-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/RfPXnkjD4XG15JqV-grafik.png)

</td><td colspan="1" style="height: 38.1167px;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/EOv1zgJG30tzGk9j-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/EOv1zgJG30tzGk9j-grafik.png)

</td></tr></tbody></table>

## Printed stuff

See [Gallery of printed objects](https://old.stadtfabrikanten.org/display/TH/Gallery+of+printed+objects) to check out the objects Trikarus already printed.

## Interesting search key phrases

1. alien vegetation
2. bolt
3. bottle
4. bust
5. chess
6. cylinder
7. eiffel tower
8. eiszapfen
9. flower
10. grass
11. hand
12. helical
13. helix
14. high
15. icicle
16. marble tower
17. pisa
18. plant
19. pyramid
20. screw
21. shoe
22. spike
23. spiral
24. stalactite
25. stalagmite
26. supportless
27. tetrahederon
28. tower
29. tree
30. turbine
31. twisted
32. victory
33. voronoi
34. coral
35. tube sponge
36. torso
37. balloon
38. watering can

## Random Crystal Generator

[https://www.thingiverse.com/thing:1775765](https://www.thingiverse.com/thing:1775765)

# Typical Hangprinter problems

This collection is based on a lot of topics especially about Hangprinters. Repeatedly many people do the same mistakes building and running a Hangprinter due to missing knowledge or time. Bad mechanical installation and miscalibration lead to bad print results and may lead to severe damage of electronics or your whole neighbours and the building you live. Please keep in mind: "Think big" can be a solution. But big parts mean big amount of filament. That gets expensive. Do you really want to risk to print 500 Euros of filament with a printer which costs the same but is a mechanical and eletrical desaster?

**The biggest problems of Hangprinter belonging to calibration and print quality come from the used lines, the way they are mounted and their tensioning.** Maintaining sufficient and equal tension throughout the build envelope is hard. You lose all accuracy if a line goes even slightly slack or overtightened. If you tighten one line, all the others will also tighten. If you make one line slack the other lines lose tension as well. But all lines must stay tensioned well. If one line has much higher tension than another, you might see the effector stucks and lose positioning accuracy. It's a question of line buildup and it's compensation and to maintain a rigid line guiding with this feature. Note that the tension changes over Z coordinate drastically without compensating it. There are no force sensors to control the tension properly. Furthermore there are no sensors to let Hangprinter know it's real position (only relative coordinates by using Smart Steppers servo motors). So it has no means to measure where the effector is at any given time. Neither the user, nor the firmware, have means to confirm that the effector is at the cartesian position where we believe it is or should be. If the calibration was done poor it will lead up to centimetres of deviation in higher z directions or in outer sectors of ABC. The mis-calibration will make lines go slack or over tight when moving far away from the origin. Poor winding on the spools or chosing the wrong line type make the printer inaccurate. Another thing is to keep the levelness and stiffness of ceiling module, effector and anchors while the printer is printing. At least things like line constraining (single vs double lines) means less or more ringing due to more frequent vibrations while printing and we need to ensure perfect vertical D lines to remove unwanted gravity side effects from rotations/tilts around one or more axes.

## Overview of common issues

<table class="wrapped fixed-table confluenceTable" id="bkmrk-extruder-fails-ringi"><colgroup><col style="width: 116.0px;"></col><col style="width: 225.0px;"></col><col style="width: 237.0px;"></col><col style="width: 235.0px;"></col><col style="width: 235.0px;"></col></colgroup><tbody><tr><th class="confluenceTh" scope="row">  
</th><td class="confluenceTh">Extruder fails</td><td class="confluenceTh">Ringing and poor quality</td><td class="confluenceTh">Heavy weight on ceiling</td><td class="confluenceTh">Weight on effector / Filament string force too high</td></tr><tr><th class="confluenceTh">Images</th><td class="confluenceTd">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/4zIpFjs4Ki5jye1P-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/4zIpFjs4Ki5jye1P-grafik.png)

[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/vXl96VU3BiMoyyuH-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/vXl96VU3BiMoyyuH-grafik.png)

[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/hV2PON56yiUIXVjj-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/hV2PON56yiUIXVjj-grafik.png)

Photos by Tørbjorn Ludvigsen (Twitter)

</td><td class="confluenceTd"><iframe allowfullscreen="allowfullscreen" frameborder="0" height="355" sandbox="allow-same-origin allow-scripts allow-popups" src="https://videos.stadtfabrikanten.org/videos/embed/3d1a0b4a-432d-4fc0-a143-d75cba491a92" width="200"></iframe>

<div class="content-wrapper"><iframe allowfullscreen="allowfullscreen" frameborder="0" height="355" sandbox="allow-same-origin allow-scripts allow-popups" src="https://videos.stadtfabrikanten.org/videos/embed/30673a09-9cbe-49b2-89f6-e97b35ce0a33" title="Bad quality (over extrusion) leads to untensioned situations" width="200"></iframe>

</div></td><td class="confluenceTd">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/0mbDQo6oaU3dMKAD-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/0mbDQo6oaU3dMKAD-grafik.png)

</td><td class="confluenceTd"><div class="content-wrapper"></div><iframe allowfullscreen="allowfullscreen" frameborder="0" height="355" sandbox="allow-same-origin allow-scripts allow-popups" src="https://videos.stadtfabrikanten.org/videos/embed/cc205be6-100d-4abe-9399-2132c6e4007a" width="200"></iframe>

<iframe allowfullscreen="allowfullscreen" frameborder="0" height="355" sandbox="allow-same-origin allow-scripts allow-popups" src="https://videos.stadtfabrikanten.org/videos/embed/6a9e56c4-ecd8-46a6-9ab1-c049cd908d75" title="Adding mass to effector" width="200"></iframe>

<div class="content-wrapper"></div></td></tr><tr><th class="confluenceTh">Description</th><td class="confluenceTd">certain centimeters of non-supported **cantilever** are a high risk for deformations. This is one of the most extreme szenarios what can happen.</td><td class="confluenceTd">often happens if one or some of the mentioned things in this table occure, like wrong print parameters (extreme print speeds, wrong cooling, wrong extrusion temperature, slack lines, overtightened lines, collisions with lines, ...)</td><td class="confluenceTd">the filament tends to vibrate and it's additional weight for the ceiling. It's also a source for risky accidents when falling off. The only advantage is the better extruder feed.</td><td class="confluenceTd">The more weight on effector the slower you can travel. A heavy effector can be bad. But a light weight effector can be bad too. A light effector can be greatly influenced by the filament string the extruder tries to grab and to extrude while printing. If the filament feeding is poor (high friction or stucking) it might happen that the effector climbs up the filament string ignoring it's vertical D lines. The effector will start to tilt and to lift the nozzle. The perimeter fails and the hotend extrudes into air. This ruins the print. It looks like <span lang="en">Munchausen pulling himself out of the swamp by the hair.</span>

This can be fixed by printing slower, making the effector heavier or adjusting the filament feeding quality for example. At Trikarus we were able to print with a 5 kg spool standing on the ground. 8.5 kg were too heavy to use. So we need some special feeding device.

</td></tr><tr><th class="highlight-#ffe380 confluenceTh" data-highlight-colour="#ffe380" title="Background colour : Medium yellow 45%">  
</th><td class="highlight-#ffe380 confluenceTd" data-highlight-colour="#ffe380" title="Background colour : Medium yellow 45%">  
</td><td class="highlight-#ffe380 confluenceTd" data-highlight-colour="#ffe380" title="Background colour : Medium yellow 45%">  
</td><td class="highlight-#ffe380 confluenceTd" data-highlight-colour="#ffe380" title="Background colour : Medium yellow 45%">  
</td><td class="highlight-#ffe380 confluenceTd" data-highlight-colour="#ffe380" title="Background colour : Medium yellow 45%">  
</td></tr><tr><th class="confluenceTh">  
</th><th class="confluenceTh">Effector tilts</th><th class="confluenceTh">Elastic lines</th><th class="confluenceTh">Wobbling ceiling plate / frame stiffness</th><th class="confluenceTh">Slack lines / drives turn to wrong direction / de-spooling</th></tr><tr><th class="confluenceTh">Images</th><td class="confluenceTd"><div class="content-wrapper"></div><iframe allowfullscreen="allowfullscreen" frameborder="0" height="355" sandbox="allow-same-origin allow-scripts allow-popups" src="https://videos.stadtfabrikanten.org/videos/embed/248e0a30-c85c-4140-9e1f-4396edc050bb" width="200"></iframe>

</td><td class="confluenceTd">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/2xVPeEZzuyN3ZEor-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/2xVPeEZzuyN3ZEor-grafik.png)

</td><td class="confluenceTd"><div class="content-wrapper"><iframe allowfullscreen="allowfullscreen" frameborder="0" height="355" sandbox="allow-same-origin allow-scripts allow-popups" src="https://videos.stadtfabrikanten.org/videos/embed/10a245fa-67d1-4a16-b282-85bdb72279be" width="200"></iframe>

</div></td><td class="confluenceTd">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/WsmsWG9Exy1KDv8n-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/WsmsWG9Exy1KDv8n-grafik.png)

[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/6tXBLtfVOkvexO16-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/6tXBLtfVOkvexO16-grafik.png)

[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/2UPVkxLI5YStkRaW-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/2UPVkxLI5YStkRaW-grafik.png)

<div class="content-wrapper"><table aria-label="html macro" class="wysiwyg-macro" data-macro-body-type="PLAIN_TEXT" data-macro-id="cd359d12-5404-4b8b-a4ea-04af3c80450c" data-macro-name="html" data-macro-schema-version="1" style="background-image: url('https://old.stadtfabrikanten.org/plugins/servlet/confluence/placeholder/macro-heading?definition=e2h0bWx9&locale=de_DE&version=2'); background-repeat: no-repeat;"><tbody><tr><td class="wysiwyg-macro-body">```
<iframe width="200" height="355" sandbox="allow-same-origin allow-scripts allow-popups" src="https://videos.stadtfabrikanten.org/videos/embed/8c4fd064-d753-4ede-a64c-92235d437ea5" frameborder="0" allowfullscreen></iframe>
```

</td></tr></tbody></table>

</div></td></tr><tr><th class="confluenceTh">Description</th><td class="confluenceTd">that images shows effects due to   
**bad calibration** and/or **bad line winding.** While printing the spools might wind up unevenly**.** The D lines must be vertical all their way and the line outlet and inlet points have to match between ceiling and effector.  
</td><td class="confluenceTd">elastic lines destroy calibration. Reason: high stiffness is required. Do not use low quality lines!

</td><td class="confluenceTd">A wobbling ceiling plate which lifts up and down 1-2 mm or more leads in print quality loss. The movement system parts like effector, ceiling plate and anchors have to be as rigid as possible. Large frames will start **vibrating** if not enough places exist to secure movable parts due to **tolerances**</td><td class="confluenceTd">De-spooling due too long move into wrong direction (line tensions is zero or virtual negative value). This is one of the **major** issues of Hangprinters while running or calibrating them.</td></tr><tr><th class="highlight-#ffe380 confluenceTh" data-highlight-colour="#ffe380" title="Background colour : Medium yellow 45%">  
</th><td class="highlight-#ffe380 confluenceTd" data-highlight-colour="#ffe380" title="Background colour : Medium yellow 45%">  
</td><td class="highlight-#ffe380 confluenceTd" data-highlight-colour="#ffe380" title="Background colour : Medium yellow 45%">  
</td><td class="highlight-#ffe380 confluenceTd" data-highlight-colour="#ffe380" title="Background colour : Medium yellow 45%">  
</td><td class="highlight-#ffe380 confluenceTd" data-highlight-colour="#ffe380" title="Background colour : Medium yellow 45%">  
</td></tr><tr><th class="confluenceTh">  
</th><th class="confluenceTh">Shapes where lines are led - bearings</th><th class="confluenceTh">Shapes where lines are led - rough surfaces</th><th class="confluenceTh">Cable salad</th><th class="confluenceTh">Losing steps and loud gears</th></tr><tr><th class="confluenceTh">Images</th><td class="confluenceTd">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/S8XvQQnNhDAHuOMu-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/S8XvQQnNhDAHuOMu-grafik.png)

[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/w3WbuEAMahQPLOIm-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/w3WbuEAMahQPLOIm-grafik.png)

</td><td class="confluenceTd">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/38AScS6KxGoxObaz-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/38AScS6KxGoxObaz-grafik.png)

<div class="content-wrapper"><iframe allowfullscreen="allowfullscreen" frameborder="0" height="355" sandbox="allow-same-origin allow-scripts allow-popups" src="https://videos.stadtfabrikanten.org/videos/embed/bcfab6d6-9d18-4926-90a2-18a0a3ca918e" width="200"></iframe>

</div></td><td class="confluenceTd">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/ZSLnqJ9WQXSxJBti-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/ZSLnqJ9WQXSxJBti-grafik.png)

![(Info)](https://old.stadtfabrikanten.org/s/-6fzg5h/9012/tu5x00/_/images/icons/emoticons/information.svg "(Info)") Photo from [https://twitter.com/fredhedenberg](https://twitter.com/fredhedenberg)

</td><td class="confluenceTd">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/nQEmDz1Tbe0mbRRL-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/nQEmDz1Tbe0mbRRL-grafik.png)

![(Info)](https://old.stadtfabrikanten.org/s/-6fzg5h/9012/tu5x00/_/images/icons/emoticons/information.svg "(Info)") Photo by Tørbjorn Ludvigsen

</td></tr><tr><th class="confluenceTh">Description</th><td class="confluenceTd">V shape tends to snap / shear off if there are certain angled reached. If you can please change them to U shape bearings. Cheap bearings have a huge angle tolerance by the way.

</td><td class="confluenceTd">rough surfaces will quickly force the lines to get worn until they rupture.   
</td><td class="confluenceTd">too long and/or too thin cables can bring broken connections, dirty signals, failing electronics and much more. It's a high risk for **failing prints** or for **burnout** of certain components like controller.</td><td class="confluenceTd">That type of drive works but it's loud, if needs to be greased a lot and leads to more quickly lose steps. Especially if you use **under-sized small Nema 17** motors it's a source of frustration</td></tr><tr><th class="highlight-#ffe380 confluenceTh" data-highlight-colour="#ffe380" title="Background colour : Medium yellow 45%">  
</th><td class="highlight-#ffe380 confluenceTd" data-highlight-colour="#ffe380" title="Background colour : Medium yellow 45%">  
</td><td class="highlight-#ffe380 confluenceTd" data-highlight-colour="#ffe380" title="Background colour : Medium yellow 45%">  
</td><td class="highlight-#ffe380 confluenceTd" data-highlight-colour="#ffe380" title="Background colour : Medium yellow 45%">  
</td><td class="highlight-#ffe380 confluenceTd" data-highlight-colour="#ffe380" title="Background colour : Medium yellow 45%">  
</td></tr><tr><th class="confluenceTh">  
</th><th class="confluenceTh">Wobbling lines</th><th class="confluenceTh">Line quality changes</th><th class="confluenceTh">Self twisting lines</th><th class="confluenceTh">Assembly collisions</th></tr><tr><th class="confluenceTh">Images</th><td class="confluenceTd"><div class="content-wrapper"></div><iframe allowfullscreen="allowfullscreen" frameborder="0" height="355" sandbox="allow-same-origin allow-scripts allow-popups" src="https://videos.stadtfabrikanten.org/videos/embed/001265d7-ab3e-49bf-a20b-14d16a9327da" width="200"></iframe>

<iframe allowfullscreen="allowfullscreen" frameborder="0" height="355" sandbox="allow-same-origin allow-scripts allow-popups" src="https://videos.stadtfabrikanten.org/videos/embed/979276c5-8260-4417-8485-cefe00a8806a" width="200"></iframe>

<div class="content-wrapper"></div></td><td class="confluenceTd">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/8X2a8lqKL3s5RJLz-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/8X2a8lqKL3s5RJLz-grafik.png)

</td><td class="confluenceTd">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/LnXM6tl3XhKVKtSd-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/LnXM6tl3XhKVKtSd-grafik.png)

</td><td class="confluenceTd">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/cpzI9ZMN3XbvPmLn-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/cpzI9ZMN3XbvPmLn-grafik.png)

[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/CnKlUOl4CCq4tpAw-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/CnKlUOl4CCq4tpAw-grafik.png)

</td></tr><tr><th class="confluenceTh">Description</th><td class="confluenceTd">Wobbling lines, e.g. caused by slight collisions, machines vibrations or by accidently touching the lines, badly effect the print result. You can get ringing, shifting of the vertical print shells and other side effects.</td><td class="confluenceTd">Heavily used fireline loses its black smokey gloss-look and flattens/widens up a little bit. If the lines rip do **not knot** the ripped ends. The knot will cause error in movement system and might mess up the winding quality on spools.</td><td class="confluenceTd">Self-twisting lines reduce the life time</td><td class="confluenceTd">collision between filament or power cable and the printer assembly, or the lines and the assembly (arms, gears, hotend, ...). It could knock off the print from the platform.</td></tr><tr><th class="highlight-#ffe380 confluenceTh" data-highlight-colour="#ffe380" title="Background colour : Medium yellow 45%">  
</th><td class="highlight-#ffe380 confluenceTd" data-highlight-colour="#ffe380" title="Background colour : Medium yellow 45%">  
</td><td class="highlight-#ffe380 confluenceTd" data-highlight-colour="#ffe380" title="Background colour : Medium yellow 45%">  
</td><td class="highlight-#ffe380 confluenceTd" data-highlight-colour="#ffe380" title="Background colour : Medium yellow 45%">  
</td><td class="highlight-#ffe380 confluenceTd" data-highlight-colour="#ffe380" title="Background colour : Medium yellow 45%">  
</td></tr><tr><th class="confluenceTh">  
</th><th class="confluenceTh">Line jamming</th><th class="confluenceTh">Wrong line buildup compensation</th><th class="confluenceTh">Failing prints / warping</th><th class="confluenceTh">Skewed printed parts</th></tr><tr><th class="confluenceTh">Images</th><td class="confluenceTd">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/2xluU5NbpHUHkgVG-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/2xluU5NbpHUHkgVG-grafik.png)

[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/Ltuer5Fb1688V941-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/Ltuer5Fb1688V941-grafik.png)

</td><td class="confluenceTd"><iframe allowfullscreen="allowfullscreen" frameborder="0" height="355" sandbox="allow-same-origin allow-scripts allow-popups" src="https://videos.stadtfabrikanten.org/videos/embed/80a14957-24a2-4f78-8496-7d765314b701" width="200"></iframe>

<iframe allowfullscreen="allowfullscreen" frameborder="0" height="199" sandbox="allow-same-origin allow-scripts allow-popups" src="https://videos.stadtfabrikanten.org/videos/embed/b5047066-d5a5-4c0c-b233-116aa743b872" style="width: 200px; height: 199px;" width="200"></iframe>

<div class="content-wrapper"></div><div class="content-wrapper"></div></td><td class="confluenceTd"><div class="content-wrapper"><iframe allowfullscreen="allowfullscreen" frameborder="0" height="355" sandbox="allow-same-origin allow-scripts allow-popups" src="https://videos.stadtfabrikanten.org/videos/embed/5fc8214a-37a8-4546-83a7-7d078f32d801" width="200"></iframe>

</div><div class="content-wrapper"><iframe allowfullscreen="allowfullscreen" frameborder="0" height="355" sandbox="allow-same-origin allow-scripts allow-popups" src="https://videos.stadtfabrikanten.org/videos/embed/f23d831e-9183-4b4b-95e1-89ef51b2a137" title="Slack D lines (root cause: warping and insufficient stickyness)" width="200"></iframe>

</div></td><td class="confluenceTd"><div class="content-wrapper">No photo yet</div></td></tr><tr><th class="confluenceTh">Description</th><td class="confluenceTd">Printer powered off which led to self-lowering effector. This untightens the lines which fall to the ground. This is a risk of jammed line salad</td><td class="confluenceTd">In case the compensation factors were miscalibrated the printer might not move correctly because the line tension gets too high. It highly limits the reachable height. Without propery compensation you cannot print large.</td><td class="confluenceTd">Printing big will cost big. This slices model failed and resulted in wasting ~150 grams of filament. And the model in the video was only a small model.</td><td class="confluenceTd">skewed installation of ABC lines (unequal line lengths of lines between bottom anchors and effector) might give unproper print results (e.g. printed cube is not a real cube anymore)</td></tr></tbody></table>

## Bearing shapes and angles

The guidance of V shape bearings is okay and for Trikarus the maximum line angle per bearing is 30 degrees (15 degress per direction) due to its regular construction frame (60 degrees divided by two). The angles at the anchor points and at the effector change while it is moving. It won't reach the shear off angle of ~45 degrees (tested with different amount of line on the bearings perimeters and pulling forces). Usually the regular stress of lines will not exceed ~22.5 degrees because there will not be enough tension to do this and/or not that big print platform. Reaching those coordinates without platform underneath does not make sense. To have a more regular tensioning please use U shape bearings for the moving sections. They will perform better. An idea could also be to use ceramic inserts to allow 360 degree movements of the line without slipping off.

[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/5JQxf7MVuwrVDpl4-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/5JQxf7MVuwrVDpl4-grafik.png) [![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/KLeJiBgjCxraMGKM-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/KLeJiBgjCxraMGKM-grafik.png)

[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/f0GPASWGjRBX6qpp-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/f0GPASWGjRBX6qpp-grafik.png)[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/6FewGz32yq6VSO23-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/6FewGz32yq6VSO23-grafik.png)

## Some visualizations of different angles

<table class="relative-table wrapped confluenceTable" id="bkmrk-0%C2%B0-15%C2%B0-25%C2%B0-35%C2%B0-45%C2%B0" style="width: 90.132%;"><colgroup><col style="width: 15.751%;"></col><col style="width: 20.2199%;"></col><col style="width: 24.2348%;"></col><col style="width: 21.3002%;"></col><col style="width: 18.5224%;"></col></colgroup><thead><tr><td class="confluenceTh" style="text-align: center;">**0°**</td><td class="confluenceTh" style="text-align: center;">**15°**</td><td class="confluenceTh" style="text-align: center;">**25°**</td><td class="confluenceTh" style="text-align: center;">**35°**</td><td class="confluenceTh" style="text-align: center;">**45°**</td></tr></thead><tbody><tr><td class="confluenceTd" style="text-align: center;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/vSwQ7kQIMuwpNkQ9-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/vSwQ7kQIMuwpNkQ9-grafik.png)

</td><td class="confluenceTd" style="text-align: center;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/uovSP0KL8ZvKPZ6w-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/uovSP0KL8ZvKPZ6w-grafik.png)

</td><td class="confluenceTd" style="text-align: center;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/kuAz0s2TaXmOa6Nw-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/kuAz0s2TaXmOa6Nw-grafik.png)

</td><td class="confluenceTd" style="text-align: center;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/3XpBu6hwQ7L6bTM0-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/3XpBu6hwQ7L6bTM0-grafik.png)

[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/GExrUofRtnhFNqei-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/GExrUofRtnhFNqei-grafik.png)

</td><td class="confluenceTd" style="text-align: center;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/2yvUD1mStXAeT3Ns-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/2yvUD1mStXAeT3Ns-grafik.png)

[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/vUDVUsmbKTdcT5ev-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/vUDVUsmbKTdcT5ev-grafik.png)

</td></tr></tbody></table>

### Please have a close look on your construction when building line guides

Even if your bearings allow a good angle double check your construction. Otherwise problems may occure like this. The line could collide with effector housing or anchor housing while the effector is moving to extreme positions.

[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/DHsFOZ3aKaqkfVjZ-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/DHsFOZ3aKaqkfVjZ-grafik.png)

The smaller the angle at the effector the smaller the print radius will be. For some early prototype corners of Trikarus some quick and dirty drawings gave the following results (values only valid for our used machine dimensions):

<table class="wrapped confluenceTable" id="bkmrk-effector-bearing-ang"><colgroup><col></col><col></col></colgroup><thead><tr><td class="confluenceTh">**Effector bearing angle**</td><td class="confluenceTh">**Maximum print radius with collision**</td></tr></thead><tbody><tr><td class="confluenceTd">17 deg</td><td class="confluenceTd">~ 725 mm</td></tr><tr><td class="confluenceTd">16 deg</td><td class="confluenceTd">~ 687 mm</td></tr><tr><td class="confluenceTd">15 deg</td><td class="confluenceTd">~ 648 mm</td></tr><tr><td class="confluenceTd">14 deg</td><td class="confluenceTd">~ 608 mm</td></tr><tr><td class="confluenceTd">13 deg</td><td class="confluenceTd">~ 568 mm</td></tr></tbody></table>

The results say: if you want to reach a good print radius (e.g. 1 meter) than the allowed angle has to be much bigger. You may add some cutouts to your assembly like this:

[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/fZDTQKnk50CQ6zig-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/fZDTQKnk50CQ6zig-grafik.png)

The recent Trikarus prototype finally solves this problem by using ceramic inlets.

# 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:

<table class="wrapped confluenceTable" id="bkmrk-installation-at-a-wo"><colgroup><col></col><col></col><col></col></colgroup><thead><tr><td class="confluenceTh">**Installation at a workshop**   
**([Fred Hegenberg / Chalters Robotics](https://twitter.com/hashtag/chalmersrobotics?src=hashtag_click))**</td><td class="confluenceTh">Some studio installation</td><td class="confluenceTh">The Tower of Babel (with Torbjørn in front of)</td></tr></thead><tbody><tr><td class="confluenceTd">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/4Bl6BwpziVd7a72g-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/4Bl6BwpziVd7a72g-grafik.png)

</td><td class="confluenceTd">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/Zt4NLGEBTAkXzIY7-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/Zt4NLGEBTAkXzIY7-grafik.png)

</td><td class="confluenceTd">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/4jAUwpqskgJdD7Vr-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/4jAUwpqskgJdD7Vr-grafik.png)

</td></tr></tbody></table>

## 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 $\\sqrt{x^2 + y^2 + z^2}$. 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.

<table id="bkmrk-spool-concept-multip" style="width: 99.9734%;"><colgroup><col style="width: 25%;"></col><col style="width: 8.78738%;"></col><col style="width: 41.2126%;"></col><col style="width: 25%;"></col></colgroup><tbody><tr><th rowspan="4">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/I4hhLxekGTAjg5hN-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/I4hhLxekGTAjg5hN-grafik.png)

</th><th rowspan="2">spool concept</th><th>multiple coils for - one per line (muti coil spool)</th><th>one coil for multiple lines (single coil spool)</th></tr><tr><td>[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/AicCsSqJh7q2VmnQ-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/AicCsSqJh7q2VmnQ-grafik.png)

</td><td>[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/dToddLyxYDHtg3Jc-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/dToddLyxYDHtg3Jc-grafik.png)

</td></tr><tr><th rowspan="2">line concept</th><th colspan="1">Single lines

</th><th colspan="1">Double lines ABCD (called "mechanical advantage")

</th></tr><tr><td colspan="1">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/8B9Bop3XvRc3Qzo0-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/8B9Bop3XvRc3Qzo0-grafik.png)

</td><td colspan="1">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/cUnVngxcWpnNOda6-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/cUnVngxcWpnNOda6-grafik.png)

</td></tr></tbody></table>

### "Quick overview" of the line distribution on the ceiling module

[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/ZsHpS8VoYAJwE8VN-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/ZsHpS8VoYAJwE8VN-grafik.png)

### 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 block**s 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](https://old.stadtfabrikanten.org/display/TH/Building+basics%2C+checks%2C+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.

<table id="bkmrk-drive-with-spool-%E2%86%92-k" style="width: 99.9734%;"><colgroup><col style="width: 11.5675%;"></col><col style="width: 13.1657%;"></col><col style="width: 15.0926%;"></col><col style="width: 15.292%;"></col><col style="width: 15.1591%;"></col><col style="width: 14.8931%;"></col><col style="width: 14.8931%;"></col></colgroup><tbody><tr><td>**drive with spool**</td><td>**keeper roller block**</td><td>**angle changer roller block**</td><td>**vertical roller block**</td><td>**effector corner**</td><td>**vertical roller block**</td><td>**ceiling guitar tuning mechanism**</td></tr><tr><td>[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/utSgXSFRpMuHcKyi-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/utSgXSFRpMuHcKyi-grafik.png)

</td><td>[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/ZQIN1L1iBAoWUh7d-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/ZQIN1L1iBAoWUh7d-grafik.png)

</td><td>[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/VMwtXwSyMaJcVCQY-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/VMwtXwSyMaJcVCQY-grafik.png)

</td><td>[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/FqMAjnGlHG2sTWBr-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/FqMAjnGlHG2sTWBr-grafik.png)

</td><td>[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/NWeODun1fs4ZgPY9-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/NWeODun1fs4ZgPY9-grafik.png)

</td><td>[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/oUO5rqvygJ7Wb4lu-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/oUO5rqvygJ7Wb4lu-grafik.png)

</td><td>[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/Bq2sGeAy8lUovQCt-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/Bq2sGeAy8lUovQCt-grafik.png)

</td></tr></tbody></table>

### 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.

[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/1N2e2C8AGrVL1o3k-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/1N2e2C8AGrVL1o3k-grafik.png)

### 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 block**s (near the spool) on the ceiling plate. They turn around in that blocks and are fed to the **base frame roller block**s 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.

<table id="bkmrk-drive-with-spool-%E2%86%92-v" style="width: 99.9734%;"><colgroup><col style="width: 10.9707%;"></col><col style="width: 17.4202%;"></col><col style="width: 18.1516%;"></col><col style="width: 17.6862%;"></col><col style="width: 17.6197%;"></col><col style="width: 18.2181%;"></col></colgroup><tbody><tr><td>**drive with spool**</td><td>**vertical roller block**</td><td>**base frame roller block**</td><td>**effector corner**</td><td>**base frame roller block**</td><td>**frame guitar tuner mechanism**</td></tr><tr><td>[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/EU3Ul23iQwgM2lsJ-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/EU3Ul23iQwgM2lsJ-grafik.png)

</td><td>[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/Pnga6ZsK29mqbPzT-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/Pnga6ZsK29mqbPzT-grafik.png)

</td><td>[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/d6lypse14dn1tuCD-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/d6lypse14dn1tuCD-grafik.png)

</td><td>[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/Tl2LMgLPypBEomVg-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/Tl2LMgLPypBEomVg-grafik.png)

</td><td>[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/yhLWZ2Gpo8l8EZMp-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/yhLWZ2Gpo8l8EZMp-grafik.png)

</td><td>[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/uQSIlBn5epqKww4w-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/uQSIlBn5epqKww4w-grafik.png)

</td></tr></tbody></table>

### 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 ![](https://old.stadtfabrikanten.org/plugins/servlet/latexmath/placeholder?key=1fb916d8adb8e033cde4baa8c47f9638&vertAlign=-5px). 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).

<table class="wrapped confluenceTable" id="bkmrk-trikarus-corner-defa"><colgroup><col></col><col></col><col></col></colgroup><thead><tr><td class="confluenceTh" style="text-align: center;">**Trikarus corner**</td><td class="confluenceTh" style="text-align: center;">**default corner from Hangprinter v3 (single lines)**</td><td class="confluenceTh" style="text-align: center;">**corner from Hangprinter v3 (doubled lines)**</td></tr></thead><tbody><tr><td class="confluenceTd" style="text-align: center;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/QpJ6WF8NAPJvQssy-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/QpJ6WF8NAPJvQssy-grafik.png)

</td><td class="confluenceTd" style="text-align: center;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/eWOgyioAdqG1eKnc-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/eWOgyioAdqG1eKnc-grafik.png)

</td><td class="confluenceTd" style="text-align: center;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/DqTTxXNm2TqaNvOp-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/DqTTxXNm2TqaNvOp-grafik.png)

</td></tr></tbody></table>

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

<span lang="en">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. </span>[Typical Hangprinter problems](https://old.stadtfabrikanten.org/pages/createpage.action?spaceKey=TH&title=Typical+Hangprinter+problems&linkCreation=true&fromPageId=65405294) 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):

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

### 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.

<table class="wrapped fixed-table confluenceTable" id="bkmrk-abc-anchors-are-abov"><colgroup><col style="width: 371.0px;"></col><col style="width: 862.0px;"></col></colgroup><tbody><tr><th class="confluenceTh" colspan="1">- ABC anchors are above print platfom
- print platform size does not matter
- ✅ no collision happens

</th><td class="confluenceTd">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/yCiZuKmDYSlZ9zyr-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/yCiZuKmDYSlZ9zyr-grafik.png)

</td></tr><tr><th class="confluenceTh" colspan="1">- ABC anchors are below print platform
- collision happens
- ⚠️ print platform is too wide

</th><td class="confluenceTd" colspan="1">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/hMnKyTbDQMqRu0bT-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/hMnKyTbDQMqRu0bT-grafik.png)

</td></tr><tr><th class="confluenceTh" colspan="1">- ABC anchors are nearly level with print platform
- collision happens
- ⚠️ print platform might be too wide

</th><td class="confluenceTd" colspan="1">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/fZr9vUKYoyBNflDx-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/fZr9vUKYoyBNflDx-grafik.png)

</td></tr></tbody></table>

### 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 $Z\_{print}$ 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](https://gitlab.com/hangprinter/line-collision-detector) to do this. More information about line collision and printing can be found at [Printer profiles, slicing and filaments](https://old.stadtfabrikanten.org/display/TH/Printer+profiles%2C+slicing+and+filaments).

### Print diameter

[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/KhlbIIU7qhi68iwl-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/KhlbIIU7qhi68iwl-grafik.png)

The drawing shows some diameters $d\_1$ to $d\_4$. $d\_1$ is the outermost diameter of hangprinter which you can use to plan the desired room size (for Trikarus $d\_1 = 2640 mm$). $d\_2 = 1893.71 mm$ is the maximum diameter which can be fit into the triangle shape of Trikarus. $d\_3$ 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 $d\_4$ which takes care for a maximum $angle$ 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](https://old.stadtfabrikanten.org/display/TH/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

<table id="bkmrk-effector-is-in-home-"><colgroup><col></col><col></col><col></col><col></col><col></col></colgroup><thead><tr><td>Effector is in home position X0 Y0</td><td>Effector reached maximum distance between 2 anchors

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

</td><td>Random position of the effector

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

</td><td>The line angle never can reach 180 degrees or higher</td><td>Possible line angle will maybe a maximum of ~ 150 degrees or even lower</td></tr></thead><tbody><tr><td>[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/oAtOKb0PlYsaqSUy-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/oAtOKb0PlYsaqSUy-grafik.png)

</td><td>[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/2kTVhNJG4ukxvvC8-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/2kTVhNJG4ukxvvC8-grafik.png)

</td><td>[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/dyXOhXrri2OGX9Ho-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/dyXOhXrri2OGX9Ho-grafik.png)

</td><td>[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/W0CX27nasRZzHtKf-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/W0CX27nasRZzHtKf-grafik.png)

</td><td>![](https://old.stadtfabrikanten.org/download/attachments/65405294/image2020-5-2_16-52-50.png?version=1&modificationDate=1588431170413&api=v2 "Trikarus Project Overview > What is a Hangprinter and how does it work? > image2020-5-2_16-52-50.png")

</td></tr></tbody></table>

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

<table class="wrapped confluenceTable" id="bkmrk-regular-tetrahedron-"><colgroup><col></col><col></col><col></col><col></col></colgroup><tbody><tr><th class="confluenceTh" style="text-align: center;">regular tetrahedron</th><th class="confluenceTh" style="text-align: center;">hyperbolic tetrahedron</th><th class="confluenceTh" style="text-align: center;">cylindric print volume</th><th class="confluenceTh" colspan="1" style="text-align: center;">Hyperbolic movable section and maximum   
cylindrical print volume in one drawing</th></tr><tr><td class="confluenceTd" style="text-align: center;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/x1xPWslmi46yMfOt-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/x1xPWslmi46yMfOt-grafik.png)

</td><td class="confluenceTd" style="text-align: center;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/sKd3HDHrFjsvB7Va-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/sKd3HDHrFjsvB7Va-grafik.png)

</td><td class="confluenceTd" style="text-align: center;">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/miDBJZJj6sCcqHGa-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/miDBJZJj6sCcqHGa-grafik.png)

</td><td class="confluenceTd" colspan="1">[![grafik.png](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/scaled-1680-/eKOjUcOR4wa6b9cZ-grafik.png)](https://wiki.stadtfabrikanten.org/uploads/images/gallery/2026-06/eKOjUcOR4wa6b9cZ-grafik.png)

</td></tr></tbody></table>

**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)
- adjust your hotend throughput
- 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 calculations](https://old.stadtfabrikanten.org/display/TH/RepRapFirmware+and+calculations), [Building basics, checks, maintenance](https://old.stadtfabrikanten.org/display/TH/Building+basics%2C+checks%2C+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.

## Why should i make a Hangprinter? Advantages and disadvantages

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  
    
    1. [Arduino Mega 2560 + RAMPS](https://reprap.org/wiki/RAMPS)
        1. [Official Marlin Firmware v1.1.9.1 or newer (but there's no support in Marlin v2 yet)](https://github.com/MarlinFirmware/Marlin/releases/tag/1.1.9.1)  
            
            1. [https://gitlab.com/tobben/hangprinter/-/tree/doubled\_abc/firmware/Marlin\_subtree](https://gitlab.com/tobben/hangprinter/-/tree/doubled_abc/firmware/Marlin_subtree) (double ABC lines)
            2. [https://gitlab.com/tobben/hangprinter/-/tree/Openscad\_version\_3/firmware/Marlin\_subtree](https://gitlab.com/tobben/hangprinter/-/tree/Openscad_version_3/firmware/Marlin_subtree) (single ABC lines)
    2. [Duet 2](https://www.duet3d.com/DuetWifi)
        1. [Official RepRap Firmware (v2 or v3)](https://github.com/dc42/RepRapFirmware/)
        2. [RepRap Firmware Fork from Torbjørn (v2)](https://gitlab.com/tobben/hangprinter/-/tree/version_4_dev/firmware/RepRapFirmware)
2. Drives 
    1. regular Nema 17 stepper motors
    2. brushless DC motors
3. Closed loop motor controllers and firmware (highly recommended)  
    
    1. [Troppical Labs Mechaduino](https://tropical-labs.com/mechaduino/)  
        
        1. [Mechaduino Firmware official](https://github.com/jcchurch13/Mechaduino-Firmware)
        2. [Mechaduino Firmware fork from Torbjørn](https://gitlab.com/tobben/hangprinter/-/tree/doubled_abc/firmware/Mechaduino_subtree)
        3. [Smart Stepper Firmware Fork from Torbjørn](https://gitlab.com/tobben/hangprinter/-/tree/Openscad_version_3/firmware/SmartStepper_subtree) (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)](http://misfittech.net/nema-17-smart-stepper/)  
        
        1. [Smart Stepper Firmware Fork from Torbjørn](https://gitlab.com/tobben/hangprinter/-/tree/Openscad_version_3/firmware/SmartStepper_subtree/firmware/stepper_nano_zero)
        2. [Smart Stepper Firmware official](https://github.com/Misfittech/nano_stepper)
        3. Smart Stepper Firmware Fork for Trikarus
    3. [ODrive Shield](https://odriverobotics.com/)  
        
        1. [ODrive Firmware from from Torbjørn](https://gitlab.com/tobben/hangprinter/-/tree/version_4_dev/firmware/ODrive)

**... 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.](https://old.stadtfabrikanten.org/pages/createpage.action?spaceKey=TH&title=Typical+Hangprinter+problems&linkCreation=true&fromPageId=65405294) 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

Source: [https://vitana.se/opr3d/tbear/#hangprinter\_project\_59](https://vitana.se/opr3d/tbear/#hangprinter_project_59)

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)
- spread the idea
- allow to have a machine generating profit
- keep it to be open source / open hardware

There are a lot more detailed points and some of them won't fit together - especially the costs of the machine and the reliability, as well as the ease of use and ease of building is extremely hard.

## Important web ressources for Hangprinter

1. [Torbjørn @ Vimeo](https://vimeo.com/user23166500)
2. [Torbjørn @ Youtube](https://www.youtube.com/channel/UCw1Nz0VCw4z-dfq4WjSkFzQ/videos)
3. [Torbjørn @ Twitter](https://twitter.com/tobbelobb)
4. [Torbjørn @ Bountysource](https://salt.bountysource.com/teams/hangprinter/updates/25-may-2019)
5. [Torbjørn @ Gitlab](https://gitlab.com/users/tobben/projects)
6. [Torbjørn @ Github](https://github.com/tobbelobb?tab=repositories)
7. [Torbjørn @ Blog](http://www.vitana.se/opr3d/tbear/)
8. [Hangprinter v3 Bill of Materials](https://docs.google.com/spreadsheets/d/1lOPZoF1P2OSdJcijZRVrwAEVFh3LLAnf6-s6k-hlbZU/edit#gid=0)
9. [Hangprinter v3 Documentation](https://hangprinter.org/doc/v3/)
10. [Hangprinter @ Wikipedia](https://en.wikipedia.org/wiki/Hangprinter)
11. [Hangprinter @ Instagram](https://www.instagram.com/explore/tags/hangprinter/)
12. [Hangprinter @ Twitter](https://www.twipu.com/tag/hangprinter)
13. [Hangprinter v2 @ RepRapForum](https://reprap.org/forum/read.php?1,738858)
14. [Hangprinter v3 @ RepRapForum](https://reprap.org/forum/read.php?423,792937)
15. [Hangprinter v4 @ RepRapForum](https://reprap.org/forum/read.php?423,868983)
16. [Hangprinter generic Github Repos](https://github.com/search?p=2&q=hangprinter&type=Repositories)
17. [Hangprinter Homepage](https://hangprinter.org)
18. [Hangprinter Facebook Group](https://www.facebook.com/groups/hangprinter/)
19. [Hangprinter Dozuki Documentation](https://hangprinter.dozuki.com/)
20. Duet3D/RRF (RepRapFirmware) 
    - [https://github.com/dc42/RepRapFirmware/blob/dev/WHATS\_NEW.md](https://github.com/dc42/RepRapFirmware/blob/dev/WHATS_NEW.md)
    - [https://duet3d.dozuki.com](https://duet3d.dozuki.com/)
        - [Configuring RepRapFirmware Hangprinter](https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareHangprinter)
        - [Gcode](https://duet3d.dozuki.com/Wiki/Gcode)
        - [Macros](https://duet3d.dozuki.com/Wiki/Macros)
    - [https://forum.duet3d.com](https://forum.duet3d.com/)
        - [https://forum.duet3d.com/topic/13430/second-thermocouple-daughterboard-not-recognized/6](https://forum.duet3d.com/topic/13430/second-thermocouple-daughterboard-not-recognized/6)
        - [https://forum.duet3d.com/topic/14215/hangprinter-help-on-duet-3](https://forum.duet3d.com/topic/14215/hangprinter-help-on-duet-3)
21. Other Hangprinter related things 
    1. [https://github.com/mariolukas/OctoPrint-Hangprinter](https://github.com/mariolukas/OctoPrint-Hangprinter)
    2. [https://github.com/fredrudolf/hangprinter-computer-vision-calibration](https://github.com/fredrudolf/hangprinter-computer-vision-calibration)
    3. [https://github.com/avenues-hangprinter-team/Avenues-Hangprinter-Manual](https://github.com/avenues-hangprinter-team/Avenues-Hangprinter-Manual)
    4. [https://github.com/avenues-hangprinter-team/Avenues-Hangprinter-V3-Documentation](https://github.com/avenues-hangprinter-team/Avenues-Hangprinter-V3-Documentation)

# What next?

This project has a lot of remaining possible ToDo's which could be done. While doing the project a lot of ideas came up and even more ideas were found by other creative heads on the web. This page contains a collection of unfinished things and good ideas for general Hangprinter and Trikarus improvements. This site might not be complete and it can happen that you find the one or the other additional idea / information on some of project's sub pages.

## Recent ToDo's

### <span class="placeholder-inline-tasks">Software / Firmware / Hardware  
</span>

- <span class="placeholder-inline-tasks">finish IMU 9250 monitoring and trigger routines (alerting) for unwanted effector tilts  
    </span>
- <span class="placeholder-inline-tasks">finish MPU 6250 monitoring of vibrations</span>
- <span class="placeholder-inline-tasks">fix the filament feed encoder at the tool head (not working mechanically right now)  
    </span>
- <span class="placeholder-inline-tasks">test out the Z limit switch and try to measure maximum movable Z height with it</span><span class="placeholder-inline-tasks">  
    </span>
- <span class="placeholder-inline-tasks">create some script to perform dry-run movements within the build envelope to validate the reachable coordinates (generate dryrun gcode to move circles with different diameter in different heights)</span>
- <span class="placeholder-inline-tasks">monitoring / statistics</span>
    - <span class="placeholder-inline-tasks">create dashboard from datasources to collect information about total print time, finished print jobs, printed filament amount (we can use information like Feed Encoder and Repetier Server job management). Add statistics for per day/week/month</span>
    - <span class="placeholder-inline-tasks">make influxdb aggregation files to reduce the process load (push sets of data instead of single data lines)</span>
    - <span class="placeholder-inline-tasks">add some alert for non-moving filament while printer is printing - compare feed encoder data (time between pulse, length, ...) with targeted extrusion value from Repetier or Duet API</span>
    - Add bluetooth connection monitoring
    - Add I2C monitoring
- <span class="placeholder-inline-tasks">make more convenient scripts using less bash and more python / keep it consistent</span>
- <span class="placeholder-inline-tasks">create some horizontal cable holder to force main cable movement (protect cable to collide with print object below effector in case the cable falls down the effector)</span>
- <span class="placeholder-inline-tasks">Grafana: fix line buildup formula for calculation of position</span>
- <span class="placeholder-inline-tasks">Fix possible python USB serial write timeouts</span>
- <span class="placeholder-inline-tasks">Add some physical buffer between webcam and machine frame to reduce wobbling while making snapshot images (time lapse)</span>
- <span class="placeholder-inline-tasks">Repetier Server 1.0.4 - add GPIO operations</span>

### <span class="placeholder-inline-tasks">Calibration</span><span class="placeholder-inline-tasks">/documentation</span>

- <span class="placeholder-inline-tasks">document the anchor point measurement methods  
    </span>
- <span class="placeholder-inline-tasks">document how to find best line buildup compensation (Q and R factors)</span>

### <span class="placeholder-inline-tasks">Slicing</span>

- <span class="placeholder-inline-tasks">Build volume</span>
    - <span class="placeholder-inline-tasks">Make a parametric OpenSCAD 3D model which displays the maximum theoretical build volume shape of Hangprinter, based on the entered anchor point locations (kind of (hyperbolic) tetrahedron). </span>
    - <span class="placeholder-inline-tasks">Add some cutoffs for the existing bed shape + the slicer shape (cylinder) + effector/transportation height cut off (dead height)  
        </span>
    - <span class="placeholder-inline-tasks">make a feature request for PrusaSlicer (and other slicers) to support Hangprinter build volume shape</span>
- Check out [ 3doptimizer.com](https://3doptimizer.com/)
- adjust MVS (max. volumetric speed)   
    
    - [https://grabcad.com/tutorials/dialing-in-a-filament-and-specifying-the-max-volumetric-e-xtrusion-value](https://grabcad.com/tutorials/dialing-in-a-filament-and-specifying-the-max-volumetric-e-xtrusion-value)
    - [https://help.prusa3d.com/en/article/max-volumetric-speed\_127176](https://help.prusa3d.com/en/article/max-volumetric-speed_127176)
    - [https://projects.ttlexceeded.com/3dprinting\_techniques\_calibrating\_volumetric\_rate.html](https://projects.ttlexceeded.com/3dprinting_techniques_calibrating_volumetric_rate.html)

### <span class="placeholder-inline-tasks">Printing</span>

- <span class="placeholder-inline-tasks">Check out the recover print functions and the different possibilities using Repetier Server and DWC</span>
- <span class="placeholder-inline-tasks">Check out filament changing routine</span>
- <span class="placeholder-inline-tasks">add some heating for print (higher layer might warp excessively)</span>

### <span class="placeholder-inline-tasks">Testing/monitoring</span>

- <span class="placeholder-inline-tasks">check out how long lines live until they have to be replaced  
    </span>
- <span class="placeholder-inline-tasks">long-term monitoring of prints and correlating values (Smart Stepper errors, vibrations, tilts, room temperature, ...)</span>

### <span class="placeholder-inline-tasks">Recent hardware</span>

- find out life time of UPS batteries

---

### <span class="placeholder-inline-tasks">Ideas for better prototype h</span><span class="placeholder-inline-tasks">ardware/ electronics</span>

<span class="placeholder-inline-tasks">Because Trikarus is installed at a public place we cannot change most things now ("never touch a running system") but we can think about some generic things. Things listed below are topics to be done in future and hopefully by a large bunch of people</span>

- <span class="placeholder-inline-tasks">Measuring / calibration</span>
    - <span class="placeholder-inline-tasks"><s>check out the</s> integrate auto calibration routine<s> and what's wrong with it</s> → [use tobben's hp-mark implementation](https://www.youtube.com/watch?v=As3Y5J2NTGA)  
        </span>
    - <span class="placeholder-inline-tasks">Make it easier to get anchor point coordinates manually (might require new anchor hardware)</span>
- <span class="placeholder-inline-tasks">Wifi / Switch / Router</span>
    - <span class="placeholder-inline-tasks">use a smaller router or some FritzBox. Those can be used to repeat Freifunk network or any other SSID with total ease  
        </span>
    - <span class="placeholder-inline-tasks">buy one with SIM card slot → maybe use </span>[Freenet Funk](https://www.lte-anbieter.info/lte-news/freenet-funk-unlimited-vorteile-und-grenzen) or [netzclub.net](https://www.netzclub.net/sim-karte-bestellen/)
    - <span class="placeholder-inline-tasks">do not use Freifunk as main network because it is limited to the city</span>
    - <span class="placeholder-inline-tasks">use one with 2.4G + 5G or 5G only</span>
    - <span class="placeholder-inline-tasks">use one with more than 2 meters Wifi range (when a lot of other nets are around) than the used TP-Link - connection between LifeTab Tablet und Router is nearly impossible and unstable  
        </span>
    - <span class="placeholder-inline-tasks">add a more recent Android tablet to Trikarus which allows to attach [a USB LAN Interface.](https://www.strahlend-gesund.de/tipp/aus-der-praxis/37-smartphone-tablet-lan) So we can switch off the second SSID created at our top Freifunk router</span>
- <span class="placeholder-inline-tasks">Line guiding</span>
    - <span class="placeholder-inline-tasks">omit self-twisting lines while installing them on spools and anchors</span>
    - <span class="placeholder-inline-tasks">reduce the maximum wrap-around length of the line over V shape bearing</span>
    - <span class="placeholder-inline-tasks">generally switch from V shape bearings to U shaped ones (better for life time)</span>
    - <span class="placeholder-inline-tasks">search for smaller ceramic inlets (or make some custom parts using PTFE sticks)</span>
    - <span class="placeholder-inline-tasks">reduce friction to let it behave more smooth like in [https://vimeo.com/227891846](https://vimeo.com/227891846) (maybe it has to be stronger because we use doubled line feature and a lot of ceramic inserts and bearings)</span>
- <span class="placeholder-inline-tasks">Drives and spools</span>
    - <span class="placeholder-inline-tasks">monitor temperatures of Smart Steppers</span>
    - <span class="placeholder-inline-tasks">monitor temperatures of Nema 17 motors</span><span class="placeholder-inline-tasks">  
        </span>
    - <span class="placeholder-inline-tasks">add some small protection frame for the connected wires at the terminals at Smart Steppers</span>
    - <span class="placeholder-inline-tasks">add thin grooves on the spool surface so line buildup is more controlled</span>
    - <span class="placeholder-inline-tasks">make spools wider so the line cannot buildup on each other but only next to each other (only deviation: line is switching from left to right → angle must be calculated)</span>
    - <span class="placeholder-inline-tasks">make drives with brakes → [Drive motor brakes](https://old.stadtfabrikanten.org/display/HAN/Drive+motor+brakes)</span>
    - <span class="placeholder-inline-tasks">redesign the spools to have coils which can be charged with line independently (gives better control over tension). We could install one motor per line and mirror the step signals. Would be a heavy printer ceiling module we but could control all motors precisely regarding to line errors (tension)</span>
    - <span class="placeholder-inline-tasks">another idea: design coils which are so thin that the line cannot lay over each other with criss-cross (0.55 mm thin spool - just 0.05 mm thicker than the line) → large buildup but maybe more exact</span>
    - <span class="placeholder-inline-tasks">another idea: make drive which does not require buildup compensation because we store the line on a separate spool with retraction system (like draw wire encoders or VR retraction system for main cable). Let the line move over a well shaped spiral on a shaft which exists to transmit the line straight forward (line must we tensioned all the time so the winding on the spiral does not get lost. maybe some buffer (sleeving) could be pushed over the spiral)</span>
- <span class="placeholder-inline-tasks">Filament feed system</span>
    - <span class="placeholder-inline-tasks">make some active filament feed system for large spools (&gt; 5 kg) for the ground (because mounting over head is not nice) → [Bluetooth Arduino Filament Feeder, Weigh and Monitor](https://old.stadtfabrikanten.org/display/HAN/Bluetooth+Arduino+Filament+Feeder%2C+Weigh+and+Monitor)</span>
        - <span class="placeholder-inline-tasks">make all known spools compatible</span>
            - <span class="placeholder-inline-tasks">Redline Filament spool 8.5 kg → 335 x 168 mm, 13 mm thick border, inner diameter 36 mm</span>
            - <span class="placeholder-inline-tasks">Das Filament spool 2.6 kg → 300 x 100 mm, ?? mm thick border, inner diameter 50 mm</span>
            - <span class="placeholder-inline-tasks">Prusa Filament spool 1 kg → 200 x 90 x 4.5 mm thick border, inner diameter 50 mm</span>
- <span class="placeholder-inline-tasks">General electronics / cable management</span>
    - <span class="placeholder-inline-tasks">do some well prepared cabling system</span>
    - <span class="placeholder-inline-tasks">reduce system to basic machine requirements (remove LED stripes and spots) or if installed LED things we could use PWM stuff to dim the light</span>
    - <span class="placeholder-inline-tasks">add a better emergency halt wiring for portable use</span>
    - <span class="placeholder-inline-tasks">replace relays to 3.3 V optocouplers (better compability with Raspberry Pi GPIO)</span>
    - rethink the situation with long cables and data synchronization using I2C → see this [hackaday.com](https://hackaday.com/2017/02/08/taking-the-leap-off-board-an-introduction-to-i2c-over-long-wires/) post
    - use fans with tacho signal to monitor fan speed (security feature)
- <span class="placeholder-inline-tasks">Portable machine frame</span>
    - <span class="placeholder-inline-tasks">fix tolerances in steel construction</span>
    - <span class="placeholder-inline-tasks">change gas compression spring (lost their pressure)</span>
    - <span class="placeholder-inline-tasks">add additional springs to the gas springs to have some force at the lower positions</span>
    - <span class="placeholder-inline-tasks">replace quick releases with some mechanism to fold the frame without needing a ladder - current quick releases can easily be destroyed by folding frame without releasing them first (shear-off)  
        </span>
    - <span class="placeholder-inline-tasks">use less different neodymium magnets for clips</span>
- <span class="placeholder-inline-tasks">Raspberry Pi's</span>
    - <span class="placeholder-inline-tasks">add second Raspberry Pi which only handles monitoring (InfluxDB). This will reduce the load on the print server Raspberry Pi and this reduces overload peaks which result in halted printed (for some seconds)</span>
    - <span class="placeholder-inline-tasks">upgrade to use Raspberry Pi 4 with more performance (recent Pi has much system load when rendering time lapse videos. This makes the system unresponsible for longer time)  
        </span>
    - <span class="placeholder-inline-tasks">add active cooling fans (temperature &gt; 60°C reached really often)</span>
    - <span class="placeholder-inline-tasks">add active (fans) or passing cooling (air slots in ceiling plate) for stepper motors which get hot after time</span>
    - <span class="placeholder-inline-tasks">add remote Reset/Power Down of Raspberry Pi using PEN/RUN pins  
        </span>
    - use a non-backfeeding USB hub for connected devices → [https://elinux.org/RPi\_Powered\_USB\_Hubs](https://elinux.org/RPi_Powered_USB_Hubs)
- <span class="placeholder-inline-tasks">UPS and USB wiring</span>
    - <span class="placeholder-inline-tasks">omit undervoltage events using appopriate thick short cables and well rated UPS (we were not possible to suck out the required power from the recent UPS)</span>
- <span class="placeholder-inline-tasks">Extruder</span>
    - <span class="placeholder-inline-tasks">add better cooling. When printing quick (60 mm/s and more) with SuperVolcano the cooling is unsuffiecent. 2 or more fans should help to get better surface quality</span>
    - <span class="placeholder-inline-tasks">add system for quick tool changing (e.g. magnetic) → + </span><span class="placeholder-inline-tasks">make pluggable wiring for extruder</span>
    - add redundant PT100 sensor (second)
- <span class="placeholder-inline-tasks">Effector</span>
    - <span class="placeholder-inline-tasks">change amount of fixing screws from 2 to 1 thumb screws for "felt fixators" (easier installation)</span>
    - <span class="placeholder-inline-tasks">add rubber buffers at the corners which secure effector in case it's in free fall (tearing lines)</span>
    - <span class="placeholder-inline-tasks">add system for quicker line changing</span>
- <span class="placeholder-inline-tasks">Bottom anchors</span>
    - <span class="placeholder-inline-tasks">add spirit levels to each fork for quick leveling at the ground</span>
    - <span class="placeholder-inline-tasks">add one guitar tuner per anchor (directory to the anchor) instead of wiring A1/A2, B1/B2 and C1/C2 to a common tuner. That would give better manual tension control and helps to easier adjust rotation of effector around Z axis.</span>
    - avoid lines jumping off the bearing when untensioned (fixate using another ceramic inlet for example)
    - <span class="placeholder-inline-tasks">we should test out what could better: one or two fixed tuners for the lines or "floating tuner" which has a combined knot for A1/A2, B1/B2 and C1/C2. Guessing the last would decrease accuracy because lines per pair will normalize their tension but that might reduce positioning exactness.</span>
- <span class="placeholder-inline-tasks">Heated bed</span>
    - <span class="placeholder-inline-tasks">design one. Maybe use underfloor heating of the building itself or use something with hot water circulatory</span>
- <span class="placeholder-inline-tasks">Laser pointers</span>
    - <span class="placeholder-inline-tasks">make the beam adjustable remotely using deflection mirros instead of screwing down with set screws</span>
- <span class="placeholder-inline-tasks">Z limit switch</span>
    - <span class="placeholder-inline-tasks">simulate switch using Smart Stepper (sensorless homing using error +/-) or perform contactless using IR for example</span>
- <span class="placeholder-inline-tasks">Security</span>
    - <span class="placeholder-inline-tasks">add PIR sensor or laser sensors to react on people entering the working area (build volume) - e.g. halt print, make some sound or print slower for example</span>
- <span class="placeholder-inline-tasks">Duet / RepRapFirmware</span>
    - <span class="placeholder-inline-tasks">add some routine to RepRapFirmware to disallow movements which are not in the build volume. At the moment we can try to reach unreachable coordinates. This results in line mess on spools)</span>
    - make I2C/TWI compatible with Duet + Smart Steppers → use TWI support of Duet (TWD0, TWCK0 pins on expansion header) and send and receive I2C commands with [M260](https://duet3d.dozuki.com/Wiki/Gcode#Section_M260_i2c_Send_and_or_request_Data) see also ([forum.duet3d.com)](https://forum.duet3d.com/topic/14517/i2c-baud-rate/5)
        - M114 S1 should work then which would help a lot for [Building basics, checks, maintenance](https://old.stadtfabrikanten.org/display/TH/Building+basics%2C+checks%2C+maintenance) - we could convert the Repetier Server Smart Stepper control mode scripts into GCode aliases (see [Smart Stepper - calibration and control modes (sPID mode, pPID mode and torque mode)](https://old.stadtfabrikanten.org/pages/viewpage.action?pageId=70811759)
    - Udapte to RRF 3 → see [https://forum.duet3d.com/topic/14215/hangprinter-help-on-duet-3/10](https://forum.duet3d.com/topic/14215/hangprinter-help-on-duet-3/10)
    - have a look into Klipper Firmware which seems to support cable winch driven printers too → [https://github.com/KevinOConnor/klipper](https://github.com/KevinOConnor/klipper/)
    - upgrade hardware to HangPrinter v4 which supports native stock firmware soon instead custom firmware → "Later on, HP4 support will hopefully stabilize and be merged into all major firmwares, and this directory can simply contain instructions and configuration recommendations." ([https://gitlab.com/tobben/hangprinter/-/tree/version\_4/firmware](https://gitlab.com/tobben/hangprinter/-/tree/version_4/firmware))
    - <span class="placeholder-inline-tasks">wire Gyro/IMU directly with Duet and implement algorithms to control the printer using I2C data (real time data)  
        </span>
    - **<span class="mw-headline">Home position using IMU (idea from [https://www.appropedia.org/Clerck,\_a\_RepRap\_3D\_printer\_hanging\_from\_the\_ceiling](https://www.appropedia.org/Clerck,_a_RepRap_3D_printer_hanging_from_the_ceiling))</span>**
        
        
        1. If printer is not horizontal, tighten D-lines until it is **(even if the effector was configured to be horizontal it could change its levelness while printing because the D spool spools up the 3 D lines unevenly)**
        2. Lower printer (extend D-lines) until hot end crashes into print surface
        3. Set D-length. D-axis is now calibrated
        4. Extend D-lines an additional 2 mm
        5. While not horizontal: 
            1. Calculate direction of inclination
            2. Tighten A, B or C to counteract inclination
        6. Tighten D-lines 2 mm
        7. We are now at home position, all axes calibrated
    - **<span class="mw-headline">Automatic slack line compensation idea using IMU (idea from [https://www.appropedia.org/Clerck,\_a\_RepRap\_3D\_printer\_hanging\_from\_the\_ceiling](https://www.appropedia.org/Clerck,_a_RepRap_3D_printer_hanging_from_the_ceiling))</span>**
        
        
        1. Compute some quantity describing "expected jerk" from gcode (Marlin and other firmware already does this. In Marlin the value would be tucked into the block\_t struct)
        2. Use IMU to record "observed jerk" (again tucking it into block\_t in Marlin)
        3. Write a function `F(expected jerk, observed jerk)` → `Move_to_tighten_strings`, and call it once in a while
        4. since cheap 6-axis IMUs are really good at recording rotation, I expect the notion of "jerk" to include rotation (with expected rotation always 0). Timing will be really important, but Hangprinter-Marlin already has five `nop` operations in the middle of the stepping code (see the workhorse function in `stepper.cpp`), that could be utilized for IMU readings at precisely the right times. The `nop`s are just there to wait for drv8825 stepper driver chips anyways.
- <span class="placeholder-inline-tasks">Force / tension sensing</span>
    - <span class="placeholder-inline-tasks">add some kind of tension sensing system for all nine ABCD lines. The information can be used to do emergency halt if force exceeds limits (like line tripping) or to compensate the error</span>
    - <span class="placeholder-inline-tasks">add some constant force springs to the ABC lines to create better tension</span>
    - <span class="placeholder-inline-tasks">we cannot use the Smart stepper torque for this because we cannot guarantee the root cause of that event (e.g. line jumped off the bearing). We can u</span>se error pin of smart steppers for emergency halt. default errorlimit is 1.8 degrees. exceeding the configured limit will turn the yellow LED lighting on the PCB and the error pin will be set to 1
    - maybe add some encoders at each pivot bearing. We could sync the measurement values and could detect issues in motion system like teared lines, greater offsets, etc.
- <span class="placeholder-inline-tasks">Absolute positioning</span>
    - <s><span class="placeholder-inline-tasks">integrate draw wire encoder per drive for absolute positioning (in case the bottom anchors are rigid we can use this for absolute XYZ positioning maybe)</span></s>
    - <s>["April Tag" Localization System](https://www.youtube.com/watch?v=Y8WEGGbLWlA)</s>
    - <s><span class="placeholder-inline-tasks">[libsurvive (Open Source Lighthouse Tracking System)](https://github.com/cntools/libsurvive#lists-of-components)</span></s>
    - <s><span class="placeholder-inline-tasks">[vivetracker ](https://github.com/ashtuchkin/vive-diy-position-sensor)</span></s>
    - <s>[hivetracker](https://medium.com/hacksters-blog/sub-millimeter-3d-positioning-with-hivetracker-ed213b1ea0c1)</s>
    - <s>[pozyx.io](https://www.pozyx.io/shop/product/creator-kit-65)</s>
    - <s>camera tracking system with LEDs on the effector</s>
    - [tobben's hp-mark implementation](https://www.youtube.com/watch?v=As3Y5J2NTGA)