Jackpot CNC Control Board not working properly

Hello, I’m here today because after a lot of testing, I cannot manage to make my mpcnc work properly. The first thing that you’ll see in this video, is that the first port does not work at all, no current is going inside my stepper motor. But Elecrow (where I bought my Control Board) wants me to first ask on these forums to make sure that my control board is defective …

I have carefully followed all precautions and adapted my configuration so that the motors operate in pairs. I have thoroughly checked everything and even tested new components to rule out any external issues.

I have always been careful to disconnect the power supply before making any modifications or handling the board. Despite these precautions, the issue persists. The board does not show any visible defects, but I suspect a manufacturing issue with the electronic components.

To provide more context, I have recorded a video explaining the problem in detail, which you can find here:

Of course, the config for voltage etc is the same for each motor …

Yes on this video I know that all the motors are not plugged in, i did a lot of tests since receiving the board to find the issue…

Jackpot CNC Control Board is from Elecrow
ESP32, the first one on Aliexpress, the new ones are from Amazon
TCM2209 are from Aliexpress

I made sure to buy products only with good reviews and a lot of it of course

Best regards,

1 Like

Welcome. Have no fear about your English it is perfect.

To start off trying to help could you please

  • confirm what the version number of fluidNC you have installed
  • post your config.yaml using the reformatted text markup
  • Put a stepper driver in each port; XYZABC
  • Go to the terminal of fluidNC and enter $S, copy and paste the results

Let’s see if that shows anything obvious.

2 Likes

1 - I installed FluidNC from the Web installer, v 3.9.4 on each esp32.
2 - Here is my config, using the 6th port because the first one doesn’t work:

board: Jackpot TMC2209
name: MPCNC
meta: 03-15-2024 RyanZ

planner_blocks: 32

stepping:
  engine: I2S_STATIC
  idle_ms: 255
  pulse_us: 2
  dir_delay_us: 1
  disable_delay_us: 0

uart1:
  txd_pin: gpio.0
  rxd_pin: gpio.4
  rts_pin: NO_PIN
  baud: 115200
  mode: 8N1

