Sculpfun S9 limits/ air assist with Makerbase DLC32 v2

New to lasers but experienced 3d printer enthusiast. I’ve fitted a DLC32 with limit switches to my new S9.
The issue is that it will home to the front left but will crash into either stop switch it reaches first and continues to run the motor for a few seconds, eventually throwing up ‘ALARM:1 Hard limit triggered.’
Wiring to the switches has been treble checked and is OK for continuity and are OK for matching the wiring diagram. (The x axis also runs in reverse on the screen to lightburn although y is OK).
Enclosed are a couple of screenshots below of the current configuration and a listing via the command line. I’ve tried whatever I can to resolve this to no avail, so any advice is gratefully received.

I also have mains air assist pump I want to control via lightburn. I’ve looked to use the (manual recommended) S12C interface feeding a step-up convertor to a 12v relay that will turn on and off the mains supply. Despite looking across the web I can’t find which pins to use to send a 5v signal to the relay. I’ve metered the connections across the S/G/5v and the max output seems to be around 3.3v, which isn’t being controlled by a M8/M9 command- just being constant. Which pins do I use and what to I do within any grbl settings?

Many thanks!


$i
[VER:1.1h.2020062101:]
[OPT:MPHSW]
[MSG:Using machine:MKS DLC32]
[MSG:Mode=STA:******
?
<Idle|MPos:0.000,0.000,0.000|FS:0,0|Pn:P|WCO:-400.000,-385.000,0.000>
ok
$s
$Sta/SSID=*****
$Sta/Password=******
$Sta/IPMode=DHCP
$Sta/IP=0.0.0.0
$Sta/Gateway=0.0.0.0
$Sta/Netmask=0.0.0.0
$AP/SSID=MKS_DLC_CS
$AP/Password=******
$AP/IP=192.168.4.1
$AP/Channel=1
$System/Hostname=grblesp
$Http/Enable=ON
$Http/Port=80
$Telnet/Enable=ON
$Telnet/Port=8080
$Radio/Mode=STA
$Message/Level=Info
$User/Macro0=
$User/Macro1=
$User/Macro2=
$User/Macro3=
$Homing/Cycle0=XY
$Homing/Cycle1=
$Homing/Cycle2=
$Homing/Cycle3=
$Homing/Cycle4=
$Homing/Cycle5=
$Report/StallGuard=
$Stepper/Enable/Delay=0
$Stepper/Direction/Delay=0
$Stepper/Pulse=10
$Stepper/IdleTime=25
$Stepper/StepInvert=X
$Stepper/DirInvert=
$Stepper/EnableInvert=Off
$Limits/Invert=On
$Probe/Invert=Off
$Report/Status=1
$GCode/JunctionDeviation=0.010
$GCode/ArcTolerance=0.002
$Report/Inches=Off
$Firmware/Build=
$Limits/Soft=Off
$Limits/Hard=On
$Homing/Enable=On
$Homing/DirInvert=XY
$Homing/Squared=
$Homing/Feed=50.000
$Homing/Seek=2000.000
$Homing/Debounce=10.000
$Homing/Pulloff=3.000
$Spindle/PWM/Frequency=1000.000
$GCode/MaxS=1000.000
$GCode/MinS=0.000
$Laser/FullPower=1000
$GCode/LaserMode=On
$GCode/Line1=
$GCode/Line0=
$Spindle/Enable/Invert=Off
$Spindle/Enable/OffWithSpeed=Off
$Coolant/Delay/TurnOn=1.000
$Spindle/Delay/SpinDown=0.000
$Spindle/Delay/SpinUp=0.000
$Spindle/PWM/Invert=Off
$Spindle/PWM/Off=0.000
$Spindle/PWM/Min=0.000
$Spindle/PWM/Max=1000.000
$Spindle/Type=LASER
$beep_status=Off
$Language=1
$X/StepsPerMm=67.876
$Y/StepsPerMm=67.876
$Z/StepsPerMm=80.000
$A/StepsPerMm=100.000
$B/StepsPerMm=100.000
$C/StepsPerMm=100.000
$X/MaxRate=6000.000
$Y/MaxRate=6000.000
$Z/MaxRate=6000.000
$A/MaxRate=1000.000
$B/MaxRate=1000.000
$C/MaxRate=1000.000
$X/Acceleration=500.000
$Y/Acceleration=500.000
$Z/Acceleration=500.000
$A/Acceleration=200.000
$B/Acceleration=200.000
$C/Acceleration=200.000
$X/Home/Mpos=0.000
$Y/Home/Mpos=0.000
$Z/Home/Mpos=0.000
$A/Home/Mpos=0.000
$B/Home/Mpos=0.000
$C/Home/Mpos=0.000
$X/MaxTravel=400.000
$Y/MaxTravel=385.000
$Z/MaxTravel=50.000
$A/MaxTravel=300.000
$B/MaxTravel=300.000
$C/MaxTravel=300.000
$X/Current/Run=0.250
$Y/Current/Run=0.250
$Z/Current/Run=0.250
$A/Current/Run=0.250
$B/Current/Run=0.250
$C/Current/Run=0.250
$X/Current/Hold=0.125
$Y/Current/Hold=0.125
$Z/Current/Hold=0.125
$A/Current/Hold=0.125
$B/Current/Hold=0.125
$C/Current/Hold=0.125
$X/Microsteps=16
$Y/Microsteps=16
$Z/Microsteps=16
$A/Microsteps=16
$B/Microsteps=16
$C/Microsteps=16
$X/StallGuard=16
$Y/StallGuard=16
$Z/StallGuard=16
$A/StallGuard=16
$B/StallGuard=16
$C/StallGuard=16
$Errors/Verbose=Off
ok

If X is inverted is it looking at the wrong limit switch? Have you tried fixing$Homing/DirInvert yet? And maybe start with homing one axis at a time ­— make $Homing/Cycle0=X and $Homing/Cycle1=Y or vice versa?

Do the status messages (<...>) show when you manually trigger the limit switches?

1 Like

Michael,
Thanks for the reply. $Homing/Cycle0=Y homed the y axis to the switch and it successfully ‘bounced’ and retracted the specified 3mm.
The x axis still ran into the frame but it prompted me to yet again check the connections and it turned out to be a faulty pin in one of the connectors- it wasn’t fully home and sporadically produced the weird results despite multiple meter checks! At least the thing homes successfully now…

1 Like

So now you are down to automatically turning air assist on and off?

I don’t have a Makerbase DLC32 to probe to answer the 5V question with any confidence. However, it’s common for switches to switch ground, so sometimes you can connect a general 5V supply to one side and the other side to the negative side of a switched port. Have you found the makerbase documentation on github?

This document shows all the pins. All the 12/24V pins are connected directly to the supply voltage. Then you can see 5V and 3V3 pins labeled.

The I2C interface there is documented to supply 3.3V (3V3).

Michael, thanks for the pointer; I figured out the air assist- used this diagram- Hardware Wiring · makerbase-mks/MKS-DLC32 Wiki · GitHub

The other issue was that lightburn was using M8 instead of M7- I now get a change of voltage to 3.3v as anticipated across the pins. Unfortunately the boost convertor I purchased of a famous online retailer is busted with no uprated output to 12v so the air assist is on hold until replaced… sooo close but oh so far.

Yay! The new relay arrived and I now have a fully controlled air assist. Many thanks for your help- most appreciated.

3 Likes