Tested it out using both 3.5.4 and 3.6.0 RC1

Posts made by ComedianTF2
-
RE: M140 parameter for heating up multiple bed heaters
-
RE: M140 parameter for heating up multiple bed heaters
At the moment, using M140 P0 H0:1 doesn't seem to work very well. If I then send M140 P0 S60, it will only heat it up on heater 0, not on heater 0 and heater 1
I'm using the above code, but now with M140 P0 H0:1 instead of the two separate lines
With that, M140 P0 S60 only heats up H0, and M140 S60 does the same
-
M140 parameter for heating up multiple bed heaters
Using the M140 documentation, if you have 2 or more bed heaters, you start to run into issues if you want to heat up both bed heaters
Using M140 S60, only the first bed heater heats up
Using M140 H0 S60, followed by M140 H1 S60, it only heats up the second bed heaterYou have to use M140 P0 S60, followed by M140 P1 S60 for it to work properly
Sadly M140 P0:1 S60 doesn't seem to work
Using the following bed related configuration
M308 S0 P"temp0" Y"thermistor" A"Bed0" T100000 B4725 C7.06e-8 ; configure sensor #0 M950 H0 C"out1" T0 ; create heater #0 M143 H0 P0 T0 C0 S140 A0 ; configure heater monitor #0 for heater #0 M98 P"0:/sys/PID/PID_tune_Bed0.g" R1 ; PID settings M140 P0 H0 ; configure heated bed #0 M308 S1 P"temp1" Y"thermistor" A"Bed1" T100000 B4725 C7.06e-8 ; configure sensor #1 M950 H1 C"out2" T1 ; create heater #1 M143 H1 P0 T1 C0 S140 A0 ; configure heater monitor #0 for heater #1 M98 P"0:/sys/PID/PID_tune_Bed1.g" R1 ; PID settings bed #2 M140 P1 H1 ; configure heated bed #1 O
-
RE: Disabling or changing the axis at which babystepping is applied
Thanks, I've the macro workaround works for now, but a more integrated solution would be great. I've added a feature request on the github for the paneldue integration.
-
Disabling or changing the axis at which babystepping is applied
When using a belt printer, the slicer and thus the printer is setup using the Z axis as the belt axis, while the Y axis is the up/down movement.
Now, it's possible to babystep using M290 Y<value>, and when sending these commands everything works all fine and dandy
However the default paneldue (7i) or web interface babystepping buttons are set to always apply the babystepping to the Z (belt) axis.
Is it possible to adjust the default babystepping axis? I was thinking of maybe using the daemon.g to translate the Z babystepping into Y babystepping, but I'm not really happy with that idea as there would be significant delay between the babystepping is applied and it getting applied on the correct axis.
-
RE: 6XD not moving the steppers unless I re-send M569 command
The 'Driver Enable Polarity' (En_Pol) jumper was on the left position, set to GND
Flipping the M569 R value from R1 to R0 fixed the issue. I think that by re-sending the M569 values, it basically sent the drive enable command to 0, which then allowed things to work.
Thanks for the support, I read the post and thought I had tested the R value inversion, but for some reason I must have done that testing incorrectly before, which caused me to not look at it properly until now.
-
RE: 6XD not moving the steppers unless I re-send M569 command
I will be able to check that in January, once I'm back from holidays
Same, will test it out in January once I'm back. The wiring I've done per the guide you've shown. I had missed the driver enable polarity jumper, so that's quite likely the issue there.
With re-sending the commands we were able to get the printer up and running, and the printer has completed a successful print, though hopefully we won't need to use the driver_enable.g file I used before with the fixes recommended.
Thanks both for the help, I'll enjoy the Christmas break for now and get back to it in Jan
-
RE: 6XD not moving the steppers unless I re-send M569 command
After further testing, it seems that sending a small move command, after which sending the M569 command seems to enable them reliably.
At the bottom of the config.g I've added a M98 command calling for motor_enable.g, with the contents below
M98 P"motor_enable.g" ; enable motor at boot
M564 H0 S0 ; allow unhomed moves + moves out of min/max area. Only for testing. Remove later on G91 ; relative moves G1 X0.1 ; move 0.1mmm G1 Y0.1 ; move 0.1mmm G1 Z0.1 ; move 0.1mmm M569 P0 S0 R1 T2:2:5:2.5 ; X axis, Drive 0, active high enable, 2us minimum step pulse, 2 us minimum step interval, 5us DIR setup time and 5us hold time M569 P1 S0 R1 T2:2:5:2.5 ; Y axis M569 P2 S0 R1 T2:2:5:2.5 ; Z axis M564 H1 S1 ; re-enable safety stuff
-
RE: 6XD not moving the steppers unless I re-send M569 command
@T3P3Tony it doesn't seem to do the trick.
It's also weird that it doesn't seem like the M569 command enables it 100% if the time, I seem to work around 70% of the time, and then sometimes I gotta send it multiple times in a row until it "takes"
I'm currently testing settling the idle timeout to a very large number as well to make sure that once it takes it stays
-
6XD not moving the steppers unless I re-send M569 command
So I'm helping out a friend install a 6XD in his printer. Ideally we should have installed a 6HC, but we needed to get it up and running asap and it was out of stock locally so we went with a 6XD option.
We have managed to get movement out of the steppers, but it seems I need to re-send the M569 commands before the motors get "energized". Once they have had the commands sent, they can be moved with no issue.
The weird thing is that the commands are being sent in the config.g, but somehow aren't activating the drives there. It's only when I send them later on a second time that things work properly.
Adding these commands to the bottom tot he config.g doesn't seem to work either. Writing this out, i wonder if there is maybe there a time/power delay that would cause things?
If anyone has some clues on what to check/test for, let me know
The drivers used are SL2690A drivers, here is the manual: https://www.123-3d.nl/pdf/SL2690A--English.pdf
Per the manual, it seems that the config is 2us minimum step pulse, 2 us minimum step interval, 5us DIR setup time and 5us for the hold time. I am not 100% sure on the hold time. but testing 0, 2, 5 and 10 made no noticable difference so I kept it at 5us
The config.g is below. Note some parts of the config.g haven't been written out fully, as we're enabling things one by one to check the systems.
G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Everything3D" ; set printer name ; Network M552 S1 P0.0.0.0 ; enable network for ; Drives M569 P0 S0 R1 T2:2:5:5 ; X axis, Drive 0, active high enable, 2us minimum step pulse, 2 us minimum step interval, 5us DIR setup time and no 5us time M569 P1 S0 R1 T2:2:5:0 ; Y axis M569 P2 S0 R1 T2:2:5:0 ; Z axis ;M569 P124.0 S0 ; physical drive toolboard goes forwards using default driver timings. Update with the correct CAN address (the P value) M584 X0 Y1 Z2 ;E124.0 ; set drive mapping ;M350 E16 'M906 E1000 ; 1amp ;M350 E16 I1 ; configure microstepping with interpolation ;M906 E1000 I50 ; set motor currents (mA) and motor idle factor in per cent ; steps/mm and current set by external stepper motor M92 X200 Y200.00 Z2000.00 E400 ; set steps per mm M566 X600 Y600 Z50 E3600 ; set maximum instantaneous speed changes (mm/min) M203 X4800 Y4800 Z500 E5100 ; set maximum speeds (mm/min) M201 X600 Y600 Z15 E5100 ; set accelerations (mm/s^2) M204 P500 ; travel move accelerations M84 S100 ; Motor idle timeout ; Axis Limits M208 X0 Y0 Z-4 S1 ; set axis minima. Updated from -2 to -4 on the Z M208 X1200 Y580 Z600 S0 ; set axis maxima ; Endstops ;M574 X1 S1 P"!io1.in" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin io0 ;M574 Y2 S1 P"!io2.in" ; configure switch-type (e.g. microswitch) endstop for high end on Y via pin io1 ;M574 Z1 S2 ; configure Z-probe endstop for low end on Z ; Z-Probe ;M950 S0 C"124.io0.out" ; create servo pin 0 for BLTouch ;M558 P9 C"^124.io0.in" H5 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds ;G31 P500 X-15 Y30 Z1.7 ; set Z probe trigger value, offset and trigger height ;M557 X30:1150 Y30:570 S50 ; define mesh grid ; Heaters M140 H-1 ; disable heated bed (overrides default heater mapping) ;M308 S0 P"temp0" Y"thermistor" T4700000 B4725 ;C7.06e-8 ; configure sensor 0 as thermistor on pin temp0 ;M950 H0 C"heat0" T0 ; create nozzle heater output on heat0 and map it to sensor 0 ;M307 H0 R1.929 K0.248:0.000 D6.80 E1.35 S0.90 B0 V25 ;M143 H0 S285 ; set temperature limit for heater 0 to 285c ; Fans ;M950 F0 C"124.out0" Q500 ; HEATSINK FAN create fan 0 on pin fan0 and set its frequency ;M106 P0 S1 H0 T45 ; set fan 0 value. Thermostatic control is turned on ;M950 F1 C"124.out1" Q41 ; PART COOLING FAN create fan 1 on pin fan1 and set its frequency ;M106 P1 S0 H-1 ; set fan 1 value. Thermostatic control is turned off ; Tools ;M563 P0 D0 H0 F1 ; 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 ; Custom settings are not defined ; Toolboard ;M308 S2 P"124.temp1" Y"thermistor" A"toolboard temp" T100000 B4092 ;LCD ;M950 P1 C"LCD_D4" ;M42 P1 S0 ;G4 P500 ;M42 P1 S1 ;M918 P2 C30 F50000 E4 ;******** ;TESTING ONLY REMOVE ME IN FINAL BUILD M564 H0 S0 ; allow unhomed moves + moves out of min/max area. Only for testing. Remove later on ;TESTING ONLY REMOVE ME IN FINAL BUILD ;*********
-
RE: Auto Bed Level/Tilt Calibration with 4 z motors
@AndrewG The config.g you have seems to be quite an old one, and that bed.g wouldn't work with it. I have no idea how that would suddenly revert, but I would try and download the correct variant of the config files to use for your printer
https://github.com/Modix3D/Modix-V3-configuration-and-Macro-files/releases/tag/v3.4.5.c
edit: It might also be worth updating your firmware, those files are made for RRF3.4.5
-
RE: Need help with configuration files. Modix 120x V2 6HC 3HC
@Surgikill Good catch, I had overlooked the I1 parameter, though that shouldn't give any problems; the parameter is ignored. The rest of the deployprobe.g and retractprobe.g are correct though, and that should not give an error.
-
RE: Need help with configuration files. Modix 120x V2 6HC 3HC
@Surgikill That's quite interesting, I've been working hard to re-write the entire code of the printers, and I am pretty sure I caught all of the depreciated code. But if you point me to anything that was missed, I would love to fix it.
-
RE: Writing variables to a file, problems with nested echo commands
@dc42 Thanks for that.
Good to know that the choice selection for the M291 T0 S4 does not need to be indented, that makes a large difference and with that I should be able to get everything in a single file
-
RE: Writing variables to a file, problems with nested echo commands
@dc42 The problem is not in the variable name, I tested it and it did not work with the following script:
M30 "0:/sys/test/config_globals.g" M28 "0:/sys/test/config_globals.g" M29 M291 T0 S4 R"Welcome" P"Welcome to your Printer. Please select the version of printer you have" K{"V1","V2"} if input = 0 M291 S3 R"Version V1" P"According to this, you have a V1 printer. Press OK to confirm, or cancel to re-start" echo >"0:/sys/test/config_globals.g" "if !exists(global.config_version)" echo >>"0:/sys/test/config_globals.g" " global version = 1" global version = 1 if input = 1 M291 S3 R"Version V2" P"According to this, you have a V2 printer. Press OK to confirm, or cancel to re-start" echo >"0:/sys/test/config_globals.g" "if !exists(global.config_version)" echo >>"0:/sys/test/config_globals.g" " global version = 2" global version = 2 if global.version = 1 M291 T0 S4 R"V2 to V3" P"Do you have a A model or a B model" K{"A model","B model"} if input = 0 echo >>"0:/sys/test/config_globals.g" " global printer_model = 1" global printer_model = 1 if input = 1 echo >>"0:/sys/test/config_globals.g" " global printer_model = 2" global printer_model = 2 elif global.version = 2 M291 T0 S4 R"V2 to V3" P"Do you have a C model or a D model" K{"C model","D model"} if input = 0 echo >>"0:/sys/test/config_globals.g" " global printer_model = 1" global printer_model = 1 if input = 1 echo >>"0:/sys/test/config_globals.g" " global printer_model = 2" global printer_model = 2
That outputs (when choosing V1 and model A)
if !exists(global.config_version) global version = 1
However this combination of scripts does work:
M30 "0:/sys/test/config_globals.g" M28 "0:/sys/test/config_globals.g" M29 M291 T0 S4 R"Welcome" P"Welcome to your Printer. Please select the version of printer you have" K{"V1","V2"} if input = 0 M291 S3 R"Version V1" P"According to this, you have a V1 printer. Press OK to confirm, or cancel to re-start" echo >"0:/sys/test/config_globals.g" "if !exists(global.config_version)" echo >>"0:/sys/test/config_globals.g" " global version = 1" ;global version = 1 if input = 1 M291 S3 R"Version V2" P"According to this, you have a V2 printer. Press OK to confirm, or cancel to re-start" echo >"0:/sys/test/config_globals.g" "if !exists(global.config_version)" echo >>"0:/sys/test/config_globals.g" " global version = 2" ;global version = 2 if global.version = 1 M98 P"0:/sys/test/version1.g" elif global.generation = 2 M98 P"0:/sys/test/version2.g"
M291 T0 S4 R"V2 to V3" P"Do you have a A model or a B model" K{"A model","B model"} if input = 0 echo >>"0:/sys/test/config_globals.g" " global printer_model = 1" global printer_model = 1 if input = 1 echo >>"0:/sys/test/config_globals.g" " global printer_model = 2" global printer_model = 2
M291 T0 S4 R"V2 to V3" P"Do you have a C model or a D model" K{"C model","D model"} if input = 0 echo >>"0:/sys/test/config_globals.g" " global printer_model = 1" global printer_model = 1 if input = 1 echo >>"0:/sys/test/config_globals.g" " global printer_model = 2" global printer_model = 2
That outputs (when choosing V1 and model A)
if !exists(global.config_version) global version = 1 global printer_model = 1
I don't see a good reason why the script with everything contained in one file would not work, but that same script just split out over three files does work as it should
-
RE: Writing variables to a file, problems with nested echo commands
@dc42 a leftover from trying to diagnose the problems, I re-wrote the macro to be significantly simpler from the one I was working on, but the problems remained.
When removed it still doesn't work
-
Writing variables to a file, problems with nested echo commands
Firmware: 3.5.0-beta.4
Duet web control: 3.5.0-beta.4I am working on a script to write several global variables to a file, per a series of messages sent to a user, so the user can get the right set of variables for their printer after executing the script.
The first part of the code (line 1 through 15) work well, and in the resulting config_globals.g, the first parameters (version 1 or version 2) are set correctly
However the second set of parameters (printer model 1 or 2) are not set at all, it seems as if nestling the echo commands that deep is causing problems.
M30 "0:/sys/test/config_globals.g" M28 "0:/sys/test/config_globals.g" M29 M291 T0 S4 R"Welcome" P"Welcome to your Printer. Please select the version of printer you have" K{"V1","V2"} if input = 0 M291 S3 R"Version V1" P"According to this, you have a V1 printer. Press OK to confirm, or cancel to re-start" echo >"0:/sys/test/config_globals.g" "if !exists(global.config_version)" echo >>"0:/sys/test/config_globals.g" " global version = 1" global version = 1 if input = 1 M291 S3 R"Version V2" P"According to this, you have a V2 printer. Press OK to confirm, or cancel to re-start" echo >"0:/sys/test/config_globals.g" "if !exists(global.config_version)" echo >>"0:/sys/test/config_globals.g" " global version = 2" global version = 2 if global.version = 1 M291 T0 S4 R"V2 to V3" P"Do you have a A model or a B model" K{"A model","B model"} if input = 0 echo >>"0:/sys/test/config_globals.g" " global printer-model = 1" global printer-model = 1 if input = 1 echo >>"0:/sys/test/config_globals.g" " global printer-model = 2" global printer-model = 2 elif global.version = 2 M291 T0 S4 R"V2 to V3" P"Do you have a C model or a D model" K{"C model","D model"} if input = 0 echo >>"0:/sys/test/config_globals.g" " global printer-model = 1" global printer-model = 1 if input = 1 echo >>"0:/sys/test/config_globals.g" " global printer-model = 2" global printer-model = 2
The output of this file, selecting first version 1 and then printer model 1 is this:
if !exists(global.config_version) global version = 1
However the expected and desired code is:
if !exists(global.config_version) global version = 1 global printer-model = 1
Executing the echo commands separately does work, so I am not sure why the commands are not working when used in this fashion.
As another test, I also created two files named version1.g and version2.g, that contained the sub-scripts. In that case, the echo commands correctly wrote the global parameters to the config_globals.g
if global.version = 1 M98 P"0:/sys/test/version1.g" elif global.version = 2 M98 P"0:/sys/test/version2.g"
version1.g example:
M291 T0 S4 R"V2 to V3" P"Do you have a A model or a B model" K{"A model","B model"} if input = 0 echo >>"0:/sys/test/config_globals.g" " global printer-model = 1" ;global printer-model = 1 if input = 1 echo big120x echo >>"0:/sys/test/config_globals.g" " global printer-model = 2" ;global printer-model = 2
-
RE: PanelDue Firmware 3.5.0-rc6 released
@droftarts These are official Duet boards, wiring connections are all good. Using a long ribbon cable, have not tested it out using the 4 pin cable
With the 3.4.1 firmware there are no problems at all