axes:
  shared_stepper_disable_pin: NO_PIN

  x:
    steps_per_mm: 50.000
    max_rate_mm_per_min: 9000.000
    acceleration_mm_per_sec2: 200.000
    max_travel_mm: 1220
    soft_limits: false
    homing:
      cycle: 1
      positive_direction: false
      mpos_mm: 3
      feed_mm_per_min: 300.000
      seek_mm_per_min: 1500.000
      settle_ms: 500
      seek_scaler: 1.100
      feed_scaler: 1.100
    #X
    motor0:
      limit_neg_pin: gpio.25:high
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: false
      pulloff_mm: 4.000
      tmc_2209:
        uart_num: 1
        addr: 3
        cs_pin: NO_PIN
        r_sense_ohms: 0.110
        run_amps: 0.800
        homing_amps: 0.800
        hold_amps: 0.500
        microsteps: 8
        stallguard: 0
        stallguard_debug: false
        toff_disable: 0
        toff_stealthchop: 5
        toff_coolstep: 3
        run_mode: StealthChop
        homing_mode: StealthChop
        use_enable: false
        direction_pin: I2SO.20
        step_pin: I2SO.21
        disable_pin: I2SO.23

    #A
    motor1:
      limit_neg_pin: gpio.35:high
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: false
      pulloff_mm: 4.000
      tmc_2209:
        uart_num: 1
        addr: 3
        cs_pin: i2so.14
        r_sense_ohms: 0.110
        run_amps: 0.800
        homing_amps: 0.800
        hold_amps: 0.500
        microsteps: 8
        stallguard: 0
        stallguard_debug: false
        toff_disable: 0
        toff_stealthchop: 5
        toff_coolstep: 3
        run_mode: StealthChop
        homing_mode: StealthChop
        use_enable: false
        step_pin: I2SO.13
        direction_pin: I2SO.12
        disable_pin: I2SO.15

  y:
    steps_per_mm: 50.000
    max_rate_mm_per_min: 9000.000
    acceleration_mm_per_sec2: 200.000
    max_travel_mm: 2440
    soft_limits: false
    homing:
      cycle: 2
      positive_direction: false
      mpos_mm: 3
      feed_mm_per_min: 300.000
      seek_mm_per_min: 1500.000
      settle_ms: 500
      seek_scaler: 1.100
      feed_scaler: 1.100
    #Y
    motor0:
      limit_neg_pin: gpio.33:high
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: false
      pulloff_mm: 4.000
      tmc_2209:
        uart_num: 1
        addr: 1
        cs_pin: NO_PIN
        r_sense_ohms: 0.110
        run_amps: 0.800
        homing_amps: 0.800
        hold_amps: 0.500
        microsteps: 8
        stallguard: 0
        stallguard_debug: false
        toff_disable: 0
        toff_stealthchop: 5
        toff_coolstep: 3
        run_mode: StealthChop
        homing_mode: StealthChop
        use_enable: false
        step_pin: I2SO.5
        direction_pin: I2SO.4
        disable_pin: I2SO.7

    #B
    motor1:
      limit_neg_pin: gpio.34:high
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: false
      pulloff_mm: 4.000
      tmc_2209:
        uart_num: 1
        addr: 3
        cs_pin: i2so.19
        r_sense_ohms: 0.110
        run_amps: 0.800
        homing_amps: 0.800
        hold_amps: 0.500
        microsteps: 8
        stallguard: 0
        stallguard_debug: false
        toff_disable: 0
        toff_stealthchop: 5
        toff_coolstep: 3
        run_mode: StealthChop
        homing_mode: StealthChop
        use_enable: false
        step_pin: I2SO.18
        direction_pin: I2SO.17
        disable_pin: I2SO.16
  z:
    steps_per_mm: 200.000
    max_rate_mm_per_min: 1200.000
    acceleration_mm_per_sec2: 80.000
    max_travel_mm: 300.000
    soft_limits: false
    homing:
      cycle: 0
      positive_direction: true
      mpos_mm: 200.000
      feed_mm_per_min: 300.000
      seek_mm_per_min: 800.000
      settle_ms: 500
      seek_scaler: 1.100
      feed_scaler: 1.100

    motor0:
      limit_neg_pin: gpio.32:low
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: false
      pulloff_mm: 4.000
      tmc_2209:
        uart_num: 1
        addr: 2
        cs_pin: NO_PIN
        r_sense_ohms: 0.110
        run_amps: 0.800
        homing_amps: 0.800
        hold_amps: 0.500
        microsteps: 8
        stallguard: 0
        stallguard_debug: false
        toff_disable: 0
        toff_stealthchop: 5
        toff_coolstep: 3
        run_mode: StealthChop
        homing_mode: StealthChop
        use_enable: false
        step_pin: I2SO.10
        direction_pin: I2SO.9
        disable_pin: I2SO.8

#  c:
#    steps_per_mm: 80.000
#    max_rate_mm_per_min: 5000.000
#    acceleration_mm_per_sec2: 100.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: gpio.39:low
#      limit_pos_pin: NO_PIN
#      limit_all_pin: NO_PIN
#      hard_limits: false
#      pulloff_mm: 3.000
#      tmc_2209:
#        uart_num: 1
#        addr: 3
#        cs_pin: i2so.22
#        r_sense_ohms: 0.110
#        run_amps: 0.800
#        homing_amps: 0.800
#        hold_amps: 0.500
#        microsteps: 16
#        stallguard: 0
#        stallguard_debug: false
#        toff_disable: 0
#        toff_stealthchop: 5
#        toff_coolstep: 3
#        run_mode: StealthChop
#        homing_mode: StealthChop
#        use_enable: false
#        step_pin: I2SO.21
#        direction_pin: I2SO.20
#        disable_pin: I2SO.23

