FluidNC MPCNC board config

fluidnc_jeffeb3_low_rider_2022_jan_18.zip (901 Bytes)

I have a very old Bart Dring board for the MPCNC (It is version 1, I believe, but there may be subversions).

Today, I tried fluidNC. It has some really nice features. The best being, you don’t have to change any code, or make any decisions, really, before flashing the ESP32. All the configuration is done via a config.yaml file.

So, I got this working on my Low Rider and I thought I would put the file here, in case someone found it useful.

This should work with minimal effort for an MPCNC as well. If you want to do that, change the X, Y, and Z axis labels and then make sure the speeds and steps/mm are set correctly for each axis.

I will point out that I think these pins changed on my board, and they should probably be something else for the v2+ version of the MPCNC board.

z:
  motor0:
    limit_all_pin: gpio.2.low # Should probably be 17 on newer versions
coolant:
  mist_pin: gpio.17 # could be 2 on newer boards

I also think that the MPCNC board may not be coming back, and the 6 axis board may be coming in to take over, since the MPCNC board is already large enough to be close enough to just use the 6 axis board.

4 Likes

It’s short enough. I will just paste in the yaml so anyone can just copy it:


name: UNKNOWN
board: unknown

kinematics:

stepping:
  engine: RMT
  idle_ms: 255
  dir_delay_us: 0
  pulse_us: 3
  disable_delay_us: 0

axes:
  shared_stepper_disable_pin: gpio.13
  z:
    steps_per_mm: 800.000
    max_rate_mm_per_min: 500.000
    acceleration_mm_per_sec2: 200.000
    max_travel_mm: 100.000
    soft_limits: false

    homing:
      cycle: 2
      mpos_mm: 0.000
      positive_direction: true
      settle_ms: 250.000
      seek_mm_per_min: 200.000
      feed_mm_per_min: 100.000
      seek_scaler: 1.100
      feed_scaler: 5.000

    motor0:
      limit_all_pin: gpio.2:low
      hard_limits: false
      stepstick:
        direction_pin: gpio.26
        step_pin: gpio.12

    motor1:
      stepstick:
        # don't enable direction_pin: gpio.26
        step_pin: gpio.22

  x:
    steps_per_mm: 200.000
    max_rate_mm_per_min: 5000.000
    acceleration_mm_per_sec2: 200.000
    max_travel_mm: 500.000
    soft_limits: false

    homing:
      cycle: 2
      mpos_mm: 0.000
      positive_direction: true
      settle_ms: 250.000
      seek_mm_per_min: 200.000
      feed_mm_per_min: 100.000
      seek_scaler: 1.100
      feed_scaler: 5.000

    motor0:
      limit_all_pin: gpio.4:low
      hard_limits: false
      stepstick:
        direction_pin: gpio.25:low
        step_pin: gpio.14

    motor1:
      stepstick:
        # dont enable direction_pin: gpio.25
        step_pin: gpio.21

  y:
    steps_per_mm: 200.000
    max_rate_mm_per_min: 5000.000
    acceleration_mm_per_sec2: 200.000
    max_travel_mm: 300.000
    soft_limits: false

    homing:
      cycle: 1
      mpos_mm: 0.000
      positive_direction: false
      settle_ms: 250.000
      seek_mm_per_min: 200.000
      feed_mm_per_min: 100.000
      seek_scaler: 1.100
      feed_scaler: 5.000

    motor0:
      limit_all_pin: gpio.15:low
      hard_limits: false
      stepstick:
        direction_pin: gpio.33
        step_pin: gpio.27

    motor1:
      null_motor:

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

sdcard:
  cs_pin: gpio.5

control:
  reset_pin: gpio.34:low
  feed_hold_pin: gpio.36:low
  cycle_start_pin: gpio.39:low

coolant:
  mist_pin: gpio.17
  delay_ms: 1000.000

probe:
  pin: gpio.35
  check_mode_start: false

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

start:
  must_home: false
  check_limits: false
  deactivate_parking: false

user_outputs:

laser:
  tool_num: 0
  output_pin: gpio.16
  enable_pin: gpio.32
  disable_with_s0: false
  s0_with_disable: false
  pwm_hz: 5000

arc_tolerance_mm: 0.002
junction_deviation_mm: 0.010
verbose_errors: false
report_inches: false
enable_parking_override_control: false
use_line_numbers: false
2 Likes

Thanks for this! I’m using Bart’s board for my MPCNC with Grbl_ESP32 and haven’t updated my firmware since sometime in 2020. It’s been working great and haven’t seen the need to upgrade. But I’m curious about FluidNC and thinking about using it for my next CNC build.

Any issues since upgrading to FluidNC?

Ok. I’m sold.

I’ll use this on the new board I have and set it up for the laser instead of grbl_esp32.

1 Like

Unless you have a specific problem you want to solve, I wouldn’t upgrade. The user experience (the web interface) is 99% the same. The configuration is a lot different, but your board is probably already configured.

I will also add I didn’t try homing (I don’t have endstops).

But the laser stuff is a lot better with Fluid than grbl.

And I will try to help if I can. I think I understood this pretty well when I set it up on my board :slight_smile:

For the typical MPCNC that has only min switches, it’s better to use neg_pins instead:

    motor0:
      limit_neg_pin: gpio.15:low

Otherwise, if you happen to have a switch triggered when you start homing, homing won’t know which way to start moving.

Yeah, I agree with that statement. I’m only going to fnc because I’m dealing with issues etching raster scans with my laser. My troubleshooting efforts started pointing to the controller. So upgrading made sense to me.

1 Like

That makes sense. I don’t actually have any endstops attached.

1 Like

I have two of Bart’s older MPCNC boards that I retired when I replaced them with 6-pack controllers on my Lowrider 2 and Primo. I am ready to buy another 6-pack for a Lowrider 3 I am building. All running FluidNC. Each one has a built-in web server (similar to Octo Print) with a static IP address on my home network. Each one is headless and can be controlled from any web browser connected to my home network. I generate tool paths and upload them from my CAD/CAM PC and then run the jobs using my Samsung tablet.