I bought Elegoo Phecda 10w machine. But $3-Step Direction Invert settings are not saved in the device’s eeprom. I don’t want to run a macro every time with Ligtburn macro. I want to grbl settings permanently within the device.
There is an MKS DLC32 card in the machine. Can I install custom grbl 1.1 firmware on my machine? If I install this firmware, will I be able to use the LCD screen etc.?
misken
(Melvin)
October 30, 2023, 12:46pm
2
Yes. The best option in my opinion is FluidNC in this case.
Probably not. Those extra functions a usually propritary, so FluidNC doesn’t support them. You can try the official firmware from MKS which can control a display, if they didn’t change the connectors, that might work. But the functions on the display are then derived from the MKS firmware and might be different.
I tried mks software. The machine did not work.
I installed the original firmware again.
Now I want to try FluidNC. But there are GPIO settings in the config file. I don’t have a diagram of which motor is connected to which pin. Do I need to detect individual pins on the card?
misken
(Melvin)
October 30, 2023, 9:53pm
4
If it is a MKS DLC32 board, there should be samples. But if it is only a board using an ESP32 chip (then it’s no DCL32), then you would have to find out all pins at your own, correct.
This board DLC32. Some changes have been made…Pins are very difficult to find. 3-4 layers pcb
jkwilborn
(Jack Wilborn)
October 30, 2023, 11:14pm
6
The whole board layout and schematics is on github…?
MKS DLC32 motherboard kit, which is an offline engraving master control kit developed for desktop engraving machines. The hardware is equipped with a 32-bit high-speed ESP32 module, integrated WIFI...
misken
(Melvin)
October 30, 2023, 11:20pm
7
Yes, of the DLC32, but he has a Elegoo Phecda with some sort of clone/derivate, as far as I understood.
jkwilborn
(Jack Wilborn)
October 30, 2023, 11:34pm
8
It would seem rather odd, to take an open source board and hack it… but it wouldn’t totally surprise me. As far as I knew it was GNU…
Maybe a photo?
This is my DLC32…
misken
(Melvin)
October 30, 2023, 11:37pm
9
At least Sculpfun did, with their first designs. The 8bit board they had was nearly a complete clone of the DLC and the first 32bit board of the S10 model was (internally) pin-compatible to the DLC32. Though they changed the layout quite a bit to stay compatible to the older 8 bit boards conntector-wise.
jkwilborn
(Jack Wilborn)
October 31, 2023, 2:20am
10
Didn’t know there was any external signal differences between 8 bit and 32 bit boards…?
misken
(Melvin)
October 31, 2023, 11:40am
12
No, I meant the position and types of the connectors stayed the same. You can swap the boards and don’t need to reposition any connectors. They are all at the same location. Here is an example of the DLC, the first generation Sculpfun boards and the DLC32, which has a different layout. (I listed most Sculpfun boards here , if anyone is interested )
fatihsevinc:
which hardware?
Should be printed on your board, in doubt, select the latest.
I reviewed the Elegoo Phecda chart. It is not the same as MKS. Some pins are different. I detected them.
However, the most important difference is the TFT touchscreen display.
Elegoo Phecda communicates with the ESP32 on the other TFT screen via I2C.
In MKS, a small LCD screen is connected directly to the ESP pins on the motherboard via SPI.
I emailed Elegoo. They sent me schematics. But as I mentioned in the diagram, the TFT screen is not like MKS. It connects via I2c. Pins are different.
Then I asked for source code. But they did not give it.
Phecda Shematic PINS
MKS DLC32 V2.1 PINS
FluidNC MKS DLC32 Config
board: MKS-DLC32
name: K40 MOD
meta: 2022-12-27 by Tong
kinematics:
Cartesian:
stepping:
engine: I2S_STATIC
#Static only, Stream Produces a second "ghost line" when doing engraving/Filling
idle_ms: 254
pulse_us: 6
dir_delay_us: 10
disable_delay_us: 0
axes:
shared_stepper_disable_pin: I2SO.0
x:
steps_per_mm: 157.500
max_rate_mm_per_min: 5000.000
acceleration_mm_per_sec2: 1000.000
max_travel_mm: 313.000
soft_limits: true
homing:
cycle: 1
positive_direction: false
mpos_mm: 0.000
feed_mm_per_min: 300.000
seek_mm_per_min: 6000.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0:
limit_neg_pin: gpio.36
hard_limits: false
pulloff_mm: 1.000
stepstick:
step_pin: I2SO.1
direction_pin: I2SO.2:low
y:
steps_per_mm: 157.500
max_rate_mm_per_min: 5000.000
acceleration_mm_per_sec2: 1000.000
max_travel_mm: 230.000
soft_limits: true
homing:
cycle: 1
positive_direction: false
mpos_mm: 0.000
feed_mm_per_min: 300.000
seek_mm_per_min: 6000.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0:
limit_neg_pin: gpio.35
hard_limits: false
pulloff_mm: 1.000
stepstick:
step_pin: I2SO.5
direction_pin: I2SO.6:high
z:
steps_per_mm: 157.750
max_rate_mm_per_min: 12000.000
acceleration_mm_per_sec2: 500.000
max_travel_mm: 80.000
soft_limits: true
homing:
cycle: 0
positive_direction: false
mpos_mm: 0.000
feed_mm_per_min: 300.000
seek_mm_per_min: 1000.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0:
limit_neg_pin: gpio.34
hard_limits: false
pulloff_mm: 1.000
stepstick:
step_pin: I2SO.3
direction_pin: I2SO.4
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: gpio.39
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:
startup_line1:
macro0: $SD/Run=lasertest.gcode
macro1: $SD/Run=home.gcode
#These are examples
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
#For software PWM control on K40, IN on TTL connection, G next to IN to G on TTL. No need for Enable
output_pin: gpio.32
enable_pin: NO_PIN
disable_with_s0: false
s0_with_disable: false
tool_num: 0
speed_map: 0=7.500% 2200=100.000%
# 165=1mA (not enough to fire), 880=9mA 2200=16mA
# Set your own MAX and Minimum,
# Change max until desired MAX mA on gauge
# Change min until laser just before laser fires.
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
# 5,18,19,22,23,25,26,27,32,33,39,I2SO.7
# SDA 0 / SCL 4
Phecda not use I2SO…
MKS use I2SO
stepping:
engine: I2S_STATIC ???
misken
(Melvin)
November 1, 2023, 1:54pm
16
fatihsevinc:
engine: I2S_STATIC ???
No, it looks like they directly drive the steppers, no additional controller integrated. try:
engine: RMT
For the motors, don’t use I2SO.xyz but gpio.xyz for each pin.
TMC2209 was used as the driver. (elegoo phecda)
I couldn’t find the step/pulse settings in FluidNC.
Example RMT config
stepping:
engine: RMT
idle_ms: 255
pulse_us: 2
dir_delay_us: 1
disable_delay_us: 0
axes:
shared_stepper_disable_pin: NO_PIN
x:
steps_per_mm: 800.000
max_rate_mm_per_min: 5000.000
acceleration_mm_per_sec2: 100.000
max_travel_mm: 300.000
soft_limits: false
homing:
cycle: 2
positive_direction: false
mpos_mm: 150.000
feed_mm_per_min: 100.000
seek_mm_per_min: 200.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0:
limit_neg_pin: NO_PIN
limit_pos_pin: NO_PIN
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000
tmc_2130:
cs_pin: gpio.17
spi_index: 1
r_sense_ohms: 0.110
run_amps: 0.750
hold_amps: 0.750
microsteps: 16
stallguard: 0
stallguard_debug: false
toff_disable: 0
toff_stealthchop: 5
toff_coolstep: 3
run_mode: CoolStep
homing_mode: CoolStep
use_enable: true
step_pin: gpio.12
direction_pin: gpio.14
disable_pin: NO_PIN
y:
steps_per_mm: 800.000
max_rate_mm_per_min: 5000.000
acceleration_mm_per_sec2: 100.000
max_travel_mm: 300.000
soft_limits: false
homing:
cycle: 2
positive_direction: false
mpos_mm: 150.000
feed_mm_per_min: 100.000
seek_mm_per_min: 200.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0:
limit_neg_pin: NO_PIN
limit_pos_pin: NO_PIN
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000
tmc_2130:
spi_index: 2
r_sense_ohms: 0.110
run_amps: 0.750
hold_amps: 0.750
microsteps: 16
stallguard: 0
stallguard_debug: false
toff_disable: 0
toff_stealthchop: 5
toff_coolstep: 3
run_mode: CoolStep
homing_mode: CoolStep
use_enable: true
step_pin: gpio.27
direction_pin: gpio.26
disable_pin: NO_PIN
z:
steps_per_mm: 800.000
max_rate_mm_per_min: 5000.000
acceleration_mm_per_sec2: 100.000
max_travel_mm: 300.000
soft_limits: false
homing:
cycle: 2
positive_direction: false
mpos_mm: 150.000
feed_mm_per_min: 100.000
seek_mm_per_min: 200.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0:
limit_neg_pin: NO_PIN
limit_pos_pin: NO_PIN
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000
tmc_2130:
spi_index: 3
r_sense_ohms: 0.110
run_amps: 0.750
hold_amps: 0.750
microsteps: 16
stallguard: 0
stallguard_debug: false
toff_disable: 0
toff_stealthchop: 5
toff_coolstep: 3
run_mode: CoolStep
homing_mode: CoolStep
use_enable: true
step_pin: gpio.15
direction_pin: gpio.2
disable_pin: NO_PIN
a:
steps_per_mm: 800.000
max_rate_mm_per_min: 5000.000
acceleration_mm_per_sec2: 100.000
max_travel_mm: 300.000
soft_limits: false
homing:
cycle: 2
positive_direction: false
mpos_mm: 150.000
feed_mm_per_min: 100.000
seek_mm_per_min: 200.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100
motor0:
limit_neg_pin: NO_PIN
limit_pos_pin: NO_PIN
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000
tmc_2130:
spi_index: 4
r_sense_ohms: 0.110
run_amps: 0.750
hold_amps: 0.750
microsteps: 16
stallguard: 0
stallguard_debug: false
toff_disable: 0
toff_stealthchop: 5
toff_coolstep: 3
run_mode: CoolStep
homing_mode: CoolStep
use_enable: true
step_pin: gpio.33
direction_pin: gpio.32
disable_pin: NO_PIN
spi:
miso_pin: gpio.19
mosi_pin: gpio.23
sck_pin: gpio.18
sdcard:
card_detect_pin: NO_PIN
cs_pin: gpio.5
probe:
pin: NO_PIN
check_mode_start: true
macros:
startup_line0:
startup_line1:
macro0:
macro1:
macro2:
macro3:
start:
must_home: false
misken
(Melvin)
November 1, 2023, 2:50pm
18
You don’t need to check that extra motor diagram, just the one with the ESP. There, the IO pins are listed (x_step is IO25 (if I can decipher correctly) etc. Though, I don’t see a y_dir pin listed. Weird. Those Chinese diagrams are the hell This can’t be true.
misken
(Melvin)
November 1, 2023, 2:58pm
20
Ah, true. Maybe I should have my eyes tested sometime. Or the lasers killed too many retina cells