i2so:
  bck_pin: gpio.22
  data_pin: gpio.21
  ws_pin: gpio.17

spi:
  miso_pin: gpio.19
  mosi_pin: gpio.23
  sck_pin: gpio.18

sdcard:
  cs_pin: gpio.5
  card_detect_pin: NO_PIN
  frequency_hz: 20000000

probe:
  pin: gpio.36:low
  toolsetter_pin: NO_PIN
  check_mode_start: true

start:
  must_home: false

coolant:
  flood_pin: gpio.2
  mist_pin: gpio.16
  delay_ms: 0

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

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: gpio.26
  digital1_pin: gpio.27
  digital2_pin: NO_PIN
  digital3_pin: NO_PIN

#Laser:
#  pwm_hz: 5000
#  output_pin: gpio.27
#  enable_pin: NO_PIN
#  disable_with_s0: false
#  s0_with_disable: true
#  tool_num: 0
#  speed_map: 0=0.000% 255=100.000%
#  off_on_alarm: true

# pwm:
#  pwm_hz: 5000
#  direction_pin: gpio.26
#  output_pin: gpio.27
#  enable_pin: NO_PIN
#  disable_with_s0: false
#  s0_with_disable: true
#  spinup_ms: 0
#  spindown_ms: 0
#  tool_num: 0
#  speed_map: 0=0.000% 1000=100.000%
#  off_on_alarm: false

# 5V out gpio.26/27
# VMot out gpoi.2/16
# In's left to right gpoi.25/33/32/35/34/39/36

3 - Okay, I’ve put a driver also in the X port.

4 - Here is the text :

$S

$Notification/Type=NONE

$Notification/T1=

$Notification/T2=

$Notification/TS=

$Telnet/Enable=ON

$Telnet/Port=23

$HTTP/BlockDuringMotion=ON

$HTTP/Enable=ON

$HTTP/Port=80

$MDNS/Enable=ON

$WiFi/PsMode=None

$WiFi/Mode=STA>AP

$Sta/Password=********

$Sta/MinSecurity=WPA2-PSK

$WiFi/FastScan=OFF

$Sta/IPMode=DHCP

$Sta/IP=0.0.0.0

$Sta/Gateway=0.0.0.0

$Sta/Netmask=0.0.0.0

$AP/Country=01

$AP/SSID=FluidNC

$AP/Password=********

$AP/IP=192.168.0.1

$AP/Channel=1

$Hostname=fluidnc

$Sta/SSID=

$Grbl/LaserMode=0

$Grbl/HomingInvertMask=3

$Grbl/HomingCycleEnable=1

$Grbl/HardLimitsEnable=0

$Grbl/SoftLimitsEnable=0

$Grbl/InvertMask=0

$Grbl/Resolution/Z=200.000

$Grbl/Resolution/Y=50.000

$Grbl/Resolution/X=50.000

$Grbl/MaxRate/Z=1200.000

$Grbl/MaxRate/Y=9000.000

$Grbl/MaxRate/X=9000.000

$Grbl/Acceleration/Z=80.000

$Grbl/Acceleration/Y=200.000

$Grbl/Acceleration/X=200.000

$Grbl/MaxTravel/Z=300.000

$Grbl/MaxTravel/Y=2440.000

$Grbl/MaxTravel/X=1220.000

$GCode/Echo=OFF

$Start/Message=Grbl \V [FluidNC \B (\R) \H]

$Firmware/Build=

$SD/FallbackCS=-1

$Report/Status=1

$Config/Filename=config.yaml

$Message/Level=Info

ok

Rule #1 when trying to speak in another language… it is never your fault that you can’t speak the language, but them that can’t understand what you say! Your level is more than acceptable and the message gets across well. I am a French native speaker with over 30 years in the USA, so I went through the same struggles and fear of expressing myself in English at first.

