Error when setting up independent motor bed levelling on CoreXY
-
It's tilt correction with 2 motors rather than actual leveling, but that's fine.
Can you post your full config.g and the results of M122 and M98 P"config.g"?
Definitely have M400 before M913
I don't see anything in your bed.g that would cause that insufficient axes homed error on 2.05.
Both when I try to AutoHome and run G32 I get the error
What do you mean by autohome?
-
@Phaedrux I concur, tilt correction is a more accurate term.
The console output when I run M122 and M98 P"config.g" in succession:
10/12/2020, 8:00:19 AM M98 P"config.g" 10/12/2020, 8:00:07 AM M122 === Diagnostics === RepRapFirmware for Duet 2 WiFi/Ethernet version 2.05.1 running on Duet WiFi 1.02 or later Board ID: 08DDM-9FAM2-LW4SD-6J9DL-3S46L-K0XHW Used output buffers: 1 of 24 (6 max) === RTOS === Static ram: 25712 Dynamic ram: 93080 of which 476 recycled Exception stack ram used: 272 Never used ram: 11532 Tasks: NETWORK(ready,676) HEAT(blocked,1232) MAIN(running,3800) IDLE(ready,160) Owned mutexes: === Platform === Last reset 00:00:43 ago, cause: power up Last software reset at 2020-10-11 22:12, reason: User, spinning module GCodes, available RAM 11156 bytes (slot 2) Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0441f000 BFAR 0xe000ed38 SP 0xffffffff Task 0x4e49414d Error status: 0 Free file entries: 10 SD card 0 detected, interface speed: 20.0MBytes/sec SD card longest block write time: 0.0ms, max retries 0 MCU temperature: min 21.3, current 25.9, max 26.5 Supply voltage: min 11.9, current 12.0, max 12.1, under voltage events: 0, over voltage events: 0, power good: yes Driver 0: standstill, SG min/max not available Driver 1: standstill, SG min/max not available Driver 2: standstill, SG min/max not available Driver 3: standstill, SG min/max not available Driver 4: standstill, SG min/max not available Date/time: 2020-10-12 08:00:06 Cache data hit count 107691558 Slowest loop: 5.54ms; fastest: 0.06ms I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0 === Move === Hiccups: 0, FreeDm: 160, MinFreeDm: 160, MaxWait: 0ms Bed compensation in use: none, comp offset 0.000 === DDARing === Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 === Heat === Bed heaters = -1 -1 -1 -1, chamberHeaters = -1 -1 === GCodes === Segments left: 0 Stack records: 1 allocated, 0 in use 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 serial is idle in state(s) 0 aux is idle in state(s) 0 daemon is idle in state(s) 0 queue is idle in state(s) 0 autopause is idle in state(s) 0 Code queue is empty. === Network === Slowest loop: 15.73ms; fastest: 0.00ms Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0) HTTP sessions: 1 of 8 - WiFi - Network state is running WiFi module is connected to access point Failed messages: pending 0, notready 0, noresp 0 WiFi firmware version 1.23 WiFi MAC address 2c:3a:e8:0b:1c:bb WiFi Vcc 3.34, reset reason Turned on by main processor WiFi flash size 4194304, free heap 23440 WiFi IP address 192.168.137.156 WiFi signal strength -53dBm, reconnections 1, sleep mode modem Socket states: 0 0 0 0 0 0 0 0
Also my full config.g:
; General preferences G90 ; Send absolute coordinates... M83 ; ...but relative extruder moves M667 S1 ; Select CoreXY mode ; Network M550 PPrinter Extrusions ;machine name M552 S1 ;start wifi module ; Drives M569 P0 S1 ; Drive 0 M569 P1 S1 ; Drive 1 M569 P2 S0 ; Drive 2 M569 P3 S1 ; Drive 3 M569 P4 S0 ; Drive 4 M350 X16 Y16 Z16 E16 I1 ; Configure microstepping with interpolation M92 X80 Y80 Z80 E456 ; Set steps per mm M566 X900 Y900 Z1 E120 ; Set maximum instantaneous speed changes (mm/min) M203 X9000 Y9000 Z720 E1200 ; Set maximum speeds (mm/min) M201 X500 Y500 Z250 E250 ; Set accelerations (mm/s^2) M906 X1200 Y1200 Z2200 E1100 I0 ; Set motor currents (mA) and motor idle factor in per cent M84 S0 ; Set idle timeout ; Axis Limits M208 X0 Y0 Z0 S1 ; Set axis minima M208 X210 Y150 Z150 S0 ; Set axis maxima ;Independent motors leveling M584 X0 Y1 Z2:4 E3; two Z motors connected to driver outputs Z and E1 M671 X105:105 Y0:150 S1 ; leadscrews ; Endstops M574 X1 Y1 Z0 S0 ; Z-Probe ;M558 P1 I1 R0.4 F300 X0 Y0 Z0 M558 P8 H10 I1 R1 F600 X0 Y0 Z1 G31 X0 Y0 Z-0.25 P600 ; Heaters M140 H-1 ; Disable heated bed M305 P1 T100000 B4138 C0 R4700 ; Set thermistor + ADC parameters for heater 1 M143 H1 S280 ; Set temperature limit for heater 1 to 280C ; Fans M106 P0 H-1 ; set fan 1 to be gcode controlled M106 P2 S1 I0 T45 H1 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned off ; Tools M563 P0 D0 H1 ; 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
By AutoHome I mean the Home All button in the Dashboard tab. I apologise, I got my RRF and Marlin terms mixed up.
-
Can you manually send each line of your homeall.g in the gcode console from an unhomed state and see where you get the error message?
-
@equanimity8 said in Error when setting up independent motor bed levelling on CoreXY:
@Phaedrux I concur, tilt correction is a more accurate term.
Also my full config.g:
; Drives M569 P0 S1 ; Drive 0 M569 P1 S1 ; Drive 1 M569 P2 S0 ; Drive 2 M569 P3 S1 ; Drive 3 M569 P4 S0 ; Drive 4 M350 X16 Y16 Z16 E16 I1 ; Configure microstepping with interpolation M92 X80 Y80 Z80 E456 ; Set steps per mm M566 X900 Y900 Z1 E120 ; Set maximum instantaneous speed changes (mm/min) M203 X9000 Y9000 Z720 E1200 ; Set maximum speeds (mm/min) M201 X500 Y500 Z250 E250 ; Set accelerations (mm/s^2) M906 X1200 Y1200 Z2200 E1100 I0 ; Set motor currents (mA) and motor idle factor in per cent M84 S0 ; Set idle timeout ; Axis Limits M208 X0 Y0 Z0 S1 ; Set axis minima M208 X210 Y150 Z150 S0 ; Set axis maxima ;Independent motors leveling M584 X0 Y1 Z2:4 E3; two Z motors connected to driver outputs Z and E1 M671 X105:105 Y0:150 S1 ; leadscrews
You have a M584 command after M350 and M906 commands, which is not recommended. M584 must come before any M350 or M906 commands. https://duet3d.dozuki.com/Wiki/Gcode#Section_M584_Set_drive_mapping
After that is fixed, definitely try running each line of homeall.g through the console to see where the issue is.
-
I've put the ;Independent motors leveling section right after the drivers assigning part of config.g and it has made no difference. As a side note, is there a resource I can follow about the recommended sequence of gcode and/or what are good practices when setting up firmware (kind of like M400 before M913 which was discussed above)?
I get the error on the "G1 Z5 F420 S2" line.
-
@equanimity8 said in Error when setting up independent motor bed levelling on CoreXY:
I've put the ;Independent motors leveling section right after the drivers assigning part of config.g and it has made no difference. As a side note, is there a resource I can follow about the recommended sequence of gcode and/or what are good practices when setting up firmware (kind of like M400 before M913 which was discussed above)?
I think the M913 and M584 both have notes in the Duet GCODE Wiki saying what other commands to look out for (M913 is a little less clear when it comes to the note on M400). Many other commands have notes/dependencies for other commands.
I get the error on the "G1 Z5 F420 S2" line.
That... doesn't make sense why it would fail there? For kicks, could you try changing the S2 to H2 instead? For your application, and being on 2.05.1, S2 and H2 should function the same.
-
No change.
-
@equanimity8 said in Error when setting up independent motor bed levelling on CoreXY:
No change.
As a test reboot your printer and enter that command (G1 Z5 H2 F420) in the DWC Console, just to be sure it is generating the "not homed" error.
Thanks.
Frederick
-
@equanimity8 said in Error when setting up independent motor bed levelling on CoreXY:
is there a resource I can follow about the recommended sequence of gcode and/or what are good practices when setting up firmware
Every gcode is documented here: https://duet3d.dozuki.com/Wiki/Gcode#main
It's a good idea to check the relevant gcodes when trouble shooting.
@equanimity8 said in Error when setting up independent motor bed levelling on CoreXY:
I've put the ;Independent motors leveling section right after the drivers assigning part of config.g and it has made no difference.
How is your config.g laid out now? Can you post it again? The M584 should be above the M350.
The homing file you've posted is from the /system folder right?
-
@fcwilt When I start with (G1 Z5 H2 F420) as per your suggestions I get a little but further, namely to G1 X5 Y5 F600 (line 8 in homeall.g) and I get the same error (Error: G0/G1: insufficient axes homed).
@Phaedrux The current config.g:
; General preferences G90 ; Send absolute coordinates... M83 ; ...but relative extruder moves M667 S1 ; Select CoreXY mode ; Network M550 PPrinter Extrusions ;machine name M552 S1 ;start wifi module ; Drives M569 P0 S1 ; Drive 0 goes forwards M569 P1 S1 ; Drive 1 goes forwards M569 P2 S0 ; Drive 2 goes forwards M569 P3 S1 ; Drive 3 goes forwards M569 P4 S0 ; Drive 4 goes forwards ;Independent motors leveling M584 X0 Y1 Z2:4 E3; two Z motors connected to driver outputs Z and E1 M671 X105:105 Y0:150 S1 ; leadscrews at left (connected to Z) and right (connected to E1) of X axis M350 X16 Y16 Z16 E16 I1 ; Configure microstepping with interpolation M92 X80 Y80 Z80 E456 ; Set steps per mm M566 X900 Y900 Z1 E120 ; Set maximum instantaneous speed changes (mm/min) M203 X9000 Y9000 Z720 E1200 ; Set maximum speeds (mm/min) M201 X500 Y500 Z250 E250 ; Set accelerations (mm/s^2) M906 X1200 Y1200 Z2200 E1100 I0 ; Set motor currents (mA) and motor idle factor in per cent M84 S0 ; Set idle timeout ; Axis Limits M208 X0 Y0 Z0 S1 ; Set axis minima M208 X210 Y150 Z150 S0 ; Set axis maxima ; Endstops M574 X1 Y1 Z0 S0 ; Z-Probe ;M558 P1 I1 R0.4 F300 X0 Y0 Z0 M558 P8 H10 I1 R1 F600 X0 Y0 Z1 G31 X0 Y0 Z-0.25 P600 ; Heaters M140 H-1 ; Disable heated bed M305 P1 T100000 B4138 C0 R4700 ; Set thermistor + ADC parameters for heater 1 M143 H1 S280 ; Set temperature limit for heater 1 to 280C ; Fans M106 P0 H-1 ; set fan 1 to be gcode controlled M106 P2 S1 I0 T45 H1 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned off ; Tools M563 P0 D0 H1 ; 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
Everything that I've pasted is indeed from the System tab under File Management in DWC.
-
It really seems like your endstops are not actually working.
Can you confirm what firmware version is installed with M115?
And then can you confirm that the status of the endstops changes when you click them by checking with M119?
Earlier when you send M98 P"config.g" it didn't seem to echo anything back. Can you try again? There should be at least some response.
-
The result of M115:
M115 FIRMWARE_NAME: RepRapFirmware for Duet 2 WiFi/Ethernet FIRMWARE_VERSION: 2.05.1 ELECTRONICS: Duet WiFi 1.02 or later FIRMWARE_DATE: 2020-02-09b
M119 correctly reports X and Y endstops (first/bottom is homed; then/middle is not; last/top is not for X and Y but I was tapping the nozzle to trigger the piezo):
M119 Endstops - X: not stopped, Y: not stopped, Z: not stopped, Z probe: at min stop M119 Endstops - X: not stopped, Y: not stopped, Z: not stopped, Z probe: not stopped M119 Endstops - X: at min stop, Y: at min stop, Z: not stopped, Z probe: not stopped
No echo on M98 P"config.g" only green background on the message.
-
I guess your config.g is stripped down enough that some of the usual things like showing HTTP and FTP enabled etc aren't present, so there's nothing getting echoed.
Can you try adding M117 "Loading Config" to the end of config.g and when you save and reboot and send M98 P"config.g" again it should at least echo that.
Ok it looks like endstops are reporting correctly.
-
;Home X and Y G91 ; relative positioning G1 Z5 F420 H2 ; Lower bed 5mm to ensure it is below the switch trigger height M400 M913 X50 Y50 ; set X Y motors to 50% of their normal current for homing G1 H1 X-375 Y-305 F600 ; course home X or Y G1 H1 X-375 F600 ; course home X G1 H1 Y-305 F600 ; course home Y G1 X5 Y5 F600 ; move away from the endstops G1 H1 X-10 F200 ; fine home X G1 H1 Y-10 F200 ; fine home Y G1 X5 Y5 F600 ; go to origin M400 M913 X100 Y100 ; set X Y motors to 100% of their normal current ;Home Z G90 ; absolute positioning G1 X30 Y30 F600 ; go to first probe point G30 ; home Z by probing the bed G91 ; relative positioning G1 Z5 F420 ; lift Z relative to current position G90 ; absolute positioning ;Load height map G29 S1
Does your homeall match that now after the corrections?
-
When I run M98 P"config.g" I get no new messages in the console but I see a "Loading config" floating message in the bottom right part of DWC.
My homeall wasn't matching what you have laid out. The difference was the H1 instead of S1. In any case, there is no change - same behaviour and error. For the sake of completeness I ran that line by line as well and it again fails on G1 X5 Y5 F600 with Error: G0/G1: insufficient axes homed.
-
@equanimity8 said in Error when setting up independent motor bed levelling on CoreXY:
@fcwilt When I start with (G1 Z5 H2 F420) as per your suggestions I get a little but further, namely to G1 X5 Y5 F600 (line 8 in homeall.g) and I get the same error (Error: G0/G1: insufficient axes homed).
I don't understand what you mean by "get a little further"?
I just wanted you to execute that one command from the DWC console right after a reboot BEFORE doing anything else.
Frederick
-
By a little bit further I mean that I manage to execute more lines compared than before i.e. a bit further down the list of lines. I might have misunderstood you then. The (G1 Z5 H2 F420) command executes fine and I'm able to get to G1 X5 Y5 F600 (line 8 in homeall.g) before I get the error.
-
Ok at least we have confirmed that our config.g is being executed. You can delete the M117 now if you like.
At this point I think it may be useful to backup your current /sys folder files. (check box to highlight all files and then right click and download as zip.)
And then try a fresh config set from the web tool. something is wrong in there and it could even be hidden characters throwing it off. A fresh set of files would cross that off the list.
https://configtool.reprapfirmware.org/Start
If you have a recent config.json file in your /sys folder you can upload that to the tool to get your basic config settings populated, otherwise refer to the values from your existing config.g.
Bear in mind that you would need to manually add in the drive mapping for the second Z driver.
-
I was actually going to bring up creating new config from scratch myself. I will do that (hopefully) tomorrow evening and report back.
Thanks all who tried to help!
-
@equanimity8 said in Error when setting up independent motor bed levelling on CoreXY:
By a little bit further I mean that I manage to execute more lines compared than before i.e. a bit further down the list of lines. I might have misunderstood you then. The (G1 Z5 H2 F420) command executes fine and I'm able to get to G1 X5 Y5 F600 (line 8 in homeall.g) before I get the error.
Thanks.
So the line G1 X5 Y5 F600 is the command that is generating the error?
Frederick