Building Laser Cutter Table

Hello, I’m SteelShod & I’m trying to set up a laser-cutter. I’ve got the steppers moving & homing, but I’m having trouble getting the PWM connected.

In the config below, I’ve found that if I set
extruder_module_enable false, (which I should think I want to do, as this is not a printer,)
I lose connectivity. Likewise, if I set
laser_module_enable true, (which I’m almost certain I want to do, as this is a laser cutter,)
I again lose connectivity.

Any insights would be greatly appreciated!

Currently, I’m controlling this via Pronterface on an HP laptop, Windows 8.1, USB-connection.

Here is my config file. Happy to provide further info.

# 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 useful 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 80 # Steps per mm for beta stepper
gamma_steps_per_mm 1600 # Steps per mm for gamma stepper

Planner module configuration : Look-ahead and acceleration configuration

planner_queue_size 64 # Size of the planning queue, must be a power of 2. 128 seems to be the maximum.
acceleration 3000 # Acceleration in mm/second/second.
acceleration_ticks_per_second 1000 # Number of times per second the speed is updated
junction_deviation 0.05

Stepper module configuration

microseconds_per_step_pulse 1 # Duration of step pulses to stepper drivers, in microseconds
minimum_steps_per_minute 1200 # Never step slower than this
base_stepping_frequency 100000 # Base frequency for stepping, higher gives smoother movement

Stepper module pins ( ports, and pin numbers, appending “!” to the number will invert a pin )

alpha_step_pin 2.0 # Pin for alpha stepper step signal
alpha_dir_pin 0.5 # Pin for alpha stepper direction
alpha_en_pin 0.4 # Pin for alpha enable pin
alpha_current 2.0 # X stepper motor current
x_axis_max_speed 30000 # mm/min

beta_step_pin 2.1 # Pin for beta stepper step signal
beta_dir_pin 0.11 # Pin for beta stepper direction
beta_en_pin 0.10 # Pin for beta enable
beta_current 2.0 # Y stepper motor current
y_axis_max_speed 30000 # mm/min

gamma_step_pin 2.2 # Pin for gamma stepper step signal
gamma_dir_pin 0.20 # Pin for gamma stepper direction
gamma_en_pin 0.19 # Pin for gamma enable
gamma_current 1.5 # Z stepper motor current
z_axis_max_speed 300 # 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)

Extruder module configuration

extruder_module_enable true # Whether to activate the extruder module at all. All configuration is ignored if false
extruder_steps_per_mm 140 # Steps per mm for extruder stepper
extruder_default_feed_rate 600 # Default rate ( mm/minute ) for moves where only the extruder moves
extruder_acceleration 50 # Acceleration for the stepper motor, as of 0.6, arbitrary ratio
extruder_max_speed 1000 # mm^3/s

extruder_step_pin 2.3 # Pin for extruder step signal
extruder_dir_pin 0.22 # Pin for extruder dir signal
extruder_en_pin 0.21 # Pin for extruder enable signal
delta_current 1.5 # 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
#laser_module_max_power 0.8 # this is the maximum duty cycle that will be applied to the laser
#laser_module_tickle_power 0.0 # this duty cycle will be used for travel moves to keep the laser active without actually burning

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.23 # Pin for the thermistor to read
temperature_control.hotend.heater_pin 2.7 # Pin that controls the heater
temperature_control.hotend.thermistor EPCOS100K # see src/modules/tools/temperaturecontrol/TemperatureControl.cpp:64 for a list of valid thermistor names
temperature_control.hotend.set_m_code 104 #
temperature_control.hotend.set_and_wait_m_code 109 #
temperature_control.hotend.designator T #

#temperature_control.hotend.p_factor 13.7 # permanenetly set the PID values after an auto pid
#temperature_control.hotend.i_factor 0.097 #
#temperature_control.hotend.d_factor 24 #

#temperature_control.hotend.max_pwm 64 # override max pwm, 64 is a good value if driving a 12v resistor with 24v.

temperature_control.bed.enable false #
temperature_control.bed.thermistor_pin 0.24 #
temperature_control.bed.heater_pin 2.5 #
temperature_control.bed.thermistor Honeywell100K # see src/modules/tools/temperaturecontrol/TemperatureControl.cpp:64 for a list of valid thermistor names
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 2.6 #

#switch.misc.enable true #
#switch.misc.input_on_command M42 #
#switch.misc.input_off_command M43 #
#switch.misc.output_pin 2.4 #

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 false # set to true if homing on a hbit or corexy
alpha_min_endstop 1.24^ # add a ! to invert if endstop is NO connected to ground
alpha_max_endstop 1.25^ #
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.27^ #
beta_homing_direction home_to_min #
beta_min 0 #
beta_max 200 #
gamma_min_endstop 1.28^ #
gamma_max_endstop 1.29^ #
gamma_homing_direction home_to_min #
gamma_min 0 #
gamma_max 200 #

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 # "

Pause button

pause_button_enable true #

Panel

panel.enable false # set to true to enable the panel code
panel.lcd smoothiepanel # set type of panel also viki_lcd, i2c_lcd is a generic i2c panel, panelolu2
panel.encoder_a_pin 1.22!^ # encoder pin
panel.encoder_b_pin 1.23!^ # encoder pin

Example for reprap discount GLCD

on glcd EXP1 is to left and EXP2 is to right, pin 1 is bottom left, pin 2 is top left etc.

+5v is EXP1 pin 10, Gnd is EXP1 pin 9

#panel.lcd reprap_discount_glcd #
#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 1.22!^ # encoder pin ; GLCD EXP2 Pin 3
#panel.encoder_b_pin 1.23!^ # 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.button_pause_pin 2.11^ # kill/pause ; GLCD EXP2 Pin 8

pins used with other panels

#panel.up_button_pin 0.1! # up button if used
#panel.down_button_pin 0.0! # down button if used
#panel.click_button_pin 0.18! # click button if used

panel.menu_offset 0 # some panels will need 1 here

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

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 #

Only needed on a smoothieboard

currentcontrol_module_enable true #

return_error_on_unhandled_gcode false #

Imported from wikidot

Ok, I’ve found that when I set extruder_module_enable to false, I need to comment out all of its commands as well; likewise, when I set the laser_module_enable to true, I need to uncomment its config commands. So, the PWM is talking now, & I’m going through tests with the wiring. Making headway…

Hey.

That behavior is not normal. What are you using to edit the config file ?

What laser are you doing this on ?

Cheers :slight_smile:

Using Notepad++ to edit, & rigging to a Hong-Yuan Electric HY-HVCO2/X CO2 power supply & a 60W CO2 laser tube. The issue I’m facing now is getting the wiring correct for the grounding. Where is the “digital ground” on the Smoothie v1.0?

Thanks for your insights,

SteelShod

Notepad++ is known to cause problems in the config file, can you try another editor ?

You can find Ground in a lot of places, for example on the endstop connectors or on the power inputs.

Cheers.

I have just started configuring my smoothieboard for a laser cutter and had the exact same issue.

In the laser cutter setup guide, it suggests the laser setting should be comments. I too made the mistake of first left them commented. I will happily change them in th guide, but you have said that it is “not normal behaviour”, so will only do so on your say so. I also used Notepad++, so that might be contributing to the issue.

I tried to connect with Ubunutu, but it would see the card, so tried on Windoze. I am going to investigate this ubuntu issue further and if I can’t resolve I will create a new thread to discuss.