For your issue, I wish that I could help but I am on a similar noob journey with my LR3 & got my board pre-programmed from Ryan (it helps), so no issues there.

To rule out the X board output being broken, have you tried to change the 2209 driver and/or the motor? Also maybe check the X limit switch (I am not sure if it has a play to block the motor outside of homing).

1 Like

Something to note if you’re not already aware but YAML is extremely sensitive to formatting - even an extra space at the end of a line or the file can cause issues. For troubleshooting I would recommend downloading the known good config.yaml and uploading it.

Its not clear from your video if you’re extension cables of any kind but if you can plug one stepper into a driver using its included cable only.

What we want to do is eliminate variables.
So establish
a tested stepper
with a tested cable
Into a tested driver
In a tested slot
With a tested config.yaml

It’s tedious but being methodical is important.

Edit: I apologise, I gave you the wrong command for the terminal, could you please use $SS and paste the results?

3 Likes

Yes, actually my problem dates back from the time I received the board.

I already tried a lot of things, changing the extension cables, trying different drivers, different motors on this port, and I used the MPCNC Config available on github.

I tried putting my X motor on the Z axis and he was doing perfectly fine :confused:

So yeah I’m pretty sure that this port is dead.

1 Like

**Yes, I used the given config for the MPCNC, and just changed the gpio ports, to match the C slot, because my X one didn’t work … But the C slot works but not that great, it’s like jumping idk how to explain it. **

No problem, here is the result :

$SS

[MSG:INFO: FluidNC v3.9.4 LINK DELETED]

[MSG:INFO: Compiled with ESP32 SDK:v4.4.7-dirty]

[MSG:INFO: Local filesystem type is littlefs]

[MSG:INFO: Configuration file:config.yaml]

[MSG:INFO: Machine MPCNC]

[MSG:INFO: Board Jackpot TMC2209]

[MSG:INFO: UART1 Tx:gpio.0 Rx:gpio.4 RTS:NO_PIN Baud:115200]

[MSG:INFO: I2SO BCK:gpio.22 WS:gpio.17 DATA:gpio.21Min Pulse:2us]

[MSG:INFO: SPI SCK:gpio.18 MOSI:gpio.23 MISO:gpio.19]

[MSG:INFO: SD Card cs_pin:gpio.5 detect:NO_PIN freq:20000000]

[MSG:INFO: Stepping:I2S_STATIC Pulse:2us Dsbl Delay:0us Dir Delay:1us Idle Delay:255ms]

[MSG:INFO: User Digital Output: 0 on Pin:gpio.26]

[MSG:INFO: User Digital Output: 1 on Pin:gpio.27]

[MSG:INFO: Axis count 3]

[MSG:INFO: Axis X (3.000,1223.000)]

[MSG:INFO: Motor0]

[MSG:INFO: tmc_2209 UART1 Addr:3 CS:NO_PIN Step:I2SO.21 Dir:I2SO.20 Disable:I2SO.23 R:0.110]

[MSG:INFO: X Neg Limit gpio.25]

[MSG:INFO: Motor1]

[MSG:INFO: tmc_2209 UART1 Addr:3 CS:I2SO.14 Step:I2SO.13 Dir:I2SO.12 Disable:I2SO.15 R:0.110]

[MSG:INFO: X2 Neg Limit gpio.35]

[MSG:INFO: Axis Y (3.000,2443.000)]

[MSG:INFO: Motor0]

[MSG:INFO: tmc_2209 UART1 Addr:1 CS:NO_PIN Step:I2SO.5 Dir:I2SO.4 Disable:I2SO.7 R:0.110]

[MSG:INFO: Y Neg Limit gpio.33]

[MSG:INFO: Motor1]

[MSG:INFO: tmc_2209 UART1 Addr:3 CS:I2SO.19 Step:I2SO.18 Dir:I2SO.17 Disable:I2SO.16 R:0.110]

