@gloomyandy Thanks, you're right, I was trying to use M671 incorrectly I think.
It is probably easiest to just write a macro for this and use that with the bed-level screw positions I've got.
-N
@gloomyandy Thanks, you're right, I was trying to use M671 incorrectly I think.
It is probably easiest to just write a macro for this and use that with the bed-level screw positions I've got.
-N
Thanks, had a look at M671 and it should've been obvious that there is a 4-point limitation.
For some reason, I thought I had it working on my long print bed before as a bed-leveling screw array versus a more modern pivot point definition. if that makes sense.
-N
Hi,
Previously I had a manual bed level array that had 10 positions for the Y Axis bed leveling screws (code below is now
M671 X75:450:825 Y0:320:635:950:1265:1585:1950:2250 P0.5
And running 3.5.0-rc3 I now get an error that says that the M671 array is too long. Is there something I'm overlooking in another setting?
For some reason, I don't have a bed.g file anymore either.
Thanks,
Nate
@OwenD Amazing thanks very much
@OwenD Thanks, that can be run like the M106 command in the macro?
Re: Creating a timed fan Marco and Meta
Hi,
Following on this topic, I've got a similar large format Cartesian printer with a 6HC main board and 3HC expansion boards which I've equipped with a small (M5Stack) dc motor to periodically vibrate for a second to make sure pellets are not binding in the feed passage.
I've got the DC motor connected to the IO_1 of my 3rd 3HC and it runs (constantly, I know this is on 100%, this is just for testing) with this in my config.g -
; Pellet Shaker
M950 P1 C"3.io1.out" Q450 ; create output/servo
M42 P1 S1 ; set 100% PWM on GPIO port 1
What I thought I could do is modify the code that @infiniteloop and @OwenD helped @kmoore for his pellet feed-
; filamentmonitor.g
; Check filament progress, feed pellets if needed
if job.file.fileName == null
M99
if {{global.filamentProgress + 11500.0} <= move.extruders[0].position} ;
set global.filamentProgress = {move.extruders[0].position + 11500.0}
M106 P0 S255
G4 S3
M106 P0 S0
But in my case, I'd like to switch on a fan connection on the 6HC using the M106 command and pulse the pellets a bit.
Is there a way of adding control over the DC motor connected to the IO_1 pins within that macro?
Thanks very much, Nate
Thanks @droftarts
I'm guessing it's an uncommon setup as you say, in this case it's two expansion boards each with a Y motor and a Z motor and a corresponding endstop.
Ola everyone,
I've got a question about using expansion boards and M574 Axis levelling using endstops.
My machine uses one 6HC main board and three 3HC expansion boards, ideally two Z endstops (lower limit) and two Y endstops attached to two of the three 3HC expansion boards.
; Drives
;Y Lower Left
M569 P1.0 S0 ; physical drive 1.0 goes (right Y motor) forwards Y1
;Y Lower Right
M569 P2.1 S1 ; physical drive 2.1 goes (left Y motor) forwards Y2
;Y Upper Left
M569 P1.1 S1
;Y Upper Right
M569 P2.0 S0
;Z Left
M569 P1.2 S1 ; physical drive 1.2 (right) goes forwards Z1
;Z Right
M569 P2.2 S1 ; physical drive 2.2 (left) goes forwards Z1
;M569 P0.4 S0 ; physical drive 0.2 goes forwards U
;X
M569 P3.0 S0 ; physical drive 3.0 goes forwards X1
Is my Drives code and -
; Endstops
M574 X1 S1 P"!3.io0.in" ; configure active-high endstop for low end on X via pin 1.io0.in
M574 Y1 S1 P"!io0.in" ; configure active-high endstop for low end on Y via pin io0.in
M574 Z1 S1 P"!1.io0.in"
;M574 Z1 S1 P"!1.io0.in+!2.io0.in" ; configure active-high endstops for low end on Z via pins zstop and e1stop
;M574 Z1 S1 P"!2.io0.in" ; configure Z active-high endstop for low end pin 1.io1.in
Is my Endstops code.
At the moment I've got the axis levelling line inactive because I'm unable to get this working and wanted to see if the endstops need to be connected to the main board (or the same expansion?) or do both the drives and the associated endstops need to be connected to the same board (all on one expansion or all on the main board)
Thanks
Nate
Hi,
Checking back in to see if anyone has any advice on how best to adjust the M307 code.
Previous to 3.0 I think it heated well with no issue and the new heater algo means that it really struggles to both Autotune and reach 70-75 degrees
M308 S0 P"temp0" Y"pt1000" A"bed Heat1" ; configure sensor 0 as thermistor on pin temp0 T100000 B4725
M950 H0 C"out1" T0 ; create bed heater output on out0 and map it to sensor 0
;M301 H0 P-10 I0.2 D50 T0.3
M307 H0 R0.051 K0.098:0.000 D32.76 E1.35 S1.00 B0
; old M307 H0 R0.066 K0.191:0.000 D45.54 E1.35 S1.00 B0 ;M307 H0 R0.076 K0.292:0.000 D42.95 E1.35 S1.00 B0 ;M307 H0 R0.070 K0.416:0.000 D62.44 E1.35 S1.00 B0 ; disable bang-bang mode for the bed heater and set PWM limit
M140 P0 H0 ; map heated bed 0 to heater 0
M143 H0 S90 ; set temperature limit for heater 0 to 90C
That's the current setting for one of three heat beds.
Thanks in advance,
Nate
@nxt-1 getting the similar errors via windows
"2022/06/21 14:23:53 Error while downloading rr_status: Too many errors, resetting counters and stoping track operation. Will hide consequent errors..."
Any chance there's a fix for this @Torin ?
Thanks,
Nate
@jay_s_uk Just sent you a chat message. I'm struggling with both bed heating (from 3.4.0rc1) and now what seems like a current limiting issue with steppers running from an expansion board on 3.4.0rc2. Wanted to double-check that your script above can be used to regress to 3.4.0b7 on a 6HC board + 3HC expansion?
Thanks
Nate
Hi all,
After upgrading to 3.4rc1 I've been really struggling to reach 55-60 degrees after running auto-tune half a dozen times. I've adjusted the dead time until I get an 'Error: M307: bad model parameters' error, adjusted the R value all with seemingly little effect on the heating rate.
The bed I'm heating is 3200mm long and divided into three sections. Previous to the update there was a steady temperature increase and now the heating only seems to work 2-3/10 times if the bed section is started from room temperature. If the bed error is cleared and the section turned back to active while warm (35-45) the temperature seems to struggle to heat smoothly, fluctuates around the 'warm' temperature and slightly decrease before another error/fault arises.
I've tried setting the auto-tune from room temperature to S75 with the idea that the elevated temperature might give different PID results but now the auto-tuning won't reach the set temperature and cancelled with the message 'Auto-tune cancelled because target temperature was not reached' .
I've left one section with the previous M307 code and have tried using that for the other bed sections to no avail, nearly every attempt to heat the bed(s) fails.
; Heaters
M308 S0 P"temp1" Y"pt1000" A"bed Heat1" ; configure sensor 0 as thermistor on pin temp0
M950 H0 C"out2" T0 ; create bed heater output on out0 and map it to sensor 0
M307 H0 R0.070 K0.416:0.000 D22.44 E1.35 S1.00 B0 ; disable bang-bang mode for the bed heater and set PWM limit
M140 P0 H0 ; map heated bed 0 to heater 0
M143 H0 S90 ; set temperature limit for heater 0 to 90C
M308 S1 P"temp0" Y"pt1000" A"bed Heat2" ; configure sensor 1 as pt1000 on pin temp1 (T100000 B4138)
M950 H1 C"out1" T1 ; create bed heater output on out1 and map it to sensor 1
M307 H1 R0.083 K0.405:0.000 D15.33 E1.35 S1.00 B0 ; disable bang-bang mode for the bed heater and set PWM limit
M140 P1 H1 ; map heated bed 1 to heater 1
M308 S2 P"temp2" Y"thermistor" A"bed Heat3" T100000 B4138 ; configure sensor 2 as thermistor on pin temp2
M950 H2 C"out3" T2 ; create bed heater output on out2 and map it to sensor 2
M307 H2 A32.7 C156.4 D4.0 S1.0 ; disable bang-bang mode for the bed heater and set PWM limit
M140 P2 H2 ; map heated bed 1 to heater 1
Any direction would be great.
Thanks
Nate
HI @MintyTrebor ,
Have you ever come across an error like this:
Installation failed!
InvalidOperationException in InstallPlugin: Cannot perform command because the plugin service is not started
I was running 3.2.2 (this is all in SBC mode) and tried to install Alpha 0.8.17 which wouldn't work and so I upgraded DWC to 3.3.0-rc1 and then this error occurred.
Just tried Alpha 0.8.16 in case and got the same error.
Thanks-
Nate
I think this is probably what I'm seeing @droftarts and @engikeneer , while it doesn't seem to be present as much (or at all) in the Y axis, the X axis recently had a bracket upgrade that included some IGUS linear guides that seemed to be quite tight in the channel they run along.
I swapped out the helical gear from a 28 tooth one to a 44 tooth to see if that made any difference and it looks like the overall torque to move the now more supported bracket looks like I've introduced far more friction than I had before. Which in turn looks like it's either causing the motor to stall or the pinion to slip.
Thanks both for your help.
Thanks everyone for the rapid response!
I should clarify and specificy-
Both the X axis and Y axis operate on directly driven helical rack and pinion. The Y axis is 3200mm long and the X axis is 1200mm. While the Y axis has two Nema 23 motors driving either side the X axis has a single Nema 23 motor. It's quite evident and at present unlikely that there's no obvious mechanical play in either axis. The holding torque of the motors means that unless you actually bash the gantry, it's not moving.
The other reason that I'm apt to dismiss purely mechanical play as the cause for this is that if I move the test cylinder print to anywhere else on the bed, a meter in Y and 500 mm in X - the same thing happens in exactly the same place. It would seem to me that there was as @droftarts @alankilian @cosmowave say- a backlash or improper position and reposition (although I'm going to try what you say now @alankilian just to be sure), that the circle would deform in different places depending on where it was on the bed, say closer to the axis limit. Rather than this behavior of having the same amount of flattened sides along the X axis anywhere the cyclinder (or figure eight) is placed on the bed.
For reference this is the last print from my printer:
Which is now zooming around the world on this:
Since then it's developed this very silly behaviour, which I'm assuming is my fault but I'm unable to suss out where this particular gremlin is living.
-Nate
I'm facing (two current) issues and don't know if they are related. In an effort to solve the issue of my printer not printing arcs/curves properly:
That should be a figure eight with arcs connecting the two 100mm outside circles
There's some issue with the X axis that seems to not complete the full arc.
Will print squares without a problem:
So I thought I'd see if the firmware needed a refresh because going through the X drive system (helical rack and pinion and shielded cable to the Duet 3 board) I couldn't see an issue <apart from ever finer tuning the step calibration obviously>.
Now on another printer, running the same FW , the hourglass prints fine, curves in all the right places, same slicer, practically the same settings apart from build volume.
I've tried changing; instantaneous speed, steps/mm in conjunction with microstepping, my t shirt, nada. Doesn't seem to affect the shape or placement of the dents.
My next thought was the wiring between the X stepper and the expansion board but moving a curved part around the bed produces similar errors.
Any ideas why my circles might be dented and jerky would be very helpful.
Posting config in case:
; Configuration file for Duet 3 (firmware version 3)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool v3.1.7 on Tue Nov 17 2020 15:11:50 GMT+0000 (Greenwich Mean Time)
; General preferences
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"Usain" ; set printer name
; Drives
M569 P0.0 S1 ; physical drive 0.0 goes (right Y motor) forwards Y1
M569 P1.2 S1 ; physical drive 1.2 goes (left Y motor) forwards Y2
M569 P0.2 S1 ; physical drive 0.3 (right) goes forwards Z1
M569 P0.3 S0 ; physical drive 0.2 (left) goes forwards Z1
M569 P0.4 S0 ; physical drive 0.2 goes forwards U
M569 P1.0 S0 ; physical drive 1.0 goes forwards X1
M569 P1.1 S0 ; physical drive 1.1 goes forwards E1
;M569 P1.2 S1 ; physical drive 1.1 goes forwards E1
M584 X1.0 Y0.0:1.2 Z0.2:0.3 E1.1:0.4 ; set drive mapping
;M671 X-60:790 Y0:0 S0.5 ; leadscrews at left (connected to 0.2) and right (connected to 0.3) of X axis
M350 X8 Y8 Z16 E16 I1 ; configure microstepping with interpolation
M92 X19.14495 Y20.3065 Z1711.63 E500 ; set steps per mm X38.2899 Y40.613
M566 X1800.00 Y1850.00 Z80.00 E520.00 P1 ; set maximum instantaneous speed changes (mm/min)
M203 X95000.00 Y48000.00 Z580.00 E1800.00 ; set maximum speeds (mm/min)
M201 X1550.00 Y1400.00 Z20.00 E150.00 ; set accelerations (mm/s^2)
M906 X2300 Y2450 Z2200 E1000 I30 ; set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout
; Axis Limits
M208 X0 Y0 Z0 S1 ; set axis minima
M208 X720 Y2800 Z800 S0 ; set axis maxima
M564 H1 S1
; Endstops
M574 X1 S1 P"1.io0.in" ; configure active-high endstop for low end on X via pin 1.io0.in
M574 Y1 S1 P"!io0.in" ; configure active-high endstop for low end on Y via pin io0.in
M574 Z1 S2 ;P"1.io1.in"
M574 Z1 S1 P"!io1.in" ; configure Z active-high endstop for low end pin 1.io1.in
; Filament Sensor
;M591 D0 P5 C"1.io3.in" R40:120 S0 ; Duet3D laser sensor for extruder drive 0, connected to endstop input 3 (E0), tolerance 40 to 120%, 3mm comparison length, disabled
; Z-Probe
;M558 P8 C"1.io2.in" R0.4 I1 S0.1 A5 H8 F320 T6000 ; set Z probe type to modulated and the dive height + speeds
;G31 P500 X30 Y5 Z0.275 ; set Z probe trigger value, offset and trigger height
;M557 X15:690 Y15:1800 S55 ; define mesh grid
; Heaters
M308 S0 P"temp0" Y"pt1000" A"bed Heat1" ; configure sensor 0 as thermistor on pin temp0
M950 H0 C"out1" T0 ; create bed heater output on out0 and map it to sensor 0
M307 H0 A22.7 C156.4 D4.0 S1.0 ; disable bang-bang mode for the bed heater and set PWM limit
M140 P0 H0 ; map heated bed 0 to heater 0
M143 H0 S90 ; set temperature limit for heater 0 to 90C
M308 S1 P"temp1" Y"pt1000" A"bed Heat2" ; configure sensor 1 as pt1000 on pin temp1 (T100000 B4138)
M950 H1 C"out2" T1 ; create nozzle heater output on out1 and map it to sensor 1
M307 H1 A22.7 C156.4 D4.0 S1.0 ; disable bang-bang mode for the bed heater and set PWM limit
M140 P1 H1 ; map heated bed 1 to heater 1
M308 S2 P"temp2" Y"thermistor" A"bed Heat3" T100000 B4138 ; configure sensor 2 as thermistor on pin temp2
M950 H2 C"out3" T2 ; create nozzle heater output on out2 and map it to sensor 2
M307 H2 A32.7 C156.4 D4.0 S1.0 ; disable bang-bang mode for the bed heater and set PWM limit
M140 P2 H2 ; map heated bed 1 to heater 1
M308 S3 P"1.temp0" Y"pt1000" A"Prime_Heater_100W" ; configure sensor 3 as a pt1000 on pin 1.temp0 (T100000 B4138)
M950 H3 C"1.out0" T3 ; create nozzle heater output on 1.out0 and map it to sensor 3
M307 H3 A590 C962.6 D5.5 S0.5 V24.3 B0 ; disable bang-bang mode for heater and set PWM limit
M308 S4 P"1.temp1" Y"pt1000" A"Prime_Heater_60W" ; configure sensor 4 as thermistor on pin 1.temp1
M950 H4 C"1.out1" T4 ; create nozzle heater output on 1.out1 and map it to sensor 4
M307 H3 A590 C962.6 D5.5 S0.5 V24.3 B0 ; disable bang-bang mode for heater and set PWM limit
; Fans
M950 F0 C"1.out6" Q500 ; create fan 0 on pin 1.out6 and set its frequency
M106 P0 S0.55 H3 C"Plastic" ; set fan 0 value. Thermostatic control is turned on
M950 F1 C"1.out7" Q500 ; create fan 1 on pin 1.out7 and set its frequency
M106 P1 S1 H-1 C"part_cooling_2" ; set fan 1 value. Thermostatic control is turned on
M950 F2 C"1.out8" Q500 ; create fan 2 on pin 1.out8 and set its frequency
M106 P2 S1 H-1 C"part_cooling" ; set fan 1 value. Thermostatic control is turned off
; Tools
M563 P0 S"Prime_Extruder_100W" D0 H3 F1:2 ; 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
M563 P1 S"Prime_Extruder_60W" D0 H4 F1:2 ; define tool 1
G10 P1 X0 Y0 Z0 ; set tool 0 axis offsets
G10 P1 R0 S0 ; set initial tool 0 active and standby temperatures to 0C
;M567 P4 E0.5:0.50 ; set mixing ratio for tool 0
;M563 P1 S"Filament Feed" D1 H3
;G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets
;G10 P0 R0 S0
;M563 P2 S"Prime_Support_Extruder" D2 H5 F3 ; define tool 2
;G10 P2 X0 Y0 Z0 ; set tool 2 axis offsets
;G10 P2 R0 S0 ; set initial tool 2 active and standby temperatures to 0C
; Custom settings are not defined
; Miscellaneous
M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss
@Veti said in Large format print bed mesh level display question:
https://duet3d.dozuki.com/Wiki/Bed_levelling_using_multiple_independent_Z_motors
I've got two, I'll go through this now.
Thanks @Veti
That's the heightmap for our printer which has a 2895mm long print bed, while there are plenty of considerations to sorting out the level-ness (do I pour as level a concrete base as I can, etc) I wanted to see if anyone knows if there's a way to edit the boundary conditions of the heightmap display?
Because I've got a long rectangular bed it seems to squish the plot of heightmap.csv into a square.
Thanks
Nate
@hector Did you manage to get a working Telegram bot running? I know it's been some time since you posted and others have asked but I thought I'd check.
-Nate