Elegoo Phecda 10W custom firmware upload

The reality is this likely at least somewhat true for all laser users, me included. :scream:


I detected the pins. But the engine settings are quite different in FluidNC.

Example Config for TM2209. What is the UART?

http://wiki.fluidnc.com/en/config/axes

Also example…

At the beginning, you don’t need to care about the UART stuff. Some TMC drivers can be tuned using UART communication, but according to your schematics, the UART line is not connected. They work in standalone mode then. Just configure them as usual A4988 drivers, like in the last example you linked.

I made the settings. But there are some lines I don’t understand.

For example;
laser:
pwm_hz: 2000

My laser 10W, Use for drive this. But, What is it PWM?

Also
shared_stepper_disable_pin: gpio.33

This row… “XYZ_EN” pin?

board: Elegoo Phecda 10W
name: Elego Phecda Mod by Fatih Sevinc
stepping:
  engine: RMT
  idle_ms: 255
  pulse_us: 2
  dir_delay_us: 1
  disable_delay_us: 0

axes:
  shared_stepper_disable_pin: gpio.33
  x:
    steps_per_mm: 80.000
    max_rate_mm_per_min: 25000.000
    acceleration_mm_per_sec2: 1000.000
    max_travel_mm: 400.000
    soft_limits: false
    homing:
      cycle: 2
      positive_direction: false
      mpos_mm: 150.000
      feed_mm_per_min: 300.000
      seek_mm_per_min: 1000.000
      settle_ms: 250
      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_2209:       
        step_pin: gpio.25
        direction_pin: gpio.26

  y:
    steps_per_mm: 80.000
    max_rate_mm_per_min: 18000.000
    acceleration_mm_per_sec2: 300.000
    max_travel_mm: 400.000
    soft_limits: false
    homing:
      cycle: 2
      positive_direction: false
      mpos_mm: 150.000
      feed_mm_per_min: 300.000
      seek_mm_per_min: 1000.000
      settle_ms: 250
      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_2209:       
        step_pin: gpio.27
        direction_pin: gpio.5

  z:
    steps_per_mm: 100.000
    max_rate_mm_per_min: 6000.000
    acceleration_mm_per_sec2: 500.000
    max_travel_mm: 50.000
    soft_limits: false
    homing:
      cycle: 2
      positive_direction: false
      mpos_mm: 150.000
      feed_mm_per_min: 300.000
      seek_mm_per_min: 1000.000
      settle_ms: 250
      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_2209:       
        step_pin: gpio.18
        direction_pin: gpio.19

a:
    steps_per_mm: 100.000
    max_rate_mm_per_min: 1000.000
    acceleration_mm_per_sec2: 200.000
    max_travel_mm: 300.000
    soft_limits: false
    homing:
      cycle: 1
      positive_direction: true
      mpos_mm: 150.000
      feed_mm_per_min: 100.000
      seek_mm_per_min: 800.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_2209:       
        step_pin: gpio.16
        direction_pin: gpio.15

spi:
  miso_pin: gpio.12
  mosi_pin: gpio.13
  sck_pin: gpio.14

sdcard:
  cs_pin: gpio.15
  card_detect_pin: gpio.35

control:
  safety_door_pin: NO_PIN
  reset_pin: NO_PIN
  feed_hold_pin: NO_PIN
  cycle_start_pin: NO_PIN
  macro0_pin: NO_PIN
  macro1_pin: NO_PIN
  macro2_pin: NO_PIN
  macro3_pin: NO_PIN

probe:
  pin: gpio.36
  check_mode_start: true

macros:
  startup_line0:
  startup_line1:
  macro0:
  macro1:
  macro2:
  macro3:

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: false

laser:
  pwm_hz: 2000 
  output_pin: gpio.32:high
  enable_pin: NO_PIN
  disable_with_s0: false
  s0_with_disable: true
  tool_num: 0
  speed_map: 0=0.000% 1000=100.000%
  off_on_alarm: true

The laser is driven by a PWM signal. This defines the power of the laser module. It’s the electrical signal that is used to control it. Google PWM to see how it works, in this case it’s driven at 2000 Hz. That should be ok, but you might need to test. Sculpfun lasers have lower frequencies, like 1500Hz, the default of Fluid is 5000Hz.

Yes, that’s the shared enable pin.

I asked the company about the PWM value. I hope he answers. Also, I couldn’t see the coolant and mist fan pins in the diagram.

Also, are my pulse settings correct?

   engine: RMT
   idle_ms: 255
   pulse_us: 2
   dir_delay_us: 1
   disable_delay_us: 0

The engine in x axis is → 42HD4027-02