[MSG:INFO: Y2 Neg Limit gpio.34]

[MSG:INFO: Axis Z (-100.000,200.000)]

[MSG:INFO: Motor0]

[MSG:INFO: tmc_2209 UART1 Addr:2 CS:NO_PIN Step:I2SO.10 Dir:I2SO.9 Disable:I2SO.8 R:0.110]

[MSG:INFO: Z Neg Limit gpio.32:low]

[MSG:ERR: X Axis TMC driver not detected - expected 0x21 got 0x0]

[MSG:INFO: X2 Axis driver test passed]

[MSG:INFO: Y Axis driver test passed]

[MSG:INFO: Y2 Axis driver test passed]

[MSG:INFO: Z Axis driver test passed]

[MSG:INFO: Kinematic system: Cartesian]

[MSG:INFO: STA SSID is not set]

[MSG:INFO: AP SSID FluidNC IP 192.168.0.1 mask 255.255.255.0 channel 1]

[MSG:INFO: AP started]

[MSG:INFO: WiFi on]

[MSG:INFO: Captive Portal Started]

[MSG:INFO: HTTP started on port 80]

[MSG:INFO: Telnet started on port 23]

[MSG:INFO: Flood coolant gpio.2]

[MSG:INFO: Mist coolant gpio.16]

[MSG:INFO: Probe gpio.36:low]

ok

**I already tried this, and noticed that no TMC driver was detected on the X port. Of course, I tried using a working driver on this port, for example the Z axis one. **

BEFORE : Motors on Y Z A B C ports (C is being the X replacement)
AFTER : Motors on X Y A B C ports (Move the Z driver to X port)

$SS

[MSG:INFO: FluidNC v3.9.4 LINK DELETED]

[MSG:INFO: Compiled with ESP32 SDK:v4.4.7-dirty]

[MSG:INFO: Local filesystem type is littlefs]

[MSG:INFO: Configuration file:config.yaml]

[MSG:INFO: Machine MPCNC]

[MSG:INFO: Board Jackpot TMC2209]

[MSG:INFO: UART1 Tx:gpio.0 Rx:gpio.4 RTS:NO_PIN Baud:115200]

[MSG:INFO: I2SO BCK:gpio.22 WS:gpio.17 DATA:gpio.21Min Pulse:2us]

[MSG:INFO: SPI SCK:gpio.18 MOSI:gpio.23 MISO:gpio.19]

[MSG:INFO: SD Card cs_pin:gpio.5 detect:NO_PIN freq:20000000]

[MSG:INFO: Stepping:I2S_STATIC Pulse:2us Dsbl Delay:0us Dir Delay:1us Idle Delay:255ms]

[MSG:INFO: User Digital Output: 0 on Pin:gpio.26]

[MSG:INFO: User Digital Output: 1 on Pin:gpio.27]

[MSG:INFO: Axis count 3]

[MSG:INFO: Axis X (3.000,1223.000)]

[MSG:INFO: Motor0]

[MSG:INFO: tmc_2209 UART1 Addr:3 CS:NO_PIN Step:I2SO.21 Dir:I2SO.20 Disable:I2SO.23 R:0.110]

[MSG:INFO: X Neg Limit gpio.25]

[MSG:INFO: Motor1]

[MSG:INFO: tmc_2209 UART1 Addr:3 CS:I2SO.14 Step:I2SO.13 Dir:I2SO.12 Disable:I2SO.15 R:0.110]

[MSG:INFO: X2 Neg Limit gpio.35]

[MSG:INFO: Axis Y (3.000,2443.000)]

[MSG:INFO: Motor0]

[MSG:INFO: tmc_2209 UART1 Addr:1 CS:NO_PIN Step:I2SO.5 Dir:I2SO.4 Disable:I2SO.7 R:0.110]

[MSG:INFO: Y Neg Limit gpio.33]

[MSG:INFO: Motor1]

