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