@dc42 The best way i can describe it is like going to a restaurant. With Marlin, you go in, they hand you a menu and you decide what you want.
With the Duet, you go into the kitchen and cook whatever the hell you want.
@dc42 The best way i can describe it is like going to a restaurant. With Marlin, you go in, they hand you a menu and you decide what you want.
With the Duet, you go into the kitchen and cook whatever the hell you want.
After having my "A-HA" moment and figuring out how everything works on the Duet, I am NEVER going back to Marlin or anything else. This is the best platform.
Ok so my build is coming along nicely and i've got all the homing figured out. However, whenever i go to do the auto bed compensation via the web interface, the z axis moves down, and the probe deploys without enough room. this causes the probe to hit the aluminum bed and fail to trigger. BUT when i do a regular homing routine, all is good. what did i goof up?
; Configuration file for Duet WiFi (firmware version 2.03)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool v2.0.0 on Sat Aug 31 2019 17:45:57 GMT-0400 (Eastern Daylight Time)
; General preferences
M111 S0 ; Debugging off
G21 ; Work in millimetres
G90 ; Send absolute coordinates…
M83 ; ...but relative extruder moves
M555 P2 ; Set firmware compatibility to look like Marlin
M208 X0 Y0 Z0 S1 ; Set axis minima
M208 X300 Y300 Z400 S0 ; Set axis maxima
; automatic saving on power loss is not configured
; Drives
M569 P0 S1 ; physical drive 0 goes forwards
M569 P1 S1 ; physical drive 1 goes forwards
M569 P2 S1 ; physical drive 2 goes forwards
M569 P3 S0 ; physical drive 3 goes Backwards
M584 X0 Y1 Z2 E3 ; set drive mapping
M350 Z16 I0 ; configure microstepping without interpolation
M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
M92 X80.00 Y80.00 Z400.00 E420.00 ; set steps per mm
M566 X900.00 Y900.00 Z12.00 E120.00 ; set maximum instantaneous speed changes (mm/min)
M203 X12000.00 Y12000.00 Z600.00 E1200.00 ; set maximum speeds (mm/min)
M201 X500.00 Y500.00 Z60.00 E3000.00 ; set accelerations (mm/s^2)
M906 X800 Y800 Z800 E800 I30 ; set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout
M566 X1200 Y1200 Z24 E300 ; Set maximum instantaneous speed changes (mm/min)
M203 X30000 Y30000 Z600 E3000 ; Set maximum speeds (mm/min)
; Axis Limits
M208 X0 Y0 Z0 S1 ; set axis minima
M208 X340 Y375 Z400 S0 ; set axis maxima
; Endstops
M574 X1 Y1 Z1 S1 ; set active high endstops
M574 Z1 S3 ; set endstops controlled by motor stall detection
; Z-Probe
M574 Z1 S2 ; set endstops controlled by probe
M307 H3 A-1 C-1 D-1 ; disable heater on PWM channel for BLTouch
M558 P9 H1 F500 T10000 ; set Z probe type to bltouch and the dive height + speeds
G31 P500 X10 Y10 Z1.46 ; set Z probe trigger value, offset and trigger height
M557 X15:280 Y30:350 S50 ; define mesh grid
; Heaters
M305 P0 T100000 B4138 R4700 ; set thermistor + ADC parameters for heater 0
M143 H0 S120 ; set temperature limit for heater 0 to 120C
M305 P1 T100000 B4138 R4700 ; set thermistor + ADC parameters for heater 1
M143 H1 S280 ; set temperature limit for heater 1 to 280C
; Fans
M106 P0 S0 I0 F500 H-1 ; set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
M106 P1 S1 I0 F500 H1 T45 ; set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
; Tools
M563 P0 D0 H1 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
; Network
M552 S1 ; enable network
M586 P0 S1 ; enable HTTP
M586 P1 S0 ; disable FTP
M586 P2 S0 ; disable Telnet
; Filament Sensing
M591 D0 P1 C3 S1
; Custom settings are not defined
; deployprobe.g
; called to deploy a physical Z probe
;
; generated by RepRapFirmware Configuration Tool v2.0.0 on Thu Aug 29 2019 20:39:55 GMT-0400 (Eastern Daylight Time)
M280 P3 S10 I1
@token47 said in Sensorless and senseless:
First, you have to configure the "virtual endstops" to use the stall instead of physical switches. You do that putting this in your config.g:
; Endstops
M574 X1 Y1 S3 ; Set endstops to use sensorless motor load detection
M915 X Y E S3 F1 H200 R0 ; set stall motor sensitivity and actionsThis is enough for it just to work as if you had switches installed. Anytime the motors stall, the enstops will be triggered.
Now, when doing the homing, you must use the S1 paramenter (or the H1 parameter on FW 2.02 and later) in your G0/G1 commands so it respects endstops.
H1 terminate the move when the endstop switch is triggered and set the axis position to the axis limit defined by M208. On delta printers, H1 also selects individual motor mode as for H2. Normally used with relative motor coordinates (see G91).
For example, my homex.g is like this:
G91 ; relative positioning
G1 Z${Z_HOMING_LIFT} F$((Z_SPEEDS[MEDIUM]*60)) ; lift Z relative to current position
M98 P"0:/sys/m_set_homing_speeds.g" ; set lower speeds and accelerations
M913 X60 Y60 ; set X and Y motors to low current for homing
G1 S1 X-$((X_LIMITS[MAX]+100)) F$((XY_SPEEDS[HOMING]*60)) ; move quickly to X axis endstop and stop there (first pass)
G1 X5 F$((XY_SPEEDS[HOMING]*60)) ; go back a few mm
M913 X100 Y100 ; set X motor to 100% of the normal current
M98 P"0:/sys/m_set_normal_speeds.g" ; set normal speeds and accelerations
G90 ; absolute positioningDon't mind the variables inside the script, I have a pre-processor that replaces them before uploading to the duet by ftp. Pay attention to the logic and replace your values.
There are certain requirements you have to take care when using sensorless homing. For example, it will only sense when the motor is above certain speed, if too low, it won't detect. So do not home in very low speeds. Also, if you lower motor current to about 60% it will help the process, at full current it may bump too hard on the limits. I also decrease accelerations, speeds and jerk in those macros and restore them afterwards, I have seen better results with that.
I REALLY appreciate that. I guess what i'm wondering is, how do i know what commands can go in what file. Like how do i know if i have to put the commands in the config or homeall or whatnot. Is there a list of what should go where?
ok so that definitely does help me out, but for the commands, am i adding them to the homeall.g? replacing them? Does tuning stall detection require me to create a new .g? I'm really lost. It just seems like there's a lot of information on what things do but not how to link it all together. Or i'm just an idiot. my money is on the latter
Let me start off by saying this whole Duet world is pretty new to me, but i'm pretty familiar with Marlin. I'm trying to get sensorless homing set up on a cartesian style printer that i've built. Below is what the configurator has given me. I'm basically just confused. I'll fully admit i ain't never been one for no book learnin'.
What's throwing me off is what each value represents. S= stall sensitivity? F= the grade i'll get on the quiz for this material?
If someone could boil it down and tell me what values i should be playing with and in what ballpark, it would be super appreciated. Thanks in advance
; homeall.g
; called to home all axes
;
; generated by RepRapFirmware Configuration Tool v2 on Mon Aug 26 2019 21:46:13 GMT-0400 (Eastern Daylight Time)
G91 ; relative positioning
G1 Z5 F6000 S2 ; lift Z relative to current position
G1 S1 X-305 Y-305 F1800 ; move quickly to X and Y axis endstops and stop there (first pass)
G1 X5 Y5 F6000 ; go back a few mm
G1 S1 X-305 Y-305 F360 ; move slowly to X and Y axis endstops once more (second pass)
G90 ; absolute positioning
G1 X5 Y5 F6000 ; go to first bed probe point and home Z
G30 ; home Z by probing the bed
; Uncomment the following lines to lift Z after probing
;G91 ; relative positioning
;G1 S2 Z5 F100 ; lift Z relative to current position
;G90 ; absolute positioning