Firmware Crash?

(ShaneEEEE_SW) #1

I am using OctoPrint hosted on a Raspberry Pi 2

Slice model up in Cura, upload to OctoPrint, click print. Bed heats up, nozzle heats up then it starts the auto levelling procedure through the G32 command. It completed the procedure and all is well, then LED 2 goes out and the printer stops responding. I have to reset the board using the reset button.

The Config file for the auto levelling is as below:

gamma_min_endstop                                nc               #
gamma_max_endstop                                nc               #

zprobe.enable true # set to true to enable a zprobe
zprobe.probe_pin 1.28! # pin probe is attached to if NC remove the !
zprobe.slow_feedrate 5 # mm/sec probe feed rate
#zprobe.debounce_count 100 # set if noisy
zprobe.fast_feedrate 100 # move feedrate mm/sec
zprobe.probe_height 5 # how much above bed to start probe

associated with zprobe the leveling strategy to use

leveling-strategy.three-point-leveling.enable true # a leveling strategy that probes three points to define a plane and keeps the Z parallel to that plane
leveling-strategy.three-point-leveling.point1 100.0,0.0 # the first probe point (x,y) optional may be defined with M557
leveling-strategy.three-point-leveling.point2 100.0,100.0 # the second probe point (x,y)
leveling-strategy.three-point-leveling.point3 100,200.0 # the third probe point (x,y)
leveling-strategy.three-point-leveling.home_first true # home the XY axis before probing
leveling-strategy.three-point-leveling.tolerance 0.03 # the probe tolerance in mm, anything less that this will be ignored, default is 0.03mm
leveling-strategy.three-point-leveling.probe_offsets 41.5,0,0 # the probe offsets from nozzle, must be x,y,z, default is no offset
leveling-strategy.three-point-leveling.save_plane false # set to true to allow the bed plane to be saved with M500 default is false

The gcode at the start of the file is:

M190 S70.000000
;Sliced at: Tue 30-06-2015 13:18:34
;Basic settings: Layer height: 0.5 Walls: 0.8 Fill: 0
;Print time: 1 hour 43 minutes
;Filament used: 20.592m 61.0g
;Filament cost: None
M109 T0 S245
G21        ;metric values
G90        ;absolute positioning
M82        ;set extruder to absolute mode
M107       ;start with the fan off
G1 F3000

;Layer count: 260
M106 S76
G0 F3000 X44.500 Y44.500 Z0.500

And that G0 is the last line that gets sent to the Printer before it crashes. Any ideas?

Imported from wikidot

(ShaneEEEE_SW) #2

Upon more investigation, and through trial and error, I have determined that the problem is somewhere in the auto levelling procedure. Turning that off results in the printer working as normal, using the inductive sensor as the end stop rather than a probe.

(ShaneEEEE_SW) #3

Managed to work out the issue, and rather than delete this thread I thought I would share my stupidity with everyone.

As you may note in the config above, I had my probe points set in a straight line along the Y Axis, because my heated bed bows slightly in the middle. Well if I had bothered to read the page on zprobe properly, I would have noted that the 3-point method works in a equilateral triangle, meaning my 3 points would have likely caused some divisions by 0 in the firmware resulting in it crashing.

There you go, learn from my mistakes!

(Arthur Wolf) #4


Glad you figured it out :slight_smile:

(Wolfmanjm) #5

you should also NOT be doing G32 every time you run a gcode file, it is simply not designed to be used that way. G32 gets run ONCE then you save it with M500 and done.