Wooooah. After planning, manufacturing, building, coding and having trouble everywhere, you finally reached the goal! Now you can nearly start to print! Here are some tips for the real usage of Trikarus.
Dont's while Trikarus is printing
There are a lot of bad ideas which should never be executed while printing.
- never restart Repetier Server (it could recover your print automatically but it might fail possibly)
- never restart Raspberry Pi
- never update the Raspberry Pi operating system or any package on it
- never power off PSU
- never power off Smart Steppers
- never reboot Smart Steppers
never run G0 H2 command. The printer will move randomly to some unkown positions. This can despool your lines completely.
- never touch the emergency halt button
- never remove main power cable
Hardware pre-flight checks (filament guiding and extruder)
Printing can easily fail.
Clean the hotend
Before you print please check if the nozzle is clean. Otherwise unneccesary fumes from old sticky PLA might get into air. Cleaning also gently helps to better calibrate the nozzle. Use some old cloth to the grab old filament when hotend is hot enough. The Aero Extruder sometimes fails to extrude filament because it is clogged. In this case it is not possible to push filament through the heated hotend - wether by hand nor by using extrude command. Then we have to unscrew the assembly to remove old filament pieces and small flakes maybe. If the extruder is fine you must be able to easily push filament through the complete hotend until it leaves the nozzle.
Check the fiilament guiding
check that the filament spool can move with ease on it's mounting platform (roller frame). Use construction where filament roll is kept on two shafts which can rotate freely. This is much better than using the inner mounting hole of the spool
- if you use massive spools note that the printer cannot pull material from spools which have more than 6 kg of total weight (tested with a 8.5 kg roll of Redline Filament with 1045 grams of raw spool weight). If you do not respect it you will get failing prints. There is not active filament feed system present yet. So no change to deal with 20 kg spools right now.
check the PTFE tubing for bucklings
- check the Filament sensing with KY-040 Rotary Encoder for good grip
- allow the dangling filament string to have some free windings above extruder for the first layer. If there is too much force the filament string will lift up the effector in uncontrolled way in case the friction gets too high
- check if the extruder gear spring is adjusted fine so the hotend can grab the filament without grinding (screw is too tight) or slipping (screw is too lose)
- Put down the effector to the ground. To have a smooth and easy way to let the effector "fly" to the ground you can use /opt/sms_modes/sms_zdown.sh script
Check the line guiding
If one or more lines do not correctly seat in their bearing grooves we might get into big trouble because this will modify the line length(s) (anchor positions). We risk to destroy the lines on sharp edges and we ignore the calibration we did before spending a lot of time. Before printing check all 6 lines at the ABC frame anchor points another time. It quickly happens that a lines is not correctly mounted anymore. It can happen if a drive unwinds in an uncontrolled way so we have to wind up the whole line again.
Important daily use GCodes
Avoid using the following commands
Software preparation workflow (resetting the scene)
Before printing we need to do some preparations:
Hangprinter loses line tension on Duet rebooting or power loss. To start a print you will need to tension the lines. This can easily done by putting the printer into regular torque mode (/opt/sms_modes/sms_torque.sh) a short period of time. The drives will pull the lines. If the motors are online but they do not respond to G0/G1 moves, check if they received an enable signal accordingly. You can send
or just run the Macro "Enable Smart Steppers" with the same content. Note that this is also included in config.g in firmware as some kind of legacy workaround.
Turn on the laser pointers
- Put the printer into torque mode
- Place the effector into origin by hand (within 15 seconds - this is the default time range to operate). Make use of the laser dots projecting at the three effector corner screws and on the print platform slots. You can also use the translucent PETG lasercut template sheets for (re-)adjustments. Do this exact as much as possible. If the effector is not perfectly in physical origin you ignore the fact that you entered calibration values into the firmware which pre-define anchor point locations (which define a virtual origin) and which are required for good buildup compensation.
- let the Smart Steppers set back to sPID mode
- turn off the laser pointers again
- reset the feed encoder to zero (for clean views in Grafana monitoring)
- reset the Smart Stepper positions to zero ("setzero" command - for clean views in Grafana monitoring)
- reset the printer position to zero in RRF Firmware (G28 command; we do not use G92 X0 Y0 Z0 because it does not work always)
Those steps (plus some additional things) are done within "sms_prepare.sh"
Configuring the IR probe and auto calibration procedure for ABCD
The auto calibration routine does not yet work.
For auto calibration we need the installed IR Probe which comes with Trikarus. Remember that we already used the print platform for measuring anchor coordinates and that we said the print platform is ideally level. So there is a small logical discrepance using auto calibration. But we can use auto calibration and/or mesh bed compensation to handle slight differences due to later on happening temperature changes or things like platform primers (tapes, sprays, plates).
See RepRapFirmware and calculations about details on working M558 settings which define important values like probe dive height (this has to be higher value because otherwise we just scratch the print platform with our nozzle), vertical feed and more. We need to ensure that IR probe values returns values:
- close to zero when probe is ~ 20 mm or further away from the print platform
- around 465 when probe distance from print platform is 1 ~ 3 mm
- around 537 when probe distance is the lowest possible
- With the sensor slightly closer to a surface the red LED on the sensor board should illuminate
We need to move the effector some millimeters off the platform until LED stops illuminating. Otherwise the probing will fail because it will say "Error: Z probe was not triggered during probing move". Because we use an IR problem we do not need to deploy or retract the probe because there are no mechanics.
|poor positioning (but works)||well positioned|
You can use the following types of auto calibration:
- 3-factor: adjusts the spool zero positions. Useful as part of the homing sequence (see earlier).
- 6-factor: as 3-factor and also adjusts the B anchor Y coordinate and the C anchor X and Y coordinates
- 9-factor: as 3-factor and also adjusts the A, B and C anchor Z coordinates. This may be too sensitive to line buildup to work well.
You must use at least as many probe points as calibration factors you want to use. More probe points are better and will give you an indication of the height errors after calibration.
Auto calibration is performed by sending command G32 (which is the same command used to do auto bed compensation on a cartesian printer). This command runs macro file sys/bed.g, so all the work is done there. Here is a sample bed.g file:
The probing is commanded by the G30 commands. The probe positions and order are not critical, but you should cover at least the centre and the extremities of the bed, both next to towers and opposite the forks, and some points in between the centre and the periphery. The XY coordinates are where the nozzle will be, so if the Z probe is displaced from the nozzle then you must ensure that the probe is always over the bed. The S parameter on the last (final) G30 command is the number of factors to calibrate.
Error: unknown XY drift
This error seems to be related to non-I2C wired Smart Steppers.
Mesh bed leveling
Trikarus is not at the level to support mesh bed leveling yet and it's maybe not required to do in the future. We use a high output hotend (SuperVolcano) with high layers ( minimum 0.50 mm). More information about possible mesh bed compesation alogithm → https://duet3d.dozuki.com/Wiki/Using_mesh_bed_compensation
Dry run code for a stable examining build envelope
The current firmware does not support to check unreachable coordinates. If we command impossible coordinates the printer will try to reach them regardless the spools have enough line. The result is usually a knocked out movement system. Before printing we should try to check what coordinates are fine.
Check the sliced output and upload it to Repetier Server
After slicing the desired model within PrusaSlicer with correct parameters we are going to upload the gcode to Repetier Server. We could do this with Duet too but we use Repetier Server as centralized print server and monitoring system.
Watch the cooling of the print
With SuperVolcano hotend we definitely need to cool down the printed parts while printing quick because the amount of heat is really high when printing with 60 mm/s or above. It's less a matter when printing with default speed of 30 mm/s. Because we use Duet Web Control, Repetier Server and PrusaSlicer there are some possible caveats which lead to failure of cooling. Then the printed result will look really bad like this (0.70 mm layer height, 1.57 mm track width):
To fix cooling we need to ensure the command M106 S255 will turn on the blower fan to 100% - that's the same command which PrusaSlicer puts into exported GCode files to activate print cooling. While printing the GCode could be ignored and get turned off by fan overrides of Repetier Server and/or Duet Web Control. Make sure there is absolutely no override or at least no override with 0% fan speed (see https://forum.duet3d.com/topic/3447/ability-to-turn-pinned-fans-off-with-gcode/5):
|Repetier Server||Duet Web Control||Duet Web Control|
fans are pinned - override
|fans are unpinned - no override||fans are pinned - override|
Never use print fan for first layer because it will curl off the printed lines on the platform adhesion (blue tape)
Retightening slack lines while printing and baby stepping for first layer adhesion
While printing the lines may get slack or overtightened. Maybe we have to react to the printer's situation by babystepping up or down, or to send some additional step signals to the Smart Steppers to do some alternative line releasing or tensioning.
Watch for first layer adhesion and check if it's okay. Use baby step mechanism to tell the printer to apply the specified additional offsets to the XYZ coordinates for all future moves. It can be applied per axis of coordinate system. You cannot babystep ABCD axes but you can babystep XYZ. Ideally we do the baby step adjustment while the inital outline perimeter is printed (the line before the actual part is printed).
Height adjusting using baby stepping
Retightening lines independently using Smart Stepper interfaces
The baby stepping can only be used for Z (D drive), but we can also adjust the drives directly by sending "step" commands to the motors. We can use
You can do this while printing. Check motor errors in Grafana and adjust line tension for the motors which exceed tolerated error values (error should not be higher than 0.90).
Fixing prints while printer is running
Make the part stickier to the ground. Add mass (temporary weights) to the part or tape the part walls to make them sticky to the ground. This helps to prevent parts which peel off the platform too easily.
Last instance before aborting the print: omit broken part sectors
If printing errors occure in the middle of the print but you think you can finish it by ignoring some zones, just exclude them. This is possible with Repetier Server:
The print platform is segmented into three equal parts. If the part is printed in the center point of the bed, you can use the segmentation to remove the parts easily by pulling up segment for segment slowly. If this does not work you still can just remove the blue tape.
Restoring failed print / continuing stopped print (power loss)
In case the main power is lost the Smart Steppers will go offline. Trikarus has no drive brakes yet which could trigger to keep them in place. The result is that the effector lowers down by it's own mass. We tested this and found out that it takes about 100 ~120 seconds until the effector reached the ground from 2.5 meters height. So it does not crash but it lowers down smoothly. It still may damage the printed object on the platform if there was an object before the power loss.
Continuing and restoring prints was not tested out yet with Trikarus. This is a longterm task.
This is another not yet done longterm task.ToDo's
- enable filament runout detection
- pause and continue print routine
- keep effector in place
Shutting down (planned power down)
- The hotend needs more than 20 minutes to cool down from 240 °C to room temperature. The 40 x 40 mm fan helps cooling down. Powering off the printer by turning of the power supply unit will kill the fan so hotend takes even longer to get cold.
- To power down the machine completely (except the UPS) press the emergency halt button. That's it.
Sepcial "party" and passive idle mode
Trikarus can do nonsense automatically too. We just can let it blink and move up and down without any doubts. In case Trikarus is not printing it should just do some optical feedback for fun.
Moving the effector around in the print volume without GCode randomly
We do not use negative torque values because that could cause unwanted despooling. We use some secure values to let the effector fly a little bit to positions nearly only above print platform. Due to the used settings the effector will not move far away in anchor directions.