FluidNC - The next generation of motion control firmware

Overview

FluidNC (CNC Controller) For ESP32

Introduction

FluidNC is the next generation of Grbl_ESP32. It has a lot of improvements over Grbl_ESP32 as listed below.

Status

We are currently in an alpha testing state. Basic machines are fully functional. We are actively testing the advanced functions and improving the usability.

Firmware Architecture

  • Object-Oriented hierarchical design
  • Hardware abstraction for machine features like spindles, motors, and stepper drivers
  • Extensible - Adding new features is much easier for the firmware as well as gcode senders.

Machine Definition Method

Grbl_ESP32 used C preprocessor machine definition files (myMachineDef.h) and config.h to define a machine. Any change required a recompile. The goal with FluidNC is that virtually everyone uses the same compiled firmware and configures it with a structured YAML text file. That file is dynamically loaded from the local FLASH on ESP32. It can be uploaded via the serial port or Wifi.

You can have multiple YAML files stored on the ESP32. The default is config.yaml, but you can change that with $Config/Filename=

Basic Grbl Compatibility

The intent is to maintain as much Grbl compatibility as possible. It is 100% compatible with the day to day operations of running GCode with a sender, so there is no change to the Grbl GCode send/response protocol, and all Grbl GCodes are supported. The Grbl $ settings and commands that a sender might issue after each reset are similarly supported. Grbl $ settings that are used only for initial machine setup, then never changed unless the machine is physically reconfigured, will not be supported. Grbl's $number=number method for machine setup is simply too weak to support the range of machine configurations that FluidNC can handle. (In fact, Grbl's $number machine setup method was too weak even for classic Grbl, which required editing C files and recompiling for many kinds of changes.) What this means is that existing senders will still be able to run GCode jobs on Fluid, but the "setup wizards" that a few senders have will not work in their current form. We are working on a mechanism to enable even better setup wizards - graphical configuration helpers - that can handle the vast range of machines that FluidNC supports, extensible so that senders will be able to automatically support new FluidNC features without sender code changes.

I/O Pins

Pin configuration is a key step in machine setup. You must assign specific pins - be they GPIOs or pins on I/O expander chips - to functions like stepper control, limit switches, spindle control, and I/O buses that communicate with other devices. Furthermore, pins have attributes like active state (high or low) and internal pullups that must be specified. In classic Grbl, you assign pins by editing a ".h" C preprocessor file, then recompiling. Classic Grbl does let you choose the active state (but not the pullup states) for some pins with $ commands, but the interface is clumsy, requiring the user to perform binary-to-decimal math on "bitmask" variables. The bitmask technique, in addition to being obscure to users who are not programmers, cannot handle things like multiple independent motors on the same axis.

FluidNC's pin assignment syntax is clear, straightforward, capable and consistent. For example, to assign GPIO 4 as the probe pin, active low, with internal pullups enabled, you write:

probe:
  pin: gpio.4:low:pu

The following example illustrates that both input and output pins can be assigned in the same way, with the direction being implicit in the function that the pin is used for.

control:
   feed_hold: gpio.14:low:pu
coolant:
   mist: gpio.21

The feed hold pin, known to be an input because that is what the feed hold function requires, is set to GPIO 12, active low so a feed hold will be triggered when the pin goes to the electrical low state. The internal pullup is enabled, which is appropriate and necessary if there is no external pullup resistor or active high drive on that signal. The mist pin, known to be an output because the mist function controls an external relay or similar actuator, is assigned to GPIO 21. The signal is active high, which is the default if neither ":low" nor ":high" is explicitly mentioned, and no internal pullups are enabled. If GCode turns on mist coolant, the pin will go to the electrical high state.

The firmware knows additional requirements for pins based on how they are used, applying and checking those automatically. For example, a limit pin must be an input that support interrupts, so the attempt to assign a hardware pin that cannot meet those requirements triggers an error message. Other errors, such at an attempt to use the same pin for two different purposes, are similarly checked.

For functions that are not used, you can either omit the line that would assign a pin to that function, or explicitly list it as "no_pin". For example, these two are equivalent, saying that flood coolant is not supported - and attempts to turn on flood coolant will be silently ignored:

coolant:
  flood: no_pin

or you can just omit the "flood:" line in the coolant section - or omit the entire coolant section if the machine does not support any form of coolant control.

coolant:

Tuning

Many parameters like accelerations and speeds need to be tuned when setting up a new machine. These values are in the YAML file like everything else, but you can also temporarily change them by sending the YAML hierarchy for that setting as a $ command. Sending $axes/x/acceleration=50 would change the acceleration of the x axis to 50.

The changes are temporary. To make them permanent you would edit the YAML file. You can also save the all of the current changes to the YAML with the $CD=

You can show the value of an individual parameter by sending its $ name with the =, as:

ok
$axes/x/acceleration
$axes/x/acceleration=25.000
ok

The first $ line above is what you send, the second is FluidNC's response.

You can show entire subsections by sending the section name:

ok
$coolant
coolant:
  flood: NO_PIN
  mist: NO_PIN
  delay_ms: 0
ok

Spindles

FluidNC supports multiple spindles on one machine. Spindles can be controlled by different hardware interfaces like relays, PWM, DACs, or RS485 serial interfaces to VFDs. Lasers are treated as spindles. Each spindle is assigned a range of tool numbers. You change spindles by issuing the GCode command "M6 Tn", where n is the tool number. Tool numbers within the assigned range for a given spindle will activate that spindle - and the detailed number within the range could be used to select the specific tool on the spindle. This lets you have, for example, a single machine with an ATC spindle and a laser. A single GCode file could allow you to etch and cutout a part. Most CAM programs support tool numbers. You could also have a gantry with both a low-speed high-torque pulley spindle and also a high-speed direct drive spindle.

Motors

FluidNC supports, without recompiling, different motor types like

  • Stepper motors
  • Servo motors
  • Dynamixel smart servos

Stepper Drivers

FluidNC supports, without recompiling, different stepper motor drivers like

  • "Dumb" (hardware configured) stepper drivers like A4988 and DRV8825
  • External drivers
  • Trinamic drivers configured either via hardware jumpers, SPI, or UART interfaces

Homing and Limits

Homing and limit parameters are setup per axis. Each axis can have its own homing speeds, switch pull offs. Soft limits can be configured, per axis, for arbitrary endpoints and distances.

FluidNC supports many different limit switch configurations. You can have separate limit switches - on separate input pins - on each end of an axis (one on the positive end and the other on the negative end), or just one switch on a designated end, or a pair of switches on both ends that are wired together and fed into a single input pin. The use of separate switches enables things like automatic pulloff for an axis that is already at a limit when the system starts. On machines with dual (ganged) motors on one axis, that axis's limit switches can be shared (applying to both motors), or specific to each motor, thus allowing auto-squaring of the axis during homing.

Motor Enables

Motor enable/disable pins can either be shared so that a single pin controls all motors, or per-motor so that you can separately enable specific motors.

Ganged Motors

FluidNC supports up to two motors per axis, with independent drivers and homing. In contrast to classic Grbl where "ganging" can only be done either by driving two motors from the same driver or by sending the same step and direction signal to two drivers, FluidNC's independent motors permit "auto-squaring" of axes. It also supports different switch pull offs in case your switches are not square.

SD Card Support

Multiple Communications Channels

FluidNC supports sender communication via multiple channels

  • Serial / USB Serial Port (as with classic Grbl)
  • Bluetooth serial
  • Wifi/Telnet
  • Wifi/WebSockets

WebUI

FluidNC includes a built-in brower-based Web UI (Esp32_WebUI) so you control the machine from a PC, phone, or tablet on the same Wifi network.

Credits

The original Grbl is an awesome project by Sungeon (Sonny) Jeon. I have known him for many years and he is always very helpful. I have used Grbl on many projects.

The Wifi and WebUI is based on this project.

Mitch Bradley designed and implemented the $name=value settings mechanism. The YAML-format runtime configuration mechanism was spearheaded Mitch Bradley, and designed and implemented by Mitch and Stefan de Bruin. Stefan's mastery of C++ is especially evident in the Class architecture of the configuration mechanism.

Contribute

There is a Discord server for the development this project. Ask for an invite

FAQ

Start asking questions...I'll put the frequent ones here.

Donation

This project requires a lot of work and often expensive items for testing. Please consider a safe, secure and highly appreciated donation via the PayPal link below or via the Github sponsor link at the top of the page.

