About to start building my first CNC (an MPCNC Primo) and am planning to use Bart Dring's 6-pack and run fluidnc. This walk through was very helpful for getting an overview of the firmware before I dive in.
How easy it would be to setup a CO2 Laser with this board? I've seen people selling shields with ESP32 and FluidNC for K-40 lasers to be able to use Lightburn directly but they asked arround 100-110€ shipped
Bravo for your explanations I have the same card as you I would like to configure my laser which is CoreXY which yaml file should I take? Is the laser connected to TTL? Do you use limit with 3 wires?
Hi, do you know why I can't upload any other config file with changes using fluidterm as you do here 27:55 ? I have to erase all flash memory and install everything once again even when I did some little mistake in .yaml. Im getting Return -2.
@@brakthehun yeah, I've selected the right COM port. I installed and uploaded older version of FluidNC (3.5.0), the same you have used and I got rid of this issue. However, I'll use an Arduino Uno to finish the project as I am using standard ESP32 DEVKIT V1 and do not have MKS DLC32. I've tried to use TXS0108E level shifters to send the signal to DM542 stepper driver, but my stepper motors are going crazy, they didn't want to move even when they were supposed to, I've erased everything from ESP32 once again and uploaded some simple code to control only one motor (X gantry), just to move and be still. And guess what happend :D All motors (other Y and Z gantry) which were not supposed to move had worked as I described in code along with the specific one I've programmed and wanted to move. The stepper motors operation is unstable, I don't know what it can be, maybe it's my skill issue in soldering as I'm doing the project on a prototype board, or some ESP32 soft problems, or just bad hardware connection. Despite all of my issues, your guide helped me a lot during the process of setting up the firmware on ESP32, everything worked perfectly, I've even had an internet connection established :D
Very insightful video! Thanks for this. I have managed to get everything running for a machine with one X and two Y motors with dual endstops. I have moved the Z motor over to be a second Y motor and everything moves as desired. But when I home the Y axis it doesn't bounce back, it just sits there and then fails. The X axis homes perfectly. Any idea why the Y axis is not homing right?
Thanks for the video! All the config files I have found do not show the control: and macros: ... are there any sample config files showing these? - it's strange they have been left out
Thank you for posting this. I am gonna use fluidnc for the first time too. I am building impact etching machine, it will have a diamond engraving head instead of laser. I am little confused with double y axis though. Is the second y motor gonna use the motor driver of z axis ? Or one driver is enough for 2 y axes?
@@brakthehun I am gonna oscillate it. If I want to use 2 drivers for y axis then I have to add motor1 under y axis parameters, but I will have to copy all parameters from the motor0 of z axis in config file. In this case, second y axis motor is gonna use pins of z axis on the board. Am I right? Thank you in advance !
I have a mks dlc32 and I configured it following your instructions and it works fine but the G53 boot code part does nothing, could you please help me?
I am building a laser pointer turret, which uses only two stepper motors. I was wanting to control it using a PS3 controller via BT. I ended up getting an MKS DLC32 board and trying FluidNC on it. Is this possible or am I just wasting time? I would appreciate any help or ideas anyone has as I am stuck :( Thank you
@@brakthehun Thank you for the reply. I think you are right and since I am not much of a coder, I may try something else. I was wondering if I could use FluidNC wifi to control it with a phone or tablet.
@@brakthehun Thank you Anthony! Is it possible to upload Arduino code to the DLC32? I have all the code for this project and using ChatGPT I had it rewrite the code giving it the gpio pin ref for the DLC32. I just wasn't sure if that was possible or not. I don't want to brick the board.
@@brakthehun I am trying to upload FluidNC on the MKS-DLC32 v2.1. Everything seemed to be okay except for wifi. I cannot connect with ESPD (Connection failed! is your FW correct?) And in FluidTerminal I get this error: wifi : AP has neither DSSS parameter nor HT Information. What am I missing? Is there a wifi config file I was supposed to edit?
Nice job on the tutorial, I was able to get about 90% through it and got stuck on the dual Y motors part. I'm using a MKS DLC32 v1.1 board, I have my yaml setup just like you did in the video by copying the Z motor0 to the Y motor1. My problem is that now after reloading the yaml I get Y and Z moving together and z will not home anymore. Any ideas what I'm doing wrong? I commented out the extra motors so I could continue to work on it. But you can see below the Y and Z where I made the changes. This is on a Shapeoko 2 CNC router. board: MKS-DLC32 V1.1 name: Shapeoko2 meta: (02.11.2023) by GorLeeRob kinematics: Cartesian: stepping: engine: I2S_STATIC idle_ms: 0 pulse_us: 4 dir_delay_us: 1 disable_delay_us: 0 axes: shared_stepper_disable_pin: I2SO.0 x: steps_per_mm: 80 max_rate_mm_per_min: 18000.000 acceleration_mm_per_sec2: 1500.000 max_travel_mm: 269.000 soft_limits: true homing: cycle: 1 positive_direction: false mpos_mm: 0.000 feed_mm_per_min: 300.000 seek_mm_per_min: 5000.000 settle_ms: 500 seek_scaler: 1.100 feed_scaler: 1.100 motor0: limit_neg_pin: gpio.36:low hard_limits: false pulloff_mm: 2.000 stepstick: step_pin: I2SO.1 direction_pin: I2SO.2 y: steps_per_mm: 80 max_rate_mm_per_min: 12000.000 acceleration_mm_per_sec2: 300.000 max_travel_mm: 760.000 soft_limits: true homing: cycle: 2 positive_direction: true mpos_mm: 0.000 feed_mm_per_min: 300.000 seek_mm_per_min: 5000.000 settle_ms: 500 seek_scaler: 1.100 feed_scaler: 1.100 motor0: limit_neg_pin: gpio.35:low hard_limits: false pulloff_mm: 2.000 stepstick: step_pin: I2SO.5 direction_pin: I2SO.6:low #motor1: #limit_neg_pin: gpio.34:low #hard_limits: false #pulloff_mm: 6.000 #stepstick: #step_pin: I2SO.3 #direction_pin: I2SO.4 z: steps_per_mm: 806.451 max_rate_mm_per_min: 9350.000 acceleration_mm_per_sec2: 500.000 max_travel_mm: 200.000 soft_limits: true homing: cycle: 3 positive_direction: true mpos_mm: 0.000 feed_mm_per_min: 1800.000 seek_mm_per_min: 1000.000 settle_ms: 500 seek_scaler: 1.100 feed_scaler: 1.100 motor0: limit_neg_pin: gpio.34:low hard_limits: false pulloff_mm: 6.000 stepstick: step_pin: I2SO.3 direction_pin: I2SO.4
@gorleerob3929 maybe this video can help you with that ua-cam.com/video/FOTfTvitJkk/v-deo.html " CNC Wiring Basics // FluidNC // ESP32 // TinyBee controller " It's a diferent board, but it can be a way
If I try to open Fluidterm it opens the window but then just closes after a few seconds. I have tried 3 different computers and get the same result, anybody have any suggestions?????
I do not know what happened with mine was fallow you step by step and after installing the WIFI file I lost connection and now the computer will not connect and now the off line screen hat came with the board is blank NOT GOOD
About to start building my first CNC (an MPCNC Primo) and am planning to use Bart Dring's 6-pack and run fluidnc. This walk through was very helpful for getting an overview of the firmware before I dive in.
Thanks for the video , helped me out setting up an MKS tinybee...
How easy it would be to setup a CO2 Laser with this board? I've seen people selling shields with ESP32 and FluidNC for K-40 lasers to be able to use Lightburn directly but they asked arround 100-110€ shipped
Bravo for your explanations
I have the same card as you I would like to configure my laser which is CoreXY which yaml file should I take?
Is the laser connected to TTL?
Do you use limit with 3 wires?
Hi, do you know why I can't upload any other config file with changes using fluidterm as you do here 27:55 ? I have to erase all flash memory and install everything once again even when I did some little mistake in .yaml. Im getting Return -2.
@@czowiekznikad2062 I haven't had that issue. Are you making sure to select the right port in Fluid Terminal??
@@brakthehun yeah, I've selected the right COM port. I installed and uploaded older version of FluidNC (3.5.0), the same you have used and I got rid of this issue. However, I'll use an Arduino Uno to finish the project as I am using standard ESP32 DEVKIT V1 and do not have MKS DLC32. I've tried to use TXS0108E level shifters to send the signal to DM542 stepper driver, but my stepper motors are going crazy, they didn't want to move even when they were supposed to, I've erased everything from ESP32 once again and uploaded some simple code to control only one motor (X gantry), just to move and be still. And guess what happend :D All motors (other Y and Z gantry) which were not supposed to move had worked as I described in code along with the specific one I've programmed and wanted to move. The stepper motors operation is unstable, I don't know what it can be, maybe it's my skill issue in soldering as I'm doing the project on a prototype board, or some ESP32 soft problems, or just bad hardware connection. Despite all of my issues, your guide helped me a lot during the process of setting up the firmware on ESP32, everything worked perfectly, I've even had an internet connection established :D
Very insightful video! Thanks for this. I have managed to get everything running for a machine with one X and two Y motors with dual endstops. I have moved the Z motor over to be a second Y motor and everything moves as desired. But when I home the Y axis it doesn't bounce back, it just sits there and then fails. The X axis homes perfectly. Any idea why the Y axis is not homing right?
Thanks for the video! All the config files I have found do not show the control: and macros: ... are there any sample config files showing these? - it's strange they have been left out
Thank you for posting this. I am gonna use fluidnc for the first time too. I am building impact etching machine, it will have a diamond engraving head instead of laser. I am little confused with double y axis though. Is the second y motor gonna use the motor driver of z axis ? Or one driver is enough for 2 y axes?
Depends on if your dragging or oscillating the diamond. I would use 2 drivers if your dragging it.
@@brakthehun I am gonna oscillate it.
If I want to use 2 drivers for y axis then I have to add motor1 under y axis parameters, but I will have to copy all parameters from the motor0 of z axis in config file. In this case, second y axis motor is gonna use pins of z axis on the board. Am I right? Thank you in advance !
@@yerbolatabdrafikov2731 yup!!
I have a mks dlc32 and I configured it following your instructions and it works fine but the G53 boot code part does nothing, could you please help me?
Hi
What is meant by shared_stepper_disable_pin: I2SO.0
How is this used?
And also I2S_STATIC
my regards
I Just bought the same card as you mks dlc32 2.1 for my k40 laser, do you happend to have the pins schematic ? wich # goes into what connection?
I've helped with a swap,, but I don't have a schematic. I just followed the wires.
I am building a laser pointer turret, which uses only two stepper motors. I was wanting to control it using a PS3 controller via BT. I ended up getting an MKS DLC32 board and trying FluidNC on it. Is this possible or am I just wasting time? I would appreciate any help or ideas anyone has as I am stuck :( Thank you
FluidNC can't really take a controller input like that. It's a good board to use but you may need to write custom firmware.
@@brakthehun Thank you for the reply. I think you are right and since I am not much of a coder, I may try something else. I was wondering if I could use FluidNC wifi to control it with a phone or tablet.
@@brakthehun Thank you Anthony! Is it possible to upload Arduino code to the DLC32? I have all the code for this project and using ChatGPT I had it rewrite the code giving it the gpio pin ref for the DLC32. I just wasn't sure if that was possible or not. I don't want to brick the board.
Yes. You may need to connect SDA to G to boot it in to upload mode.@@TMRu22311
@@brakthehun I am trying to upload FluidNC on the MKS-DLC32 v2.1. Everything seemed to be okay except for wifi. I cannot connect with ESPD (Connection failed! is your FW correct?) And in FluidTerminal I get this error: wifi : AP has neither DSSS parameter nor HT Information. What am I missing? Is there a wifi config file I was supposed to edit?
Nice job on the tutorial, I was able to get about 90% through it and got stuck on the dual Y motors part. I'm using a MKS DLC32 v1.1 board, I have my yaml setup just like you did in the video by copying the Z motor0 to the Y motor1. My problem is that now after reloading the yaml I get Y and Z moving together and z will not home anymore. Any ideas what I'm doing wrong?
I commented out the extra motors so I could continue to work on it. But you can see below the Y and Z where I made the changes. This is on a Shapeoko 2 CNC router.
board: MKS-DLC32 V1.1
name: Shapeoko2
meta: (02.11.2023) by GorLeeRob
kinematics:
Cartesian:
stepping:
engine: I2S_STATIC
idle_ms: 0
pulse_us: 4
dir_delay_us: 1
disable_delay_us: 0
axes:
shared_stepper_disable_pin: I2SO.0
x:
steps_per_mm: 80
max_rate_mm_per_min: 18000.000
acceleration_mm_per_sec2: 1500.000
max_travel_mm: 269.000
soft_limits: true
homing:
cycle: 1
positive_direction: false
mpos_mm: 0.000
feed_mm_per_min: 300.000
seek_mm_per_min: 5000.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0:
limit_neg_pin: gpio.36:low
hard_limits: false
pulloff_mm: 2.000
stepstick:
step_pin: I2SO.1
direction_pin: I2SO.2
y:
steps_per_mm: 80
max_rate_mm_per_min: 12000.000
acceleration_mm_per_sec2: 300.000
max_travel_mm: 760.000
soft_limits: true
homing:
cycle: 2
positive_direction: true
mpos_mm: 0.000
feed_mm_per_min: 300.000
seek_mm_per_min: 5000.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0:
limit_neg_pin: gpio.35:low
hard_limits: false
pulloff_mm: 2.000
stepstick:
step_pin: I2SO.5
direction_pin: I2SO.6:low
#motor1:
#limit_neg_pin: gpio.34:low
#hard_limits: false
#pulloff_mm: 6.000
#stepstick:
#step_pin: I2SO.3
#direction_pin: I2SO.4
z:
steps_per_mm: 806.451
max_rate_mm_per_min: 9350.000
acceleration_mm_per_sec2: 500.000
max_travel_mm: 200.000
soft_limits: true
homing:
cycle: 3
positive_direction: true
mpos_mm: 0.000
feed_mm_per_min: 1800.000
seek_mm_per_min: 1000.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0:
limit_neg_pin: gpio.34:low
hard_limits: false
pulloff_mm: 6.000
stepstick:
step_pin: I2SO.3
direction_pin: I2SO.4
#motor0:
#limit_neg_pin: NO_PIN
#hard_limits: false
#pulloff_mm: 6.000
#stepstick:
#step_pin: I2SO.8
#direction_pin: I2SO.9
i2so:
bck_pin: gpio.16
data_pin: gpio.21
ws_pin: gpio.17
spi:
miso_pin: gpio.12
mosi_pin: gpio.13
sck_pin: gpio.14
sdcard:
cs_pin: gpio.15
card_detect_pin: NO_PIN
control:
safety_door_pin: NO_PIN
reset_pin: NO_PIN
feed_hold_pin: NO_PIN
cycle_start_pin: NO_PIN
macro0_pin: gpio.33:low:pu
macro1_pin: NO_PIN
macro2_pin: NO_PIN
macro3_pin: NO_PIN
macros:
startup_line0:G53x-220 #just added this today
startup_line1:G92X-0 #just added this today
macro0: $SD/Run=lasertest.gcode
macro1: $SD/Run=home.gcode
macro2:
macro3:
coolant:
flood_pin: NO_PIN
mist_pin: NO_PIN
delay_ms: 0
probe:
pin: gpio.22
check_mode_start: true
Laser:
pwm_hz: 5000
#L on Beeper / IN on TTL
output_pin: gpio.32
enable_pin: I2SO.7
disable_with_s0: false
s0_with_disable: false
tool_num: 0
speed_map: 0=0.000% 0=12.500% 1700=100.000%
# 135=0mA 270=5mA 400=10mA 700=16mA
user_outputs:
analog0_pin: NO_PIN
analog1_pin: NO_PIN
analog2_pin: NO_PIN
analog3_pin: NO_PIN
analog0_hz: 5000
analog1_hz: 5000
analog2_hz: 5000
analog3_hz: 5000
digital0_pin: NO_PIN
digital1_pin: NO_PIN
digital2_pin: NO_PIN
digital3_pin: NO_PIN
start:
must_home: true #just added this today
# 5,18,19,22,23,25,26,27,32,33,39,I2SO.7
# SDA 0 / SCL 4
Post your Yaml
Hi Tony, sorry I had a little trouble posting. I'm going to try again. Thanks for your help., Gordon
I commented out the extra motors so I could continue to work on it. But you can see below the Y and Z where I made the changes. This is on a Shapeoko 2 CNC router.
board: MKS-DLC32 V1.1
name: Shapeoko2
meta: (02.11.2023) by GorLeeRob
kinematics:
Cartesian:
stepping:
engine: I2S_STATIC
idle_ms: 0
pulse_us: 4
dir_delay_us: 1
disable_delay_us: 0
axes:
shared_stepper_disable_pin: I2SO.0
x:
steps_per_mm: 80
max_rate_mm_per_min: 18000.000
acceleration_mm_per_sec2: 1500.000
max_travel_mm: 269.000
soft_limits: true
homing:
cycle: 1
positive_direction: false
mpos_mm: 0.000
feed_mm_per_min: 300.000
seek_mm_per_min: 5000.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0:
limit_neg_pin: gpio.36:low
hard_limits: false
pulloff_mm: 2.000
stepstick:
step_pin: I2SO.1
direction_pin: I2SO.2
y:
steps_per_mm: 80
max_rate_mm_per_min: 12000.000
acceleration_mm_per_sec2: 300.000
max_travel_mm: 760.000
soft_limits: true
homing:
cycle: 2
positive_direction: true
mpos_mm: 0.000
feed_mm_per_min: 300.000
seek_mm_per_min: 5000.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0:
limit_neg_pin: gpio.35:low
hard_limits: false
pulloff_mm: 2.000
stepstick:
step_pin: I2SO.5
direction_pin: I2SO.6:low
#motor1:
#limit_neg_pin: gpio.34:low
#hard_limits: false
#pulloff_mm: 6.000
#stepstick:
#step_pin: I2SO.3
#direction_pin: I2SO.4
z:
steps_per_mm: 806.451
max_rate_mm_per_min: 9350.000
acceleration_mm_per_sec2: 500.000
max_travel_mm: 200.000
soft_limits: true
homing:
cycle: 3
positive_direction: true
mpos_mm: 0.000
feed_mm_per_min: 1800.000
seek_mm_per_min: 1000.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0:
limit_neg_pin: gpio.34:low
hard_limits: false
pulloff_mm: 6.000
stepstick:
step_pin: I2SO.3
direction_pin: I2SO.4
#motor0:
#limit_neg_pin: NO_PIN
#hard_limits: false
#pulloff_mm: 6.000
#stepstick:
#step_pin: I2SO.8
#direction_pin: I2SO.9
i2so:
bck_pin: gpio.16
data_pin: gpio.21
ws_pin: gpio.17
spi:
miso_pin: gpio.12
mosi_pin: gpio.13
sck_pin: gpio.14
sdcard:
cs_pin: gpio.15
card_detect_pin: NO_PIN
control:
safety_door_pin: NO_PIN
reset_pin: NO_PIN
feed_hold_pin: NO_PIN
cycle_start_pin: NO_PIN
macro0_pin: gpio.33:low:pu
macro1_pin: NO_PIN
macro2_pin: NO_PIN
macro3_pin: NO_PIN
macros:
startup_line0:G53x-220 #just added this today
startup_line1:G92X-0 #just added this today
macro0: $SD/Run=lasertest.gcode
macro1: $SD/Run=home.gcode
macro2:
macro3:
coolant:
flood_pin: NO_PIN
mist_pin: NO_PIN
delay_ms: 0
probe:
pin: gpio.22
check_mode_start: true
Laser:
pwm_hz: 5000
#L on Beeper / IN on TTL
output_pin: gpio.32
enable_pin: I2SO.7
disable_with_s0: false
s0_with_disable: false
tool_num: 0
speed_map: 0=0.000% 0=12.500% 1700=100.000%
# 135=0mA 270=5mA 400=10mA 700=16mA
user_outputs:
analog0_pin: NO_PIN
analog1_pin: NO_PIN
analog2_pin: NO_PIN
analog3_pin: NO_PIN
analog0_hz: 5000
analog1_hz: 5000
analog2_hz: 5000
analog3_hz: 5000
digital0_pin: NO_PIN
digital1_pin: NO_PIN
digital2_pin: NO_PIN
digital3_pin: NO_PIN
start:
must_home: true #just added this today
# 5,18,19,22,23,25,26,27,32,33,39,I2SO.7
# SDA 0 / SCL 4
Looks good on the yaml. I think the next thing to investigate is the wiring.
@gorleerob3929 maybe this video can help you with that
ua-cam.com/video/FOTfTvitJkk/v-deo.html
" CNC Wiring Basics // FluidNC // ESP32 // TinyBee controller "
It's a diferent board, but it can be a way
Mine keeps telling me it can't find the config file I upload. Is there a way fix to this?
I haven't seen that happen. I'm pretty new to this board and platform myself.
😍
If I try to open Fluidterm it opens the window but then just closes after a few seconds. I have tried 3 different computers and get the same result, anybody have any suggestions?????
I do not know what happened with mine was fallow you step by step and after installing the WIFI file I lost connection and now the computer will not connect and now the off line screen hat came with the board is blank NOT GOOD
Fluidnc does not support screens by default.
Is it the v2.1??
Does FluidTerm connect??
@@brakthehun just redid everything step by step as I watched the video everything worked good this time now next is to wifi or BlueTooth it