* Sorted by Sorted by * Arduino port and then * logical pin by pin * 0_3 D0 0_0 D20 * 0_2 D1 0_1 D21 * 1_25 D2 0_2 D1 * 1_24 D3 0_3 D0 * 1_18 D4 0_4 D24 * 1_19 D5 0_5 D28 * 1_21 D6 0_6 D80 * 2_7 D8 0_7 D81 * 2_4 D9 0_8 D82 * 2_5 D10 0_9 D83 * 1_20 D11 0_10 D38 * 2_12 D12 0_11 D55 * 4_28 D13 0_15 D52 * 1_26 D14 0_16 D16 * 1_27 D15 0_17 D50 * 0_16 D16 0_18 D51 * 1_29 D18 0_19 D56 * 1_28 D19 0_20 D61 * 0_0 D20 0_21 D62 * 0_1 D21 0_22 D48 * 0_4 D24 0_23 D67 * 2_0 D26 0_24 D68 * 0_5 D28 0_25 D69 * 4_29 D30 0_26 D63 * 3_26 D31 0_27 D57 * 3_25 D33 0_28 D58 * 2_13 D34 1_0 D78 * 2_11 D35 1_1 D79 * 2_8 D36 1_4 D77 * 1_30 D37 1_8 D76 * 0_10 D38 1_9 D74 * 1_22 D41 1_10 D75 * 2_3 D46 1_14 D73 * 0_22 D48 1_15 D72 * 1_31 D49 1_16 D70 * 0_17 D50 1_17 D71 * 0_18 D51 1_18 D4 * 0_15 D52 1_19 D5 * 1_23 D53 1_20 D11 * 2_1 D54 1_21 D6 * 0_11 D55 1_22 D41 * 0_19 D56 1_23 D53 * 0_27 D57 1_24 D3 * 0_28 D58 1_25 D2 * 2_6 D59 1_26 D14 * 2_2 D60 1_27 D15 * 0_20 D61 1_28 D19 * 0_21 D62 1_29 D18 * 0_26 D63 1_30 D37 * 0_23 D67 1_31 D49 * 0_24 D68 2_0 D26 * 0_25 D69 2_1 D54 * 1_16 D70 2_2 D60 * 1_17 D71 2_3 D46 * 1_15 D72 2_4 D9 * 1_14 D73 2_5 D10 * 1_9 D74 2_6 D59 * 1_10 D75 2_7 D8 * 1_8 D76 2_8 D36 * 1_4 D77 2_11 D35 * 1_0 D78 2_12 D12 * 1_1 D79 2_13 D34 * 0_6 D80 3_25 D33 * 0_7 D81 3_26 D31 * 0_8 D82 4_28 D13 * 0_9 D83 4_29 D30 */
http://smoothieware.org/zprobe
UPDATE on the latest Smoothie firmware you can now use software emulated PWM, which means you can use any pin for the control pin, just change the following config lines…
# Switch module for Bltouch control using S/W PWM # Note in the latest firmware with these settings you can just issue M280 to deploy and M281 to stow switch.servo.enable true # Activate this new module switch.servo.input_on_command M280 # Command to set PWM value switch.servo.input_off_command M281 # Command to turn off switch switch.servo.output_pin 2.11 # This must can be ANY spare pin switch.servo.output_type swpwm # Software emulated PWM switch.servo.pwm_period_ms 20 # 20ms period, or 50Hz switch.servo.startup_state false # use startup_value as initial setting switch.servo.startup_value 7.43 # On boot it will go into stow mode switch.servo.default_on_value 3.3 # value set if M280 is issued without the S parameter, also value set if startup_state
Command | BLTouch status |
M280 S3.0 | Push-pin down |
M280 S7.0 | Push-pin up |
M280 S10.6 | Alarm release |
M280 S8.4 | Self-test |
M280 S5.5 | ZMin test mode (for M119) |
leveling-strategy.rectangular-grid.enable true # The strategy must be enabled in the config, as well as the zprobe module. leveling-strategy.rectangular-grid.x_size 75 # size of bed in the X axis leveling-strategy.rectangular-grid.y_size 50 # size of bed in the Y axis leveling-strategy.rectangular-grid.size 7 # The size of the grid, for example, 7 causes a 7x7 grid with 49 points. # Must be an odd number. leveling-strategy.rectangular-grid.do_home true leveling-strategy.rectangular-grid.probe_offsets 0,0,0 # Optional probe offsets from the nozzle or tool head leveling-strategy.rectangular-grid.save false # If the saved grid is to be loaded on boot then this must be set to true leveling-strategy.rectangular-grid.initial_height 10 # will move to Z10 before the first probe mm_per_line_segment 1 # necessary for cartesians using rectangular-grid #leveling-strategy.rectangular-grid.before_probe_gcode M280 # uncomment if you have a bltouch #leveling-strategy.rectangular-grid.after_probe_gcode M281 # uncomment if you have a bltouch
LCD
\\http://smoothieware.org/panel
# config settings panel.enable true # set to true to enable the panel code panel.lcd reprap_discount_glcd # set type of panel panel.spi_channel 0 # spi channel to use ; GLCD EXP1 Pins 3,5 (MOSI, SCLK) panel.spi_cs_pin 0.16 # spi chip select ; GLCD EXP1 Pin 4 panel.encoder_a_pin 3.25!^ # encoder pin ; GLCD EXP2 Pin 3 panel.encoder_b_pin 3.26!^ # encoder pin ; GLCD EXP2 Pin 5 panel.click_button_pin 1.30!^ # click button ; GLCD EXP1 Pin 2 panel.buzz_pin 1.31 # pin for buzzer ; GLCD EXP1 Pin 1 panel.back_button_pin 2.11!^ # 2.11 menu back ; GLCD EXP2 Pin 8 # setup for external sd card on the GLCD which uses the onboard sdcard SPI port panel.external_sd true # set to true if there is an extrernal sdcard on the panel panel.external_sd.spi_channel 1 # set spi channel the sdcard is on panel.external_sd.spi_cs_pin 0.28 # set spi chip select for the sdcard (or any spare pin) panel.external_sd.sdcd_pin 0.27!^ # sd detect signal (set to nc if no sdcard detect) (or any spare pin)
panel.enable true # Set to true to enable the panel interface. Panels are a screen, an encoder wheel and/or a set of buttons, used to control your machine. panel.lcd reprap_discount_glcd # Type of panel we are connecting. Each panel has a specific interface so we need to specify which panel we will be connecting. The currently supported panel types are Reprap_discount_glcd, St7565_glcd, Ssd1306_oled, Viki2, Mini_viki2 and Universal_adapter. panel.spi_channel 0 # SPI channel to use panel.spi_cs_pin 0.16 # CS ( Chip Select ) pin to use, this can be used to have several different devices on the same SPI port, as long as each device has a separate CS pin. Note that the RRD GLCD panel does not support this and requires being alone on it's port. panel.spi_frequency 500000 # SPI port frequency - some panel need it explicitly set panel.contrast 9 # Contrast value for panels that support it ( Viki2, Mini_viki2 and St7565_glcd ) panel.reverse false # If set to true, reverse the screen. panel.busy_pin Nc # If using the Universal_adapter, this pin can be connected to the adapter to ask it if it is busy or not. panel.a0_pin Nc # If using a viki or SSD1306 this is needed to drive the C/D pin on the display panel.rst_pin Nc # If using an SSD1306 this pin is sometimes required and connects to the reset pin on the display panel.encoder_a_pin 3.25!^ # A pin for the encoder wheel. Encoders have two pins : A and B. Set to Nc if you use no encoder. ^ defines menu move direction panel.encoder_b_pin 3.26!^ # B pin for the encoder wheel. Encoders have two pins : A and B. Set to Nc if you use no encoder. ^ defines menu move direction panel.encoder_resolution 2 # the number of pulses the encoder emits per detent/click panel.click_button_pin 1.30!^ # Pin for the click ( “enter” ) button panel.buzz_pin 1.31 # Pin for the buzzer panel.back_button_pin 2.11!^ # Pin for the back button panel.up_button_pin 0.1! # Pin for the up button panel.down_button_pin 0.0! # Pin for the down button panel.menu_offset 0 # On some panels, this value must be set to 1. This is a number of lines to offset the menu lines by on screen. panel.alpha_jog_feedrate 6000 # X jogging feedrate in millimetres/minute. This is used when jogging using the panel screen. panel.beta_jog_feedrate 6000 # Y jogging feedrate in millimetres/minute. This is used when jogging using the panel screen. panel.gamma_jog_feedrate 200 # Z jogging feedrate in millimetres/minute. This is used when jogging using the panel screen. panel.hotend_temperature 185 # Temperature to set the hotend to when using the pre-heating menu item panel.bed_temperature 60 # Temperature to set the bed to when using the pre-heating menu item panel.external_sd true # Set to true if your panel has an external SD card slot, or if you want to connect a second SD card slot to one of your Smothieboard's SPI ports panel.external_sd.spi_channel 0 # Set the SPI channel the external SD card is on panel.external_sd.spi_cs_pin 2.8 # Set the CS ( Chip Select ) pin for the external SD card, this allows you to use multiple devices on the same SPI port, as long as they each have a CS pin panel.external_sd.sdcd_pin 2.13!^ # SD card detect signal pin, set to Nc if you don't use a SD card detect signal custom_menu.menu_name.enable true # When set to true, create a new custom menu entry for the panel with the name menu_name. You can create any number of custom entries as long as they have different names. NOTE menu_name is case sensitive custom_menu.menu_name.name Power_on # The name that will be displayed in the panel's menus custom_menu.menu_name.command M80_S30|G1_X10 # The command that will be executed when the menu entry is selected and clicked. Note that the _ character gets converted to space in the menu and commands ( and must be used instead of the space character ) , and the | character is used to separate multiple commands
arm_solution corexy # Robot module configurations : general handling of movement G-codes and slicing into moves 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.5 # Arcs are cut into segments ( lines ), this is the length for these segments. Smaller values mean more resolution, higher values mean faster computation #mm_per_line_segment 5 # Lines can be cut into segments ( not usefull with cartesian coordinates robots ). # Arm solution configuration : Cartesian robot. Translates mm positions into stepper positions alpha_steps_per_mm 80 # Steps per mm for alpha stepper beta_steps_per_mm 160 # Steps per mm for beta stepper gamma_steps_per_mm 800 # 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 3000 # Acceleration in mm/second/second. #z_acceleration 500 # Acceleration for Z only moves in mm/s^2, 0 disables it, disabled by default. DO NOT SET ON A DELTA 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 0.5 # X stepper motor current x_axis_max_speed 30000 # mm/min #alpha_max_rate 30000.0 # mm/min actuator max speed alpha_max_rate 60000.0 # mm/min actuator max speed in corexy you can go twice as fast 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 0.5 # Y stepper motor current y_axis_max_speed 30000 # mm/min #beta_max_rate 30000.0 # mm/min actuator max speed beta_max_rate 60000.0 # mm/min actuator max speed in corexy you can go twice as fast 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 0.5 # Z stepper motor current z_axis_max_speed 300 # mm/min gamma_max_rate 300.0 # mm/min actuator max speed # 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 false # 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 extruder.hotend.steps_per_mm 145 # 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 delta_current 1.0 # 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 EPCOS100K # 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 # safety control is enabled by default and can be overidden here, the values show the defaults #temperature_control.hotend.runaway_heating_timeout 900 # max is 2040 seconds, how long it can take to heat up #temperature_control.hotend.runaway_cooling_timeout 900 # max is 2040 seconds, how long it can take to cool down if temp is set lower #temperature_control.hotend.runaway_range 20 # Max setting is 63°C temperature_control.hotend.p_factor 13.7 # temperature_control.hotend.i_factor 0.097 # temperature_control.hotend.d_factor 24 # temperature_control.bed.enable true # temperature_control.bed.thermistor_pin 0.23 # temperature_control.bed.heater_pin 2.7 # temperature_control.bed.thermistor EPCOS100K # see 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 # # 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 1.25 # switch.misc.enable false # switch.misc.input_on_command M42 # switch.misc.input_off_command M43 # switch.misc.output_pin 0.26 # # 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 # filament out detector #filament_detector.enable true # #filament_detector.encoder_pin 0.26 # must be interrupt enabled pin (0.26, 0.27, 0.28) #filament_detector.seconds_per_check 2 # may need to be longer #filament_detector.pulses_per_mm 1 .0 # will need to be tuned #filament_detector.bulge_pin 0.27 # optional bulge detector switch and/or manual suspend # 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 corexy_homing true # set to true if homing on a hbot or corexy alpha_min_endstop 1.24! # add a ! to invert if endstop is NO connected to ground #alpha_max_endstop 1.24^ # alpha_homing_direction home_to_min # 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 200 # this gets loaded after homing when home_to_max is set beta_min_endstop 1.26! # #beta_max_endstop 1.26^ # beta_homing_direction home_to_min # beta_min 0 # beta_max 200 # gamma_min_endstop 1.28! # #gamma_max_endstop 1.28^ # gamma_homing_direction home_to_min # gamma_min 0 # gamma_max 200 # alpha_max_travel 500 # max travel in mm for alpha/X axis when homing beta_max_travel 500 # max travel in mm for beta/Y axis when homing gamma_max_travel 500 # max travel in mm for gamma/Z axis when homing # 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 false # move XY to 0,0 after homing #probe endstop probe_pin 1.27 # optional pin for probe alpha_fast_homing_rate_mm_s 50 # feedrates in mm/second beta_fast_homing_rate_mm_s 50 # " gamma_fast_homing_rate_mm_s 4 # " alpha_slow_homing_rate_mm_s 25 # " beta_slow_homing_rate_mm_s 25 # " gamma_slow_homing_rate_mm_s 2 # " alpha_homing_retract_mm 5 # distance in mm beta_homing_retract_mm 5 # " gamma_homing_retract_mm 1 # " #endstop_debounce_count 100 # uncomment if you get noise on your endstops, default is 100 # optional Z probe zprobe.enable true # set to true to enable a zprobe zprobe.probe_pin 1.27! # 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 50 # move feedrate mm/sec #zprobe.probe_height 5 # how much above bed to start probe zprobe.probe_height 4 # 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 85.0,90.0 # the first probe point (x,y) optional may be defined with M557 leveling-strategy.three-point-leveling.point2 220.0,90.0 # the second probe point (x,y) leveling-strategy.three-point-leveling.point3 120.0,280.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 0,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 # 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 false # set to true to enable the panel code # Example viki2 config for an azteeg mini V2 with IDC cable panel.lcd reprap_discount_glcd # 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 9 # override contrast setting (default is 9) miniViki (4 or lower) #panel.encoder_resolution 4 # 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 panel.alpha_jog_feedrate 4000 # x jogging feedrate in mm/min panel.beta_jog_feedrate 4000 # 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 # Example of a custom menu entry, which will show up in the Custom entry. # NOTE _ gets converted to space in the menu and commands, | is used to separate multiple commands custom_menu.power_on.enable true # custom_menu.power_on.name Power_on # custom_menu.power_on.command M80 # custom_menu.power_off.enable true # custom_menu.power_off.name Power_off # custom_menu.power_off.command M81 # # 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 # the IP address #network.ip_mask 255.255.255.0 # the ip mask #network.ip_gateway 192.168.3.1 # the gateway address # Azteeg specific settings do not change currentcontrol_module_enable true # digipot_max_current 2.0 # max current digipot_factor 113.5 # factor for converting current to digipot value