Elegoo answers my question. But I’m not sure!

Usually, there aren’t any. At the DLC32, it uses one of the I2C pins, if I remember correctly. But you could choose any pin that is available to control a relay. Otherwise, don’t define those pins.

I use

stepping:
  engine: RMT
  idle_ms: 25
  pulse_us: 4
  dir_delay_us: 0
  disable_delay_us: 0
  segments: 12

successfully with my Sculpfun S30 boards.

That’s not an answer to that question. This is always the case. You wanted to know the PWM frequency, not the values controlling the duty cycle.

Start at the heading “Duty Cycle” in this article.

Also, it’s nothing to worry about. In Fluid NC you will have access to the Base Frequency… Line 2: pwm_hz

… and the Power Scale or Line 8: speed_map
Note: The example linked recommends S Value Max = 1000 the same as speed_map.

I changed the step settings. Because my original machine settings were like this.

board: Elegoo Phecda 10W
name: Elego Phecda Mod by Fatih Sevinc
stepping:
  engine: RMT
  idle_ms: 25
  pulse_us: 10
  dir_delay_us: 1
  disable_delay_us: 0 

Btw. My mainboard…

Maybe use this setting for laser (spindle speed)
“$30=1000.000 (Maximum spindle speed)”

Elegoo Phecda 10 W default factory settings

$54=12345678 ()
$52=12345678 ()
$0=10 (Step pulse time)
$1=25 (Step idle delay)
$2=0 (Step pulse invert)
$3=7 (Step direction invert)
$4=0 (Invert step enable pin)
$5=1 (Invert limit pins)
$6=0 (Invert probe pin)
$10=1 (Status report options)
$11=0.010 (Junction deviation)
$12=0.002 (Arc tolerance)
$13=0 (Report in inches)
$20=0 (Soft limits enable)
$21=0 (Hard limits enable)
$22=0 (Homing cycle enable)
$23=5 (Homing direction invert)
$24=300.000 (Homing locate feed rate)
$25=1000.000 (Homing search seek rate)
$26=250.000 (Homing switch debounce delay)
$27=1.000 (Homing switch pull-off distance)
$28=1000.000 ()
$30=1000.000 (Maximum spindle speed)
$31=0.000 (Minimum spindle speed)
$32=1 (Laser-mode enable)
$41=1 ()
$47=1 ()
$46=1 ()
$102=100 (Z-axis travel resolution)
$101=80 (Y-axis travel resolution)
$45=0 ()
$44=0 ()
$43=0 ()
$42=0 ()
$50=1 ()
$40=1 ()
$100=80.000 (X-axis travel resolution)
$103=100.000 ()
$104=100.000 ()
$105=100.000 ()
$110=25000.000 (X-axis maximum rate)
$111=18000.000 (Y-axis maximum rate)
$112=6000.000 (Z-axis maximum rate)
$113=1000.000 ()
$114=1000.000 ()
$115=1000.000 ()
$120=1000.000 (X-axis acceleration)
$121=300.000 (Y-axis acceleration)
$122=500.000 (Z-axis acceleration)
$123=200.000 ()
$124=200.000 ()
$125=200.000 ()
$130=400.000 (X-axis maximum travel)
$131=400.000 (Y-axis maximum travel)
$132=50.000 (Z-axis maximum travel)
$133=300.000 ()
$134=300.000 ()
$135=300.000 ()

It is the same board I am using. It uses grblHAL not grbl.
I have resisted installing custom firmware.
If you feel you really have to, backup the original firmware first so you can go back if things don’t work out.
There is a lot more to the grblHAL firmware than the old grbl.

It looks very difficult. There is no telling. How is it compiled and installed?

Read GitHub - makerbase-mks/MKS-DLC32: 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 function, and directly drives a 3.5-inch touch color screen; it can realize fast engraving and WEB web pages. Control, mobile phone APP control and other functions.
check the board is actually an MKS DLC32, check board version number.
Using Windoze ? they have an ESP32 download tool, don’t know if it also backs up your current firmware ?
Firmware · makerbase-mks/MKS-DLC32 Wiki · GitHub
Remember the golden rule - measure twice cut once, read carefully, else you might brick it and be buying a new controller. If not totally sure, don’t do it.

What is the advantage?

Your original question was
… Can I install custom grbl 1.1 firmware on my machine? …
short answer, no,
long answer, grblHAL firmware belongs in this board,
Not knowing if Elegoo has customised the MKS-DLC32 hardware or grblHAL firmware, my safe answer is don’t upgrade your firmware.
Email the manufacturer for information.

The device is adapted from mks. Only esp pins were used directly to avoid using 74HC.