Help with custom firmware

Hi all,

I’m setting up a custom CNC (experimental rig with a belt-driven X axis and ballscrew Y axis) using a Jackpot3 from Elecrow (purchased January 20, 2026). Running into a persistent TMC UART issue and would appreciate any input.

The problem:

On every boot, all configured axes fail driver detection:

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

The motors do move when jogging, just with wrong distances (consistent with missing UART microstepping config — appears to run in standalone mode).

What I’ve tried:

  • Firmware: Tested both FluidNC v4.0.1 (shipped) and downgraded to v3.9.9 via web installer — same error on both
  • Power sequence: Confirmed 24V fully disconnected and reconnected without USB attached — error persists
  • USB isolation: Ran $SS with no USB connected, only 24V — still not detected
  • Slot swap: Moved motor to Z slot and changed addr to 2 in config — still not detected. Rules out individual slot failure, points to UART bus being dead across all slots
  • Motors confirmed connected: StepperOnline Nema 17 (2A, 59Ncm) on both X and Y, motors respond to jog commands
  • Board confirmed powered: Drivers get warm, green LED lit

Likely cause:

I may have plugged in motor cables while 24V was live — I’ve since learned this can damage TMC drivers.

Current $SS output (v3.9.9, no USB):

[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.21]
[MSG:INFO: tmc_2209 UART1 Addr:0 ... Step:I2SO.2 Dir:I2SO.1]
[MSG:INFO: tmc_2209 UART1 Addr:1 ... Step:I2SO.5 Dir:I2SO.4]
[MSG:ERR: X Axis TMC driver not detected - expected 0x21 got 0x0]
[MSG:ERR: Y Axis TMC driver not detected - expected 0x21 got 0x0]

Questions:

  1. Given that addr:0, addr:1, and addr:2 all fail — is this definitely dead TMC chips, or could there still be a fixable UART bus issue I’m missing?
  2. Is there any way to verify the UART bus itself (gpio.0/gpio.4) is functional short of an oscilloscope?
  3. For now the machine moves in standalone mode — are there any risks beyond overheating (already putting heatsinks on) that I should watch out for while I sort out a replacement?

Thanks in advance.

my current config

board: Jackpot TMC2209
name: MPCNC
meta: 11-29-2023 RyanZ
planner_blocks: 32
stepping:
  engine: I2S_STATIC
  idle_ms: 255
  pulse_us: 4
  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: 320
    max_rate_mm_per_min: 8000
    acceleration_mm_per_sec2: 400
    max_travel_mm: 350
    soft_limits: false
    homing:
      cycle: 1
      positive_direction: false
      mpos_mm: 0
      feed_mm_per_min: 300
      seek_mm_per_min: 1500
      settle_ms: 500
      seek_scaler: 1.1
      feed_scaler: 1.1
    motor0:
      limit_neg_pin: gpio.39
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: false
      pulloff_mm: 5
      tmc_2209:
        uart_num: 1
        addr: 0
        cs_pin: NO_PIN
        r_sense_ohms: 0.11
        run_amps: 0.7
        hold_amps: 0.4
        microsteps: 16
        run_mode: StealthChop
        homing_mode: StealthChop
        use_enable: false
        step_pin: i2so.2
        direction_pin: i2so.1:low
        disable_pin: NO_PIN
  y:
    steps_per_mm: 400
    max_rate_mm_per_min: 3000
    acceleration_mm_per_sec2: 200
    max_travel_mm: 350
    soft_limits: false
    homing:
      cycle: 2
      positive_direction: false
      mpos_mm: 0
      feed_mm_per_min: 300
      seek_mm_per_min: 1500
      settle_ms: 500
      seek_scaler: 1.1
      feed_scaler: 1.1
    motor0:
      limit_neg_pin: gpio.34
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: false
      pulloff_mm: 5
      tmc_2209:
        uart_num: 1
        addr: 1
        cs_pin: NO_PIN
        r_sense_ohms: 0.11
        run_amps: 0.68
        hold_amps: 0.5
        microsteps: 8
        run_mode: StealthChop
        homing_mode: StealthChop
        use_enable: false
        step_pin: i2so.5
        direction_pin: i2so.4
        disable_pin: NO_PIN
i2so:
  bck_pin: gpio.22
  data_pin: gpio.21
  ws_pin: gpio.17
1 Like

Reflash with the stock firmware for any V1 machine, boot with the power plugged in only. See of $ss still gives you an issue.

No sense in trying to test drivers and custom configs at the same time.

2 Likes

That was such a good advice that I feel a bit stupid to have not tried it sooner.

my uart1: txd_pin was messed up

thanks!

3 Likes

You should feel the other way around about this. You had a problem, asked for help, and promptly found a solution and are back on your way.

That’s NOT a stupid approach, it is the smart way to do it.

10 Likes