Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    Startup error on RRF 3.5.0 rc1

    Scheduled Pinned Locked Moved Solved
    Firmware installation
    5
    20
    750
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • jens55undefined
      jens55
      last edited by

      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 this

      I did find some mention of changes to M92 and arrays but couldn't make heads or tails out of it.

      deckingmanundefined JoergS5undefined dc42undefined 3 Replies Last reply Reply Quote 0
      • deckingmanundefined
        deckingman @jens55
        last edited by

        @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.

        Ian
        https://somei3deas.wordpress.com/
        https://www.youtube.com/@deckingman

        jens55undefined 1 Reply Last reply Reply Quote 0
        • JoergS5undefined
          JoergS5 @jens55
          last edited by

          @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.

          1 Reply Last reply Reply Quote 0
          • jens55undefined
            jens55 @deckingman
            last edited by

            @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.

            1 Reply Last reply Reply Quote 0
            • jens55undefined
              jens55
              last edited by

              The error message is back .... 😞

              jay_s_ukundefined 1 Reply Last reply Reply Quote 0
              • jay_s_ukundefined
                jay_s_uk @jens55
                last edited by

                @jens55 post your full config

                Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

                jens55undefined 1 Reply Last reply Reply Quote 0
                • jens55undefined
                  jens55 @jay_s_uk
                  last edited by jens55

                  @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
                  
                  ;***************************************************************************************************************************************
                  
                  
                  jay_s_ukundefined dc42undefined 3 Replies Last reply Reply Quote 0
                  • jay_s_ukundefined
                    jay_s_uk @jens55
                    last edited by

                    @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?

                    Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

                    jens55undefined 1 Reply Last reply Reply Quote 0
                    • dc42undefined
                      dc42 administrators @jens55
                      last edited by

                      @jens55 your M350 line also has two Z values where there should only be one.

                      Duet WiFi hardware designer and firmware engineer
                      Please do not ask me for Duet support via PM or email, use the forum
                      http://www.escher3d.com, https://miscsolutions.wordpress.com

                      jens55undefined 1 Reply Last reply Reply Quote 1
                      • jens55undefined
                        jens55 @jay_s_uk
                        last edited by

                        @jay_s_uk

                        ;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
                        
                        
                        jay_s_ukundefined 1 Reply Last reply Reply Quote 0
                        • jens55undefined
                          jens55 @dc42
                          last edited by

                          @dc42, I removed the second Z microstep configuration in M350 but the error code remained unchanged.

                          1 Reply Last reply Reply Quote 0
                          • jay_s_ukundefined
                            jay_s_uk @jens55
                            last edited by

                            @jens55 you need to remove the doubled up Z values from here too

                            Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

                            jens55undefined 2 Replies Last reply Reply Quote 0
                            • jens55undefined
                              jens55 @jay_s_uk
                              last edited by jens55

                              @jay_s_uk on which line please? Note that as per @DC42 line 52 (M350) was fixed.

                              1 Reply Last reply Reply Quote 0
                              • jens55undefined
                                jens55 @jay_s_uk
                                last edited by

                                @jay_s_uk I removed all the doubled up Z lines in stepper_settings_default.g but the error message is still there

                                jay_s_ukundefined 1 Reply Last reply Reply Quote 0
                                • jay_s_ukundefined
                                  jay_s_uk @jens55
                                  last edited by

                                  @jens55 can you post the output of M98 P"config.g"

                                  Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

                                  jens55undefined 1 Reply Last reply Reply Quote 0
                                  • jens55undefined
                                    jens55 @jay_s_uk
                                    last edited by jens55

                                    @jay_s_uk

                                    m98 p"config.g"
                                    HTTP is enabled on port 80
                                    FTP is disabled
                                    TELNET is disabled

                                    There were a couple of other errors reported but I fixed those and re-ran the command

                                    1 Reply Last reply Reply Quote 0
                                    • jay_s_ukundefined
                                      jay_s_uk @jens55
                                      last edited by

                                      @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:

                                      Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

                                      jens55undefined 1 Reply Last reply Reply Quote 0
                                      • jens55undefined
                                        jens55 @jay_s_uk
                                        last edited by

                                        @jay_s_uk

                                        Changed the formatting on both M98 lines - no change

                                        1 Reply Last reply Reply Quote 0
                                        • dc42undefined
                                          dc42 administrators @jens55
                                          last edited by dc42

                                          @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 E400

                                          Going 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.

                                          Duet WiFi hardware designer and firmware engineer
                                          Please do not ask me for Duet support via PM or email, use the forum
                                          http://www.escher3d.com, https://miscsolutions.wordpress.com

                                          jens55undefined 1 Reply Last reply Reply Quote 0
                                          • jens55undefined
                                            jens55 @dc42
                                            last edited by

                                            @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.

                                            1 Reply Last reply Reply Quote 1
                                            • Phaedruxundefined Phaedrux marked this topic as a question
                                            • Phaedruxundefined Phaedrux has marked this topic as solved
                                            • First post
                                              Last post
                                            Unless otherwise noted, all forum content is licensed under CC-BY-SA