Comments
  • YL620 and Huanyang VFDs Not Responding.

    YL620 and Huanyang VFDs Not Responding.

    Controller Board

    6-pack

    Help From Board Vendor

    • [ ] Yes
    • [ ] No
    • [X] Not Applicable

    Machine Description

    gantry router with dual y motors, xyyz setup dm542t stepper drivers and 6pack control board with RS485 module

    Configuration file

    board: 6 Pack
    name: 6 Pack External XYYZ Huany
    meta: 2022-06-28 B. Dring for Forest Darling Forest Darling
    stepping:
      engine: I2S_STREAM
      idle_ms: 250
      pulse_us: 4
      dir_delay_us: 1
      disable_delay_us: 0
    
    axes:
      shared_stepper_disable_pin: NO_PIN
      x:
        steps_per_mm: 100.000
        max_rate_mm_per_min: 5000.000
        acceleration_mm_per_sec2: 100.000
        max_travel_mm: 300.000
        soft_limits: false
        homing:
          cycle: 2
          positive_direction: false
          mpos_mm: 0.000
          feed_mm_per_min: 100.000
          seek_mm_per_min: 200.000
          settle_ms: 500
          seek_scaler: 1.100
          feed_scaler: 1.100
    
        motor0:
          limit_neg_pin: NO_PIN
          limit_pos_pin: NO_PIN
          limit_all_pin: NO_PIN
          hard_limits: false
          pulloff_mm: 1.000
          standard_stepper:
            step_pin: I2SO.2
            direction_pin: I2SO.1
            disable_pin: I2SO.0
    
      y:
        steps_per_mm: 100.000
        max_rate_mm_per_min: 5000.000
        acceleration_mm_per_sec2: 100.000
        max_travel_mm: 300.000
        soft_limits: false
        homing:
          cycle: 3
          positive_direction: true
          mpos_mm: 0.000
          feed_mm_per_min: 100.000
          seek_mm_per_min: 200.000
          settle_ms: 500
          seek_scaler: 1.100
          feed_scaler: 1.100
    
        motor0:
          limit_neg_pin: NO_PIN
          limit_pos_pin: NO_PIN
          limit_all_pin: NO_PIN
          hard_limits: false
          pulloff_mm: 1.000
          standard_stepper:
            step_pin: I2SO.5
            direction_pin: I2SO.4
            disable_pin: I2SO.7
        
        motor1:
          limit_neg_pin: NO_PIN
          limit_pos_pin: NO_PIN
          limit_all_pin: NO_PIN
          hard_limits: false
          pulloff_mm: 1.000
          standard_stepper:
            step_pin: I2SO.10
            direction_pin: I2SO.9
            disable_pin: I2SO.8
    
      z:
        steps_per_mm: 100.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: 0.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: NO_PIN
          limit_pos_pin: NO_PIN
          limit_all_pin: NO_PIN
          hard_limits: false
          pulloff_mm: 1.000
          standard_stepper:
            step_pin: I2SO.13
            direction_pin: I2SO.12
            disable_pin: I2SO.15
            
    probe:
      pin: NO_PIN
      check_mode_start: true
      
            
    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:
      card_detect_pin: NO_PIN
      cs_pin: gpio.5
    
    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
    
    start:
      must_home: false
      
    coolant:
      flood_pin: gpio.15
      mist_pin: gpio.12
      delay_ms: 0
      
    YL620:
      uart:
        txd_pin: gpio.26
        rxd_pin: gpio.16
        rts_pin: gpio.4
        baud: 9600
        mode: 8N1
      modbus_id: 1
      tool_num: 0
      speed_map: 0=0% 0=25% 6000=25% 24000=100%
      
      
    Laser:
      pwm_hz: 5000
      output_pin: gpio.14
      enable_pin: gpio.13
      disable_with_s0: false
      s0_with_disable: true
      tool_num: 1
      speed_map: 0=0.000% 255=100.000%
    

    Startup Messages

    [MSG:INFO: FluidNC v3.3.0 (pr/easytarget/272-c8cdb9b-dirty)]
    [MSG:INFO: Compiled with ESP32 SDK:v3.3.5-1-g85c43024c]
    [MSG:INFO: Configuration file:config.yaml]
    [MSG:INFO: Machine 6 Pack External XYYZ Huany]
    [MSG:INFO: Board 6 Pack]
    [MSG:INFO: I2SO BCK:gpio.22 WS:gpio.17 DATA:gpio.21]
    [MSG:INFO: SPI SCK:gpio.18 MOSI:gpio.23 MISO:gpio.19]
    [MSG:INFO: SD Card cs_pin:gpio.5 dectect:NO_PIN]
    [MSG:INFO: Stepping:I2S_stream Pulse:4us Dsbl Delay:0us Dir Delay:1us Idle Delay:250ms]
    [MSG:INFO: Axis count 3]
    [MSG:INFO: Axis X (0.000,300.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO:     standard_stepper Step:I2SO.2 Dir:I2SO.1 Disable:I2SO.0]
    [MSG:INFO: Axis Y (-300.000,0.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO:     standard_stepper Step:I2SO.5 Dir:I2SO.4 Disable:I2SO.7]
    [MSG:INFO:   Motor1]
    [MSG:INFO:     standard_stepper Step:I2SO.10 Dir:I2SO.9 Disable:I2SO.8]
    [MSG:INFO: Axis Z (-300.000,0.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO:     standard_stepper Step:I2SO.13 Dir:I2SO.12 Disable:I2SO.15]
    [MSG:INFO: Kinematic system: Cartesian]
    [MSG:INFO: YL620 Spindle Uart Tx:gpio.26 Rx:gpio.16 RTS:gpio.4 Baud:9600]
    [MSG:INFO: Laser Spindle Ena:gpio.13 Out:gpio.14 Freq:5000Hz Res:13bits Laser mode:On]
    [MSG:INFO: Using spindle YL620]
    [MSG:INFO: Flood coolant gpio.15]
    [MSG:INFO: Mist coolant gpio.12]
    [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]
    
    Grbl 3.3 [FluidNC v3.3.0 (pr/easytarget/272-c8cdb9b-dirty) (wifi) '$' for help]
    [MSG:INFO: VFD RS485 Unresponsive]
    

    User Interface Software

    Terminal mostly and WebUI

    What happened?

    cant get the spindle (YL620) to move at all says the RS485 is unresponsive. I have spent quite a bit of time digging around and feel like I have things right. The wiring is A-A,B-B, COM-G, the first of those being from the vdf to the rs485 module. I am just not sure if Im dumb or missing somthing the code seems correct for the yaml file. Here I am though desperate for any guidance!

    Other Information

    No response

    SOLVED 
    opened by Parker3123 49
  • Problem: Can't connect to firmware on MKS-TinyBee V1.0

    Problem: Can't connect to firmware on MKS-TinyBee V1.0

    Controller Board

    MKS-TinyBee V1.0

    Help From Board Vendor

    • [ ] Yes
    • [X] No
    • [ ] Not Applicable

    Machine Description

    Busy to setup a 4-axis hot-wire foam cnc

    Configuration file

    net yet
    

    Startup Messages

    'utf-8' codec can't decode byte 0xa0 in position 3: invalid start byte
    

    User Interface Software

    No response

    What happened?

    Hello, Can’t connect to to fluidnc devices over usb

    I have 2 devices esp32 d1 r32 and MKS-TinyBee V1.0 FluidNc firmaware: fluidnc-v3.4.7 Linux and Windows

    For both devices I followed the same steps.

    I have executed in the folder those command

    fluidnc-v3.4.7-posix / ./erase.sh ./install-fs.sh ./install-wifi.sh

    MKS-TinyBee V1.0: I try to connect to this device using bCNC (window and linux) UGC (windows and linux)

    I can’t connect Get this error 'utf-8' codec can't decode byte 0xa0 in position 3: invalid start byte The software is opening the com port but is not connect to the firmware. Picture: mks

    With serial monitor in Arduino IDE, as well with fluidterm I can connect to the firmware

    Esp32 d1 r32: I try to connect to this device using bCNC (window and linux) UGC (windows and linux)

    I have no problems to connect to the firmware Picture: esp32_D1_R32

    What I need to do….? What is the different between those 2 devices….? How to fix the problem on the MKS-TinyBee V1.0

    Kr, Wolf esp32_D1_R32 mks

    Other Information

    No response

    opened by wollo-fpv 43
  • Problem: Y-Axis not homing / moving correctly after upgrade from 3.5.1 to 3.6.3

    Problem: Y-Axis not homing / moving correctly after upgrade from 3.5.1 to 3.6.3

    Controller Board

    self build

    Help From Board Vendor

    • [ ] Yes
    • [ ] No
    • [X] Not Applicable

    Machine Description

    Gantry router Ratrig Killerbee with DM556T stepper driver, dual y motors and limit switches.

    Input Circuits

    No response

    Configuration file

    name: "ModuloController"
    board: "ModuloControl V1"
    
    stepping:
      engine: RMT
      idle_ms: 255
      dir_delay_us: 1
      pulse_us: 5
      disable_delay_us: 5
      
    start:
      must_home: true
      deactivate_parking: true
      check_limits: true
    
    axes:
      shared_stepper_disable_pin: gpio.23
      
      x:
        steps_per_mm: 400.000
        max_rate_mm_per_min: 5000.000
        acceleration_mm_per_sec2: 150.000
        max_travel_mm: 510.000
        soft_limits: true
        
        homing:
          cycle: 2
          mpos_mm: 510.000
          feed_mm_per_min: 200.000
          seek_mm_per_min: 400.000
          positive_direction: true
    
        motor0:
          limit_pos_pin: gpio.35:low
          hard_limits: true
          pulloff_mm: 5.000
          stepstick:
            direction_pin: gpio.27
            step_pin: gpio.26
    
      y:
        steps_per_mm: 400.000
        max_rate_mm_per_min: 5000.000
        acceleration_mm_per_sec2: 150.000
        max_travel_mm: 750.000
        soft_limits: true
    
        homing:
          cycle: 3
          mpos_mm: 750.000
          feed_mm_per_min: 100.000
          seek_mm_per_min: 400.000
          positive_direction: true
    
        motor0:
          limit_pos_pin: gpio.39:low
          hard_limits: true
          stepstick:
            direction_pin: gpio.32:low
            step_pin: gpio.25
    
        motor1:
          limit_pos_pin: gpio.36:low
          hard_limits: true
          stepstick:
            direction_pin: gpio.22:low
            step_pin: gpio.21
    
      z:
        steps_per_mm: 400.000
        max_rate_mm_per_min: 5000.000
        acceleration_mm_per_sec2: 150.000
        max_travel_mm: 150.000
        soft_limits: true
        
        homing:
          cycle: 1
          mpos_mm: 150.000
          feed_mm_per_min: 100.000
          seek_mm_per_min: 400.000
          positive_direction: true
    
        motor0:
          limit_pos_pin: gpio.34:low
          hard_limits: true
          stepstick:
            direction_pin: gpio.18
            step_pin: gpio.19
    
    
    probe:
      pin: gpio.4:high
      
    control:
      safety_door_pin: gpio.33:low
      reset_pin: NO_PIN
      feed_hold_pin: NO_PIN
    
    relay:
      direction_pin: NO_PIN
      output_pin: gpio.5
      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% 0=100.000% 1=100.000%
    

    Startup Messages

    $ss
    [MSG:INFO: FluidNC v3.6.3]
    [MSG:INFO: Compiled with ESP32 SDK:v4.4.1-1-gb8050b365e]
    [MSG:INFO: Local filesystem type is spiffs]
    [MSG:INFO: Configuration file:config_ratrig_killerbee.yaml]
    [MSG:INFO: Machine ModuloController]
    [MSG:INFO: Board ModuloControl V1]
    [MSG:INFO: SPI not defined]
    [MSG:INFO: No SD Card CS Pin]
    [MSG:INFO: See http://wiki.fluidnc.com/en/config/sd_card#sdfallbackcs-access-sd-without-a-config-file]
    [MSG:INFO: Stepping:RMT Pulse:5us Dsbl Delay:5us Dir Delay:1us Idle Delay:255ms]
    [MSG:INFO: Axis count 3]
    [MSG:INFO: Shared stepper disable gpio.23]
    [MSG:INFO: Axis X (0.000,510.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO:     stepstick Step:gpio.26 Dir:gpio.27 Disable:NO_PIN]
    [MSG:INFO:  X Pos Limit gpio.35:low]
    [MSG:INFO: Axis Y (0.000,750.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO:     stepstick Step:gpio.25 Dir:gpio.32:low Disable:NO_PIN]
    [MSG:INFO:  Y Pos Limit gpio.39:low]
    [MSG:INFO:   Motor1]
    [MSG:INFO:     stepstick Step:gpio.21 Dir:gpio.22:low Disable:NO_PIN]
    [MSG:INFO:  Y2 Pos Limit gpio.36:low]
    [MSG:INFO: Axis Z (0.000,150.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO:     stepstick Step:gpio.19 Dir:gpio.18 Disable:NO_PIN]
    [MSG:INFO:  Z Pos Limit gpio.34:low]
    [MSG:INFO: safety_door_pin gpio.33:low]
    [MSG:INFO: Kinematic system: Cartesian]
    [MSG:INFO: Relay Spindle Ena:NO_PIN Out:gpio.5 Dir:NO_PIN]
    [MSG:INFO: Using spindle Relay]
    [MSG:INFO: Probe Pin: gpio.4]
    [MSG:INFO: AP SSID FluidNC IP 192.168.178.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]
    ok
    

    User Interface Software

    WebUI, gSender

    What happened?

    If homing of the y-axis with dual motor is started, the axis goes towards the limit switches, as soon as they get activated, the motors are stopping and not moving any more. In this state, the limit switches stays activated and the motors sounds as the direction pins are changed randomly. This behaviour starts after the upgrade from 3.5.1 to 3.6.3. Before the update everything worked fine.

    Other Information

    No response

    opened by ModuloFS 41
  • Control Pendant Support w/ Jogging Encoder

    Control Pendant Support w/ Jogging Encoder

    Is there currently support to add a control pendant for manual jogging and basic controls? Ideally it could also have an lcd display with some general info.

    My main problem that I'm trying to solve is that esp3d can be quite inconsistent with the processing times when jogging or sending commands through the terminal. I've crashed the machine on a number of occasions because I ended up sending the same command too many times while it was already in the "buffer".

    A control pendant hard-wired to the esp32 would presumably be almost instantaneous, and would provide a lot better feedback to avoid overtravel into obstacles.

    One of those jogging handwheels would be the icing on the cake if there was a way to implement that.

    enhancement 
    opened by reynolds087 39
  • Limit switch is ignored if already triggered at time of homing

    Limit switch is ignored if already triggered at time of homing

    Controller Board

    MKS DLC32

    Help From Board Vendor

    • [ ] Yes
    • [ ] No
    • [X] Not Applicable

    Machine Description

    3-axis CNC mill

    Configuration file

    board: MKS-DLC32
    name: SWOLE-CNC
    meta: V2.6 (2202.10.11) Dax Liniere, originally by Skorpi
    
    kinematics:
      Cartesian:
    
    stepping:
      engine: I2S_STATIC
      idle_ms: 0
      pulse_us: 4
      dir_delay_us: 1
      disable_delay_us: 0
      
    axes:
      shared_stepper_disable_pin: I2SO.0
      x:
        steps_per_mm: 800.000
        #was 802.341
        max_rate_mm_per_min: 1700.000
    # was 1500.000
        acceleration_mm_per_sec2: 80.000
        max_travel_mm: 302.000
        soft_limits: true
        homing:
          cycle: 2
          positive_direction: false
          mpos_mm: 0.000
          feed_mm_per_min: 20.000
          seek_mm_per_min: 200.000
    # was 100 in first SWOLE-CNC iteration running MKS firmware
          settle_ms: 500
          seek_scaler: 1.100
          feed_scaler: 1.100
    
        motor0:
          limit_neg_pin: gpio.36
          limit_pos_pin: gpio.34
          limit_all_pin: NO_PIN
          hard_limits: true
          pulloff_mm: 1.000
          stepstick:
            step_pin: I2SO.1
            direction_pin: I2SO.2:low
            disable_pin: NO_PIN
            ms1_pin: NO_PIN
            ms2_pin: NO_PIN
            ms3_pin: NO_PIN
            reset_pin: NO_PIN
    
      y:
        steps_per_mm: 802.322
        #tested 806.062, features too small
        max_rate_mm_per_min: 1700.000
        acceleration_mm_per_sec2: 80.000
    # was 300.000
        max_travel_mm: 186.000
        soft_limits: true
        homing:
          cycle: 2
          positive_direction: false
          mpos_mm: 0.000
          feed_mm_per_min: 20.000
          seek_mm_per_min: 200.000
          settle_ms: 500
          seek_scaler: 1.100
          feed_scaler: 1.100
    
        motor0:
          limit_neg_pin: gpio.35
          limit_pos_pin: gpio.23
          #this pin doesn't have the same input circuitry as the 3 dedicated on-board limit switch inputs
          limit_all_pin: NO_PIN
          hard_limits: true
          pulloff_mm: 1.000
          stepstick:
            step_pin: I2SO.5
            direction_pin: I2SO.6:low
            disable_pin: NO_PIN
            ms1_pin: NO_PIN
            ms2_pin: NO_PIN
            ms3_pin: NO_PIN
            reset_pin: NO_PIN
      z:
        steps_per_mm: 802.497
        max_rate_mm_per_min: 1000.000
        acceleration_mm_per_sec2: 50.000
    # was 500.000
        max_travel_mm: 100
    #46.000
        soft_limits: true
        homing:
          cycle: 1
          positive_direction: true
          mpos_mm: 0.000
          feed_mm_per_min: 20.000
          seek_mm_per_min: 100.000
          settle_ms: 500
          seek_scaler: 1.100
          feed_scaler: 1.100
    
        motor0:
          limit_neg_pin: gpio.18
          #this pin doesn't have the same input circuitry as the 3 dedicated on-board limit switch inputs
          hard_limits: true
          pulloff_mm: 1.000
          stepstick:
            step_pin: I2SO.3
            direction_pin: I2SO.4:low
            disable_pin: NO_PIN
            ms1_pin: NO_PIN
            ms2_pin: NO_PIN
            ms3_pin: NO_PIN
            reset_pin: NO_PIN
    
    i2so:
      bck_pin: gpio.16
      data_pin: gpio.21
      ws_pin: gpio.17
    
    spi:
      miso_pin: gpio.12
      mosi_pin: gpio.13
      sck_pin: gpio.14
    
    sdcard:
      cs_pin: gpio.15
      card_detect_pin: NO_PIN
    # This could be GPIO.39, but Card Detect has no supported functions in FluidNC
    
    control:
      safety_door_pin: gpio.33:low:pu
    # Does the start pin need to be wired to the other side of the switch??
      cycle_start_pin: NO_PIN
      feed_hold_pin: NO_PIN
      reset_pin: NO_PIN
      macro0_pin: gpio.19:low:pu
      macro1_pin: NO_PIN
      macro2_pin: NO_PIN
      macro3_pin: NO_PIN
    
    macros:
      startup_line0:
      startup_line1:
      macro0: $X&$H
      macro1:
      macro2:
      macro3: $SD/Run=lasertest.gcode
    
    coolant:
      flood_pin: gpio.0
    # continuous air
      mist_pin:  gpio.4
    # pulsed air 
      delay_ms: 0
    
    probe:
      pin: gpio.22:low
      check_mode_start: true
      
    
    10V:
    # Spindle
      direction_pin: NO_PIN
      forward_pin: gpio.5:low
      reverse_pin: NO_PIN
      output_pin: gpio.32
      enable_pin: NO_PIN
      pwm_hz: 5000
      disable_with_s0: false
      s0_with_disable: true
      spinup_ms: 10000
      spindown_ms: 12000
      tool_num: 0
      speed_map: 0=0% 0=25% 5868=25% 23237=99% 24000=100%
    #DLC32 Spindle TTL max output voltage is 4.89v, so it can never reach 24000rpm/400Hz
    
    
    #pwm:
    #  direction_pin: NO_PIN
    #  output_pin: gpio.32
    #  enable_pin: gpio.5:low
    #  pwm_hz: 5000
    #  disable_with_s0: false
    #  s0_with_disable: true
    #  spinup_ms: 10000
    #  spindown_ms: 12000
    #  tool_num: 0
    #  speed_map: 0=0% 0=25% 5868=25% 23237=99% 24000=100%
    
    
    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: NO_PIN
      digital1_pin: NO_PIN
      digital2_pin: NO_PIN
      digital3_pin: NO_PIN
    
    start:
      must_home: false
    # Pins that could be used: 0(SDA), 4(SCL), 5, 18, 19, 22, 23, 25, 26, 27, 32 (TTL spindle control), 33, 39, I2SO.7
    # Pins not currently in use: 25 (TMC_CS_Y), 26 (TMC_CS_X), 27 (TMC_CS_Z), (39 SD card detect), I2SO.7
    

    Startup Messages

    *** Connecting to jserialcomm://COM5:115200
    *** Fetching device status
    *** Fetching device firmware version
    *** Fetching device status codes
    *** Fetching device state
    *** Fetching device settings
    *** Connected to FluidNC 3.6.0
    

    User Interface Software

    UGS 2.0.12+dev

    What happened?

    FNC 3.6.1-pre1-FS

    Limit switch is ignored if already triggered at time of homing, resulting in carriage grinding up again end stop until controller is reset.

    See it happen here: https://www.youtube.com/watch?v=aow6SEUhhIM

    Other Information

    No response

    opened by daxliniere 37
  • Problem: No stepper movement

    Problem: No stepper movement

    Controller Board

    Hello. I'm using the FluidNC Pen Laser Controller (SPI) with TMC2130 drivers. The board is V1.2, which I'm assuming has the same pinout as v1.0, running FluidNC v3.4.5

    Help From Board Vendor

    • [ ] Yes
    • [ ] No
    • [X] Not Applicable

    Machine Description

    The machine is a corexy sand table (ZENXYv2).

    Configuration file

    Config file pulled from memory via the $CD command in the web interface
    
    board: FluidNC Pen/Laser 2130
    name: TMC2130 ZenXY
    meta: 
    stepping:
      engine: RMT
      idle_ms: 255
      pulse_us: 2
      dir_delay_us: 1
      disable_delay_us: 0
      segments: 6
    axes:
      shared_stepper_disable_pin: NO_PIN
      shared_stepper_reset_pin: NO_PIN
      x:
        steps_per_mm: 80.000
        max_rate_mm_per_min: 1000.000
        acceleration_mm_per_sec2: 25.000
        max_travel_mm: 450.000
        soft_limits: true
        homing:
          cycle: 2
          allow_single_axis: true
          positive_direction: false
          mpos_mm: 0.000
          feed_mm_per_min: 100.000
          seek_mm_per_min: 200.000
          settle_ms: 500
          seek_scaler: 1.100
          feed_scaler: 1.100
        motor0:
          limit_neg_pin: gpio.39
          limit_pos_pin: NO_PIN
          limit_all_pin: NO_PIN
          hard_limits: false
          pulloff_mm: 1.000
          tmc_2130:
            step_pin: gpio.14
            direction_pin: gpio.12
            disable_pin: NO_PIN
            r_sense_ohms: 0.110
            run_amps: 0.250
            hold_amps: 0.250
            microsteps: 32
            toff_disable: 0
            toff_stealthchop: 5
            use_enable: false
            cs_pin: gpio.16
            spi_index: -1
            run_mode: StealthChop
            homing_mode: StealthChop
            stallguard: 0
            stallguard_debug: false
            toff_coolstep: 3
        motor1:
          limit_neg_pin: NO_PIN
          limit_pos_pin: NO_PIN
          limit_all_pin: NO_PIN
          hard_limits: false
          pulloff_mm: 1.000
          null_motor:
      y:
        steps_per_mm: 80.000
        max_rate_mm_per_min: 1000.000
        acceleration_mm_per_sec2: 25.000
        max_travel_mm: 885.000
        soft_limits: true
        homing:
          cycle: 1
          allow_single_axis: true
          positive_direction: false
          mpos_mm: 0.000
          feed_mm_per_min: 100.000
          seek_mm_per_min: 200.000
          settle_ms: 500
          seek_scaler: 1.100
          feed_scaler: 1.100
        motor0:
          limit_neg_pin: gpio.36
          limit_pos_pin: NO_PIN
          limit_all_pin: NO_PIN
          hard_limits: false
          pulloff_mm: 1.000
          tmc_2130:
            step_pin: gpio.25
            direction_pin: gpio.26
            disable_pin: NO_PIN
            r_sense_ohms: 0.110
            run_amps: 0.250
            hold_amps: 0.250
            microsteps: 32
            toff_disable: 0
            toff_stealthchop: 5
            use_enable: false
            cs_pin: gpio.17
            spi_index: -1
            run_mode: StealthChop
            homing_mode: StealthChop
            stallguard: 0
            stallguard_debug: false
            toff_coolstep: 3
        motor1:
          limit_neg_pin: NO_PIN
          limit_pos_pin: NO_PIN
          limit_all_pin: NO_PIN
          hard_limits: false
          pulloff_mm: 1.000
          null_motor:
      z:
        steps_per_mm: 80.000
        max_rate_mm_per_min: 1000.000
        acceleration_mm_per_sec2: 25.000
        max_travel_mm: 1000.000
        soft_limits: false
        homing:
          cycle: 0
          allow_single_axis: true
          positive_direction: true
          mpos_mm: 0.000
          feed_mm_per_min: 50.000
          seek_mm_per_min: 200.000
          settle_ms: 250
          seek_scaler: 1.100
          feed_scaler: 1.100
    kinematics:
      CoreXY:
    spi:
      miso_pin: gpio.19
      mosi_pin: gpio.23
      sck_pin: gpio.18
    sdcard:
      cs_pin: gpio.5
      card_detect_pin: NO_PIN
    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
    coolant:
      flood_pin: NO_PIN
      mist_pin: NO_PIN
      delay_ms: 0
    probe:
      pin: NO_PIN
      check_mode_start: true
    macros:
      startup_line0: 
      startup_line1: 
      macro0: 
      macro1: 
      macro2: 
      macro3: 
    start:
      must_home: true
      deactivate_parking: false
      check_limits: false
    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: NO_PIN
      digital1_pin: NO_PIN
      digital2_pin: NO_PIN
      digital3_pin: NO_PIN
    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
    planner_blocks: 16
    NoSpindle:
    

    Startup Messages

    [MSG:INFO: FluidNC v3.4.5]
    [MSG:INFO: Compiled with ESP32 SDK:v4.4-beta1-189-ga79dc75f0a]
    [MSG:INFO: Local filesystem type is SPIFFS]
    [MSG:INFO: Configuration file:config_01.yaml]
    [MSG:INFO: Machine TMC2130 ZenXY]
    [MSG:INFO: Board FluidNC Pen/Laser 2130]
    [MSG:INFO: SPI SCK:gpio.18 MOSI:gpio.23 MISO:gpio.19]
    [MSG:INFO: SD Card cs_pin:gpio.5 detect:NO_PIN]
    [MSG:INFO: Stepping:RMT Pulse:2us Dsbl Delay:0us Dir Delay:1us Idle Delay:255ms]
    [MSG:INFO: Axis count 3]
    [MSG:INFO: Axis X (0.000,450.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO:     tmc_2130 Step:gpio.14 Dir:gpio.12 CS:gpio.16 Disable:NO_PIN Index:-1 R:0.110]
    [MSG:INFO:     Neg Limit gpio.39]
    [MSG:INFO:   Motor1]
    [MSG:INFO: Axis Y (0.000,885.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO:     tmc_2130 Step:gpio.25 Dir:gpio.26 CS:gpio.17 Disable:NO_PIN Index:-1 R:0.110]
    [MSG:INFO:     Neg Limit gpio.36]
    [MSG:INFO:   Motor1]
    [MSG:INFO: Axis Z (-1000.000,0.000)]
    [MSG:INFO: X Axis driver test passed]
    [MSG:INFO: Y Axis driver test passed]
    [MSG:INFO: Kinematic system: CoreXY]
    [MSG:INFO: Using spindle NoSpindle]
    [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]
    

    User Interface Software

    webUI

    What happened?

    I can't get any movement out of the steppers at all. I'm fairly certain I've gone wrong somewhere in my config file. I've attempted to create one by merging the example code for a coreXY plotter using 2209 drivers (https://github.com/bdring/FluidNC/blob/main/example_configs/TMC2209_corexy.yaml) and the example config for a cartesian plotter using TMC2130 drivers (https://github.com/bdring/FluidNC/blob/main/example_configs/TMC2130_pen.yaml).

    Other Information

    No response

    opened by codingishard404 37
  • Problem: Random shifting of gcode on one axis

    Problem: Random shifting of gcode on one axis

    Controller Board

    Grbl_ESP CNC Controller 4 Axis External Drivers V2.0 https://github.com/bdring/4_Axis_External_Driver

    Help From Board Vendor

    • [ ] Yes
    • [ ] No
    • [X] Not Applicable

    Machine Description

    Chinese CNC6040 with original control board and 0.8kw VFD spindle. FluidNC step/dir outputs are connected to the parallel port input of that control board. The same configuration has been running with grbl for years without issues. Stepper drivers are included in the control board (TB6560AH) Limit switches are NO directly connected to the "4 Axis External Drivers" pcb. NowForever VDF connected to RS485 port of the board. No sd card inserted into the slot. Board running at 24V (yes i made sure the buck converter and input cap can handle that, double and triple checked the schematic to make sure i wouldn't fry anything by doing that)

    Input Circuits

    NO switches connected to the isolated inputs of the "4 Axis External Drivers V2.0" board. Just a wire and a switch.
    

    Configuration file

    Config file:
    
    name: "CNC 6040"
    board: "Grbl_ESP32 4 Axis External Drives V2.0"
    
    start:
      must_home: true
      deactivate_parking: true
      check_limits: true
    
    control:
      feed_hold_pin: NO_PIN
      cycle_start_pin: NO_PIN
    
    stepping:
      engine: RMT
      idle_ms: 250
      dir_delay_us: 1
      pulse_us: 2
      disable_delay_us: 1
    
    axes:
      shared_stepper_disable_pin: gpio.13:low
      shared_stepper_reset_pin: NO_PIN
    
      x:
        steps_per_mm: 320
        max_rate_mm_per_min: 800
        acceleration_mm_per_sec2: 15
        max_travel_mm: 397
        soft_limits: true
    
        homing:
          cycle: 2
          allow_single_axis: true
          positive_direction: true
          mpos_mm: 0
          seek_mm_per_min: 800.000
          feed_mm_per_min: 25.000
          settle_ms: 250
          seek_scaler: 1.100
          feed_scaler: 1.100
    
        motor0:
          limit_pos_pin: gpio.34:low
          hard_limits: true
          pulloff_mm: 1
          standard_stepper:
            direction_pin: gpio.2
            step_pin: gpio.0
    
        motor1:
          null_motor:
    
      y:
        steps_per_mm: 320
        max_rate_mm_per_min: 800
        acceleration_mm_per_sec2: 15
        max_travel_mm: 583
        soft_limits: true
    
        homing:
          cycle: 2
          allow_single_axis: true
          positive_direction: false
          mpos_mm: 0
          seek_mm_per_min: 800.000
          feed_mm_per_min: 25.000
          settle_ms: 250
          seek_scaler: 1.100
          feed_scaler: 1.100
    
        motor0:
          limit_neg_pin: gpio.35:low
          hard_limits: true
          pulloff_mm: 1
          standard_stepper:
            direction_pin: gpio.15:low
            step_pin: gpio.26
    
        motor1:
          null_motor:
    
      z:
        steps_per_mm: 320
        max_rate_mm_per_min: 800
        acceleration_mm_per_sec2: 25
        max_travel_mm: 73
        soft_limits: true
    
        homing:
          cycle: 1
          allow_single_axis: true
          positive_direction: true
          mpos_mm: 0
          seek_mm_per_min: 600.000
          feed_mm_per_min: 25.000
          settle_ms: 250
          seek_scaler: 1.100
          feed_scaler: 1.100
    
        motor0:
          limit_pos_pin: gpio.36:low
          hard_limits: true
          pulloff_mm: 1
          standard_stepper:
            direction_pin: gpio.33:low
            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
      card_detect_pin: NO_PIN
    
    coolant:
      flood_pin: NO_PIN
      mist_pin:  gpio.21
    
    probe:
      pin: gpio.32:low:pu
      check_mode_start: true
    
    NowForever:
      uart:
        txd_pin: gpio.17
        rxd_pin: gpio.4
        rts_pin: gpio.16
        baud: 9600
        mode: 8N1
      modbus_id: 1
      tool_num: 0
      speed_map: 0=0% 24000=100%
    
    
    
    
    Output of $CD:
    board: Grbl_ESP32 4 Axis External Drives V2.0                                                                                                                                                                    
    name: CNC 6040                                                                                                                                                                                                   
    meta:                                                                                                                                                                                                            
    stepping:                                                                                                                                                                                                        
      engine: RMT                                                                                                                                                                                                    
      idle_ms: 250                                                                                                                                                                                                   
      pulse_us: 2                                                                                                                                                                                                    
      dir_delay_us: 1                                                                                                                                                                                                
      disable_delay_us: 1                                                                                                                                                                                            
      segments: 12                                                                                                                                                                                                   
                                                                                                                                                                                                                     
    axes:                                                                                                                                                                                                            
      shared_stepper_disable_pin: gpio.13:low                                                                                                                                                                        
      shared_stepper_reset_pin: NO_PIN                                                                                                                                                                               
      x:                                                                                                                                                                                                             
        steps_per_mm: 320.000                                                                                                                                                                                        
        max_rate_mm_per_min: 800.000                                                                                                                                                                                 
        acceleration_mm_per_sec2: 15.000                                                                                                                                                                             
        max_travel_mm: 397.000                                                                                                                                                                                       
        soft_limits: true                                                                                                                                                                                            
        homing:                                                                                                                                                                                                      
          cycle: 2                                                                                                                                                                                                   
          allow_single_axis: true                                                                                                                                                                                    
          positive_direction: true                                                                                                                                                                                   
          mpos_mm: 0.000                                                                                                                                                                                             
          feed_mm_per_min: 25.000                                                                                                                                                                                    
          seek_mm_per_min: 800.000                                                                                                                                                                                   
          settle_ms: 250                                                                                                                                                                                             
          seek_scaler: 1.100                                                                                                                                                                                         
          feed_scaler: 1.100                                                                                                                                                                                         
                                                                                                                                                                                                                     
        motor0:                                                                                                                                                                                                      
          limit_neg_pin: NO_PIN                                                                                                                                                                                      
          limit_pos_pin: gpio.34:low                                                                                                                                                                                 
          limit_all_pin: NO_PIN                                                                                                                                                                                      
          hard_limits: true                                                                                                                                                                                          
          pulloff_mm: 1.000                                                                                                                                                                                          
          standard_stepper:                                                                                                                                                                                          
            step_pin: gpio.0                                                                                                                                                                                         
            direction_pin: gpio.2                                                                                                                                                                                    
            disable_pin: NO_PIN                                                                                                                                                                                      
                                                                                                                                                                                                                     
        motor1:                                                                                                                                                                                                      
          limit_neg_pin: NO_PIN                                                                                                                                                                                      
          limit_pos_pin: NO_PIN                                                                                                                                                                                      
          limit_all_pin: NO_PIN                                                                                                                                                                                      
          hard_limits: false                                                                                                                                                                                         
          pulloff_mm: 1.000                                                                                                                                                                                          
          null_motor:                                                                                                                                                                                                
                                                                                                                                                                                                                     
      y:                                                                                                                                                                                                             
        steps_per_mm: 320.000                                                                                                                                                                                        
        max_rate_mm_per_min: 800.000                                                                                                                                                                                 
        acceleration_mm_per_sec2: 15.000                                                                                                                                                                             
        max_travel_mm: 583.000                                                                                                                                                                                       
        soft_limits: true                                                                                                                                                                                            
        homing:                                                                                                                                                                                                      
          cycle: 2                                                                                                                                                                                                   
          allow_single_axis: true                                                                                                                                                                                    
          positive_direction: false                                                                                                                                                                                  
          mpos_mm: 0.000                                                                                                                                                                                             
          feed_mm_per_min: 25.000                                                                                                                                                                                    
          seek_mm_per_min: 800.000                                                                                                                                                                                   
          settle_ms: 250                                                                                                                                                                                             
          seek_scaler: 1.100                                                                                                                                                                                         
          feed_scaler: 1.100                                                                                                                                                                                         
                                                                                                                                                                                                                     
        motor0:                                                                                                                                                                                                      
          limit_neg_pin: gpio.35:low                                                                                                                                                                                 
          limit_pos_pin: NO_PIN                                                                                                                                                                                      
          limit_all_pin: NO_PIN                                                                                                                                                                                      
          hard_limits: true                                                                                                                                                                                          
          pulloff_mm: 1.000                                                                                                                                                                                          
          standard_stepper:                                                                                                                                                                                          
            step_pin: gpio.26                                                                                                                                                                                        
            direction_pin: gpio.15:low                                                                                                                                                                               
            disable_pin: NO_PIN                                                                                                                                                                                      
                                                                                                                                                                                                                     
        motor1:                                                                                                                                                                                                      
          limit_neg_pin: NO_PIN                                                                                                                                                                                      
          limit_pos_pin: NO_PIN                                                                                                                                                                                      
          limit_all_pin: NO_PIN                                                                                                                                                                                      
          hard_limits: false                                                                                                                                                                                         
          pulloff_mm: 1.000                                                                                                                                                                                          
          null_motor:                                                                                                                                                                                                
                                                                                                                                                                                                                     
      z:                                                                                                                                                                                                             
        steps_per_mm: 320.000                                                                                                                                                                                        
        max_rate_mm_per_min: 800.000                                                                                                                                                                                 
        acceleration_mm_per_sec2: 25.000                                                                                                                                                                             
        max_travel_mm: 73.000                                                                                                                                                                                        
        soft_limits: true                                                                                                                                                                                            
        homing:                                                                                                                                                                                                      
          cycle: 1                                                                                                                                                                                                   
          allow_single_axis: true                                                                                                                                                                                    
          positive_direction: true                                                                                                                                                                                   
          mpos_mm: 0.000                                                                                                                                                                                             
          feed_mm_per_min: 25.000                                                                                                                                                                                    
          seek_mm_per_min: 600.000                                                                                                                                                                                   
          settle_ms: 250                                                                                                                                                                                             
          seek_scaler: 1.100                                                                                                                                                                                         
          feed_scaler: 1.100                                                                                                                                                                                         
                                                                                                                                                                                                                     
        motor0:                                                                                                                                                                                                      
          limit_neg_pin: NO_PIN                                                                                                                                                                                      
          limit_pos_pin: gpio.36:low                                                                                                                                                                                 
          limit_all_pin: NO_PIN                                                                                                                                                                                      
          hard_limits: true                                                                                                                                                                                          
          pulloff_mm: 1.000                                                                                                                                                                                          
          standard_stepper:                                                                                                                                                                                          
            step_pin: gpio.27                                                                                                                                                                                        
            direction_pin: gpio.33:low                                                                                                                                                                               
            disable_pin: NO_PIN                                                                                                                                                                                      
                                                                                                                                                                                                                     
        motor1:                                                                                                                                                                                                      
          limit_neg_pin: NO_PIN                                                                                                                                                                                      
          limit_pos_pin: NO_PIN                                                                                                                                                                                      
          limit_all_pin: NO_PIN                                                                                                                                                                                      
          hard_limits: false                                                                                                                                                                                         
          pulloff_mm: 1.000                                                                                                                                                                                          
          null_motor:                                                                                                                                                                                                
                                                                                                                                                                                                                     
    kinematics:                                                                                                                                                                                                      
      Cartesian:                                                                                                                                                                                                     
                                                                                                                                                                                                                     
    spi:                                                                                                                                                                                                             
      miso_pin: gpio.19                                                                                                                                                                                              
      mosi_pin: gpio.23                                                                                                                                                                                              
      sck_pin: gpio.18                                                                                                                                                                                               
                                                                                                                                                                                                                     
    sdcard:                                                                                                                                                                                                          
      cs_pin: gpio.5                                                                                                                                                                                                 
      card_detect_pin: NO_PIN                                                                                                                                                                                        
                                                                                                                                                                                                                     
    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                                                                                                                                                                                             
                                                                                                                                                                                                                     
    coolant:                                                                                                                                                                                                         
      flood_pin: NO_PIN                                                                                                                                                                                              
      mist_pin: gpio.21                                                                                                                                                                                              
      delay_ms: 0                                                                                                                                                                                                    
                                                                                                                                                                                                                     
    probe:                                                                                                                                                                                                           
      pin: gpio.32:low:pu                                                                                                                                                                                            
      check_mode_start: true                                                                                                                                                                                         
                                                                                                                                                                                                                     
    macros:                                                                                                                                                                                                          
      startup_line0:                                                                                                                                                                                                 
      startup_line1:                                                                                                                                                                                                 
      macro0:                                                                                                                                                                                                        
      macro1:                                                                                                                                                                                                        
      macro2:                                                                                                                                                                                                        
      macro3:                                                                                                                                                                                                        
                                                                                                                                                                                                                     
    start:                                                                                                                                                                                                           
      must_home: true                                                                                                                                                                                                
      deactivate_parking: true                                                                                                                                                                                       
      check_limits: true                                                                                                                                                                                             
                                                                                                                                                                                                                     
    parking:                                                                                                                                                                                                         
      enable: false                                                                                                                                                                                                  
      axis: Z                                                                                                                                                                                                        
      target_mpos_mm: -5.000                                                                                                                                                                                         
      rate_mm_per_min: 800.000                                                                                                                                                                                       
      pullout_distance_mm: 5.000                                                                                                                                                                                     
      pullout_rate_mm_per_min: 250.000                                                                                                                                                                               
                                                                                                                                                                                                                     
    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: NO_PIN                                                                                                                                                                                           
      digital1_pin: NO_PIN                                                                                                                                                                                           
      digital2_pin: NO_PIN                                                                                                                                                                                           
      digital3_pin: NO_PIN                                                                                                                                                                                           
                                                                                                                                                                                                                     
    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                                                                                                                                                                                          
    planner_blocks: 16                                                                                                                                                                                               
    NowForever:                                                                                                                                                                                                      
      uart:                                                                                                                                                                                                          
        txd_pin: gpio.17                                                                                                                                                                                             
        rxd_pin: gpio.4                                                                                                                                                                                              
        rts_pin: gpio.16                                                                                                                                                                                             
        cts_pin: NO_PIN                                                                                                                                                                                              
        baud: 9600                                                                                                                                                                                                   
        mode: 8N1                                                                                                                                                                                                    
                                                                                                                                                                                                                     
      modbus_id: 1                                                                                                                                                                                                   
      tool_num: 0                                                                                                                                                                                                    
      speed_map: 0=0.000% 24000=100.000%                                                                                                                                                                             
      off_on_alarm: false
    

    Startup Messages

    Will add proper boot messages tomorrow. For now only without being plugged into the board and with no VFD connected. (that's why its complaining about the limits and the VFD)
    
    Resetting MCU                                                                                                                                                                                                    
    ets Jun  8 2016 00:22:57                                                                                                                                                                                         
                                                                                                                                                                                                                     
    rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)                                                                                                                                                          
    configsip: 0, SPIWP:0xee                                                                                                                                                                                         
    clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00                                                                                                                                          
    mode:DIO, clock div:1                                                                                                                                                                                            
    load:0x3fff0030,len:1184                                                                                                                                                                                         
    load:0x40078000,len:12812                                                                                                                                                                                        
    load:0x40080400,len:3032                                                                                                                                                                                         
    entry 0x400805e4                                                                                                                                                                                                 
                                                                                                                                                                                                                     
    [MSG:INFO: FluidNC v3.6.2]                                                                                                                                                                                       
    [MSG:INFO: Compiled with ESP32 SDK:v4.4.1-1-gb8050b365e]                                                                                                                                                         
    [MSG:INFO: Local filesystem type is spiffs]                                                                                                                                                                      
    [MSG:INFO: Configuration file:config.yaml]                                                                                                                                                                       
    [MSG:DBG: Running after-parse tasks]                                                                                                                                                                             
    [MSG:DBG: Checking configuration]                                                                                                                                                                                
    [MSG:INFO: Machine CNC 6040]                                                                                                                                                                                     
    [MSG:INFO: Board Grbl_ESP32 4 Axis External Drives V2.0]                                                                                                                                                         
    [MSG:INFO: SPI SCK:gpio.18 MOSI:gpio.23 MISO:gpio.19]                                                                                                                                                            
    [MSG:INFO: SD Card cs_pin:gpio.5 detect:NO_PIN]                                                                                                                                                                  
    [MSG:INFO: Stepping:RMT Pulse:2us Dsbl Delay:1us Dir Delay:1us Idle Delay:250ms]                                                                                                                                 
    [MSG:INFO: Axis count 3]                                                                                                                                                                                         
    [MSG:INFO: Shared stepper disable gpio.13:low]                                                                                                                                                                   
    [MSG:INFO: Axis X (-397.000,0.000)]                                                                                                                                                                              
    [MSG:INFO:   Motor0]                                                                                                                                                                                             
    [MSG:INFO:     standard_stepper Step:gpio.0 Dir:gpio.2 Disable:NO_PIN]                                                                                                                                           
    [MSG:INFO:  X Pos Limit gpio.34:low]                                                                                                                                                                             
    [MSG:DBG: Updating  X Pos Limit]                                                                                                                                                                                 
    [MSG:DBG:  X Pos Limit 1]                                                                                                                                                                                        
    [MSG:INFO:   Motor1]                                                                                                                                                                                             
    [MSG:INFO: Axis Y (0.000,583.000)]                                                                                                                                                                               
    [MSG:INFO:   Motor0]                                                                                                                                                                                             
    [MSG:INFO:     standard_stepper Step:gpio.26 Dir:gpio.15:low Disable:NO_PIN]                                                                                                                                     
    [MSG:INFO:  Y Neg Limit gpio.35:low]                                                                                                                                                                             
    [MSG:DBG: Updating  Y Neg Limit]                                                                                                                                                                                 
    [MSG:DBG:  Y Neg Limit 1]                                                                                                                                                                                        
    [MSG:INFO:   Motor1]                                                                                                                                                                                             
    [MSG:INFO: Axis Z (-73.000,0.000)]                                                                                                                                                                               
    [MSG:INFO:   Motor0]                                                                                                                                                                                             
    [MSG:INFO:     standard_stepper Step:gpio.27 Dir:gpio.33:low Disable:NO_PIN]                                                                                                                                     
    [MSG:INFO:  Z Pos Limit gpio.36:low]                                                                                                                                                                             
    [MSG:DBG: Updating  Z Pos Limit]                                                                                                                                                                                 
    [MSG:DBG:  Z Pos Limit 1]                                                                                                                                                                                        
    [MSG:INFO:   Motor1]                                                                                                                                                                                             
    [MSG:INFO: Kinematic system: Cartesian]                                                                                                                                                                          
    [MSG:INFO: NowForever Spindle Uart Tx:gpio.17 Rx:gpio.4 RTS:gpio.16 Baud:9600]                                                                                                                                   
    [MSG:INFO: Using spindle NowForever]                                                                                                                                                                             
    [MSG:INFO: Mist coolant gpio.21]                                                                                                                                                                                 
    [MSG:INFO: Probe Pin: gpio.32:low:pu]                                                                                                                                                                            
    [MSG:INFO: WiFi is disabled]                                                                                                                                                                                     
    [MSG:DBG: VFD setState:0 SpindleSpeed:0]                                                                                                                                                                         
    [MSG:DBG: RPM:0 mapped to device units:1073423424]                                                                                                                                                               
                                                                                                                                                                                                                     
    Grbl 3.6 [FluidNC v3.6.2 (wifi) '$' for help]                                                                                                                                                                    
    [MSG:INFO: Check limits]                                                                                                                                                                                         
    [MSG:INFO: '$H'|'$X' to unlock]                                                                                                                                                                                  
    [MSG:INFO: VFD RS485 Unresponsive]
    

    User Interface Software

    Universal Gcode Platform 20220917

    What happened?

    Sometimes axis just randomly "shift" while executing gcode. In this example the X axis shifted towards +X about 2mm. Other times the Z axis was shifting towards -Z an unknown amount. This causes parts of the cuts to be misaligned with the rest or travel moves to intersect with the part. The attached pictures show the result (was repeatable 3x) vs the expected part (ugs preview and camotics simulation) The misaligned features so far were only "G2" commands as far as i could tell (not 1000% sure though). Also not sure if that's related or not but after aborting the execution of that file i remember having issues with homing. Some axis would still report an alarm even though as far as i could tell none of the limit switches were triggered. Motor movement while homing a second time was also erratic. cut_part camotics ugs

    GCode file in question:
    Generated using Version: 0.21.30193 (Git) AppImage and grbl post processor with the following options: --no-show-editor --translate_drill

    SolenoidMountPlate.txt

    Other Information

    Earlier the same day i cut 3 parts without issues (that included G2 spiral path codes as well, lots of them in fact) without issues. The fourth part failed with the issues described above (didnt notice that yet). After a few hours of the machine and host pc being completely powered down (plugs pulled) i tried to cut the part in the picture. Rebooted and power cycled the machine after the first failure without any effect.

    SOLVED 
    opened by LukasGossmann 33
  • problemi di scansione utilizzando mks dlc32 e lightburn

    problemi di scansione utilizzando mks dlc32 e lightburn

    Controller Board

    mks dlc32 v.2.1

    Help From Board Vendor

    • [ ] Yes
    • [ ] No
    • [X] Not Applicable

    Machine Description

    Laser co2 50w su telaio autocostruito con piano di 1300x900.

    Configuration file

    board: MKS DLC32 2.1
    name: MKS DLC32 XYZ
    meta: (08/07/2022) Biagio
    
    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
    planner_blocks: 16
    
    stepping:
      engine: I2S_STREAM
      idle_ms: 255
      pulse_us: 10
      dir_delay_us: 1
      disable_delay_us: 0
    
    axes:
      shared_stepper_disable_pin: i2so.0
      x:
        steps_per_mm: 79.973
        max_rate_mm_per_min: 20000.000
        acceleration_mm_per_sec2: 3000.000
        max_travel_mm: 1226.000
        soft_limits: true
        homing:
          cycle: 1
          positive_direction: false
          mpos_mm: 0.000
          feed_mm_per_min: 1000.000
          seek_mm_per_min: 5000.000
          settle_ms: 250.000
          seek_scaler: 1.100
          feed_scaler: 1.100
    
        motor0:
          limit_neg_pin: gpio.36:low
          limit_pos_pin: NO_PIN
          limit_all_pin: NO_PIN
          hard_limits: false
          pulloff_mm:1.000
          stepstick:
            step_pin:  i2so.1
            direction_pin: I2SO.2
    
      y:
        steps_per_mm: 80.194
        max_rate_mm_per_min: 10000.000
        acceleration_mm_per_sec2: 350.000
        max_travel_mm: 898.000
        soft_limits: true
        homing:
          cycle: 1
          positive_direction: false
          mpos_mm: 0.000
          feed_mm_per_min: 1000.000
          seek_mm_per_min: 5000.000
          settle_ms: 250.000
          seek_scaler: 1.100
          feed_scaler: 1.100
    
        motor0:
          limit_neg_pin: gpio.35:low
          limit_pos_pin: NO_PIN
          limit_all_pin: NO_PIN
          hard_limits: false
          pulloff_mm:1.000
          stepstick:
            step_pin: I2SO.5
            direction_pin: I2SO.6
    
      z:
        steps_per_mm: 640.000
        max_rate_mm_per_min: 200.000
        acceleration_mm_per_sec2: 50.000
        max_travel_mm: 170.000
        soft_limits: true
        homing:
          cycle: 0
          positive_direction: true
          mpos_mm: 0.000
          feed_mm_per_min: 200.000
          seek_mm_per_min: 200.000
          settle_ms: 250.000
          seek_scaler: 1.100
          feed_scaler: 1.100
    
        motor0:
          limit_neg_pin: gpio.34:low
          limit_pos_pin: NO_PIN
          limit_all_pin: NO_PIN
          hard_limits: false
          pulloff_mm:1.000
          stepstick:
            step_pin: I2SO.3
            direction_pin: I2SO.4:low
    
    i2so:
      bck_pin: gpio.16
      data_pin: gpio.21
      ws_pin: gpio.17
    
    spi:
      miso_pin: gpio.12
      mosi_pin: gpio.13
      sck_pin: gpio.14
    
    sdcard:
      card_detect_pin: NO_PIN
      cs_pin: gpio.15
    
    probe:
      pin: gpio.2
      check_mode_start: false
    
    start:
      must_home: false
    
    Laser:
      pwm_hz: 5000
      output_pin: gpio.32
      enable_pin: NO_PIN
      disable_with_s0: false
      s0_with_disable: true
      speed_map: 0=0.000% 0=9.000% 1000=100.000%
    

    Startup Messages

    nessun errore
    

    User Interface Software

    lightburn

    What happened?

    Salve, ho la configurazione come sopra e ho notato problemi di scansione di testo riempito con lightburn. in pratica il mio testo, anche impostando una sovrascansione del 5% viene come sdoppiato. sono riuscito ad accendere il laser al 1% grazie a speed_map, anche variandolo non ottengo cambiamenti. ho trovato in rete di impostare I2S_static al posto di I2S_stream. ottengo benefici senza perdere niente?

    Other Information

    No response

    opened by distebia 33
  • The laser does not turn off in M3 mode for G0 moves

    The laser does not turn off in M3 mode for G0 moves

    Controller Board

    mks dlc 2.1

    Help From Board Vendor

    • [ ] Yes
    • [ ] No
    • [X] Not Applicable

    Machine Description

    mks dlc32 v2.1

    Configuration file

    board: MKS DLC32 2.1 name: MKS DLC32 XYZ meta: (08/07/2022) Biagio

    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 planner_blocks: 16

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

    axes: shared_stepper_disable_pin: i2so.0 x: steps_per_mm: 79.973 max_rate_mm_per_min: 20000.000 acceleration_mm_per_sec2: 5000.000 max_travel_mm: 1226.000 soft_limits: true homing: cycle: 1 positive_direction: false mpos_mm: 0.000 feed_mm_per_min: 1000.000 seek_mm_per_min: 5000.000 settle_ms: 250.000 seek_scaler: 1.100 feed_scaler: 1.100

    motor0:
      limit_neg_pin: gpio.36
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: false
      pulloff_mm:1.500
      stepstick:
        step_pin:  i2so.1
        direction_pin: I2SO.2
    

    y: steps_per_mm: 80.194 max_rate_mm_per_min: 10000.000 acceleration_mm_per_sec2: 200.000 max_travel_mm: 898.000 soft_limits: true homing: cycle: 1 positive_direction: false mpos_mm: 0.000 feed_mm_per_min: 1000.000 seek_mm_per_min: 5000.000 settle_ms: 250.000 seek_scaler: 1.100 feed_scaler: 1.100

    motor0:
      limit_neg_pin: gpio.35
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: false
      pulloff_mm:1.500
      stepstick:
        step_pin: I2SO.5
        direction_pin: I2SO.6
    

    z: steps_per_mm: 640.000 max_rate_mm_per_min: 200.000 acceleration_mm_per_sec2: 50.000 max_travel_mm: 170.000 soft_limits: true homing: cycle: 0 positive_direction: true mpos_mm: 0.000 feed_mm_per_min: 200.000 seek_mm_per_min: 200.000 settle_ms: 250.000 seek_scaler: 1.100 feed_scaler: 1.100

    motor0:
      limit_neg_pin: gpio.34
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: false
      pulloff_mm:1.000
      stepstick:
        step_pin: I2SO.3
        direction_pin: I2SO.4:low
    

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

    spi: miso_pin: gpio.12 mosi_pin: gpio.13 sck_pin: gpio.14

    sdcard: card_detect_pin: NO_PIN cs_pin: gpio.15

    coolant: flood_pin: gpio.4 mist_pin: NO_PIN delay_ms: 0

    probe: pin: gpio.2 check_mode_start: false

    start: must_home: false

    Laser: pwm_hz: 15000 output_pin: gpio.32 enable_pin: NO_PIN disable_with_s0: false s0_with_disable: true speed_map: 0=0.000% 0=10.000% 1000=100.000%

    Salve, ho un laser co2 autocostruito e, fra alimentatore e tubo, in arduino uno impostavo in config.h il comando PWM_MIN_VALUE=25 (pwm da 0 a 255) per accendere il laser al 1% in Lightburn. Passo a MKS DLC32 e carico FluidNc 3.4.4 per un problema di scansione e funziona perfettamente. Riesco ad accendere il laser al 1% (quindi il mio Speed_map funziona) e ho M4 all'avvio...tutto perfetto...Ieri ho effettuato un taglio con Constant power mode, quindi M3, e il laser non si spegneva nei movimenti rapidi...dove sbaglio? p.s.: LB configurato con SMax=1000

    Other Information

    No response

    opened by distebia 30
  • RS 485 issue

    RS 485 issue

    Controller Board

    6-pack

    Help From Board Vendor

    • [ ] Yes
    • [ ] No
    • [X] Not Applicable

    Machine Description

    Gantry router with tb6600's Recommended Huanyang vfd 2.2 Kw water cooled spindle no end stops connected yet

    Input Circuits

    No response

    Configuration file

    board: 6 Pack
    name: FluidNC
    meta: 2022-09-05 Andrew Luger 315469
    stepping:
      engine: I2S_STREAM
      idle_ms: 250
      pulse_us: 4
      dir_delay_us: 1
      disable_delay_us: 0
    
    axes:
      shared_stepper_disable_pin: NO_PIN
      x:
        steps_per_mm: 160.000
        max_rate_mm_per_min: 4000.000
        acceleration_mm_per_sec2: 750.000
        max_travel_mm: 1220.000
        soft_limits: false
        homing:
          cycle: 2
          positive_direction: false
          mpos_mm: 0.000
          feed_mm_per_min: 100.000
          seek_mm_per_min: 200.000
          settle_ms: 500
          seek_scaler: 1.100
          feed_scaler: 1.100
    
        motor0:
          limit_neg_pin: gpio.33
          limit_pos_pin: NO_PIN
          limit_all_pin: NO_PIN
          hard_limits: false
          pulloff_mm: 1.000
          standard_stepper:
            step_pin: I2SO.2
            direction_pin: I2SO.1
            disable_pin: I2SO.0
    
      y:
        steps_per_mm: 160.000
        max_rate_mm_per_min: 4000.000
        acceleration_mm_per_sec2: 750.000
        max_travel_mm: 640.000
        soft_limits: false
        homing:
          cycle: 2
          positive_direction: true
          mpos_mm: 0.000
          feed_mm_per_min: 100.000
          seek_mm_per_min: 200.000
          settle_ms: 500
          seek_scaler: 1.100
          feed_scaler: 1.100
    
        motor0:
          limit_neg_pin: gpio.32
          limit_pos_pin: NO_PIN
          limit_all_pin: NO_PIN
          hard_limits: false
          pulloff_mm: 1.000
          standard_stepper:
            step_pin: I2SO.5
            direction_pin: I2SO.4:low
            disable_pin: I2SO.7
        
        motor1:
          limit_neg_pin: NO_PIN
          limit_pos_pin: NO_PIN
          limit_all_pin: NO_PIN
          hard_limits: false
          pulloff_mm: 1.000
          standard_stepper:
            step_pin: I2SO.10
            direction_pin: I2SO.9:low
            disable_pin: I2SO.8
    
      z:
        steps_per_mm: 400.000
        max_rate_mm_per_min: 3000.000
        acceleration_mm_per_sec2: 500.000
        max_travel_mm: 105.000
        soft_limits: false
        homing:
          cycle: 1
          positive_direction: true
          mpos_mm: 0.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: NO_PIN
          limit_pos_pin: gpio.35
          limit_all_pin: NO_PIN
          hard_limits: false
          pulloff_mm: 1.000
          standard_stepper:
            step_pin: I2SO.13
            direction_pin: I2SO.12:low
            disable_pin: I2SO.15
            
    
    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:
      card_detect_pin: NO_PIN
      cs_pin: gpio.5
    
    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
      
    probe:
      pin: gpio.34
      check_mode_start: true
    
    start:
      must_home: false
      
    coolant:
      flood_pin: gpio.15
      mist_pin: gpio.12
      delay_ms: 0
    
    Huanyang:
      uart:
        txd_pin: gpio.26
        rxd_pin: gpio.16
        rts_pin: gpio.4
        baud: 19200
        mode: 8N1
      modbus_id: 1
      tool_num: 0
      speed_map: 0=0% 0=25% 6000=25% 24000=100%
      off_on_alarm: true
    

    Startup Messages

    FluidNC v1.2.0 using COM4
    Exit: Ctrl-C, Ctrl-Q or Ctrl-], Clear screen: CTRL-W
    Upload: Ctrl-U, Reset ESP32: Ctrl-R, Send Override: Ctrl-O
    [MSG:ERR: Huanyang spindle did not reach device units 1073423424. Reported value is 0]
    
    Grbl 1.1h [FluidNC v3.6.3 (wifi) '$' for help]
    [MSG:INFO: '$H'|'$X' to unlock]
    [MSG:INFO: VFD Queue Full]
    [MSG:ERR: Huanyang spindle did not reach device units 1073423424. Reported value is 0]
    ALARM:10
    [MSG:INFO: VFD Queue Full]
    [MSG:ERR: Huanyang spindle did not reach device units 1073423424. Reported value is 0]
    [MSG:INFO: VFD Queue Full]
    [MSG:ERR: Huanyang spindle did not reach device units 1073423424. Reported value is 0]
    
    Grbl 1.1h [FluidNC v3.6.3 (wifi) '$' for help]
    [MSG:INFO: '$H'|'$X' to unlock]
    [MSG:INFO: VFD Queue Full]
    [MSG:ERR: Huanyang spindle did not reach device units 1073423424. Reported value is 0]
    ALARM:10
    [MSG:INFO: VFD Queue Full]
    [MSG:ERR: Huanyang spindle did not reach device units 1073423424. Reported value is 0]
    [MSG:INFO: VFD Queue Full]
    [MSG:ERR: Huanyang spindle did not reach device units 1073423424. Reported value is 0]
    
    Grbl 1.1h [FluidNC v3.6.3 (wifi) '$' for help]
    [MSG:INFO: '$H'|'$X' to unlock]
    [MSG:INFO: VFD Queue Full]
    [MSG:ERR: Huanyang spindle did not reach device units 1073423424. Reported value is 0]
    ALARM:10
    [MSG:INFO: VFD Queue Full]
    [MSG:ERR: Huanyang spindle did not reach device units 1073423424. Reported value is 0]
    [MSG:INFO: VFD Queue Full]
    Resetting MCU
    
    [MSG:INFO: FluidNC v3.6.3]
    [MSG:INFO: Compiled with ESP32 SDK:v4.4.1-1-gb8050b365e]
    [MSG:INFO: Local filesystem type is spiffs]
    [MSG:INFO: Configuration file:config.yaml]
    [MSG:INFO: Machine PrintNC]
    [MSG:INFO: Board 6 Pack]
    [MSG:INFO: I2SO BCK:gpio.22 WS:gpio.17 DATA:gpio.21]
    [MSG:INFO: SPI SCK:gpio.18 MOSI:gpio.23 MISO:gpio.19]
    [MSG:INFO: SD Card cs_pin:gpio.5 detect:NO_PIN]
    [MSG:INFO: Stepping:I2S_stream Pulse:4us Dsbl Delay:0us Dir Delay:1us Idle Delay:250ms]
    [MSG:INFO: Axis count 3]
    [MSG:INFO: Axis X (0.000,1220.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO:     standard_stepper Step:I2SO.2 Dir:I2SO.1 Disable:I2SO.0]
    [MSG:INFO:  X Neg Limit gpio.33]
    [MSG:INFO: Axis Y (-640.000,0.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO:     standard_stepper Step:I2SO.5 Dir:I2SO.4:low Disable:I2SO.7]
    [MSG:INFO:  Y Neg Limit gpio.32]
    [MSG:INFO:   Motor1]
    [MSG:INFO:     standard_stepper Step:I2SO.10 Dir:I2SO.9:low Disable:I2SO.8]
    [MSG:INFO: Axis Z (-105.000,0.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO:     standard_stepper Step:I2SO.13 Dir:I2SO.12:low Disable:I2SO.15]
    [MSG:INFO:  Z Pos Limit gpio.35]
    [MSG:INFO: Kinematic system: Cartesian]
    [MSG:INFO: Huanyang Spindle Uart Tx:gpio.26 Rx:gpio.16 RTS:gpio.4 Baud:19200]
    [MSG:INFO: Using spindle Huanyang]
    [MSG:INFO: Flood coolant gpio.15]
    [MSG:INFO: Mist coolant gpio.12]
    [MSG:INFO: Probe Pin: gpio.34]
    [MSG:INFO: Connecting to STA SSID:LUGER]
    [MSG:INFO: Connecting.]
    [MSG:INFO: Connected - IP is 192.168.50.100]
    [MSG:INFO: WiFi on]
    [MSG:INFO: Start mDNS with hostname:http://fluidnc.local/]
    [MSG:INFO: SSDP Started]
    [MSG:INFO: HTTP started on port 80]
    [MSG:INFO: Telnet started on port 23]
    
    Grbl 1.1h [FluidNC v3.6.3 (wifi) '$' for help]
    [MSG:INFO: VFD RS485 Unresponsive
    

    User Interface Software

    No response

    What happened?

    I cannot start the spindle

    Connection with Rs 485 seems to be ok, however communication is garbled. I have tried this at 9600 and 19200 and i get the exact same results.

    VFD sends back the the stuff at the top. as well as the queue full errors so i'm not sure what is going on

    Rs 485 is installed on module 3

    thanks

    Other Information

    No response

    SOLVED 
    opened by lugeral 29
  • Negative homing bails out before max travel is reached

    Negative homing bails out before max travel is reached

    Controller Board

    6 Pack External Driver CNC Controller

    Machine Description

    3 axis Chinese 3040 machine.

    Input Circuits

    No response

    Configuration file

    board: 6 Pack
    name: 6 Pack External XYYZ No Square - v2
    meta: Based on 2022-09-19 B. Dring for Dean Embrey
    
    stepping:
      engine: I2S_STREAM
      idle_ms: 255
      pulse_us: 4
      dir_delay_us: 1
      disable_delay_us: 0
    
    axes:
      shared_stepper_disable_pin: NO_PIN
      x:
        steps_per_mm: 500
        max_rate_mm_per_min: 5000
        acceleration_mm_per_sec2: 50
        max_travel_mm: 285
        soft_limits: false
        homing:
          cycle: 2
          positive_direction: false
          allow_single_axis: true
          mpos_mm: 0
          seek_mm_per_min: 800
    
        motor0:
          limit_all_pin: gpio.34:low
          hard_limits: true
          pulloff_mm: 2
          standard_stepper:
            step_pin: I2SO.2
            direction_pin: I2SO.1
            disable_pin: I2SO.0
    
      y:
        steps_per_mm: 500
        max_rate_mm_per_min: 5000
        acceleration_mm_per_sec2: 50
        max_travel_mm: 382
        soft_limits: false
        homing:
          cycle: 2
          positive_direction: true
          allow_single_axis: true
          mpos_mm: 382
          seek_mm_per_min: 1000
        motor0:
          limit_all_pin: gpio.35:low
          hard_limits: true
          pulloff_mm: 2
          standard_stepper:
            step_pin: I2SO.5
            direction_pin: I2SO.4:low
            disable_pin: I2SO.7
    
      z:
        steps_per_mm: 400
        max_rate_mm_per_min: 2000
        acceleration_mm_per_sec2: 50
        max_travel_mm: 48
        soft_limits: false
        homing:
          cycle: 1
          positive_direction: true
          allow_single_axis: true
          mpos_mm: 48
          seek_mm_per_min: 400
    
        motor0:
          limit_all_pin: gpio.36:low
          hard_limits: true
          pulloff_mm: 2
          standard_stepper:
            step_pin: I2SO.10
            direction_pin: I2SO.9:low
            disable_pin: I2SO.8
    
    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:
    #  card_detect_pin: NO_PIN
    #  cs_pin: gpio.5
    
    start:
      must_home: false
      deactivate_parking: false
      check_limits: false
    
    arc_tolerance_mm: 0.002
    junction_deviation_mm: 0.010
    verbose_errors: true
    report_inches: false
    enable_parking_override_control: false
    use_line_numbers: false
    planner_blocks: 16
    
    NoSpindle:
    
    coolant:
      mist_pin: i2so.3
    

    Startup Messages

    [MSG:INFO: FluidNC v3.6.4]
    [MSG:INFO: Compiled with ESP32 SDK:v4.4.1-1-gb8050b365e]
    [MSG:INFO: Local filesystem type is spiffs]
    [MSG:INFO: Configuration file:config.yaml]
    [MSG:INFO: Machine 6 Pack External XYYZ No Square - v2]
    [MSG:INFO: Board 6 Pack]
    [MSG:INFO: I2SO BCK:gpio.22 WS:gpio.17 DATA:gpio.21]
    [MSG:INFO: SPI SCK:gpio.18 MOSI:gpio.23 MISO:gpio.19]
    [MSG:INFO: No SD Card CS Pin]
    [MSG:INFO: See http://wiki.fluidnc.com/en/config/sd_card#sdfallbackcs-access-sd-without-a-config-file]
    [MSG:INFO: Stepping:I2S_stream Pulse:4us Dsbl Delay:0us Dir Delay:1us Idle Delay:255ms]
    [MSG:INFO: Axis count 3]
    [MSG:INFO: Axis X (0.000,285.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO:     standard_stepper Step:I2SO.2 Dir:I2SO.1 Disable:I2SO.0]
    [MSG:INFO:  X All Limit gpio.34:low]
    [MSG:INFO: Axis Y (0.000,382.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO:     standard_stepper Step:I2SO.5 Dir:I2SO.4:low Disable:I2SO.7]
    [MSG:INFO:  Y All Limit gpio.35:low]
    [MSG:INFO: Axis Z (0.000,48.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO:     standard_stepper Step:I2SO.10 Dir:I2SO.9:low Disable:I2SO.8]
    [MSG:INFO:  Z All Limit gpio.36:low]
    [MSG:INFO: Kinematic system: Cartesian]
    [MSG:INFO: Using spindle NoSpindle]
    [MSG:INFO: Mist coolant I2SO.3]
    [MSG:INFO: Connecting to STA SSID:3_Primo]
    [MSG:INFO: Connecting.]
    [MSG:INFO: Connected - IP is 192.168.1.34]
    [MSG:INFO: WiFi on]
    [MSG:INFO: Start mDNS with hostname:http://fluidnc.local/]
    [MSG:INFO: SSDP Started]
    [MSG:INFO: HTTP started on port 80]
    [MSG:INFO: Telnet started on port 23]
    

    User Interface Software

    WebUI

    What happened?

    H there!

    Using latest release v3.6.4.

    After clearing up switches, X is set to 280 and max travel is 285. But it bails when -250 is reached (traveling 250 mm).

    Unless I am not getting something, it should bail out after 285.

    $h <Home|MPos:0.000,0.000,4.293|FS:400,0> <Home|MPos:0.000,0.000,24.255|FS:400,0> <Home|MPos:0.000,0.000,44.255|FS:400,0> <Home|MPos:0.000,0.000,48.472|FS:50,0> <Home|MPos:0.000,0.000,49.865|FS:50,0> <Home|MPos:-0.002,0.002,48.000|FS:419,0> <Home|MPos:-30.310,50.784,48.000|FS:1281,0|WCO:0.000,0.000,0.000> <Home|MPos:-63.106,105.730,48.000|FS:1281,0|Ov:100,100,100> <Home|MPos:-95.872,160.628,48.000|FS:1281,0> <Home|MPos:-128.676,215.588,48.000|FS:1281,0> <Home|MPos:-161.488,270.564,48.000|FS:1281,0> <Home|MPos:-194.288,325.516,48.000|FS:1281,0> <Home|MPos:-227.088,380.472,48.000|FS:1281,0> <Home|MPos:-250.800,384.170,48.000|FS:0,0|Pn:Y> ALARM:9 Homing fail. Could not find limit switch within search distances. Try increasing max travel, decreasing pull-off distance, or check wiring. ok

    Other Information

    No response

    opened by arhuaco 27
  • Not working SD card

    Not working SD card

    Controller Board

    Bare ESP32+SD card reader / MKS32

    Machine Description

    Testing only SD Card image

    Input Circuits

    No response

    Configuration file

    board: test
    name: test
    
    spi:
      miso_pin: gpio.19
      mosi_pin: gpio.23
      sck_pin: gpio.18
    
    sdcard:
      cs_pin: gpio.5
      card_detect_pin: NO_PIN
    

    Startup Messages

    rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
    flash read err, 1000
    ets_main.c 371
    ets Jun  8 2016 00:22:57
    
    rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
    configsip: 0, SPIWP:0xee
    clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
    mode:DIO, clock div:1
    load:0x3fff0030,len:1184
    load:0x40078000,len:12812
    load:0x40080400,len:3032
    entry 0x400805e4
    
    [MSG:INFO: FluidNC v3.6.5]
    [MSG:INFO: Compiled with ESP32 SDK:v4.4.1-1-gb8050b365e]
    [MSG:INFO: Local filesystem type is spiffs]
    [MSG:INFO: Configuration file:config.yaml]
    [MSG:INFO: Axes: using defaults]
    [MSG:INFO: Machine test]
    [MSG:INFO: Board test]
    [MSG:INFO: SPI SCK:gpio.18 MOSI:gpio.23 MISO:gpio.19]
    [MSG:INFO: SD Card cs_pin:gpio.5 detect:NO_PIN]
    [MSG:INFO: Stepping:RMT Pulse:4us Dsbl Delay:0us Dir Delay:0us Idle 
    Delay:255ms]
    [MSG:INFO: Axis count 3]
    [MSG:INFO: Axis X (-1000.000,0.000)]
    [MSG:INFO: Axis Y (-1000.000,0.000)]
    [MSG:INFO: Axis Z (-1000.000,0.000)]
    [MSG:INFO: Kinematic system: Cartesian]
    [MSG:INFO: Using spindle NoSpindle]
    [MSG:INFO: Connecting to STA SSID:HackFi]
    [MSG:INFO: Connecting.]
    [MSG:INFO: Connected - IP is 192.168.1.54]
    [MSG:INFO: WiFi on]
    [MSG:INFO: Start mDNS with hostname:http://Cnc.local/]
    [MSG:INFO: SSDP Started]
    [MSG:INFO: HTTP started on port 80]
    [MSG:INFO: Telnet started on port 23]
    
    Grbl 3.6 [FluidNC v3.6.5 (wifi) '$' for help]
    [MSG:INFO: '$H'|'$X' to unlock]
    

    User Interface Software

    WebUI

    What happened?

    There is no way at all to make the SD card to work. Always returns: [MSG:ERR: sdmmc_card_init failed code 0x107] [MSG:ERR: sdmmc_card_init failed code 0x108]

    Both values appear randomly. Also observed 0x109 sometimes and 0x104 more rarely. Tried with 3 different sdCards formatted with Fat32. Two of them 32GB and other one of 16GB.

    Tried soldering cables directly to an sdcard adapter as described here: https://github.com/bdring/FluidNC/issues/659

    Tried with older versions: v3.4.4, v3.5.0, v3.6.0 and Devt branch

    Tried with different SPI speeds with 0.1MHz, 1MHz, 10MHz and the default speed 20MHz as described here: https://github.com/bdring/FluidNC/pull/742

    The same SD card adapter works with the SD example for ESP32 What am I missing?

    Other Information

    No response

    opened by alvarotorijano 12
  • Problem: spindle at maximum RPM starts and in half a second goes off

    Problem: spindle at maximum RPM starts and in half a second goes off

    Controller Board

    MKS DLC32

    Machine Description

    Ordinary MKS DLC32, XYZ, spindle 775 motor 20000rpm 40W @24V

    Input Circuits

    Standart for MKS DLC32.
    

    Configuration file

    board: MKS-DLC32
    name: CNC3020 Pro MAX
    
    kinematics:
      Cartesian:
    
    stepping:
      engine: I2S_STATIC
      idle_ms: 254
      pulse_us: 4
      dir_delay_us: 1
      disable_delay_us: 0
    axes:
      shared_stepper_disable_pin: I2SO.0
      x:
        steps_per_mm: 800.000
        max_rate_mm_per_min: 1200.000
        acceleration_mm_per_sec2: 80.000
        max_travel_mm: 300.000
        soft_limits: false
        homing:
          cycle: 1
          positive_direction: false
          mpos_mm: 0.000
          feed_mm_per_min: 100.000
          seek_mm_per_min: 200.000
          settle_ms: 500
          seek_scaler: 1.100
          feed_scaler: 1.100
    
        motor0:
          limit_neg_pin: gpio.36
          hard_limits: false
          pulloff_mm: 5.000
          stepstick:
            step_pin: I2SO.1
            direction_pin: I2SO.2:high
    
      y:
        steps_per_mm: 800.000
        max_rate_mm_per_min: 1200.000
        acceleration_mm_per_sec2: 80.000
        max_travel_mm: 200.000
        soft_limits: false
        homing:
          cycle: 1
          positive_direction: false
          mpos_mm: 0.000
          feed_mm_per_min: 100.000
          seek_mm_per_min: 200.000
          settle_ms: 500
          seek_scaler: 1.100
          feed_scaler: 1.100
    
        motor0:
          limit_neg_pin: gpio.35
          hard_limits: false
          pulloff_mm: 5.000
          stepstick:
            step_pin: I2SO.5
            direction_pin: I2SO.6:low
    
      z:
        steps_per_mm: 800.000
        max_rate_mm_per_min: 500.000
        acceleration_mm_per_sec2: 80.000
        max_travel_mm: 50.000
        soft_limits: false
        homing:
          cycle: 0
          positive_direction: false
          mpos_mm: 0.000
          feed_mm_per_min: 100.000
          seek_mm_per_min: 200.000
          settle_ms: 500
          seek_scaler: 1.100
          feed_scaler: 1.100
    
        motor0:
          limit_neg_pin: gpio.34
          hard_limits: false
          pulloff_mm: 5.000
          stepstick:
            step_pin: I2SO.3
            direction_pin: I2SO.4
    
    i2so:
      bck_pin: gpio.16
      data_pin: gpio.21
      ws_pin: gpio.17
    
    spi:
      miso_pin: gpio.12
      mosi_pin: gpio.13
      sck_pin: gpio.14
    
    sdcard:
      cs_pin: gpio.15
      card_detect_pin: gpio.39
    
    control:
      safety_door_pin: NO_PIN
      reset_pin: NO_PIN
      feed_hold_pin: NO_PIN
      cycle_start_pin: NO_PIN
      macro0_pin: gpio.33:low:pu
      macro1_pin: NO_PIN
      macro2_pin: NO_PIN
      macro3_pin: NO_PIN
    
    macros:
      startup_line0:
      startup_line1:
      macro0: $SD/Run=lasertest.gcode
      macro1: $SD/Run=home.gcode
      #These are examples
      macro2:
      macro3:
    
    coolant:
      flood_pin: NO_PIN
      mist_pin: NO_PIN
      delay_ms: 0
    
    probe:
      pin: gpio.22:low:pu
      check_mode_start: true
    
    PWM:
      pwm_hz: 8000
      output_pin: gpio.32
      enable_pin: NO_PIN
      direction_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% 20000=100.000%
      off_on_alarm: false
    
    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: NO_PIN
      digital1_pin: NO_PIN
      digital2_pin: NO_PIN
      digital3_pin: NO_PIN
    
    start:
      must_home: false
    

    Startup Messages

    [MSG:INFO: FluidNC v3.6.5]
    [MSG:INFO: Compiled with ESP32 SDK:v4.4.1-1-gb8050b365e]
    [MSG:INFO: Local filesystem type is spiffs]
    [MSG:INFO: Configuration file:tmc2209_AxS.yaml]
    [MSG:INFO: Machine CNC3020 Pro MAX]
    [MSG:INFO: Board MKS-DLC32]
    [MSG:INFO: I2SO BCK:gpio.16 WS:gpio.17 DATA:gpio.21]
    [MSG:INFO: SPI SCK:gpio.14 MOSI:gpio.13 MISO:gpio.12]
    [MSG:INFO: SD Card Detect gpio.39]
    [MSG:INFO: SD Card cs_pin:gpio.15 detect:gpio.39]
    [MSG:INFO: Stepping:I2S_static Pulse:4us Dsbl Delay:0us Dir Delay:1us Idle Delay:254ms]
    [MSG:INFO: Axis count 3]
    [MSG:INFO: Shared stepper disable I2SO.0]
    [MSG:INFO: Axis X (0.000,300.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO:     stepstick Step:I2SO.1 Dir:I2SO.2 Disable:NO_PIN]
    [MSG:INFO:  X Neg Limit gpio.36]
    [MSG:INFO: Axis Y (0.000,200.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO:     stepstick Step:I2SO.5 Dir:I2SO.6:low Disable:NO_PIN]
    [MSG:INFO:  Y Neg Limit gpio.35]
    [MSG:INFO: Axis Z (0.000,50.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO:     stepstick Step:I2SO.3 Dir:I2SO.4 Disable:NO_PIN]
    [MSG:INFO:  Z Neg Limit gpio.34]
    [MSG:INFO: macro0_pin gpio.33:low:pu]
    [MSG:INFO: Kinematic system: Cartesian]
    [MSG:INFO: PWM Spindle Ena:NO_PIN Out:gpio.32 Dir:NO_PIN Freq:8000Hz Period:8191]
    [MSG:INFO: Using spindle PWM]
    [MSG:INFO: Probe Pin: gpio.22:low:pu]
    [MSG:INFO: Connecting to STA SSID:AxS]
    [MSG:INFO: Connecting.]
    [MSG:INFO: Connected - IP is 192.168.1.19]
    [MSG:INFO: WiFi on]
    [MSG:INFO: Start mDNS with hostname:http://fluidnc.local/]
    [MSG:INFO: SSDP Started]
    [MSG:INFO: HTTP started on port 80]
    [MSG:INFO: Telnet started on port 23]
    ok
    

    User Interface Software

    WebUI, Candle.

    What happened?

    I bought a controller to replace the burned one. My old controller worked with WiFi-adaptor to give me remote access. So I purchased MKS DLC32. Unfortunately, its “telnet” connection has code errors and couldn’t be useful for me. I had several hard days to setup FNC and tune it, but it successfully works now and I am very happy with it. Thank you! Nevertheless, there is an issue when trying to start spindle at maximum RPM. It starts and in half a second goes off. With MKS firmware it started well. In my case max speed is about 20000 RPM (21300 in fact) so I placed in config.yaml “speed_map: 0=0.000% 20000=100.000%”. And spindle refuses to start normally with S > 19000. Now I have to turn on the spindle at 19000 first and then run G-code where S=20000. I couldn’t find out what’s wrong with my settings. Could you help me?

    Other Information

    No response

    opened by axsmyth 12
  • Problem: Flood Coolant toggle doesn't work

    Problem: Flood Coolant toggle doesn't work

    Controller Board

    MKS TinyBee

    Machine Description

    n/a - controls related

    Input Circuits

    n/a
    

    Configuration file

    # HE0 - i2so.17 - mist enable (dust) M7
    # HE1 - i2so.18 - flood enable (coolant) M8
    coolant:
      mist_pin: i2so.17
      flood_pin: i2so.18
      delay_ms: 0
    

    Startup Messages

    <Idle|MPos:0.000,0.000,0.000|FS:0,0>
    <Idle|MPos:0.000,0.000,0.000|FS:0,0>
    $SS
    [MSG:INFO: FluidNC v3.6.5]
    [MSG:INFO: Compiled with ESP32 SDK:v4.4.1-1-gb8050b365e]
    [MSG:INFO: Local filesystem type is spiffs]
    [MSG:INFO: Configuration file:config.yaml]
    [MSG:DBG: Running after-parse tasks]
    [MSG:DBG: Checking configuration]
    [MSG:INFO: Machine Queenbee Pro]
    [MSG:INFO: Board MKS TinyBee V1.0]
    [MSG:INFO: I2SO BCK:gpio.25 WS:gpio.26 DATA:gpio.27]
    [MSG:INFO: SPI SCK:gpio.18 MOSI:gpio.23 MISO:gpio.19]
    [MSG:INFO: SD Card cs_pin:gpio.5 detect:NO_PIN]
    [MSG:INFO: Stepping:I2S_static Pulse:10us Dsbl Delay:2us Dir Delay:1us Idle Delay:25ms]
    [MSG:INFO: User Digital Output:0 on Pin:I2SO.16]
    [MSG:INFO: Axis count 3]
    [MSG:INFO: Axis X (0.000,750.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO:     standard_stepper Step:I2SO.1 Dir:I2SO.2 Disable:I2SO.0]
    [MSG:INFO:  X Neg Limit gpio.33:low:pu]
    [MSG:DBG:  X Neg Limit 0]
    [MSG:INFO: Axis Y (0.000,1260.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO:     standard_stepper Step:I2SO.4 Dir:I2SO.5 Disable:I2SO.3]
    [MSG:INFO:  Y Neg Limit gpio.32:low:pu]
    [MSG:DBG:  Y Neg Limit 0]
    [MSG:INFO:   Motor1]
    [MSG:INFO:     standard_stepper Step:I2SO.13 Dir:I2SO.14 Disable:I2SO.12]
    [MSG:INFO: Axis Z (-130.000,0.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO:     standard_stepper Step:I2SO.7 Dir:I2SO.8 Disable:I2SO.6]
    [MSG:INFO:  Z Pos Limit gpio.22:low:pu]
    [MSG:DBG:  Z Pos Limit 0]
    [MSG:INFO: reset_pin gpio.39:low]
    [MSG:INFO: feed_hold_pin gpio.34:low]
    [MSG:INFO: cycle_start_pin gpio.36:low]
    [MSG:INFO: macro0_pin gpio.16:low:pu]
    [MSG:INFO: macro1_pin gpio.17:low:pu]
    [MSG:INFO: Kinematic system: Cartesian]
    [MSG:INFO: PWM Spindle Ena:gpio.21 Out:gpio.4 Dir:I2SO.21 Freq:2500Hz Period:16383]
    [MSG:INFO: Laser Ena:NO_PIN Out:gpio.2:pd Freq:5000Hz Period:8191]
    [MSG:INFO: Using spindle PWM]
    [MSG:INFO: Flood coolant I2SO.18]
    [MSG:INFO: Mist coolant I2SO.17]
    [MSG:INFO: Probe Pin: gpio.35:low]
    [MSG:INFO: Connecting to STA SSID:DerryNet]
    [MSG:INFO: Connecting.]
    [MSG:INFO: Connected - IP is 192.168.1.109]
    [MSG:INFO: WiFi on]
    [MSG:INFO: Start mDNS with hostname:http://fluidnc.local/]
    [MSG:INFO: SSDP Started]
    [MSG:INFO: HTTP started on port 80]
    [MSG:INFO: Telnet started on port 23]
    

    User Interface Software

    WebUI

    What happened?

    When pressing Flood in the WebUI, the designated output does not toggle.

    Notes:

    • Pressing Mist in the WebUI toggles correctly.
    • Issuing M8 turns on the Flood output correctly.
    • Issuing M9 turns off both outputs correctly.
    • M7, of course, turns on Mist appropriately.
    • Only "Flood" does not work.
    • Outputs enabled/disabled verified via red LED on board and o'scope on terminals.

    The WebUI correctly tries to issue SendRealtimeCmd(0xA0);; however it has no effect.

    Using 0xA1 as a macro works properly for Mist (added via binary editor). Using 0XA0 as a macro doesn't not work at all.

    FluidNc is latest version as shown in $SS output, above.

    Because M8 works, my assumption is that this is a FluidNc bug.

    Other Information

    No response

    opened by balthisar 9
  • Occasional freeze while running

    Occasional freeze while running

    Controller Board

    Pen/Laser Controller SPI

    Machine Description

    String art machine with external stepper driver on x, solenoid on y and servo on z.

    Input Circuits

    No response

    Configuration file

    name: "Stringer"
    board: "FluidNC Pen/Laser"
    
    start:
      must_home: false
      deactivate_parking: false
    
    
    stepping:
      engine: RMT
      # 255: dauerhaft an
      idle_ms: 255
      # dir_delay_us: 5 us
      dir_delay_us: 10
      # pulse_us: not less than 2.5 us
      pulse_us: 3
      # Some motors need a delay from when they are enabled to when they can take the first step.: at least 5 us
      disable_delay_us: 10
    
    axes:
      shared_stepper_disable_pin: gpio.13
      
      # Reifen/Stepper
      x: 
        # actually steps per nail
        # 37.5 steps for 256 nails (600 mm ring)
        # 30   steps for 320 nails (800 mm ring)
        # 32   steps for 300 nails (800 mm ring)
        steps_per_mm: 32
        max_rate_mm_per_min: 17000
        acceleration_mm_per_sec2: 500
        max_travel_mm: 1000
        soft_limits: false
        homing:
          cycle: 1
          positive_direction: true
          allow_single_axis: true
          mpos_mm: 0
          seek_mm_per_min: 1500.000
          feed_mm_per_min: 100.000
          settle_ms: 500
          seek_scaler: 1.100
          feed_scaler: 1.100
        
        motor0:
          limit_pos_pin: gpio.15:pu
          hard_limits: false
          pulloff_mm: 2.0
          standard_stepper:
            step_pin: gpio.14
            direction_pin: gpio.12
    
    
      # Fädler/Solenoid
      y:
        steps_per_mm: 100.000
        max_rate_mm_per_min: 2000.000
        acceleration_mm_per_sec2: 500.000
        max_travel_mm: 5.000
        soft_limits: false
        homing:
          cycle: 0
          positive_direction: true
          mpos_mm: 0
          feed_mm_per_min: 100.000
          seek_mm_per_min: 200.000
          settle_ms: 500
          seek_scaler: 1.100
          feed_scaler: 1.100
    
        motor0:
          solenoid:
            output_pin: gpio.27
            pwm_hz: 1000
            off_percent: 0.000
            pull_percent: 100.000
            hold_percent: 100.000
            pull_ms: 100
    
    
      # Bohrer/Servo
      z:
        steps_per_mm: 80
        max_rate_mm_per_min: 1500
        acceleration_mm_per_sec2: 100
        max_travel_mm: 40
        soft_limits: false
        homing:
          cycle: 0
          positive_direction: true
          mpos_mm: 2
          feed_mm_per_min: 100.000
          seek_mm_per_min: 200.000
          settle_ms: 500
          seek_scaler: 1.100
          feed_scaler: 1.100
        
        motor0:
          rc_servo:
            pwm_hz: 50
            output_pin: gpio.22
            min_pulse_us: 540
            max_pulse_us: 2470
    
    relay:
      output_pin: gpio.2
      spinup_ms: 500
      spindown_ms: 1000
      tool_num: 0
      speed_map: 0=0.000% 0=100.000% 1=100.000%
    
    spi:
      miso_pin: gpio.19
      mosi_pin: gpio.23
      sck_pin: gpio.18
    
    sdcard:
      cs_pin: gpio.5
      card_detect_pin: NO_PIN
    
    control:
      # feed_hold_pin: gpio.32:low
      cycle_start_pin: gpio.33:low:pu  # no pu for 3.4.4
      safety_door_pin: gpio.32:low:pu  # no pu for 3.4.4
      # reset_pin: NO_PIN
    

    Startup Messages

    $ss
    [MSG:INFO: FluidNC v3.6.5]
    [MSG:INFO: Compiled with ESP32 SDK:v4.4.1-1-gb8050b365e]
    [MSG:INFO: Local filesystem type is spiffs]
    [MSG:INFO: Configuration file:stringer_config.yaml]
    [MSG:INFO: Machine Stringer]
    [MSG:INFO: Board FluidNC Pen/Laser]
    [MSG:INFO: SPI SCK:gpio.18 MOSI:gpio.23 MISO:gpio.19]
    [MSG:INFO: SD Card cs_pin:gpio.5 detect:NO_PIN]
    [MSG:INFO: Stepping:RMT Pulse:3us Dsbl Delay:10us Dir Delay:10us Idle Delay:255ms]
    [MSG:INFO: Axis count 3]
    [MSG:INFO: Shared stepper disable gpio.13]
    [MSG:INFO: Axis X (-1000.000,0.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO:     standard_stepper Step:gpio.14 Dir:gpio.12 Disable:NO_PIN]
    [MSG:INFO:  X Pos Limit gpio.15:pu]
    [MSG:INFO: Axis Y (-5.000,0.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO:     solenoid Pin: gpio.27 Off: 0.000 Hold: 100.000 Pull:100.000 Duration:100 pwm hz:1000 period:1000]
    [MSG:INFO: Axis Z (-38.000,2.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO:     rc_servo Pin:gpio.22 Pulse Len(540,2470 period:1048575)]
    [MSG:INFO: safety_door_pin gpio.32:low:pu]
    [MSG:INFO: cycle_start_pin gpio.33:low:pu]
    [MSG:INFO: Kinematic system: Cartesian]
    [MSG:INFO: Relay Spindle Ena:NO_PIN Out:gpio.2 Dir:NO_PIN]
    [MSG:INFO: Using spindle Relay]
    [MSG:INFO: Connecting to STA SSID:Hakaniemi]
    [MSG:INFO: Connecting.]
    [MSG:INFO: Connected - IP is 192.168.178.28]
    [MSG:INFO: WiFi on]
    [MSG:INFO: Start mDNS with hostname:http://stringer.local/]
    [MSG:INFO: SSDP Started]
    [MSG:INFO: HTTP started on port 80]
    [MSG:INFO: Telnet started on port 23]
    

    User Interface Software

    WebUI

    What happened?

    Machine works perfectly under FNC 3.4.4 with WebUI only. Exept for crashes, when the WebUI went away. I saw that this was fixed in 3.6.5, so I updated firmware and WebUI.

    Under both versions of FNC, I ran the same G-Code file, which is around 400 KB.

    Under 3.6.5, the WebUI going away does not seem like a problem anymore. But three times during that run, the machine stopped hard, without deceleration, and was dead for around 20 seconds. After that, the program continued, but position on x (stepper) was lost.

    The G-Code used is output by a modification of Barts python script for the string art machine. It looks like this:

    G90
    G21
    G0 Y0.00
    G10 L20 P0 X264
    
    (MSG Starting line 0)
    (Go from 0 to 264)
    G0 X264.50 Y0.00
    G4 P0.1
    G0 Y5.00
    G1 X263.50 F500
    G0 Y0.00
    G4 P0.2
    
    (MSG Starting line 1)
    (Go from 264 to 184)
    G0 X184.50 Y0.00
    G4 P0.1
    G0 Y5.00
    G1 X183.50 F500
    G0 Y0.00
    G4 P0.2
    
    (MSG Starting line 2)
    (Go from 184 to 27)
    G0 X327.50 Y0.00
    G4 P0.1
    G0 Y5.00
    G1 X326.50 F500
    G0 Y0.00
    G4 P0.2
    
    (MSG Starting line 3)
    (Go from 27 to 179)
    G0 X179.50 Y0.00
    G4 P0.1
    G0 Y5.00
    G1 X178.50 F500
    G0 Y0.00
    G4 P0.2
    

    and so on.

    Exept for the firmware update, nothing was changed.

    Other Information

    More of a sidenote: under 3.6.5, cycle_start_pin and safety_door_pin need to have Pull Ups activated. But not under 3.4.4. That's odd.

    opened by deranku 6
  • Feature: Support for MKS DLC32 board plus TS35-R LCD display.

    Feature: Support for MKS DLC32 board plus TS35-R LCD display.

    Machine Context

    MKS DLC32 board plus TS35-R LCD display.

    Feature Description

    Makerbase makes it's firmware open source and published source on GitHub: https://github.com/makerbase-mks/MKS-DLC32-FIRMWARE Maybe there is a chance to integrate TS35-R display with FluidNC?

    Other Approaches

    How I Can Help

    I have DLC32 and TS35-R and can help with testing.

    enhancement 
    opened by AndWalu 5
Releases(v3.6.5)
Owner
null
Make Epsilon Great again - Project Mu UEFI Firmware for Surface Duo (First Generation) Devices

Project Mu UEFI Implementation for Surface Duo Build Quick notes for building: Use Ubuntu 20.04 x64 Generate ACPI tables with IASL Follow this quick d

WOA Project 99 Dec 22, 2022
ESP32 firmware to read and control EMS and Heatronic compatible equipment such as boilers, thermostats, solar modules, and heat pumps

EMS-ESP is an open-source firmware for the Espressif ESP8266 and ESP32 microcontroller that communicates with EMS (Energy Management System) based equipment from manufacturers like Bosch, Buderus, Nefit, Junkers, Worcester and Sieger.

EMS-ESP 274 Jan 8, 2023
Control Heidelberg Wallbox Energy Control over WiFi using ESP8266 and configure your own local load management

< scroll down for English version and additional information > wbec WLAN-Anbindung der Heidelberg WallBox Energy Control über ESP8266 Die Heidelberg W

null 95 Jan 3, 2023
Bobby Cooke 328 Dec 25, 2022
Harsh Badwaik 1 Dec 19, 2021
Budgie Control Center is a fork of GNOME Control Center for the Budgie 10 Series.

Budgie Control Center Budgie Control Center is a fork of GNOME Settings / GNOME Control Center with the intent of providing a simplified list of setti

Buddies of Budgie 14 Dec 12, 2022
Next gen. of NekoCal: An open-source hackable and programmable e-paper display

NekoInk NekoInk is an open-source, programmable, and versatile E-paper display platform. It offers connectivity options to various type of E-paper scr

Wenting Zhang 51 Nov 16, 2022
How To Build The NeXT ROM Monitor From Sources

How To Build The NeXT ROM Monitor From Sources

Jeffrey H. Johnson 15 Nov 20, 2022
this project is a function in c to take the next line of a file or a file descriptor. this is a project of 42 school.

Get Next Line of 42. Make with ❤︎ for Luiz Cezario ?? Index What's this Repo? List of Archives Technologies How to Run Find a Bug? Or somenthing need

Luiz lima cezario 7 Nov 28, 2022
Next-gen Rowhammer fuzzer that uses non-uniform, frequency-based patterns.

Blacksmith Rowhammer Fuzzer This repository provides the code accompanying the paper Blacksmith: Scalable Rowhammering in the Frequency Domain that is

Computer Security Group @ ETH Zurich 173 Nov 16, 2022
Next Index to Query Kmer Intersection

NIQKI NIQKI stand for Next Index to Query K-mer Intersection. NIQKI is an sketch based software, similar to Mash or Dashing, which can index the large

Antoine Limasset 15 Nov 3, 2022
Get Next Line is a project at 42. It is a function that reads a file and allows you to read a line ending with a newline character from a file descriptor

Get Next Line is a project at 42. It is a function that reads a file and allows you to read a line ending with a newline character from a file descriptor. When you call the function again on the same file, it grabs the next line

Mhamed Ajjig 5 Nov 15, 2022
mCube's ultra-low-power wake-on-motion 3-axis accelerometer

MC3635 mCube's ultra-low-power wake-on-motion 3-axis accelerometer Based on mCube's Arduino demo driver, this sketch is specific for the MC3635 3-axis

Kris Winer 4 Aug 26, 2022
Motion planner built upon Tesseract and Trajopt

motion_planner Motion planner built upon Tesseract and Trajopt The abb_example package is similar to the tesseract_ros_examples, but it contain more e

Mohamed Ahmed 8 Jan 18, 2022
DIY Zigbee CC2530 Motion sensor (AM312/ AM412/ BS312/ BS412), Temperature /Humidity /Pressure sensor (BME280), Ambient Light sensor (BH1750), 2.9inch e-Paper Module

How to join: If device in FN(factory new) state: Press and hold button (1) for 2-3 seconds, until device start flashing led Wait, in case of successfu

Sergey Koptyakov 5 Feb 13, 2022
DIY Zigbee CC2530 Motion sensor (AM312/ AM412/ BS312/ BS412), Temperature /Humidity /Pressure sensor (BME280), Ambient Light sensor (BH1750), 2.9/2.13/1.54 inch e-Paper Module

How to join: If device in FN(factory new) state: Press and hold button (1) for 2-3 seconds, until device start flashing led Wait, in case of successfu

Sergey Koptyakov 33 Dec 9, 2022
Updated Vindriktning with Wifi Connectivity, Motion sensor, Temperature and Humidity

Vindriktning-plus Updated Vindriktning with Wifi Connectivity, Motion sensor, Temperature and Humidity Inspired & parts of the code are used from: htt

Glittering Dealer 4 Sep 20, 2022
Code accompanying our SIGGRAPH 2021 Technical Communications paper "Transition Motion Tensor: A Data-Driven Approach for Versatile and Controllable Agents in Physically Simulated Environments"

SIGGRAPH ASIA 2021 Technical Communications Transition Motion Tensor: A Data-Driven Framework for Versatile and Controllable Agents in Physically Simu

null 10 Apr 21, 2022
a Lightweight Motion Planning Package

MPlib MPlib is a lightweight python package for motion planning, which is decoupled from ROS and is easy to set up. With a few lines of python code, o

Hao Su's Lab, UCSD 32 Dec 30, 2022