@droftarts 3.6.0 beta 2 and beta 3 tried both

Posts made by SanderLPFRG
-
RE: move outside of machine limits with G2 move, in tool 2
-
move outside of machine limits with G2 move, in tool 2
when printing with tool 2, I often get a "outside of machine limits" error at the first G2 movement of a Gcode, even if the moves are well within these limits. Below I attached my config, the first part of the failing code, and the console with error.
Testing I already did;
- The same code does print correctly with Tool 1.
- The same model (nothing else changed) does print when arc fitting is disabled
Could this be a bug?
Console;
24/01/2025, 12:04:19: Connected to one.local 24/01/2025, 12:05:07: Connection established 24/01/2025, 12:05:57: M32 "0:/gcodes/ONE_P-0026789 v1_0.2mm_PETG_1d13h17m.gcode": File 0:/gcodes/ONE_P-0026789 v1_0.2mm_PETG_1d13h17m.gcode selected for printing 24/01/2025, 12:06:01: : Warning: Tool 0 was not driven because its heater temperatures were not high enough or it has a heater fault 24/01/2025, 12:07:58: : Leadscrew adjustments made: 0.715 1.917 0.735, points used 3, (mean, deviation) before (0.464, 0.433) after (-0.000, 0.000) 24/01/2025, 12:08:33: : Leadscrew adjustments made: 0.283 0.278 0.292, points used 3, (mean, deviation) before (0.290, 0.004) after (-0.000, 0.000) 24/01/2025, 12:10:09: : Cancelled printing file 0:/gcodes/ONE_P-0026789 v1_0.2mm_PETG_1d13h17m.gcode, print time was 0h 4m 24/01/2025, 12:10:09: : Error: in GCode file line 53: G2: outside machine limits <---------------- this is the error I mean
Gcode;
; generated by PrusaSlicer 0.1.0 on 2025-01-23 at 14:07:14 UTC ; Speed; ** ; Visual; ** ; Strengh ;***** ; external perimeters extrusion width = 0.44mm ; perimeters extrusion width = 0.44mm ; infill extrusion width = 0.44mm ; solid infill extrusion width = 0.44mm ; top infill extrusion width = 0.44mm ; first layer extrusion width = 0.44mm M201 X7000 Y7000 Z200 E10000 ; sets maximum accelerations, mm/sec^2 M203 X24000 Y24000 Z720 E6000 ; sets maximum feedrates, mm / min M204 P4000 T5000 ; sets acceleration (P, T), mm/sec^2 M566 X480.00 Y480.00 Z120.00 E1200.00 ; sets the jerk limits, mm/min ; printing object P-0026789 v1.stl id:0 copy 0 ; stop printing object P-0026789 v1.stl id:0 copy 0 ;TYPE:Custom ;Prusaslicer section; ; Define prusaslicer variables ; called with M98 P"0:/macros/print-start" M98 P"0:/macros/print-start" A220 B240 C50 D243.852 E356.148 F193.852 H306.148 I1 J"false" K"true" L"FLEX" O"PETG" Q0.4 R0.4 S150 T170 G21 ; set units to millimeters G90 ; use absolute coordinates M83 ; use relative distances for extrusion ; Begin toolchange script ; End toolchange script T1 ; Filament gcode M107 ;LAYER_CHANGE ;Z:0.2 ;HEIGHT:0.2 ; printing object P-0026789 v1.stl id:0 copy 0 G1 E-.7 F2100 ; stop printing object P-0026789 v1.stl id:0 copy 0 G1 Z1.7 F720 G1 X272.388 Y226.982 F24000 G1 Z.2 F720 G1 E.7 F1500 M204 P2000 ;TYPE:Skirt/Brim ;WIDTH:0.44 G1 F3300 G2 X303.244 Y214.197 I27.609 J23.006 E6.30864 ;< ------------- this is line 53, gives the error G2 X281.929 Y218.923 I-3.136 J36.289 E.73211 G2 X272.427 Y226.936 I18.068 J31.065 E.41247 M204 P4000
Config;
;------------------------------ General settings -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ; Preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"one" ; set printer name G4 S5 ; Set global variables global leftloadedfilament = "PLA" global rightloadedfilament = "PLA" global leftnozzlesize = "0.40" global rightnozzlesize = "0.40" global variableprobel = 10000 global variableprober = 10000 ; Reset probe trigger values on reset ;------------------------------ Drive and motion -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ; Drive & motion definition M569 P60.0 S1 ; physical drive 60.0 goes backwards (E1) M569 P61.0 S0 ; physical drive 61.0 goes backwards (E2) M569 P0.0 S0 ; physical drive 0.0 goes backwards (X) M569 P0.1 S0 ; physical drive 0.1 goes backwards (Y1) M569 P0.4 S1 ; physical drive 0.4 goes forwards (Y2) M569 P0.5 S0 ; physical drive 0.5 goes forwards (U) M569 P50.0 S0 D3 ; physical drive 50.0 goes forwards (V) M569 P51.0 S0 D3 ; physical drive 51.0 goes forwards (W) M569 P1.0 S0 ; physical drive 1.0 goes forwards (Z1) M569 P1.1 S0 ; physical drive 1.1 goes forwards (Z2) M569 P1.2 S0 ; physical drive 1.2 goes forwards (Z3) M970 X1 U1 Y1 M584 X0.0 U0.5 Y0.1:0.4 E60.0:61.0 Z1.0:1.1:1.2 V50.0 W51.0 ; set drive mapping M669 K11 X1:0:0:0 Y1:1:0:-1 Z0:0:-1:0 U0:0:0:1 ; set markforged kinematics M350 X16 U16 Y16 Z16 V32 W32 I1 ; configure axis microstepping with interpolation M350 E16:16 I1 ; configure extruder microstepping with interpolation M92 X80 Y80 Y80 E800:800 Z800.00 V17777.78 W17777.78 ; set steps per mm M906 X2100 U2100 Y2100 E580:580 Z1900 V165 W165 I40 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; set idle timeout ; Machine axis limits M208 X-70.5 U0 Y0 Z0 V0 W0 S1 ; set axis minimal M208 X600 U672.5 Y510 Z600 V14 W14 S0 ; set axis maximal M671 X702.75:300:-102.75 Y47.125:-537.35:47.125 S10 ; Z leadscrews are at (-41,-14), (130,325.5) and (601, -14) and set compensation allowance to 20mm ;M671 X-102.75:300:702.75 Y-47.125:537.35:-47.125 S10 ; Z leadscrews are at (-102.75,-47.125), (300,537,35) and (702,75, -47,125) and set compensation allowance to 20mm ; Machine movement limits M203 X30000 U30000 Y30000 E12000:12000 Z1200 V180 W180 ; set maximum speeds (mm/min) M201 X8000 U8000 Y8000 E2500:2500 Z100.00 V2 W2 ; set maximum accelerations (mm/s^2) ; Machine motion settings M593 P"MZV" F37 S0.05 ; set ZVD input shaping to cancel ringing at 40.5Hz M566 X540 U540 Y540 E1200:1200 Z900 V100 W100 ; set instantaneous speed changes (mm/min) M204 P1500 T8000 ; set actual accelerations ;------------------------------ Sensors and inputs ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ; Endstops M574 X1 S1 P"^!50.io1.in" ; configure switch-type endstop for low end on X via pin 2.io3.in M574 U2 S1 P"^!51.io1.in" ; configure switch-type endstop for high end on U via pin 2.io1.in M574 Y2 S1 P"io2.in" ; configure switch-type endstop for high end on Y via pin 2.io2.in M574 V2 S1 P"50.io0.in" ; configure switch-type endstop for high end on V via pin 1.io2.in M574 W2 S1 P"51.io0.in" ; configure switch-type endstop for high end on W via pin 1.io3.in ; Z-Probe M558 K0 P11 C"50.temp2" H7:1 F300:120 T21000 A3 S0.05 R1 ; Set E1 Z probe, set dive height, probe speed, required accuracy and travel speed set global.variableprobel = {sensors.probes[0].value[0]}+2750 G31 K0 P{global.variableprobel} X0 Y0 Z-0.45 ; Set Z offset of E1 probe M558 K1 P11 C"51.temp2" H7:1 F300:120 T21000 A3 S0.05 R1 ; Set E1 Z probe, set dive height, probe speed, required accuracy and travel speed set global.variableprober = {sensors.probes[1].value[0]}+2750 G31 K1 P{global.variableprober} U0 Y0 Z-0.45 ; Set Z offset of E1 probe M557 X25:575 Y25:475 P7:5 ; define mesh grid M376 H10 ; Filament control buttons ;M950 J1 C"2.io2.in" ; define logical input for E1 filamentsensor ;M581 P1 T2 S0 R0 ; define trigger for filament auto load triggers trigger2.g ;M950 J2 C"2.io3.in" ; define logical input for E1 filamentunload ;M581 P2 T3 S0 R0 ; define trigger for filament auto unload triggers trigger3.g ;M950 J3 C"2.io4.in" ; define logical input for E2 filamentsensor ;M581 P3 T4 S0 R0 ; define trigger for filament auto load triggers trigger4.g ;M950 J4 C"2.io5.in" ; define logical input for E2 filamentunload ;M581 P4 T5 S0 R0 ; define trigger for filament auto unload triggers trigger5.g ; Accelerometer inputs M955 P"50.0" I16 ; configure accelerometer sensor, set orientation, sampling and resolution M955 P"60.0" I46 ; configure accelerometer sensor, set orientation, sampling and resolution M955 P"51.0" I16 ; configure accelerometer sensor, set orientation, sampling and resolution M955 P"61.0" I46 ; configure accelerometer sensor, set orientation, sampling and resolution ;------------------------------ Heaters and Fan outputs ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ; Heaters, Bed zones M308 S0 P"temp0" Y"thermistor" A"Bed zone 1" T100000 B3950 ; configure bed zone 1 temperature sensor M950 H0 C"out1" T0 ; create bed heater output and map it to correct sensor M307 H0 R0.362 K0.500:0.000 D6.39 E1.35 S1.00 B0 ; enable and set PID temperature control for bed zone 1 M140 P0 H0 ; map bed zone 1 to correct heater M143 H0 S120 ; set temperatare limit for heater 0 to 120C M308 S1 P"temp1" Y"thermistor" A"Bed zone 2" T100000 B3950 ; configure bed zone 2 temperature sensor M950 H1 C"out2" T1 ; create bed heater output and map it to correct sensor M307 H1 R0.362 K0.500:0.000 D6.39 E1.35 S1.00 B0 ; enable and set PID temperature control for bed zone 2 M140 P1 H1 ; map bed zone 1 to correct heater M143 H1 S120 ; set temperatare limit for heater 1 to 120C ; Heaters, extruder M308 S2 P"60.temp0" Y"thermistor" A"Nozzle1" ; configure left printhead temperature sensor M950 H2 C"60.out0" T2 ; create left printhead heater output and map it to correct sensor M307 H2 R2.581 K0.635:0.000 D4.58 E1.35 S1.00 B0 V23.7 ; enable and set PID temperature control for left printhead M143 H2 P1 S350 ; set temperature limit for left printhead to 280C M572 D0 S0.01 ; set pressure advance for left printhead ;M308 S4 P"temp3" Y"thermistor" A"HeatsinkLeft" T100000 B4138 M308 S3 P"61.temp0" Y"pt1000" A"Nozzle2" ; configure right printhead temperature sensor M950 H3 C"61.out0" T3 ; create left printhead heater output and map it to correct sensor M307 H3 R2.736 K0.422:0.391 D4.34 E1.35 S1.00 B0 V24.0 ; enable and set PID temperature control for lerightt printhead M143 H3 P2 S350 ; set temperature limit for right printhead to 280C M572 D1 S0.01 ; set pressure advance for right printhead ;M308 S5 P"temp2" Y"thermistor" A"HeatsinkRight" T100000 B4138 ; Fans M950 F0 C"60.out1" Q317.5 ; create fan 0 (E1 part) on pin 2.out3 and set its frequency M106 P0 S0 H-1 C"Tool1 part" ; set fan 0 value. Thermostatic control is turned off M950 F1 C"61.out1" Q317.5 ; create fan 1 (E2 part) on pin 2.out4 and set its frequency M106 P1 S0 H-1 C"Tool2 part" ; set fan 1 value. Thermostatic control is turned off M950 F2 C"60.io0.out" Q500 ; create fan 2 (E1 heat) on pin out5 and set its frequency M106 P2 S1 H2 T45:50 ; set fan 2 value. Thermostatic control is turned on M106 P2 S1 H2 T45:50 C"Tool1 Heat" ; set fan 2 value. Thermostatic control is turned on M950 F3 C"61.io0.out" Q500 ; create fan 3 (E2 heat) on pin out6 and set its frequency M106 P3 S1 H3 T45:50 C"Tool2 Heat" ; set fan 3 value. Thermostatic control is turned on M950 F4 C"1.out3" Q500 ; create fan 4 (SBC) on pin out6 and set its frequency M106 P4 S1 H-1 C"PC" ; create fan 4 value. Thermostatic control is turned on M950 F5 C"1.out4" Q500 ; create fan 5 (main) on pin out6 and set its frequency M106 P5 S1 H-1 C"Mainboard" ; set fan 0 value. Thermostatic control is turned of M950 F6 C"1.out5" Q500 ; create fan 6 (exp1) on pin out6 and set its frequency M106 P6 S1 H-1 C"Expansion" ; set fan 0 value. Thermostatic control is turned off M950 F8 C"out4" Q500 ; create fan 8 (Extraction) on pin out6 and set its frequency M106 P8 S0.1 H-1 C"Extraction" ; set fan 3 value. Thermostatic control is turned on ;------------------------------ Miscellaneous ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ; Configure chamber LED ;M950 F10 C"out3" ; create chamber LED strip on correct pin ;M106 P10 C"LED" S1.0 ; define chamber LED name and set starting value ; Configure status LED M950 F11 C"1.io0.out" Q500 ; create red LED strip on correct pin M106 P11 C"RGB Red" S0.0 ; define red LED name and set starting value M950 F12 C"1.io1.out" Q500 ; create green LED strip on correct pin M106 P12 C"RGB Green" S0.0 ; define green LED name and set starting value M950 F13 C"1.io2.out" Q500 ; create blue LED strip on correct pin M106 P13 C"RGB Blue" S1.0 ; define blue LED name and set starting value ;------------------------------ Tool definition --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ; Tool Left M563 P0 S"Left" D0 H2 X0 F0 ; define tool 0 G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C ; Tool Right M563 P1 S"Right" D1 H3 X3 F1 ; define tool 1 G10 P1 U0 Y0 Z0 ; set tool 1 axis offsets G10 P1 R0 S0 ; set initial tool 1 active and standby temperatures to 0C ; Tool Duplication M563 P2 S"Dulplication" D0:1 H2:3 X0:3 F0:1 ; tool 2 uses both extruders, hot end heaters and fans, and maps X to both X and U G10 P2 X150 Y0 U-150 S0 R0 ; set tool offsets and temperatures M567 P2 E1:1 ; set mix ratio 100% on both extruders
-
RE: manual bed probe - for loadcell
@jay_s_uk yeahh I tried that already, but selective probing with scanning-type probe still tries to, youknow, scan.
Guess the only possibility is to enable the possibility to define a type1 probe on a CANboard
-
RE: manual bed probe - for loadcell
@jay_s_uk Hi, thanks for the reply
You mean setting the Probe type to P0? can I then still do a G30 probe with the load cell? -
manual bed probe - for loadcell
Hi,
I can now only configure our analogue-in loadcell probe as a SZP, which reads the signal correctly, and G30 functions well, but when doing a G29, it tries to scan the bed, resulting in a nozzle that scrapes the bed.
Until I figure out the firmware, I want to enable a simple mesh probe manually, which I want to do with;
M561 ; clear any bed transform ; If the printer hasn't been homed, home it if !move.axes[0].homed || !move.axes[1].homed || !move.axes[2].homed G28 ; Probe the bed and do auto calibration G1 X{move.axes[0].min} Y{move.axes[1].min} U{move.axes[3].max} Z10 F12000 ; go to neutral position ;Start probing G30 P0 X25 Y25 Z-99999 G30 P1 X299.5 Y25 Z-99999 G30 P2 X574 Y25 Z-99999 G30 P3 X25 Y250 Z-99999 G30 P4 X299.5 Y250 Z-99999 G30 P5 X574 Y250 Z-99999 G30 P6 X25 Y475 Z-99999 G30 P7 X299.5 Y475 Z-99999 G30 P8 X574 Y475 Z-99999 G29 S3 P"usual.csv" ; save probed points to "usual.csv"
I wonder if such thing is even possible, any tips?
-
RE: Other analog Scanning Z Probes?
@dc42 is it okay if I try to enable this functionality in a branch via github? If I manage I will make a pull request for you to integrate it into the main branches.
Lot to learn for myself, but I like a challenge.
-
RE: Other analog Scanning Z Probes?
@SanderLPFRG Got it working, version mismatch.
-
RE: Other analog Scanning Z Probes?
@dc42 I just tried to build with the latest master branch of the libtinyusb from here; https://github.com/Duet3D/LibTinyusb
I also tried the 3.6.0 beta2 release, which is the same as the rrf sourcecode I am trying to build
still did not work, same error
-
RE: Other analog Scanning Z Probes?
@dc42 please note that the tusb.h file is actually present
-
RE: Other analog Scanning Z Probes?
@dc42 said in Other analog Scanning Z Probes?:
Yeahh the biggest issue is that I do not want the loadcell configured as a scanning-type probe, but as a normal analog probe, which is prohibited for CANboards. so I am leaning to version 2.
I am trying to build new firmware for the 6HC (to remove the error it raises when remote Z probe type is not 8, 9 or 11) but I am getting building errors regarding the CoreN2G...
"../src/TinyUsbInterface.cpp:28:10: fatal error: tusb.h: No such file or directory"
-
RE: Other analog Scanning Z Probes?
@droftarts I see.
I get why it would be a possible issue with latency but for our use we need to be able to define it as such.
We found in the source code where it defines the probe and throws an error, but we would like some advice on if just removing the error gives us a solution -
RE: Other analog Scanning Z Probes?
@droftarts Old topic, but I have another general analogue output probe (loadcell with op-amp structure and amplification with custom canBUS board)
I can configure and measure using the scanning Z probe (11) definition, but a load cell is unsuitable for a "scanning" measurement. It is however not possible to define it as a P1 probe on a canbus toolboard.
May I ask why this decision was made, and where in the firmware I could look to make it possible?
-
RE: Home aditional V/W axis individually with probe
@gloomyandy could work, but the issue here is that if I just move the drive mapping to set Z=V and V=Z. the axis could move out of physical bounds, which damages the machine.
Will test tho, but I think it does add value to RRF in the future, 'just' add a parameter to G30 command.
Another thought, could a G38.2 with V target position work? I don't fully get what the target position does here.
-
RE: Home aditional V/W axis individually with probe
@SanderLPFRG @gloomyandy or @dc42? any possibilities or workarounds??
-
RE: longterm probe reliability testing
@oliof yeah load cells are susceptible to temperature differences (see the graph above) but you can correlate that enough to avoid issues.
-
RE: longterm probe reliability testing
@Notepad Thanks! it has been a long journey for us but generally, we found;
- Digital versions of chips (fe HX711 / HX717) offer (for us) a too low sampling rate (max 320Hz) so you would need to probe slowly, or it may be too inaccurate.
- Analog versions are susceptible to noise, especially within a 3D printer with all the active stepper motors. The only way we got it working is by making a custom CANbus PCB that sits only 7cm from the load cell and there filters and amplifies the analogue signal. We then read it out as an analogue probe in Duet
-
RE: longterm probe reliability testing
@Notepad works really well, thanks!
Got good results too, and plotted them in graphs! which shows a fun correlation of the temperature drift of our probe!
Thanks for the script! Appreciate it
-
Home aditional V/W axis individually with probe
Hi all,
We have made a 3D printer with 2 micro-Z printhead axes (V and W), which move the IDEX printheads up and down 14mm to level 2 different tool types and automatically adjust/calibrate the printhead Z-offset.
We first got this system working with a microswitch type probe, which we, in a macro, temporarily reconfigured as an endstop for axis V/W, which we then "homed" towards the printed until triggered. When done for both tools, this calibrated the Z-offset automatically.
Now, however, we moved over to a loadcell probe (analog readout via configuring as scanning Z-probe, amplified and filtered with custom CAN-communicated PCB) which we cannot configure as an endstop to home towards.
My question is;
Is it possible to do a G30 S-1 probe (just probe and stop) with a probe number defined (K0/K1), but move axis V or W instead of the Z-axisnote;
running 3.6.0 beta-2 -
RE: longterm probe reliability testing
My goal is to test a shitload of probes, and see how much it starts to deviate after thousands. Your script might actually work, let me test
-
longterm probe reliability testing
Hi all,
we are trying to test the reliability of our new loadcell probing system to see if it lasts 10 years.
it equals to a load of probes (213.000) which I plan to test in 4 stages (53.250 per test)
I wanted to test it with a loop;
while iterations<53250 G30 P{iterations} Z-9999 ;endif G30 P53250 Z-9999 S-1
But quite quickly I get the error "Error: G30: Z probe point index out of range"
Is there a different way to do these long tests?