Y axis not Centre?
-
@rooracleaf Adjust bed size and endstop offsets with M208. For help, post your config.g and the response to M122. When posting code, please use the code tags in your reply (the </> symbol in the text styles panel above where you write your post) to make the code more readable.
Ian
-
@droftarts
I'm pretty sure the build volume I have there now is incorrect but it was the only way I could get the X axis to stay on the bed.Here's the Config.g
; Configuration file for Duet Maestro (firmware version 3.3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.3.15 on Tue Jan 03 2023 18:37:27 GMT+1000 (Australian Eastern Standard Time) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"MDAero Ender 3" ; set printer name ; Network M552 P0.0.0.0 S1 ; enable network and acquire dynamic address via DHCP M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M569 P0 S0 ; physical drive 0 goes backwards M569 P1 S0 ; physical drive 1 goes backwards M569 P2 S0 ; physical drive 2 goes backwards M569 P3 S1 ; physical drive 3 goes backwards M584 X0 Y1 Z2 E3 ; set drive mapping M350 E128 I0 ; configure microstepping without interpolation M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation M92 X80.00 Y80.00 Z400.00 E741.00 ; set steps per mm M566 X600.00 Y600.00 Z60.00 E300.00 ; set maximum instantaneous speed changes (mm/min) M203 X9000.00 Y9000.00 Z600.00 E6000.00 ; set maximum speeds (mm/min) M201 X500.00 Y500.00 Z120.00 E5000.00 ; set accelerations (mm/s^2) M906 X800 Y800 Z800 E900 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 X230 Y230 Z250 S0 ; set axis maxima ; Endstops M574 X2 S1 P"xstop" ; configure switch-type (e.g. microswitch) endstop for high end on X via pin xstop M574 Y2 S1 P"ystop" ; configure switch-type (e.g. microswitch) endstop for high end on Y via pin ystop M574 Z1 S2 ; configure Z-probe endstop for low end on Z ; Z-Probe M950 S0 C"zprobe.mod" ; create servo pin 0 for BLTouch M558 P9 C"^zprobe.in" H5 F900 T6000 ; set Z probe type to bltouch and the dive height + speeds M558 H30 ;*** Remove this line after delta calibration has been done and new delta parameters have been saved G31 P500 X40.5 Y10 Z2.24 ; set Z probe trigger value, offset and trigger height X37.5 Y10 Z2.24 M557 X10:235 Y10:235 S20 ; define mesh grid ; Heaters M308 S0 P"bedtemp" Y"thermistor" T98801 B4185 ; configure sensor 0 as thermistor on pin bedtemp M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0 M307 H0 B1 S1.00 ; enable bang-bang mode for the bed heater and set PWM limit M140 H0 ; map heated bed to heater 0 M143 H0 S80 ; set temperature limit for heater 0 to 80C M308 S1 P"e0temp" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 1 as thermistor on pin e0temp M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1 M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M143 H1 S285 ; set temperature limit for heater 1 to 285C ; Fans M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency M106 P0 C"PCF" S0 H-1 ; set fan 0 name and value. Thermostatic control is turned off M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency M106 P1 C"HEF" S1 H1 T45 ; set fan 1 name and value. Thermostatic control is turned on M950 F2 C"fan2" Q500 ; create fan 2 on pin fan2 and set its frequency M106 P2 C"ECF" S1 H1:0 T45 ; set fan 2 name and value. Thermostatic control is turned on ; Tools M563 P0 S"Hotend" 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 ; Custom settings are not defined ; Miscellaneous M501 ; load saved parameters from non-volatile memory M911 S21 R23 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss T0
Here's the M122
M122 === Diagnostics === RepRapFirmware for Duet 2 Maestro version 3.4.5 (2022-11-30 19:42:44) running on Duet Maestro 1.0 Board ID: 08DJM-9X66L-LG3SJ-6J9F0-3SJ6L-TAXAR Used output buffers: 1 of 26 (24 max) === RTOS === Static ram: 23620 Dynamic ram: 67136 of which 204 recycled Never used RAM 20240, free system stack 158 words Tasks: NETWORK(ready,32.9%,254) HEAT(notifyWait,0.1%,350) Move(notifyWait,0.0%,318) TMC(notifyWait,1.3%,117) MAIN(running,65.7%,428) IDLE(ready,0.0%,31), total 100.0% Owned mutexes: === Platform === Last reset 00:45:58 ago, cause: power up Last software reset at 2023-01-10 16:49, reason: User, GCodes spinning, available RAM 23732, slot 0 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00000000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a Error status: 0x00 Step timer max interval 872 MCU temperature: min 45.7, current 45.9, max 46.1 Supply voltage: min 24.3, current 24.4, max 24.4, under voltage events: 0, over voltage events: 0, power good: yes Heap OK, handles allocated/used 99/0, heap memory allocated/used/recyclable 2048/46/46, gc cycles 0 Events: 0 queued, 0 completed Driver 0: standstill, read errors 0, write errors 0, ifcnt 14, reads 374, writes 0, timeouts 0, DMA errors 0, CC errors 0 Driver 1: standstill, read errors 0, write errors 0, ifcnt 14, reads 374, writes 0, timeouts 0, DMA errors 0, CC errors 0 Driver 2: standstill, read errors 0, write errors 0, ifcnt 11, reads 374, writes 0, timeouts 0, DMA errors 0, CC errors 0 Driver 3: standstill, read errors 0, write errors 0, ifcnt 9, reads 374, writes 0, timeouts 0, DMA errors 0, CC errors 0 Driver 4: standstill, read errors 0, write errors 0, ifcnt 6, reads 373, writes 0, timeouts 0, DMA errors 0, CC errors 0 Driver 5: not present Driver 6: not present Date/time: 2023-01-10 20:06:28 Slowest loop: 0.75ms; fastest: 0.17ms I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0 === Storage === Free file entries: 10 SD card 0 detected, interface speed: 15.0MBytes/sec SD card longest read time 0.0ms, write time 0.0ms, max retries 0 === Move === DMs created 83, segments created 18, maxWait 0ms, bed compensation in use: none, comp offset 0.000 === MainDDARing === Scheduled moves 4408, completed 4408, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === AuxDDARing === Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === Heat === Bed heaters 0 -1, chamber heaters -1 -1, ordering errs 0 Heater 0 is on, I-accum = 0.2 Heater 1 is on, I-accum = 0.4 === GCodes === Segments left: 0 Movement lock held by null HTTP is idle in state(s) 0 Telnet is idle in state(s) 0 File is idle in state(s) 0 USB is idle in state(s) 0 Aux is idle in state(s) 0 Trigger is idle in state(s) 0 Queue is idle in state(s) 0 LCD is idle in state(s) 0 Daemon is idle in state(s) 0 Autopause is idle in state(s) 0 Code queue is empty === Network === Slowest loop: 5.69ms; fastest: 0.06ms Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) HTTP sessions: 1 of 8 Interface state active, link 100Mbps full duplex
-
@rooracleaf said in Y axis not Centre?:
M574 X2 S1 P"xstop" ; configure switch-type (e.g. microswitch) endstop for high end on X via pin xstop
M574 Y2 S1 P"ystop" ; configure switch-type (e.g. microswitch) endstop for high end on Y via pin ystopYou have your X and Y axes set so that the endstop is at the high end, but I can see that the X endstop is on the left of your picture. Usually, the home point X0 Y0 is with the nozzle over the front left of the bed. Where is your home position? Also, please post your 'homeall.g' gcode.
See https://docs.duet3d.com/User_manual/Tuning/Bed_origin
Ian
-
@droftarts
My Home point after a G28 is X54 Y26 which is towards the back center of the bed. My X0 Y0 is towards the back right corner of the bed. Should I change the X axis endstop to the low end?Homeall.g:
; homeall.g ; called to home all axes ; ; generated by RepRapFirmware Configuration Tool v3.3.15 on Tue Jan 03 2023 18:37:28 GMT+1000 (Australian Eastern Standard Time) G91 ; relative positioning G1 H2 Z5 F6000 ; lift Z relative to current position G1 H1 X240 Y240 F3000 ; move quickly to X and Y axis endstops and stop there (first pass) G1 H2 X-5 Y-5 F6000 ; go back a few mm G1 H1 X240 Y240 F240 ; move slowly to X and Y axis endstops once more (second pass) G90 ; absolute positioning G1 X54 Y26 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 Z5 F100 ; lift Z relative to current position ;G90 ; absolute positioning
-
@rooracleaf If X0 Y0 is where the nozzle is over the back right of the bed, that's fine, it just means that the bed is 180° rotated from 'normal'.
As you're using X and Y as max endstops, it is slightly trickier to set the bed size and home position. When the X carriage triggers the X endstop, is the nozzle still over the bed, on the edge of the bed, or over the edge? Assuming your bed size is 250mm x 250mm, if it is still over the bed, the M208 X... S0 value will have to be less than 250, if it's on the edge of the bed, it will be 250, and if it is over the edge, it will be greater than 250. This also assumes that the nozzle can go to the bed edge on the minimum side. If it can't, then you need to reduce the X value until it can reach where X0 is. After that, repeat for the Y axis, to get the full area you can print to.
After that, set up the slicer with the same print area. It may be this is not central on the bed, but it should be printing in the middle of the reachable area of the bed. You may just have to live with that!
Ian
-
Hi again,
This method works for the X-Axis but not matter what I change on the Y-axis nothing happens.
The distance between the nozzel and the edge of the bed does not change, do you have any more ideas? -
@rooracleaf What are you changing? What is the actual bed size? Generally, you want to change the
M208 Y... S0 ; set axis maxima
parameter.Another method is to put the nozzle over the back edge of the bed, or as far back as it will go (ie as far forward as the bed will go). Then send
G92 Y0
This will set the current position of Y to 0, and mark the axis homed. Then, sendG1 H4 Y1000 F1000
. This will move the Y axis to the endstop, and stop when it triggers. The current Y position is the number you should use in theM208 Y... S0 ; set axis maxima
command in config.g. Remember to update your slicer with the bed size that you end up with.If this happens to put the nozzle beyond the end of the bed (it's a side effect of using endstops at the maximum end rather than minimum end), it is possible to shift the machine coordinates to limit movement to the size of the bed, using
G10 L2 P1 X... Y... Z...
. However, let's not worry about that right now! See if the above helps first.Ian
-
@droftarts
Hello again, sorry I've been away a while.I just tried this and it seems to have allowed the bed to move forward a slight bit more but the nozzel still moves over the front of the bed sadly.
Is this normal, it moves over the edge when im controlling it through the web control but will it behave normally when printing? -
@droftarts
Actually, after doing this and making the bed size smaller in cura its working better, there's still a 3mm difference in the edges of the bed but oh well. Thanks for all your help it is greatly appreciated. -
-
-
@rooracleaf just a note that you can shift the Y endstop a bit to adjust the contact point.