Skip to content

Instantly share code, notes, and snippets.

@unlimitedbacon
Created April 18, 2019 22:37
Show Gist options
  • Save unlimitedbacon/bf27ab7982781911f3ec76a63519c6b3 to your computer and use it in GitHub Desktop.
Save unlimitedbacon/bf27ab7982781911f3ec76a63519c6b3 to your computer and use it in GitHub Desktop.
Smoothie Probing Crash
# Robot module configurations : general handling of movement G-codes and slicing into moves
arm_solution linear_delta # delta selection
arm_length 300.00 # this is the length of an arm from hinge to hinge
arm_radius 152.357 # this is the horizontal distance from hinge to hinge when the effector is centered
default_feed_rate 4000 # Default rate ( mm/minute ) for G1/G2/G3 moves
default_seek_rate 4000 # Default rate ( mm/minute ) for G0 moves
mm_per_arc_segment 0.0 # Fixed length for line segments that divide arcs 0 to disable
mm_max_arc_error 0.01 # The maximum error for line segments that divide arcs 0 to disable
# note it is invalid for both the above be 0
# if both are used, will use largest segment length based on radius
#mm_per_line_segment 5 # Lines can be cut into segments ( not usefull with cartesian coordinates robots ).
delta_segments_per_second 100 # segments per second used for deltas
# Arm solution configuration : Cartesian robot. Translates mm positions into stepper positions
# 1/128 Microstepping
alpha_steps_per_mm 640 # Steps per mm for alpha stepper
beta_steps_per_mm 640 # Steps per mm for beta stepper
gamma_steps_per_mm 640 # Steps per mm for gamma stepper
# 1/32 Microstepping
#alpha_steps_per_mm 160 # Steps per mm for alpha stepper
#beta_steps_per_mm 160 # Steps per mm for beta stepper
#gamma_steps_per_mm 160 # Steps per mm for gamma stepper
# 1/16 Microstepping
#alpha_steps_per_mm 80 # Steps per mm for alpha stepper
#beta_steps_per_mm 80 # Steps per mm for beta stepper
#gamma_steps_per_mm 80 # Steps per mm for gamma stepper
# Planner module configuration : Look-ahead and acceleration configuration
planner_queue_size 32 # DO NOT CHANGE THIS UNLESS YOU KNOW EXACTLY WHAT YOUR ARE DOING
acceleration 2000 # Acceleration in mm/second/second.
junction_deviation 0.05 # Similar to the old "max_jerk", in millimeters, see : https://github.com/grbl/grbl/blob/master/planner.c#L409
# and https://github.com/grbl/grbl/wiki/Configuring-Grbl-v0.8 . Lower values mean being more careful, higher values means being faster and have more jerk
# Stepper module configuration
microseconds_per_step_pulse 1 # Duration of step pulses to stepper drivers, in microseconds
base_stepping_frequency 100000 # Base frequency for stepping
# Stepper module pins ( ports, and pin numbers, appending "!" to the number will invert a pin )
alpha_step_pin 2.1 # Pin for alpha stepper step signal
alpha_dir_pin 0.11 # Pin for alpha stepper direction
alpha_en_pin 0.10! # Pin for alpha enable pin
alpha_current 1.2 # X stepper motor current
alpha_max_rate 30000.0 # mm/min actuator max speed
x_axis_max_speed 30000.0 # mm/min cartesian max speed
beta_step_pin 2.2 # Pin for beta stepper step signal
beta_dir_pin 0.20 # Pin for beta stepper direction
beta_en_pin 0.19! # Pin for beta enable
beta_current 1.2 # Y stepper motor current
beta_max_rate 30000.0 # mm/min
y_axis_max_speed 30000.0 # mm/min
gamma_step_pin 2.3 # Pin for gamma stepper step signal
gamma_dir_pin 0.22 # Pin for gamma stepper direction
gamma_en_pin 0.21! # Pin for gamma enable
gamma_current 1.2 # Z stepper motor current
gamma_max_rate 30000.0 # mm/min
z_axis_max_speed 30000.0 # mm/min
# Serial communications configuration ( baud rate default to 9600 if undefined )
uart0.baud_rate 115200 # Baud rate for the default hardware serial port
second_usb_serial_enable false # This enables a second usb serial port (to have both pronterface and a terminal connected)
#msd_disable false # disable the MSD (USB SDCARD) when set to true
#leds_disable true # disable using leds after config loaded
dfu_enable true # for linux developers, set to true to enable DFU
#watchdog_timeout 10 # watchdog timeout in seconds, default is 10, set to 0 to disable the watchdog
## Extruder module configuration
extruder.hotend.enable true # Whether to activate the extruder module at all. All configuration is ignored if false
# 1/32 Microstepping
#extruder.hotend.steps_per_mm 739.2 # EZStruder
extruder.hotend.steps_per_mm 5160 # Steps per mm for extruder stepper
extruder.hotend.default_feed_rate 600 # Default rate ( mm/minute ) for moves where only the extruder moves
extruder.hotend.acceleration 500 # Acceleration for the stepper motor mm/sec²
extruder.hotend.max_speed 50 # mm/s
extruder.hotend.step_pin 2.0 # Pin for extruder step signal
extruder.hotend.dir_pin 0.5 # Pin for extruder dir signal
extruder.hotend.en_pin 0.4! # Pin for extruder enable signal
# extruder offset
#extruder.hotend.x_offset 0 # x offset from origin in mm
#extruder.hotend.y_offset 0 # y offset from origin in mm
#extruder.hotend.z_offset 0 # z offset from origin in mm
# firmware retract settings when using G10/G11, these are the defaults if not defined, must be defined for each extruder if not using the defaults
#extruder.hotend.retract_length 3 # retract length in mm
#extruder.hotend.retract_feedrate 45 # retract feedrate in mm/sec
#extruder.hotend.retract_recover_length 0 # additional length for recover
#extruder.hotend.retract_recover_feedrate 8 # recover feedrate in mm/sec (should be less than retract feedrate)
#extruder.hotend.retract_zlift_length 0 # zlift on retract in mm, 0 disables
#extruder.hotend.retract_zlift_feedrate 6000 # zlift feedrate in mm/min (Note mm/min NOT mm/sec)
delta_current 0.85 # Extruder stepper motor current
# Laser module configuration
laser_module_enable false # Whether to activate the laser module at all. All configuration is
# ignored if false.
#laser_module_pin 2.5 # this pin will be PWMed to control the laser. Only P2.0 - P2.5, P1.18, P1.20, P1.21, P1.23, P1.24, P1.26, P3.25, P3.26
# can be used since laser requires hardware PWM
#laser_module_maximum_power 1.0 # this is the maximum duty cycle that will be applied to the laser
#laser_module_minimum_power 0.0 # This is a value just below the minimum duty cycle that keeps the laser
# active without actually burning.
#laser_module_default_power 0.8 # This is the default laser power that will be used for cuts if a power has not been specified. The value is a scale between
# the maximum and minimum power levels specified above
#laser_module_pwm_period 20 # this sets the pwm frequency as the period in microseconds
# Hotend temperature control configuration
temperature_control.hotend.enable true # Whether to activate this ( "hotend" ) module at all. All configuration is ignored if false.
temperature_control.hotend.thermistor_pin 0.24 # Pin for the thermistor to read
temperature_control.hotend.heater_pin 2.5 # Pin that controls the heater
temperature_control.hotend.thermistor Semitec # see http://smoothieware.org/temperaturecontrol#toc5
#temperature_control.hotend.beta 4066 # or set the beta value
temperature_control.hotend.set_m_code 104 #
temperature_control.hotend.set_and_wait_m_code 109 #
temperature_control.hotend.designator T #
temperature_control.hotend.max_temp 300 # Set maximum temperature - Will prevent heating above 300 by default
temperature_control.hotend.min_temp 0 # Set minimum temperature - Will prevent heating below 0 by default
#temperature_control.hotend.runaway_heating_timeout 300
#temperature_control.hotend.runaway_range 25
#P39.98 I5.00 D79.91
temperature_control.hotend.p_factor 65.1 #
temperature_control.hotend.i_factor 6.409 #
temperature_control.hotend.d_factor 165 #
# For bed
temperature_control.bed.enable true #
temperature_control.bed.thermistor_pin 0.23 #
temperature_control.bed.heater_pin 2.7 #
temperature_control.bed.thermistor Semitec # http://smoothieware.org/temperaturecontrol#toc5
#temperature_control.bed.beta 4066 # or set the beta value
temperature_control.bed.set_m_code 140 #
temperature_control.bed.set_and_wait_m_code 190 #
temperature_control.bed.designator B #
# uncomment followng to use bang bang isntead of PID for the bed (best for relay conrolled hotbeds)
#temperature_control.bed.bang_bang true # set to true to use bang bang control rather than PID
#temperature_control.bed.hysteresis 2.0 # set to the temperature in degrees C to use as hysteresis when using bang bang
# Switch module for fan control
switch.fan.enable true #
switch.fan.input_on_command M106 #
switch.fan.input_off_command M107 #
switch.fan.output_pin 2.4 #
# automatically toggle a switch at a specified temperature. Different ones of these may be defined to monitor different temperatures and switch different swithxes
# useful to turn on a fan or water pump to cool the hotend
#temperatureswitch.hotend.enable true #
#temperatureswitch.hotend.designator T # first character of the temperature control designator to use as the temperature sensor to monitor
#temperatureswitch.hotend.switch misc # select which switch to use, matches the name of the defined switch
#temperatureswitch.hotend.threshold_temp 60.0 # temperature to turn on (if rising) or off the switch
#temperatureswitch.hotend.heatup_poll 15 # poll heatup at 15 sec intervals
#temperatureswitch.hotend.cooldown_poll 60 # poll cooldown at 60 sec intervals
# switch.psu.enable true # turn atx on/off
# switch.psu.input_on_command M80 #
# switch.psu.input_off_command M81 #
# switch.psu.output_pin 2.13o! # open drain, inverted
# Switch module for spindle control
#switch.spindle.enable false #
# Endstops
endstops_enable true # the endstop module is enabled by default and can be disabled here
delta_homing true # forces all three axis to home a the same time regardless of what is specified in G28
alpha_max_endstop 1.24^ #
alpha_homing_direction home_to_max # or set to home_to_max and set alpha_max
alpha_min 0 # this gets loaded after homing when home_to_min is set
alpha_max 0 # this gets loaded after homing when home_to_max is set
beta_max_endstop 1.26^ #
beta_homing_direction home_to_max #
beta_min 0 #
beta_max 0 #
gamma_max_endstop 1.28^ #
gamma_homing_direction home_to_max #
gamma_min 0 #
gamma_max 245.1375 # change to suit your height
#probe endstop
#probe_pin 1.29 # optional pin for probe
alpha_fast_homing_rate_mm_s 200 # feedrates in mm/second
beta_fast_homing_rate_mm_s 200 # "
gamma_fast_homing_rate_mm_s 200 # "
alpha_slow_homing_rate_mm_s 20 # "
beta_slow_homing_rate_mm_s 20 # "
gamma_slow_homing_rate_mm_s 20 # "
alpha_homing_retract_mm 5 # distance in mm
beta_homing_retract_mm 5 # "
gamma_homing_retract_mm 5 # "
alpha_trim 0 # software trim for alpha stepper endstop (in mm) - moves down
beta_trim 0 # software trim for beta stepper endstop (in mm)
gamma_trim 0 # software trim for gamma stepper endstop (in mm)
# optional enable limit switches, actions will stop if any enabled limit switch is triggered
#alpha_limit_enable false # set to true to enable X min and max limit switches
#beta_limit_enable false # set to true to enable Y min and max limit switches
#gamma_limit_enable false # set to true to enable Z min and max limit switches
#move_to_origin_after_home true # move XY to 0,0 after homing
# optional Z probe http://smoothieware.org/zprobe
zprobe.enable true # set to true to enable a zprobe
zprobe.probe_pin 1.29!^ # pin probe is attached to if NC remove the !
zprobe.slow_feedrate 10 # mm/sec probe feed rate
#zprobe.debounce_count 100 # set if noisy
zprobe.fast_feedrate 100 # move feedrate
zprobe.probe_height 5 # how much above bed to start probe
# associated with zprobe the leveling strategy to use
leveling-strategy.delta-calibration.enable true # basic delta calibration
leveling-strategy.delta-calibration.radius 107 # the probe radius
# kill button (used to be called pause) maybe assigned to a different pin, set to the onboard pin by default
kill_button_enable true # set to true to enable a kill button
kill_button_pin 2.12 # kill button pin. default is same as pause button 2.12 (2.11 is another good choice)
# Panel See http://smoothieware.org/panel
panel.enable true # set to true to enable the panel code
# Example viki2 config for an azteeg miniV2 with IDC cable
panel.lcd mini_viki2 # set type of panel
panel.spi_channel 0 # set spi channel to use P0_18,P0_15 MOSI,SCLK
panel.spi_cs_pin 0.16 # set spi chip select
panel.encoder_b_pin 3.25!^ # encoder pin
panel.encoder_a_pin 3.26!^ # encoder pin
panel.click_button_pin 2.11!^ # click button
panel.a0_pin 2.6 # st7565 needs an a0
#panel.contrast 8 # override contrast setting (default is 9)
panel.encoder_resolution 1 # override number of clicks to move 1 item (default is 4)
#panel.button_pause_pin 1.30^ # kill/pause set one of these for the auxilliary button on viki2
#panel.back_button_pin 1.30!^ # back button recommended to use this on EXP1
panel.buzz_pin 0.25 # pin for buzzer on EXP2
panel.red_led_pin 2.8 # pin for red led on viki2 on EXP1
panel.blue_led_pin 4.29 # pin for blue led on viki2 on EXP1
panel.external_sd true # set to true if there is an extrernal sdcard on the panel
panel.external_sd.spi_channel 0 # set spi channel the sdcard is on
panel.external_sd.spi_cs_pin 1.23 # set spi chip select for the sdcard
panel.external_sd.sdcd_pin 1.31!^ # sd detect signal (set to nc if no sdcard detect)
panel.menu_offset 1 # some panels will need 1 here
# Example mini viki2 config
#panel.lcd mini_viki2 # set type of panel
#panel.spi_channel 0 # set spi channel to use P0_18,P0_15 MOSI,SCLK
#panel.spi_cs_pin 0.16 # set spi chip select
#panel.encoder_a_pin 3.25!^ # encoder pin
#panel.encoder_b_pin 3.26!^ # encoder pin
#panel.click_button_pin 2.11!^ # click button
#panel.a0_pin 2.6 # st7565 needs an a0
##panel.contrast 18 # override contrast setting (default is 18)
##panel.encoder_resolution 2 # override number of clicks to move 1 item (default is 2)
#panel.menu_offset 1 # here controls how sensitive the menu is. some panels will need 1
panel.alpha_jog_feedrate 6000 # x jogging feedrate in mm/min
panel.beta_jog_feedrate 6000 # y jogging feedrate in mm/min
panel.gamma_jog_feedrate 200 # z jogging feedrate in mm/min
panel.hotend_temperature 185 # temp to set hotend when preheat is selected
panel.bed_temperature 60 # temp to set bed when preheat is selected
# Network Settings
network.enable false # enable the ethernet network services
network.webserver.enable true # enable the webserver
network.telnet.enable true # enable the telnet server
network.plan9.enable true # enable the plan9 network filesystem
#network.ip_address auto # use dhcp to get ip address
network.ip_address 10.0.0.22 # use dhcp to get ip address
network.ip_mask 255.0.0.0 # the ip mask
network.ip_gateway 10.0.0.1 # the gateway address
# Azteeg specific settings do not change
currentcontrol_module_enable true #
digipot_max_current 2.0 # max current
digipot_factor 106.0 # factor for converting current to digipot value
#0 0x00046fce in std::string::swap(std::string&) ()
#1 0x00041c40 in std::string::operator= (__str=..., this=0x10001594) at /home/matterhacker/Smoothieware/gcc-arm-none-eabi/arm-none-eabi/include/c++/4.8.3/bits/basic_string.h:583
#2 ProbeScreen::on_main_loop (this=0x10001588) at modules/utils/panel/screens/3dprinter/ProbeScreen.cpp:98
#3 0x00031c0c in Panel::on_main_loop (this=0x2007c840, argument=<optimized out>) at modules/utils/panel/Panel.cpp:315
#4 0x000097ba in Kernel::call_event (this=0x10000f38, id_event=id_event@entry=ON_MAIN_LOOP, argument=argument@entry=0x0) at libs/Kernel.cpp:331
#5 0x00007558 in main () at main.cpp:272
248 kernel->call_event(ON_CONSOLE_LINE_RECEIVED, &message);
249 }
250 kernel->streams->printf("config override file executed\n");
251 fclose(fp);
252 }
253 }
254
255 // start the timers and interrupts
256 THEKERNEL->conveyor->start(THEROBOT->get_number_registered_motors());
257 THEKERNEL->step_ticker->start();
Dump of assembler code for function _ZNSs4swapERSs:
0x00046fca <+0>: ldr r3, [r0, #0]
0x00046fcc <+2>: push {r4, lr}
=> 0x00046fce <+4>: ldr.w r2, [r3, #-4]
0x00046fd2 <+8>: cmp r2, #0
0x00046fd4 <+10>: itt lt
0x00046fd6 <+12>: movlt r2, #0
0x00046fd8 <+14>: strlt.w r2, [r3, #-4]
0x00046fdc <+18>: ldr r2, [r1, #0]
0x00046fde <+20>: ldr.w r4, [r2, #-4]
0x00046fe2 <+24>: cmp r4, #0
0x00046fe4 <+26>: itt lt
0x00046fe6 <+28>: movlt r4, #0
0x00046fe8 <+30>: strlt.w r4, [r2, #-4]
0x00046fec <+34>: str r2, [r0, #0]
0x00046fee <+36>: str r3, [r1, #0]
0x00046ff0 <+38>: pop {r4, pc}
End of assembler dump.
0x10007f40: 0x10001588 0x41c41 <ProbeScreen::on_main_loop()+128> 0xb5b4 <SlowTicker::tick()+116> 0x41000013
0x10007f50: 0x10000308 <global_slow_ticker> 0x10001594 0x60748 <_ZTV12StringStream+8> 0x10001594
0x10007f60: 0x0 0x1e 0xc 0x10007f58
0x10007f70: 0x10000a7c <_ZNSs4_Rep20_S_empty_rep_storageE+12> 0x100016e0 0x2007c840 0x0
0x10007f80: 0x1000497c 0x57338 <kernel_callback_functions> 0x0 0x31c0d <Panel::on_main_loop(void*)+16>
0x10007f90: 0x10004978 0x97bb <Kernel::call_event(_EVENT_ENUM, void*)+94> 0x1 0x1
0x10007fa0: 0x2 0x100002b8 <_ZN6Kernel8instanceE> 0x41fe <CLKPWR_ConfigPPWR+42> 0x100002b8 <_ZN6Kernel8instanceE>
0x10007fb0: 0x0 0x10001be8 0x1 0x10000f38
0x10007fc0: 0x2 0x7559 <main()+48> 0x20081738 0x10007fe4
0x10007fd0: 0x3a 0x41eff <_start()+178> 0x0 0x2007c4b0
0x10007fe0: 0x26113b50 0x10007fd8 0x20081738 0xfae428c8
0x10007ff0: 0xb284c080 0x0 0x3a00000 0x45703 <SystemCoreClockUpdate+110>
r0 0x10001594 268440980
r1 0x10007f54 268468052
r2 0x10007f3c 268468028
r3 0x34373a5a 876034650
r4 0x10001588 268440968
r5 0x10007f54 268468052
r6 0x10007f60 268468064
r7 0x10000a70 268438128
r8 0x60748 395080
r9 0x1 1
r10 0x10000f38 268439352
r11 0x0 0
r12 0x80a56e34 -2136641996
sp 0x10007f40 0x10007f40
lr 0x41c41 269377
pc 0x46fce 0x46fce <std::string::swap(std::string&)+4>
xpsr 0x1000000 16777216
; config override present: /sd/config-override
;Steps per unit:
M92 X640.00000 Y640.00000 Z640.00000
;Acceleration mm/sec^2:
M204 S2000.00000
;X- Junction Deviation, Z- Z junction deviation, S - Minimum Planner speed mm/sec:
M205 X0.05000 Z-1.00000 S0.00000
;Max cartesian feedrates in mm/sec:
M203 X500.00000 Y500.00000 Z500.00000 S-1.00000
;Max actuator feedrates in mm/sec:
M203.1 X156.00000 Y156.00000 Z156.00000
;Optional arm solution specific settings:
M665 L300.0000 R153.3751
;Digipot Motor currents:
M907 X1.20000 Y1.20000 Z1.20000 A0.75000
;E Steps per mm:
M92 E5160.0000 P57988
;E Filament diameter:
M200 D0.0000 P57988
;E retract length, feedrate:
M207 S3.0000 F2700.0000 Z0.0000 Q6000.0000 P57988
;E retract recover length, feedrate:
M208 S0.0000 F480.0000 P57988
;E acceleration mm/sec²:
M204 E500.0000 P57988
;E max feed rate mm/sec:
M203 E50.0000 P57988
;PID settings, i_max, max_pwm:
M301 S0 P46.8486 I3.9535 D138.7888 X255.0000 Y255
;Max temperature setting:
M143 S0 P300.0000
;PID settings, i_max, max_pwm:
M301 S1 P10.0000 I0.3000 D200.0000 X255.0000 Y255
;Max temperature setting:
M143 S1 P300.0000
;Home offset (mm):
M206 X0.00 Y0.00 Z0.00
;Trim (mm):
M666 X-0.215 Y0.000 Z-0.880
;Max Z
M665 Z245.137
;Probe feedrates Slow/fast(K)/Return (mm/sec) max_z (mm) height (mm) dwell (s):
M670 S10.00 K100.00 R0.00 Z245.14 H5.00 D0.00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment