Jackpot to FluidDial Pendant - wireless connection via ESP-NOW

That is for when you are machining carbon fiber!!

Cool picture, illustrates the point perfectly

I tried adding the espnow_channel to both the JP2 and JP1 config.

Both had the [MSG:ERR: Ignored key espnow_channel]

Would you mind uploading your config so I can see what the differences are?

Thanks

Are you flashing the jackpot or just your fluid dial? (you need to do both) Your config looks correct, it looks like you have a standard firmware uploaded though, so it rejects that yaml key. Here’s the screenshot of the 2 lines added on the right:

Yes, I installed Fluidnc 4.0.3 wifi on both Jackpots.

But did you install FluidNC from his fork? He had to make changes to FluidNC to support this.

No, that’s the part I missed. I have installed his fork now and it shows espnow server running.

But now $SS shows:

[MSG:ERR: Initialization error at /axes/X/motor0/tmc_2209: Step pin I2SO.2 type must be gpio]
[MSG:ERR: Initialization error at /axes/Y/motor0/tmc_2209: Step pin I2SO.5 type must be gpio]
[MSG:ERR: Initialization error at /axes/Y/motor1/tmc_2209: Step pin I2SO.13 type must be gpio]
[MSG:ERR: Initialization error at /axes/Z/motor0/tmc_2209: Step pin I2SO.10 type must be gpio]
[MSG:ERR: Initialization error at /axes/Z/motor1/tmc_2209: Step pin I2SO.18 type must be gpio]
[MSG:ERR: Validation error at /axes/X/motor0/tmc_2209: Step pin I2SO.2 type must be gpio]
[MSG:ERR: Validation error at /axes/Y/motor0/tmc_2209: Step pin I2SO.5 type must be gpio]
[MSG:ERR: Validation error at /axes/Y/motor1/tmc_2209: Step pin I2SO.13 type must be gpio]
[MSG:ERR: Validation error at /axes/Z/motor0/tmc_2209: Step pin I2SO.10 type must be gpio]
[MSG:ERR: Validation error at /axes/Z/motor1/tmc_2209: Step pin I2SO.18 type must be gpio]
[MSG:INFO: Machine LowRider]
[MSG:INFO: Board Jackpot TMC2209]

My FluidCYD isn’t connecting. I’ll try reflashing it.

I installed it on my M5Dial and it connects. Still no luck with the CYD though.

I can connect with the M5Dial, but the steppers aren’t moving now. I have Ryan’s standard LR config on the JP1. I’m not sure why the error messages are coming up.

( Edit from the future: updated the YAML below to change stepping engine to I2S (was I2S_STATIC) )

Ah, progress! Glad the fork built. I can’t recall if 4.0 has a newer config format… here is mine if you want to compare (this is for a jackpot v1, stock LowRider 4)

board: Jackpot TMC2209
name: LowRider
meta: 03-15-2024 RyanZ
stepping: 
  engine: I2S
  idle_ms: 255
  pulse_us: 2
  dir_delay_us: 1
  disable_delay_us: 0
  segments: 12

uart1: 
  txd_pin: gpio.0
  rxd_pin: gpio.4
  rts_pin: NO_PIN
  cts_pin: NO_PIN
  baud: 115200
  mode: 8N1
  passthrough_baud: 0
  passthrough_mode: 8E1

uart2: 
  txd_pin: gpio.14
  rxd_pin: gpio.13
  rts_pin: NO_PIN
  cts_pin: NO_PIN
  baud: 1000000
  mode: 8N1
  passthrough_baud: 0
  passthrough_mode: 8E1

uart_channel2: 
  report_interval_ms: 75
  uart_num: 2
  message_level: Verbose

espnow_channel:
  report_interval_ms: 100

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

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

kinematics: 
  Cartesian: 

axes: 
  shared_stepper_disable_pin: NO_PIN
  shared_stepper_reset_pin: NO_PIN
  homing_runs: 2
  x: 
    steps_per_mm: 50.000000
    max_rate_mm_per_min: 9000.000000
    acceleration_mm_per_sec2: 200.000000
    max_travel_mm: 1280.000000
    soft_limits: true
    homing: 
      cycle: 2
      allow_single_axis: true
      positive_direction: false
      mpos_mm: 3.000000
      feed_mm_per_min: 300.000000
      seek_mm_per_min: 1500.000000
      settle_ms: 500
      seek_scaler: 1.100000
      feed_scaler: 1.100000

    motor0: 
      limit_neg_pin: gpio.25
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: true
      pulloff_mm: 4.000000
      tmc_2209: 
        addr: 0
        cs_pin: NO_PIN
        uart_num: 1
        step_pin: I2SO.2
        direction_pin: I2SO.1
        disable_pin: I2SO.0
        r_sense_ohms: 0.110000
        run_amps: 0.800000
        hold_amps: 0.500000
        microsteps: 8
        toff_disable: 0
        toff_stealthchop: 5
        use_enable: false
        run_mode: StealthChop
        homing_mode: StealthChop
        homing_amps: 0.800000
        stallguard: 0
        stallguard_debug: false
        toff_coolstep: 3

  y: 
    steps_per_mm: 50.000000
    max_rate_mm_per_min: 9000.000000
    acceleration_mm_per_sec2: 200.000000
    max_travel_mm: 2440.000000
    soft_limits: false
    homing: 
      cycle: 2
      allow_single_axis: true
      positive_direction: false
      mpos_mm: 3.000000
      feed_mm_per_min: 300.000000
      seek_mm_per_min: 1500.000000
      settle_ms: 500
      seek_scaler: 1.100000
      feed_scaler: 1.100000

    motor0: 
      limit_neg_pin: gpio.33
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: false
      pulloff_mm: 4.000000
      tmc_2209: 
        addr: 1
        cs_pin: NO_PIN
        uart_num: 1
        step_pin: I2SO.5
        direction_pin: I2SO.4
        disable_pin: I2SO.7
        r_sense_ohms: 0.110000
        run_amps: 0.800000
        hold_amps: 0.500000
        microsteps: 8
        toff_disable: 0
        toff_stealthchop: 5
        use_enable: false
        run_mode: StealthChop
        homing_mode: StealthChop
        homing_amps: 0.800000
        stallguard: 0
        stallguard_debug: false
        toff_coolstep: 3

    motor1: 
      limit_neg_pin: gpio.35
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: false
      pulloff_mm: 4.000000
      tmc_2209: 
        addr: 3
        cs_pin: I2SO.14
        uart_num: 1
        step_pin: I2SO.13
        direction_pin: I2SO.12
        disable_pin: I2SO.15
        r_sense_ohms: 0.110000
        run_amps: 0.800000
        hold_amps: 0.500000
        microsteps: 8
        toff_disable: 0
        toff_stealthchop: 5
        use_enable: false
        run_mode: StealthChop
        homing_mode: StealthChop
        homing_amps: 0.800000
        stallguard: 0
        stallguard_debug: false
        toff_coolstep: 3

  z: 
    steps_per_mm: 200.000000
    max_rate_mm_per_min: 900.000000
    acceleration_mm_per_sec2: 80.000000
    max_travel_mm: 150.000000
    soft_limits: false
    homing: 
      cycle: 1
      allow_single_axis: true
      positive_direction: true
      mpos_mm: 3.000000
      feed_mm_per_min: 300.000000
      seek_mm_per_min: 800.000000
      settle_ms: 500
      seek_scaler: 1.100000
      feed_scaler: 1.100000

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

    motor1: 
      limit_neg_pin: NO_PIN
      limit_pos_pin: gpio.34
      limit_all_pin: NO_PIN
      hard_limits: false
      pulloff_mm: 4.000000
      tmc_2209: 
        addr: 3
        cs_pin: I2SO.19
        uart_num: 1
        step_pin: I2SO.18
        direction_pin: I2SO.17
        disable_pin: I2SO.16
        r_sense_ohms: 0.110000
        run_amps: 1.100000
        hold_amps: 0.500000
        microsteps: 8
        toff_disable: 0
        toff_stealthchop: 5
        use_enable: false
        run_mode: StealthChop
        homing_mode: StealthChop
        homing_amps: 1.100000
        stallguard: 0
        stallguard_debug: false
        toff_coolstep: 3

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
  fault_pin: NO_PIN
  estop_pin: NO_PIN
  homing_button_pin: NO_PIN

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

probe: 
  pin: 'gpio.36:low'
  toolsetter_pin: NO_PIN
  check_mode_start: true
  hard_stop: false
  probe_hard_limit: false

macros: 
  startup_line0: 
  startup_line1: 
  Macro0: 
  Macro1: 
  Macro2: 
  Macro3: 
  after_homing: 
  after_reset: 
  after_unlock: 

start: 
  must_home: false
  deactivate_parking: false
  check_limits: true

parking: 
  enable: false
  axis: Z
  target_mpos_mm: -5.000000
  rate_mm_per_min: 800.000000
  pullout_distance_mm: 5.000000
  pullout_rate_mm_per_min: 250.000000

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
  digital4_pin: NO_PIN
  digital5_pin: NO_PIN
  digital6_pin: NO_PIN
  digital7_pin: NO_PIN

user_inputs: 
  analog0_pin: NO_PIN
  analog1_pin: NO_PIN
  analog2_pin: NO_PIN
  analog3_pin: NO_PIN
  digital0_pin: NO_PIN
  digital1_pin: NO_PIN
  digital2_pin: NO_PIN
  digital3_pin: NO_PIN
  digital4_pin: NO_PIN
  digital5_pin: NO_PIN
  digital6_pin: NO_PIN
  digital7_pin: NO_PIN

arc_tolerance_mm: 0.002000
junction_deviation_mm: 0.010000
verbose_errors: true
report_inches: false
enable_parking_override_control: false
use_line_numbers: false
planner_blocks: 32

Thank you.

I get these warning when building:

cc1: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C
In file included from /Users/bperc/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/hal/include/hal/i2s_hal.h:21,
                 from FluidNC/esp32/esp32/i2s_engine.cpp:16:
/Users/bperc/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/hal/esp32/include/hal/i2s_ll.h: In function 'void i2s_ll_rx_get_pdm_dsr(i2s_dev_t*, i2s_pdm_dsr_t*)':
/Users/bperc/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/hal/esp32/include/hal/i2s_ll.h:766:25: warning: invalid conversion from 'unsigned int' to 'i2s_pdm_dsr_t' [-fpermissive]
     *dsr = hw->pdm_conf.rx_sinc_dsr_16_en;
            ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
Compiling .pio/build/wifi/esp32/fnc_idf_uart_idfbuild.c.o
cc1: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C

Yes, those warnings are OK–I had to add that -fpermissive flag because this is going to merge with Mitch’s “Portability” branch which requires it. Not sure what the timeline is for him merging that, which would happen before they considered merging this I would think.

I uploaded your confg and I’m still getting:

[MSG:ERR: Validation error at /axes/Y/motor1/tmc_2209: Step pin I2SO.13 type must be gpio]

I can’t move any motors.

Hmm, I haven’t seen that before but doesn’t seem related to my additions. (edit from the future - this was a side effect of rebasing to the Portability branch and me not testing)

Is there a weird space or extra line in there? Because seems like it would have choked on motor0 first… which uses I2S0.5 as a step_pin. My motor1 uses that same setting with no problem.

Here’s all the errors:

[MSG:ERR: Initialization error at /axes/X/motor0/tmc_2209: Step pin I2SO.2 type must be gpio]
[MSG:ERR: Initialization error at /axes/Y/motor0/tmc_2209: Step pin I2SO.5 type must be gpio]
[MSG:ERR: Initialization error at /axes/Y/motor1/tmc_2209: Step pin I2SO.13 type must be gpio]
[MSG:ERR: Initialization error at /axes/Z/motor0/tmc_2209: Step pin I2SO.10 type must be gpio]
[MSG:ERR: Initialization error at /axes/Z/motor1/tmc_2209: Step pin I2SO.18 type must be gpio]
[MSG:ERR: Validation error at /axes/X/motor0/tmc_2209: Step pin I2SO.2 type must be gpio]
[MSG:ERR: Validation error at /axes/Y/motor0/tmc_2209: Step pin I2SO.5 type must be gpio]
[MSG:ERR: Validation error at /axes/Y/motor1/tmc_2209: Step pin I2SO.13 type must be gpio]
[MSG:ERR: Validation error at /axes/Z/motor0/tmc_2209: Step pin I2SO.10 type must be gpio]
[MSG:ERR: Validation error at /axes/Z/motor1/tmc_2209: Step pin I2SO.18 type must be gpio]

Strange, not sure. Perhaps try Ryan’s default config as a starting point to double check. FluidNC_Configs/LowRider CNC/Jackpot/JP1_LR at main · V1EngineeringInc/FluidNC_Configs · GitHub

wait, looks like the jackpot v2 has a different config, are you using a jackpot 1 or 2?

Here’s the v2 config:

That’s what I had before I uploaded yours.

I testing on the Jackpot 1.

I’m going to erase it and reinstall and see if that fixes it.

Good luck! Have you run 4.0.3 before successfully? Maybe that’d be a place to start before trying this fork (and check out the FigUI, it’s awesome)

All this aside, I’ll be ordering a screen for @jeyeager ‘s awesome FluidTouch as well. Triple control! (WebUI / FluidTouch / FluidDial+ESP-NOW)

Yes, I have 4.0.3 on all 3 of my Jackpots. LR4 (JP1), LR3 (MPCNC Laser), LR2 (FoamRipper/Eggbot)

I also have Figui on the JP2.

I have Jason’s FluidTouch too. So many toys! Haha

I hope I can get espnow working on the CYD too.

Thank you for your help.

Hope the mystery of the gpio errors is solved soon! No clue as to why that’d happen. Once you have FluidDial + Jackpot running I’d be eager to hear if it works on the jackpot 2 (or 3 if anyone has one) and the CYD. I pushed a minor UI update which should hopefully show the ESPNOW logo on the CYD correctly.