[MSG:INFO: tmc_2209 UART1 Addr:3 CS:I2SO.19 Step:I2SO.18 Dir:I2SO.17 Disable:I2SO.16 R:0.110]

[MSG:INFO: Y2 Neg Limit gpio.34]

[MSG:INFO: Axis Z (-100.000,200.000)]

[MSG:INFO: Motor0]

[MSG:INFO: tmc_2209 UART1 Addr:2 CS:NO_PIN Step:I2SO.10 Dir:I2SO.9 Disable:I2SO.8 R:0.110]

[MSG:INFO: Z Neg Limit gpio.32:low]

[MSG:ERR: X Axis TMC driver not detected - expected 0x21 got 0x0]

[MSG:INFO: X2 Axis driver test passed]

[MSG:INFO: Y Axis driver test passed]

[MSG:INFO: Y2 Axis driver test passed]

[MSG:ERR: Z Axis TMC driver not detected - expected 0x21 got 0x0]

[MSG:INFO: Kinematic system: Cartesian]

[MSG:INFO: STA SSID is not set]

[MSG:INFO: AP SSID FluidNC IP 192.168.0.1 mask 255.255.255.0 channel 1]

[MSG:INFO: AP started]

[MSG:INFO: WiFi on]

[MSG:INFO: Captive Portal Started]

[MSG:INFO: HTTP started on port 80]

[MSG:INFO: Telnet started on port 23]

[MSG:INFO: Flood coolant gpio.2]

[MSG:INFO: Mist coolant gpio.16]

[MSG:INFO: Probe gpio.36:low]

ok

As you can see, the X port still doesn’t detect any driver … So my only thought is that the Control Board is defective …

That seems logical if it’s not detecting a working driver board. Have you had a close look at both sides of the board for anything visibly wrong - missed solder pads or anything?

I don’t know the minimum number of posts you need to post images but clear pictures of both sides of the board would be good.

Hopefully Ryan will be waking up soon so can take a look at the info you’ve collected so far.

Here are pictures of my board. I cleared up what was in the way of course to make the pictures. I already checked my board multiple times, but cannot see any visible defect. I’m pretty sure that the defect is from the board itself before the coating ?

Yeah I tried uploading the pictures with no success, I’m doing it the illegal way sorry lol.

1 Like

Solder workmanship on X looks a little suspect.

You can very carefully pry up on the plastic headers on the X stocket and remove them (seperate them from the socket pins) and check that they’re not touching anywhere.

We’ve seen this a few times. I’ve personally fixed three that were identified as defective by pulling the plastic, finding where they’re shorting, straightening them, and then reinstalling the plastic.

If that doesn’t work for you, then you can debate reflowing the solder or returning it to elecrow.

Sadly, they were not touching anywhere. I mean, two “sub pins” from the same pin can touch right.

However, the pins themselves don’t touch anywhere. I straigthened them everywhere but no change.

Finally got a reply from Elecrow after sending them this post. It looks like I’m getting a replacement and maybe they will tell me what the problem was on this card.

1 Like

Good to know that you’re getting good service and support from Elecrow.

1 Like

I guess EU sale and our customer’s rights. :sweat_smile:

1 Like

It was so refreshing when I was over there a couple of weeks ago. Even just opening a browser was a much more pleasant experince. It’s a shame I didn’t insist on taking more time to explore. Maybe mid year when I go back.

1 Like

Do you have your replacement yet?

I really have no idea what this could have been other than a bad pin on that first uart chip.

If there is a chance to get that board back and do failure analysis, I’d be very interested to know what the findings are.

I think they are going to swap that chip to see if it fixes it. I will find out soon. They asked for my opinion.

1 Like

Hey there ! Yes I got a replacement and everything is working great !

I am still doing some pen plotting while waiting to finish my noice insulation, as well as a vacuum system before testing things out on wood :slight_smile:

Thanks a lot for you help everyone.

1 Like