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.

2 Likes

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.

1 Like
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

I want to move my using software and measure and change the moved reading to what is measure. I guess. In other words do I do the motor configuration. I am running 6 pack with fluidnc. the latest board version

I’m sorry, I don’t understand that post.

1 Like

what i am trying to tell you my squares aren’t square and my circles aren’t round. I need some king of step by step instructions to calibrate. Ugs goes to setting you connect, once you connect to fluidnc it takes you to configure by program tells you to move 100mm then you measure it and enter what you measured. But with fluidnc won’t let you save it. So you have to go to pull it up on browser like my ip is 192.168.1.37 then you add in the configuration. I just need to know what I need to do to get those mathematical readings figured.

The steps per mm won’t square your machine. It will only scale the machine.

Okay so there are two ways to interpret that.

Squares not being square I think what we are hearing is that the corners aren’t 90°. If instead you mean that you have rectangles where one dimension is 101mm and the other is 99mm, but the corners are 90° (square) then you can fix that with steps/mm. Marlin firmware has a provision for that built in. You can use the LCD to tune the steps/mm to be exactly right. It’s different with GRBL ir FluidNC, but the provision is still there

Pictures would really help.

Make sure though that inaccuracies are really steps/mm and not another error. If 100mm commanded move resilts in 99mm actual move, but 200mm commanded move results in 199mm real, ypur problem is not steps/mm. (But probably is if it’s 198mm)

1 Like

Ugs you can set up the steps per mm for grbl32. But won’t do the command for fluidnc. So I heard you have to do that in the config.yaml. I am needing to get a step by step to do all the con figuration.

I don’t have a working fluidnc powered on ATM. So I can’t check. But I remember the web ui having a configuration tab.

The $ commands will also work.

I understand you are having a rough time. But I will not be making step by step instructions for you.

The FluidNC webui has a config page where you can change the settings temporarily until the board gets repowered. There may be a command to save it permanently? But once I tested it temporarily I would edit the .yaml file and replace it in the files.

I found out how to save changes to the webui. I did the math and entered in and hit set on the config settings. Fluidnc has a lot of changes after the grbl. But anyway you go back to the first screen and enter the command $cd=config.yaml. I kept typing config without the yaml suffix. Got to fill out the whole file name. Now I need to figure out the math to do the steps per mm.

You can save it right there on the first screen. $cd=config.yaml it saves it to config.yaml. thanks everybody.

1 Like