x and y axis speed limit?
-
@jasperg what i would say is your M566 is very very low. its in mm/min so i would expect values more like 180 (3 * 60) rather than 3. I use 300mm/min on my machine (5mm/s)
-
@jay_s_uk hey thanks for the advice. You mean M566 right?
-
@jasperg sorry yes, M566
-
@jay_s_uk hey thanks for the advice, ill try something much higher. you meant M566 right? I have not tried changing it as i didn't think it would affect different axis in different ways. As they are all set to 3. I can't think why the speed is limited only on the x and y. As far as I know I have set up x,y,z all with exactly the same settings.
I am still quite new to this. -
@jasperg your microstepping is also very odd. which duet board are you using?
Microstepping is normally a geometric value (e.g. 1, 2, 4, 8, 16, 32, 64, 128 or 256) so a value of 6 wouldn't be valid (M350) so I don't know whether this is screwing with things.
What motors are you using (can you provide the datasheet)? as your M203 and M201 values are a lot higher than I would typically expect as well
Your idle current (the I value in M906) is also quite low and could cause an issue (a value of 30 is more typical than 10) -
Can you send M122 and M98 P"config.g" in the DWC gcode console and copy paste the results here?
-
@jasperg if you are testing the speed by running a print, or after you have run a print, and the print file was generated by PrusaSlicer, then the print file may have reset the M203 X and Y speed limits to very conservative values.
-
@jay_s_uk Oh yes I must have deleted the 1 on each of them some how. I though I had set it to 16.
M203 is set high on all axis as did not want that to be the limiting factor when I am testing.
I should probably explain what I am trying to do.
I have 2 motors on each axis each are the ones spec'd in the the voron 2 designI am using T40 pully with a belt connecting each motor. And I have just mounted them 2020 with a linear rail. between them and I am just running them back and forth at higher and higher accelerations till they stall, just to see what the limit in speed is over the distance.
With a requested speed of 2833 mm/s I get 1897.4 on X and Y but 2473.9 on Z.
As Increase the acceleration on each axis I get a faster and faster speed on Z but X and Y seem to have hit a limit that I cannot see. I added a U axis as well with just one motor, not attached to anything but the same settings as the others, and it has the same top speed as Z over the same distance.I then tried adding the Y motors on to the U axis and they were then moving at the same speed as the Z as well.
It seems like there is something I have not found that is limiting the acceleration when it is on the X and Y axis
motor spec
Electrical Specification
Inductance(mH) 3
Phase Resistance(ohm) 1.4
Rated Current(A) 2
Step Angle(deg.) 1.8 Bipolar
Holding Torque(Ncm) 59Physical Specification
IP Rating 40
Frame Size Nema 17 -
M98 P"config.g" HTTP is enabled on port 80 FTP is disabled TELNET is disabled M122 === Diagnostics === RepRapFirmware for Duet 2 WiFi/Ethernet version 3.4.1 (2022-06-01 21:05:28) running on Duet WiFi 1.02 or later + DueX5 Board ID: 08DGM-956GU-DJ3SJ-6J1FD-3S06T-9ANZG Used output buffers: 3 of 26 (23 max) === RTOS === Static ram: 23860 Dynamic ram: 74216 of which 0 recycled Never used RAM 13836, free system stack 120 words Tasks: NETWORK(ready,13.3%,203) HEAT(notifyWait,0.0%,388) Move(notifyWait,0.0%,294) DUEX(notifyWait,0.0%,24) MAIN(running,86.6%,384) IDLE(ready,0.0%,30), total 100.0% Owned mutexes: WiFi(NETWORK) === Platform === Last reset 01:47:11 ago, cause: power up Last software reset at 2022-07-09 14:09, reason: User, GCodes spinning, available RAM 10580, slot 1 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0041f000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a Error status: 0x00 Step timer max interval 0 MCU temperature: min 37.8, current 41.3, max 42.3 Supply voltage: min 23.8, current 24.3, max 24.6, under voltage events: 0, over voltage events: 0, power good: yes Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0 Events: 0 queued, 0 completed Driver 0: standstill, SG min 0 Driver 1: standstill, SG min 0 Driver 2: standstill, SG min 0 Driver 3: standstill, SG min 0 Driver 4: standstill, SG min 0 Driver 5: standstill, SG min 0 Driver 6: standstill, SG min n/a Driver 7: standstill, SG min n/a Driver 8: standstill, SG min n/a Driver 9: standstill, SG min n/a Driver 10: Driver 11: Date/time: 2022-07-12 19:29:29 Cache data hit count 4294967295 Slowest loop: 20.39ms; fastest: 0.18ms 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: 20.0MBytes/sec SD card longest read time 1.5ms, write time 2.0ms, max retries 0 === Move === DMs created 83, segments created 7, maxWait 1448437ms, bed compensation in use: none, comp offset 0.000 === MainDDARing === Scheduled moves 18, completed 18, 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 -1 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0 === 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 === DueX === Read count 0, 0.00 reads/min === Network === Slowest loop: 199.84ms; fastest: 0.08ms Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions HTTP sessions: 1 of 8 - WiFi - Network state is active WiFi module is connected to access point Failed messages: pending 0, notready 0, noresp 2 WiFi firmware version 1.26 WiFi MAC address 60:01:94:73:5b:e4 WiFi Vcc 3.34, reset reason Turned on by main processor WiFi flash size 4194304, free heap 24240 WiFi IP address 192.168.103.167 WiFi signal strength -58dBm, mode 802.11n, reconnections 0, sleep mode modem Clock register 00002002 Socket states: 0 0 0 0 0 0 0 0
-
@dc42 at the moment I am just testing each axis with 2 motors mounted on a 2020 with linear rail running back and forth on a belt with T40 pulleys connected to the the motors. I am just sending the gcode below at the moment
g00 x0 y0 z0 f170000 g00 x0 y180 z0 g00 x0 y0 z0 g00 x0 y180 z0 g00 x0 y0 z0 g00 x0 y180 z0 g00 x0 y0 z0 G4 P10 g00 x00 y00 z00 g00 x0 y0 z180 g00 x00 y00 z00 g00 x0 y0 z180 g00 x00 y00 z00 g00 x0 y0 z180 g00 x00 y00 z00 G4 P10 g00 x00 y00 z00 g00 x180 y0 z0 g00 x00 y00 z00 g00 x180 y0 z0 g00 x00 y00 z00 g00 x180 y0 z0 g00 x00 y00 z00 G4 P10
-
I have updated the config to have M350 16 micro stepping and M566 180 maximum instantaneous speed change. but did not see any difference.
; Configuration file for Duet WiFi (firmware version 3.3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.3.10 on Sat Jul 02 2022 12:58:01 GMT+0800 (Singapore Standard Time) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"chip chop" ; set printer name ; Network M552 S1 ; enable network M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; 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 S1 ; physical drive 3 goes forwards M569 P4 S1 ; physical drive 4 goes forwards M569 P5 S1 ; physical drive 5 goes forwards M569 P6 S1 ; physical drive 6 goes forwards M584 X0:4 Y1:5 Z2:3 ; set drive mapping E3:4:5 M584 U6 M350 X16 Y16 Z16 U16 I1 ; E6:6:6 ; configure microstepping with interpolation M92 X40.00 Y40.00 Z40.00 U40.00 ;E40.00:40.00:40.00 ; set steps per mm M566 X180.00 Y180.00 Z180.00 U180.00 ;E3.00:3.00:3.00 ; set maximum instantaneous speed changes (mm/min) M203 X350000.00 Y350000.00 Z350000.00 U350000.00 ;E350000.00:350000.00:350000.00 ; set maximum speeds (mm/min) M201 X34000.00 Y34000.00 Z34000.00 U34000.00 ;E29000.00:29000.00:29000.00 ; set accelerations (mm/s^2) M906 X1800 Y1800 Z1800 U1800 I10 ;E1800:1800:1800 I0.1 ; set motor currents (mA) and motor idle factor in per cent M84 S5 ; Set idle timeout ; RepRapFirmware applies the M204 accelerations to the move as a whole, and also applies the limits set by M201 to each axis and extruder ; Axis Limits M208 X0 Y0 Z0 U-5000 S1 ; set axis minima M208 X180 Y180 Z180 U 5000 S0 ; set axis maxima ; Endstops M574 X1 S1 P"xstop" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin xstop M574 Y1 S1 P"ystop" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin ystop M574 Z1 S1 P"zstop" ; configure switch-type (e.g. microswitch) endstop for low end on Z via pin zstop ; Z-Probe ;M558 P0 H0 F120 T4800 ; disable Z probe but set dive height, probe speed and travel speed ;M557 X0:0 Y0:0 S20 ; define mesh grid ; Heaters M140 H-1 ; disable heated bed (overrides default heater mapping) ; Fans ; Tools ; Custom settings are not defined
-
@jasperg you appear to be commanding moves 180mm long. Have you worked out the maximum speed that can be reached mid-move, given the acceleration you have configured?
The M566 settings are not relevant here. The microstep settings could be relevant, in that if you have specified high microstepping in the M350 command then at high speeds you may reach the limit at which step pulses can be generated.
-
@dc42 what I did is set the length of the move to 180 and put a very high rate. With what i think are exactly the same settings on each axis. Then gradually up the acceleration that I set in the config file on each new test, originally I was doing this to test at what point the motor stalls, as I wanted to see how effective using 2 motors driving the same belt was at increasing power and speed but at one point the x and y axis stop accelerating any faster, yet the z will continue to do so. I can't find anything that is set any differently between each axis at the moment.