Error: bad Command XXX W/RRF 3.2 and leveling issue



  • After installing RRF 3.2, I get "Error: Bad Command" with a three digit error number, when the reset button is hit. The error number changes to a new number every time the reset button is hit.

    Every other time power is cycled, T1 hotend fan turns on and stays on regardless of the hotend temperature. If I hit the reset button again, the next time it will shutoff. Hit it again and it will start.

    Lastly, around the same time my three motor independently leveled Z axis stopped leveling properly. Not sure if its related, I've been trying to diagnose it since 3.2 came out. I've had everything apart two times and I cant find anything wrong mechanically. The code had not changed and I've double checked it a bunch of times. Two other people are using the same or similar config for the same printer. My printer leveled great for about six months prior.

    The BL touch tests a deviation around .005, with moving the carriage between every probe. It still levels about .5mm out of level, back left always low, front right high. If I run trigger height test over the three points I used to level, it gives me a deviation of .005, even thought the points are almost .5mm off in reality.

    I'm not sure if the leveling is related but it started around the same time. Any help would be appreciated as I cant see to find the issue.



  • run M98 P"config.g" and post output.

    post m122 output

    and post your bed.g and config.g


  • Moderator

    @3DPrintingWorld said in Error: bad Command XXX W/RRF 3.2 and leveling issue:

    "Error: Bad Command" with a three digit error number, when the reset button is hit.

    I assume you're seeing this on a PanelDue? This is known and nothing to worry about. What firmware version on the PanelDue?

    Please post the information veti asked for for further help.



  • I am one of the other 2 that are running the same printer design
    What was the version you ran before update to 3.2.
    I updated while changing Z steppers and have the same thing with the back left low and front right high but within 0.15 , so I thought it is something with the magnet base and spring steel sheet. Later I will roll back to 3.0 and try.
    One more thing for now I am runing G29 with 6*6 grid every print and there is some variaton map to map.



  • @martin7404 Hey Martin, I didn't realize you were having a issue as well. I was on 3.1.1, Gui is still on it and is not having the same issue. We double checked our config's but could not find any differences that would matter. I just tried reverting back to 3.1.1, I still get the error but not the fan issue, and its still not homing properly. Maybe updating the firmware is just a coincidence as I was making some other changes at the same time.

    Strange that your map is not repeating. I've done trigger testes where I move the probe 200mm in each direction and back before probes and it repeats within .001-.01. I don't understand how I can use three points to level, then do a trigger height on each point and it says the deviation is only .005, but its actually closer to .25mm.



  • @Veti said in Error: bad Command XXX W/RRF 3.2 and leveling issue:

    post m122 output

    I just reverted to 3.1.1 to see what happens and the fan no longer turns on at startup but I still get the alarms. The bed is still not leveling properly so I assume that is unrelated.

    === Diagnostics ===
    RepRapFirmware for Duet 2 WiFi/Ethernet version 3.1.1 running on Duet WiFi 1.02 or later + DueX5
    Board ID: 08DGM-9T6BU-FG3SJ-6J1FA-3SN6J-1VYRG
    Used output buffers: 3 of 24 (18 max)
    === RTOS ===
    Static ram: 27980
    Dynamic ram: 96468 of which 44 recycled
    Exception stack ram used: 344
    Never used ram: 6236
    Tasks: NETWORK(ready,348) HEAT(blocked,1224) DUEX(suspended,160) MAIN(running,1880) IDLE(ready,80)
    Owned mutexes: WiFi(NETWORK)
    === Platform ===
    Last reset 00:08:07 ago, cause: software
    Last software reset time unknown, reason: User, spinning module GCodes, available RAM 6316 bytes (slot 1)
    Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0441f000 BFAR 0xe000ed38 SP 0xffffffff Task MAIN
    Error status: 0
    MCU temperature: min 38.7, current 39.2, max 39.9
    Supply voltage: min 24.0, current 24.2, max 24.4, 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
    Driver 5: standstill, SG min/max not available
    Driver 6: standstill, SG min/max not available
    Driver 7: standstill, SG min/max not available
    Driver 8: standstill, SG min/max not available
    Driver 9: standstill, SG min/max not available
    Date/time: 2021-02-07 11:43:46
    Cache data hit count 826594182
    Slowest loop: 9.38ms; fastest: 0.14ms
    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 3.8ms, write time 0.0ms, max retries 0
    === Move ===
    Hiccups: 0(0), FreeDm: 169, MinFreeDm: 169, MaxWait: 0ms
    Bed compensation in use: none, comp offset 0.000
    === MainDDARing ===
    Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 CDDA state: -1
    === AuxDDARing ===
    Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 CDDA state: -1
    === Heat ===
    Bed heaters = 0 -1 -1 -1, chamberHeaters = -1 -1 -1 -1
    === 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
    Daemon is idle in state(s) 0
    Autopause is idle in state(s) 0
    Code queue is empty.
    === Network ===
    Slowest loop: 16.53ms; fastest: 0.00ms
    Responder states: HTTP(2) 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 0
      WiFi firmware version 1.23
      WiFi MAC address 60:01:94:2e:09:23
      WiFi Vcc 3.39, reset reason Unknown
      WiFi flash size 4194304, free heap 23088
      WiFi signal strength -54dBm, reconnections 0, sleep mode modem
      Socket states: 4 0 0 0 0 0 0 0
      === Filament sensors ===
      Extruder 0: pos 145.20, errs: frame 0 parity 0 ovrun 0 pol 0 ovdue 0
      Extruder 1: no data received
      === DueX ===
      Read count 1, 0.12 reads/min


  • This is bed.g, I do three points as close as I can to the beds connection points. I have also tried four corners and three points closer to center but results are similar.

    G30 P0 X200 Y285 Z-99999   ; Probe Middle
    G30 P1 X15 Y15 Z-99999     ; Probe Left
    G30 P2 X324 Y15 Z-99999 S3 ; Probe Right
    


  • The important bits of the config for auto leveling. Drives are called out in the same order and their physical location, from left to right.

    Identical locations work for another user and had worked previously for me.

    Drives:

    M569 P5 S0                                      ; Z left physical drive 5 goes backwards 0
    M569 P6 S0                                      ; Z center physical drive 6 goes backwards
    M569 P7 S1                                      ; Z right physical drive 7 goes forwards 1
    

    Mapping

    M584 X0 Y1:2 U3 Z5:6:7 E4:8                     ; set drive mapping
    

    Bed Connection Locations

    M671 X-20.6:200:420.6 Y14.3:333.3:14.3 S5       ; Locations left, center, right 
    


  • ; Drives
    M569 P0 S0                                      ; X physical drive 0 goes backwards
    M569 P1 S0                                      ; Y right physical drive 1 goes forwards
    M569 P2 S1                                      ; Y left physical drive 8 goes backwards
    M569 P3 S1                                      ; U physical drive 2 goes backwards
    M569 P4 S0                                      ; E1 physical drive 3 goes forwards
    M569 P5 S0                                      ; Z left physical drive 5 goes backwards 0
    M569 P6 S0                                      ; Z center physical drive 6 goes backwards
    M569 P7 S1                                      ; Z right physical drive 7 goes forwards 1
    M569 P8 S0                                      ; E2 physical drive 4 goes forwards
    
    M584 X0 Y1:2 U3 Z5:6:7 E4:8                     ; set drive mapping
    
    M350 X16 U16 Y16 Z16 E16:16 I1                                                        ; configure microstepping with interpolation
    M92 X100.00 U100.00 Y100.00:100.00 Z1096:1096:1096 E415.00:655.00                   ; set steps per mm (1760nimble)
    M566 X1000.00 U1000.00 Y1000.00:1000.00 Z80.00:80.00:80.00 E100.00:300.00                   ; set maximum instantaneous speed changes (mm/min)(Nimble 40)
    M203 X12000.00 U12000.00 Y12000.00:12000.00 Z2000.00:2000.00:2000.00 E4200.00:4200.00 ; set maximum speeds (mm/min)
    M201 X800.00 U800.00 Y800.00:800.00 Z35.00:35.00:35.00 E600.00:600.00                ; set accelerations (mm/s^2)(500)(Nimble 120)
    M906 X700 U700 Y700:700 Z200:200:200 E800:600 I30                                     ; set motor currents (mA) and motor idle factor in per cent(Nimble 500)
    M84 S30                                                                               ; Set idle timeout
    
    ; Axis Limits
    M208 X-21.4 Y0 U33 Z0 S1                        ; set axis min was (-18 BMG)16.7_X-14.4 Y0 U40 Z0 S1
    M208 X344 U415.7 Y334 Z300 S0                     ; set axis max Y WAS 339_X350 U422.7 Y334 Z300 S0
    
    M669 K0 Y1:-1:0:1				                ; select Markforged Kinematics Y to react with X and U
    
    ; Endstops 
    M574 X1 S1 P"xstop"                             ;X axis active high endstop switch
    M574 Y2 S1 P"ystop+zstop"                       ; Y Double max active high endstop switch
    M574 U2 S1 P"duex.e2stop"                            ;U axis active high endstop switch
    M574 Z1 S2 						; Define Z to use Probe. Home to Min.
    
    ; Filament Sensor
    M591 D0 P3 C"e0stop" S1 R70:130 L24.8 E3.0 ; Duet3D rotating magnet sensor for extruder drive 0 is connected to E0 endstop input, enabled, sensitivity 24.8mm.rev, 70% to 130% tolerance, 3mm detection length
    M591 D1 P3 C"e1stop" S0 R70:130 L24.8 E3.0 ; Duet3D rotating magnet sensor for extruder drive 0 is connected to E0 endstop input, enabled, sensitivity 24.8mm.rev, 70% to 130% tolerance, 3mm detection length
    
    M591 D0 ; display filament sensor parameters for extruder drive 0
    M591 D1 ; display filament sensor parameters for extruder drive 0
    
    ; Z-Probe
    M671 X-20.6:200:420.6 Y14.3:333.3:14.3 S5       ; Locations left, center, right 
    M950 S0 C"duex.e6heat"                          ; create servo pin 0 for BLTouch
    M558 P9 C"zprobe.in" H5 F120 T5000   ; set Z probe type to bltouch and the dive height + speeds (WAS 9000)
    G31 P25 X-29 Y0 Z1.37                             ; set Z probe trigger value, offset and trigger height(lower number farther away)1.54build 1.44glass 
    M557 X10:360 Y10:290 S20                        ; probe from X=10 to 390, Y=10 to 290mm with a mesh spacing of 20mm
    
    ; Heaters
    M308 S0 P"bedtemp" Y"thermistor" T100000 B4534 C9.565227e-8      ; 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
    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
    M140 H0                                                          ; map heated bed to heater 0
    M308 S1 P"e0temp" Y"thermistor" T500000 B4723 C1.196220e-7 R4700 ; 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
    M143 H1 S280                                                     ; set temperature limit for heater 1 to 280C
    M307 H1 B0 S1.00                                                 ; disable bang-bang mode for heater  and set PWM limit
    M308 S2 P"e1temp" Y"thermistor" T500000 B4723 C1.196220e-7 R4700 ; configure sensor 2 as thermistor on pin e1temp
    M950 H2 C"e1heat" T2                                             ; create nozzle heater output on e1heat and map it to sensor 2
    M143 H2 S280                                                     ; set temperature limit for heater 2 to 280C
    M307 H2 B0 S1.01                                                 ; disable bang-bang mode for heater  and set PWM limit
    
    ; Fans
    M950 F0 C"fan0" Q500                             ; create fan 0 on pin fan0 and set its frequency
    M106 P0 S0 H-1                                   ; set fan 0 value. Thermostatic control is turned off
    M950 F1 C"fan1" Q500                             ; create fan 1 on pin fan1 and set its frequency
    M106 P1 S1 H1 T45                                ; set fan 1 value. Thermostatic control is turned on
    M950 F2 C"duex.fan4" Q500                             ; create fan 2 on pin fan2 and set its frequency
    M106 P2 S0 H-1                                   ; set fan 2 value. Thermostatic control is turned off
    M950 F3 C"duex.fan8" Q500                        ; create fan 3 on pin duex.fan8 and set its frequency
    M106 P3 S1 H2 T45                                ; set fan 3 value. Thermostatic control is turned on
    
    ; LEDs
    M950 F4 C"duex.fan6" ;Q500                       ; create LED 4 on pin duex.fan6 and set its frequency
    M106 P4 S255 H-1                                 ; set LED 4 value. Thermostatic control is turned OFF
    M950 F5 C"duex.fan7" ;Q500                       ; create LED 5 on pin duex.fan7 and set its frequency
    M106 P5 S255 H-1                                 ; set LED 5 value. Thermostatic control is turned OFF
    
    ; Tools
    M563 P0 D0 H1 F0 S"Left"                      ; define tool 0 Left 
    G10 P0 X0 Y0 Z0                               ; set tool 0 axis offsets y was .45
    G10 P0 R0 S0                                     ; set initial tool 0 active and standby temperatures to 0C
    
    M563 P1 D1 H2 X3 F2 S"Right"                        ; define tool 1 Right
    G10 P1 X0 Y-1.45 Z0                                  ; set tool 1 axis offsets (.5BMG)
    G10 P1 R0 S0                                     ; set initial tool 1 active and standby temperatures to 0C
    
    M563 P2 D0:1 H1:2 X0:3 F0:2 S"Copy"              ; define tool 2 Copy
    G10 P2 X95 Y0 U-95 S0 R0                         ; set tool 2 axis offsets (WAS 105)
    M567 P2 E1:1         
    M568 P2 S1 ; turn on mixing for tool 2           ; set mix ratio 100% on both extruders
    
    M501                                             ; Record
    
    M575 P1 S1 B57600                                ;Panel due
    


  • @3DPrintingWorld Before your post I thought 0.15 was from the magnetic mat and steel sheet. Before the update, I was with 3.0. The 3 Z motors are new , but my Z print calibration is within 0.02mm so the steps are correct For G32 I do it 2 times from the beginning



  • @3DPrintingWorld said in Error: bad Command XXX W/RRF 3.2 and leveling issue:

    M92 X100.00 U100.00 Y100.00:100.00 Z1096:1096:1096 E415.00:655.00

    z does not allow for more than one value

    remove them from M566 M92 M203 M201 and M906

    what i did for the bed leveling to see if the adjustments were correct is look at the heightmap before and after a g32.



  • Anyway, the manual says it will take the first one, so no problem. Also as stated it was working fine before the firmware update.
    What G32 has to do with the heightmap, that is made with g29 probing. G32 just levels the bed on 3 points



  • @3DPrintingWorld said in Error: bad Command XXX W/RRF 3.2 and leveling issue:

    @martin7404

    Also as stated it was working fine before the firmware update.

    I have no idea if this is related but it might be.

    On my 3 Z stepper printer each Z stepper has it's own end stop sensor. The Z steppers are on the Duex 5 board.

    I home Z using the end stop sensors which have been carefully adjusted to result in the bed being very nearly level.

    I then use G32 to perform the final bed leveling.

    Under 3.1.1 everything worked fine for months and months of use. I recently upgraded to 3.2.0.

    Under 3.2.0 Z homing frequently failed as one of the Z steppers would fail to stop when it's end stop sensor was triggered.

    Since I could not rely on the Z homing I never moved on to the next step of using G32 so I cannot say if that would have worked or not.

    Frederick



  • @martin7404 said in Error: bad Command XXX W/RRF 3.2 and leveling issue:

    Anyway, the manual says it will take the first one, so no problem.

    I'll take them out to neaten it up anyways.

    Agreed, the height map should not have anything to do with it. Right now the height map is cleared and I'm just trying to get the bed level to the nozzle.



  • I played a little with G32 . Strange
    After initial tramming twice with G32
    Here is 5 more made one after other

    2/8/2021, 12:50:52 PM	g32
    Leadscrew adjustments made: 0.007 -0.004 -0.028, points used 3, (mean, deviation) before (-0.008, 0.010) after (-0.000, 0.000)
    2/8/2021, 12:36:06 PM	G32 bed probe heights: 0.003 -0.006 -0.020, mean -0.008, deviation from mean 0.009
    2/8/2021, 12:35:43 PM	g32
    Leadscrew adjustments made: -0.000 -0.007 0.017, points used 3, (mean, deviation) before (0.003, 0.008) after (-0.000, 0.000)
    2/8/2021, 12:32:41 PM	G32 bed probe heights: 0.008 -0.006 0.013, mean 0.005, deviation from mean 0.008
    2/8/2021, 12:32:18 PM	g32
    Leadscrew adjustments made: -0.008 -0.007 0.018, points used 3, (mean, deviation) before (0.000, 0.009) after (0.000, 0.000)
    2/8/2021, 12:31:32 PM	G32 bed probe heights: 0.009 -0.006 0.014, mean 0.005, deviation from mean 0.008
    2/8/2021, 12:31:09 PM	g32
    Leadscrew adjustments made: 0.092 -0.021 -0.039, points used 3, (mean, deviation) before (0.018, 0.044) after (-0.000, 0.000)
    2/8/2021, 12:29:59 PM	G32 bed probe heights: 0.060 -0.013 -0.019, mean 0.010, deviation from mean 0.036
    2/8/2021, 12:29:36 PM	g32
    Leadscrew adjustments made: -0.110 -0.019 0.009, points used 3, (mean, deviation) before (-0.046, 0.038) after (0.000, 0.000)
    


  • post a picture of the mesh bed leveling



  • 81eb957a-e35d-4f1b-850b-3c616d15081c-image.png



  • So I roll back to 3.1.1 and the heatmap is consistent, the tramming is working kind of. the deviation can be due to magnetic mat + steel sheet



  • @martin7404 said in Error: bad Command XXX W/RRF 3.2 and leveling issue:

    So I roll back to 3.1.1

    Surprised that made a difference, it didn't do anything for me when I reverted.

    The leveling seems very consistent, just not level. I'm gong to try putting incorrect locations into the M671 to see if I can trick it into leveling properly. The front right corner is high so I'm going to move that point out further in the X until the bed is level. If I adjust just this motor by hand it seems to fall into level so it should work.



  • The two front motors are aligned in the X axis so I physically swapped motors, and switched the rotation direction in the config so they run in the correct direction. Now when it corrects for level it should be backwards, but it levels it exactly the same! Left back corner low, right front corner high.

    I also moved the front right motor location in the M671 over as much as 350mm, but it has no effect and levels exactly the same! Left back corner low, right front corner high.

    How can making these changes have no effect on level? The results should be all jacked up but nothing I do seems to have any effect on the outcome. At the same time, I don't understand how its correcting to the same bad plan every time even though I've giving it bad information.


  • Moderator

    @3DPrintingWorld said in Error: bad Command XXX W/RRF 3.2 and leveling issue:

    I don't understand how its correcting to the same bad plan every time even though I've giving it bad information.

    Are the files you are editing the actual files being used? Occasionally someone will edit a macro file in the macros folder without realizing the file they should be editing is actually in the sys folder. Could it be something like that happening here?



  • @Phaedrux Ha, you got to give me more credit then that. Yes, I'm modifying the config file in my systems folder. I know because I also swapped the left and right stepper motors and if I don't update the directions in the config one of the motors will be rotating in the wrong direction. Speaking that, like it says here. When I swap the X motors it should be leveling the opposite but I swapped the motors but its still identically off level.

    swap.png


  • Moderator

    I had to ask. It happens sometimes.



  • Is its possible that the firmware is corrupt? I tried reverting to 3.1 but it did not fix any of the issues. Is there a way to remove it and do a fresh install?



  • I manually adjusted the bed so it was out of level and I swapped a front motor with the back motor. It still levels at the same off level point? No matter what I do changes nothing, It makes no sense.


Log in to reply