Startup error on RRF 3.5.0 rc1
-
I just upgraded a printer from RRF 3.2 (I think) to RRF3.5.0 rc1. No changes on the config file. Now, when I power up the printer, I get the following error message:
Error in start-up file macro line 46: in file macro line 46 column 35: M92: array too long, max length = 0
Line 46 in config.g is:
M92 X80.20 Y80.15 Z400.00:400.00 E400
When I move the E400 to it's own line, the error message follows the E400 line.
I suspect that something in RRF has changed but I have not been able to find details on thisI did find some mention of changes to M92 and arrays but couldn't make heads or tails out of it.
-
@jens55 It's most likely the colon separated values for Z that are screwing it. You can only set steps per mm for each axis, regardless of how many motors that axis has.
-
@jens55 I second Ian and the strange error message is from the CheckArrayLength function which checks the array element numbers, and there is no room for the E value, because Z used 2 instead of one value.
-
@deckingman, thank you. Before my inquiry I did drop the second Z number when I moved e400 to it's own line but it still gave me the error. Just for the heck of it I capitalized the m92 and e400 and the error went away. Put lower case back in and no error ..... <shrug>
No idea what's going on but the problem is fixed so thank you very much!
Thanks @JoergS5 as well. -
The error message is back ....
-
@jens55 post your full config
-
@jay_s_uk , config.g attached below as per request.
Please also note that I upgraded the wifi server (2.1beta4) and DWC is 3.5.0-rc.1
I also commented out the M92 E400 line to see what would happen. I got the same error but for a line further down and got:
Error in start-up file macro line 51: in file macro line 51 column 22: M350: array too long, max length = 0; Configuration file for Duet WiFi (firmware version 1.21) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v2 on Sat May 25 2019 18:49:41 GMT-0700 (Pacific Daylight Time) ; updated manually to reflect changes for RRF3 ; General preferences M111 S0 ; Debug off G21 ; work in mm G90 ; Send absolute coordinates... M83 ; ...but relative extruder moves ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; run this series of commands to reset the wifi network which is stored on the Duet ;m552 s-1 ; disable wifi module ;g4 s1 ;pause ;m552 s0 ; disable network ;G4 S1 ;pause ;m588 s"*" ; forget all networks ;G4 S1 ; pause ;m587 s"---------" P"===========" ; set new network ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Network M550 P"Frank" ; Set machine name M552 S1 ; Enable network ;*** Access point is configured manually via M587 and stored on wifi card (not on regular memory card), see above comments M586 P0 S1 ; Enable HTTP M586 P1 S0 ; Disable FTP M586 P2 S0 ; Disable Telnet ; Drives M569 P0 S0 ; Physical drive 0 goes backwards (x) M569 P1 S0 ; Physical drive 1 goes backwards (y) M569 P2 S1 ; Physical drive 2 goes forwards (not used) M569 P3 S0 ; Physical drive 3 goes backwards (E0) M569 P4 S0 ; Physical drive 4 goes backwards (E1) (not used) M569 P5 S1 ; Physical drive 5 goes forwards (Z) M569 P6 S1 ; Physical drive 6 goes forwards (second Z) M92 X80.20 Y80.15 Z400 ; Set steps per mm - Z was at 406 but large print showed that 400 is the correct number. E was 405, changed to 400 as well M92 E400 M350 X16 Y16 Z16:16 E16 I1 ; Configure microstepping with interpolation for x,y,z,E0 ; map axis M584 X0 Y1 Z5:6 E3 ; define that driver 0 is x, driver 1 is y, driver 2 (normally z) is unused, two independant z drivers are used, 5 and 6 on the duex5 expansion board and extruders are drivers 3 and 4 M671 x-30:530 Y250:250 S3 ; define where the two different z screws are located (x -30 and 530, y at 250 and 250), S is the maximum correction to be applied in mm ;The M92 commands to set steps/mm should either come after any M350 command to set microstepping, or else the M92 parameters should be correct for the default x16 microstepping. This is because when you change microstepping, the steps/mm are automatically adjusted to take account of the change in microstepping. M98 P"stepper_settings_default.g" ; call stepper_settings_default.g in order to set default parameters ; Axis Limits ; ;M208 X8 Y5 Z-0.5 S1 ; Set axis minima, this is what the axis are set to after homing M208 X-20 Y-5 Z-0.5 S1 ;M208 X530 Y490 Z460 S0 M208 X520 Y440 Z430 S0; Set axis maxima ++++++++++++++++++++ does not account for x offset of second extruder ; set up BlTouch ; set up probe type M558 P9 C"^zprobe.in" H3 F60 T6000 A10 R1.25 S0.008 B1 ; Set Z probe type/mode 9. H=Dive Height. F=Speed probe speed, ; T= speed between probe points, A10 = probe up to 10 times ; R1.25 = allow settlement time, S0.008 = two consecutive probes need ; to be within 0.008 mm, ; B1 = turn off heat for the actual probing ; B0 = leave heating on M950 S0 C"^!exp.heater7" ; create servo/gpio 0 on heater 7 on expansion connector ; set up offset of probe to nozzle 1 ; X is negative if probe is in front of nozzle towards front of printer ; Y is negative if probe is towards y=0 of nozzle ; We start with a Z offset of 0.0mm in regards to actual probe activation and factual distance. ; This value will be adjust later on, to match our setup. ; Important: It is important to have Z-offset at 0 before calibrating. ; P is the value needed to trigger the BLTouch. Doesn't seem to matter ... M98 P"Toffset.g" ; set the x/y z offset values of probe vs nozzle (not sure if probing point gets adjusted or nozzle position - I think the later) ; must set probe offset from nozzle - optically ;G31 is overwritten via Toffset.g system macro ;G31 P25 X-2 Y+2 Z0.46 ; P probe trigger value, offset in relation to nozzle. And trigger height adjustment ; if the nozzle is too low then lower the Z offset amount (subtract the amount needed to establish correct clearance) ; Endstops M574 X1 S1 P"xstop" ; configure active-high (S1)endstop for low end on X via pin xstop M574 Y1 S1 P"ystop" ; configure active-high endstop for low end on Y via pin ystop M574 Z1 S2 ; Z endstop is the z probe both Z0 and Z1 seem to work to activate probe and not use regular endstop, home to minimum ; Heaters M308 S0 P"bedtemp" Y"thermistor" T100000 B4900 ; configure sensor 0 as thermistor on pin bedtemp (main bed temp sensorsor) ; measured 68.5 degrees when bed temp was set to 70 degrees (with B4200) - seems fine, took a long time to equalize ;M308 S0 P"bedtemp" y"PT1000" M308 S3 P"e2temp" Y"thermistor" A"bed sense 2" T100000 B5000 ; configure alternate or second bed heat sensor ; was B4200 b ut read considerably higher than actual temp - changed to B5000 M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0 M140 H0 ; set bed heater to heater zero M143 H0 S120 ; set temperature limit for heater 0 to 120C M307 H0 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit ;M308 S1 P"e0temp" Y"thermistor" T100000 B3700 ; configure sensor 1 as thermistor on pin e0temp ... (this is the hot end sensor) ; was B4200 but B3700 was a better match with 200 set temp giving 205 actual and 250 set temp giving 246 actual M308 S1 P"e0temp" Y"pt1000" L0 ; configure the hot end temp sensor to be a PT1000 M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1 M143 H1 S300 ; set temperature limit for heater 1 to 300C M307 H1 B0 S1.0 ; disable bang-bang mode for the nozzle heater and set PWM limit ;M308 S2 P"e1temp" Y"thermistor" T100000 B4200 ; configure sensor 2 as thermistor on pin e0temp ;M950 H2 C"e1heat" T2 ; create nozzle heater output on e0heat and map it to sensor 2 ;M143 H2 S300 ; set temperature limit for heater 2 to 300C ;M307 H2 B0 S0.6 ; disable bang-bang mode for the nozzle heater and set PWM limit ; Fans ; FAN1 is set up as a thermostatically-controlled fan by default because it is typically used to control the hot end heatsink fan. ; To use it as a normal controlled fan, you must first cancel thermostatic mode by sending M106 P1 H-1. ; note that fan1 is heatsink fan, fan 0 is first tool fan M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency M950 F1 C"fan2" Q500 ; create fan 1 on pin fan2 and set its frequency M106 P0 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on. This fan turns on if heater1 is over 45 degrees M950 F8 C"duex.fan8" ; declare fan 8 on the duex card - this is the fan output used for the automatic bed lights M106 P8 S1 H1 T45 ; lights are turned on automatically when nozzle 1 is over 45C ; Tools ; NOTE: G10 COMMANDS IN CONFIG-OVERWRITE.G OVERWRITE THESE PARAMETERS !!!!!!!!!!! M563 S"Nozzle 0" P0 D0 H1 F1 ; 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 S"Nozzle 1" P1 D1 H2 F0 ; define tool 1 ;G10 P1 X20 Y0 Z0 ; set tool 1 axis offsets ;G10 P1 R0 S0 ; set initial tool 1 active and standby temperatures to 0C ; set up filament sensors M591 D0 P1 C"e0stop" S1 ; enable (S1) filament sensor (normal switch) on Extruder 0 , connected to E0 sensor ;M591 D1 P1 C"e1stop" S1 ; enable (S1) filament sensor (normal switch) on Extruder 1 , connected to E1 sensor ; Automatic power saving M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; Set voltage thresholds and actions to run on power loss ; Custom settings are not configured ; Mesh grid ; note that probing macros overwrite this ! M557 X5:480 Y18:435 p7:7 ; Set mesh grid to start sampling at x0 y0 + offset of probe and go to x480 and y445 plus probe offset, sample 7 * 7 matrix ;G29 S1 P"heightmap.csv" ; Load height map file heightmap.csv and enable compensation ;G29 doesn't belong here as no z=0 height has been established - moved to homez or homeall ;M376 H10 ; taper off mesh compensation within 10 mm ; set up default heater parameters from config-override.g ; M501 to load values stored in config-override.g should be at or near the end, so that the commands in config-override.g don't get overridden themselves. ; Miscellaneous ; ; for pressure advance calibration use ; http://www.sternwolken.de/tmpup/3dprint/pressureadvance2.py ; change parameters as needed and then run python3 pressureadvance2.py > output.gcode ; M98 P"/sys/Toffset.g" ; Set tool offset x, y, z ;M570 H0 P30 T50 ; change the default heater error parameters H0 - bed heater, P10 - temperature anomality must persist for 10 seconds, ; T20 - permitted temperature excursion ;M570 H1 P10 T20 ; reconfigure hot end fault trip point M501 ; Load saved parameters from non-volatile memory ;-------------------------------------------------------------------------------------------------------------------- ; heater fault ; extend fault trigger time to avoid fault when going from standby to active heater mode or preheat to active mode ;-------------------------------------------------------------------------------------------------------------------- M570 H1 P6 T15 ; An anomaly on heater 1 must persist for 6 seconds, and must be greater or less than 15C from the setpoint, to raise a heater fault. M955 P0 C"spi.cs2+spi.cs1" I60 ; configure accelerometer on mainboard using SPI pins and specify orientation ******************************************************************************************************************** ;M572 D0 S0.075 ; set pressure advance ****************************************M955 P0 I60**************************************************************************** M572 D0 S0.15 ; adjust processor temperature display M912 P0 S-10 ; Processor temperature is about 10 degrees lower than un-calibrated reading says ;T0 ; Select first tool .... only needed in multi extruder setup ;************************************************************************************************************************************** ; old code from RRF 2 ; set up for piezo z probe ;M558 P8 I1 R0.3 F600 H10 T3000 ; Digital mode (P5), active high (I1), delay (R0.3), speed (F600), dive height (H5), probe up to 4 times (A4) for at least two consecutive consistent ;readings,travel speed (T8000) ;M558 P1 I1 R0.3 F300 H5 A4 T8000 ;M558 P1 I1 R0.3 F300 H5 T8000 ;;G31 P500 X11.0 Y0.5 Z1.65 ; set threshold and offsets ;The XYZ parameters in the M558 command define which axes the Z probe is used to home (0 = Z probe not used to home this ;axis, 1 = Z probe used). By default, RepRapFirmware for the Duet 0.8/0.8.5 (but not ;the Duet 2) uses the Z probe to home ;the X and Z axes. ;The H parameter defines the Z probe dive height, which is the height above the trigger height from which probing starts. ;The default is 3mm or 5mm depending on firmware version. You may wish to increase it ;during initial calibration. ;G31 X0 Y0 Z-0.18 P474 ;probe X, Y, Z offsets (all zero = first nozzle), might use x+10 for the spot between the nozzles, Trigger point of probe ; G31 must come after M558 ; Z should normally be slightly negative as the probe triggers just below zero ; correct for proper MMU temperature ;***************************************************************************************************************************************
-
@jens55 said in Startup error on RRF 3.5.0 rc1:
M98 P"stepper_settings_default.g" ; call stepper_settings_default.g in order to set default parameters
what's in this file?
-
@jens55 your M350 line also has two Z values where there should only be one.
-
;Set up default stepper parameters. This file is called from config.g for initial setup ; it is also called from other macros after the default settings were changed in order to return to default parameters. ; ie for probing speed, acceleration and jerk needs to be reduced. After the probing has finished, call this file to restore the default settings ; call tis file as follows: M98 P"stepper_settings_default.g" M566 X600.00 Y300.00 Z600.00:600.00 E3000 ;:3000 ; Set maximum instantaneous speed changes (mm/min) (jerk) **************updated but nt checked yet M203 X30000.00 Y20000.00 Z2000.00:2000.00 E6000 ;:6000 ; Set maximum speeds (mm/min) M201 X3000.00 Y300.00 Z300:300 E3000 ;:3000 ; Set accelerations (mm/s^2) M906 X1500.00 Y1500.00 Z800.00:800.00 E800 I50 ;:800 I50 ; Set motor currents (mA) and motor idle factor in per cent extruder motor current was too high at 800 ma, trying to prevent filament from being ground down so reduced drive to 600 ma M84 S30 ; Set idle timeout
-
@dc42, I removed the second Z microstep configuration in M350 but the error code remained unchanged.
-
@jens55 you need to remove the doubled up Z values from here too
-
-
@jay_s_uk I removed all the doubled up Z lines in stepper_settings_default.g but the error message is still there
-
@jens55 can you post the output of
M98 P"config.g"
-
m98 p"config.g"
HTTP is enabled on port 80
FTP is disabled
TELNET is disabledThere were a couple of other errors reported but I fixed those and re-ran the command
-
@jens55 said in Startup error on RRF 3.5.0 rc1:
M98 P"/sys/Toffset.g"
maybe this one not being fully formed? missing the
0:
-
Changed the formatting on both M98 lines - no change
-
@jens55 said in Startup error on RRF 3.5.0 rc1:
Error in start-up file macro line 46: in file macro line 46 column 35: M92: array too long, max length = 0
Line 46 in config.g is:
M92 X80.20 Y80.15 Z400.00:400.00 E400Going back to that original message, the error states that it expected an array of length 0. You also said that if you separate the E value into a separate M92 line, the error moves to that line.
The likely cause is that you have no extruders configured at the point at which that line is executed. If it's a CNC or laser machine that has no extruders, just remove the E parameter. If it's a 3D printer and you do need extruders, move the M92 line to a position later in the file than the M584 command that creates the extruder(s).
Edit: this is indeed the problem, your M92 E command is at line 49 and the M584 command is line 56.
-
@dc42, thank you. I moved M584 to before the M92 commands and now , after a minor other fix, everything is working and there are no error messages.
-
-