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.

Issues
  • 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
  • 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 32
  • More of a me issue I'm sure.

    More of a me issue I'm sure.

    Right off the wiki this is what i see, "Use this one for external drivers or when only step direction and enable are needed.

    example

    motor0:
      standard_stepper:
        step_pin: I2SO.5
        direction_pin: I2SO.4
        disable_pin: gpio.16:low"
    

    Are you using I2SO pins for a reason? I thought from what i understand in the wiki those were for some kind of IO extenders? and otherwise i should use GPIO pins?

    I'm using DM542T drivers. hopefully end result i can use squaring. I guess it's not totally necessary because i have 2 1605 ball screws for my Y/Y2 axis. Iv'e got everything running off the latest Precompiled version, but Im having so many issues intermittently (not wiring) pretty confident on that. both Ys work then 1 Y works then no motors work. If i change step pulse config to 0 in my config.Yaml the motors wont respond. If I Leave it set to 2 and change it to 0 in webui and it works. I'm almost positive it's my Config..

    Is this ganged right? y: steps_per_mm: 800 max_rate_mm_per_min: 2000 acceleration_mm_per_sec2: 25 max_travel_mm: 1000 homing: cycle: 2 mpos_mm: 10 positive_direction: false

    motor0:
      limit_all_pin: gpio.4:low:pu
      stepstick:
        direction_pin: gpio.15
        step_pin: gpio.26
    motor1:
      limit_all_pin: gpio.16:low:pu
      stepstick:
        direction_pin: gpio.33
        step_pin: gpio.27
    

    I have been driving these off 3.3v without issue. Not saying it cant have an effect. Just hasn't yet.

    opened by Wankah 26
  • Stepper disable during jog

    Stepper disable during jog

    Hi. Release v3.3.1

    I set in config.yaml direction_pin: gpio.22

    axes: shared_stepper_disable_pin: gpio.13:high

    x: steps_per_mm: 100 max_rate_mm_per_min: 4000 acceleration_mm_per_sec2: 200 max_travel_mm: 400 homing: cycle: 2 mpos_mm: 10 positive_direction: false

    motor0:
      limit_neg_pin: gpio.35:low
      standard_stepper:
        direction_pin: gpio.22:high
        step_pin: gpio.21
    motor1:
      null_motor:
    

    But it is not work. The direction_pin: gpio.22 not change status low\hi if i chande direction.

    bug 
    opened by DEST1981 24
  • Prevent flashing (bricking) ESP32 if secureboot and/or flashencryption is enabled

    Prevent flashing (bricking) ESP32 if secureboot and/or flashencryption is enabled

    Hi, i just bricked a voidmicro.com laserenvraver board by flashing fuidnc using the windows batch script. After uploading the esp stuck in a boot loop:

    ets Jun  8 2016 00:22:57
    
    rst:0x10 (RTCWDT_RTC_RESET),boot:0x37 (SPI_FAST_FLASH_BOOT)
    flash read err, 1000
    ets_main.c 371
    

    The upload went flawlessly and i was able to verify the flash contents by using esptool.exe.

    The issue is caused by secureboot and flashencryption set by the manufacturer. These options do not prevent the user from flashing the device. Flashing unencrypted binarys will render the device useless. These security options cannot be disabled once activated.

    Please refer to: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/security/secure-boot-v1.html https://docs.espressif.com/projects/esp-idf/en/latest/esp32/security/flash-encryption.html https://limitedresults.com/2019/11/pwn-the-esp32-forever-flash-encryption-and-sec-boot-keys-extraction/

    After flashing the esp32 the original flash-contents are no longer present. Using the described attack vector to obtain the AES Keys is no longer possible (and far to complicated).

    I end up replacing the esp32 on that board.

    The flash-scripts should be extended to use expfuse.exe prior to flashing the device. If security options are set, inform the User: This chip is not able to run any other firmware than the original due to security options set by the manufacturer! Using other flash methods may seem to work, but will brick the device! Don't do it, SERIOUSLY!

    Here is a espfuse-summary of my bricked esp32:

    C:\Users\m-sja\Downloads\fluidnc-v3.2.5\win64>espefuse.exe -p com7 -b 115200 -c esp32 summary
    Connecting...
    Device PID identification is only supported on COM and /dev/ serial ports.
    ...........
    espefuse.py v3.2
    EFUSE_NAME (Block) Description  = [Meaningful Value] [Readable/Writeable] (Hex Value)
    ----------------------------------------------------------------------------------------
    Calibration fuses:
    BLK3_PART_RESERVE (BLOCK0):                        BLOCK3 partially served for ADC calibration data   = False R/W (0b0)
    ADC_VREF (BLOCK0):                                 Voltage reference calibration                      = 1100 R/W (0b10000)
    
    Config fuses:
    XPD_SDIO_FORCE (BLOCK0):                           Ignore MTDI pin (GPIO12) for VDD_SDIO on reset     = False R/W (0b0)
    XPD_SDIO_REG (BLOCK0):                             If XPD_SDIO_FORCE, enable VDD_SDIO reg on reset    = False R/W (0b0)
    XPD_SDIO_TIEH (BLOCK0):                            If XPD_SDIO_FORCE & XPD_SDIO_REG                   = 1.8V R/W (0b0)
    CLK8M_FREQ (BLOCK0):                               8MHz clock freq override                           = 50 R/W (0x32)
    SPI_PAD_CONFIG_CLK (BLOCK0):                       Override SD_CLK pad (GPIO6/SPICLK)                 = 0 R/W (0b00000)
    SPI_PAD_CONFIG_Q (BLOCK0):                         Override SD_DATA_0 pad (GPIO7/SPIQ)                = 0 R/W (0b00000)
    SPI_PAD_CONFIG_D (BLOCK0):                         Override SD_DATA_1 pad (GPIO8/SPID)                = 0 R/W (0b00000)
    SPI_PAD_CONFIG_HD (BLOCK0):                        Override SD_DATA_2 pad (GPIO9/SPIHD)               = 0 R/W (0b00000)
    SPI_PAD_CONFIG_CS0 (BLOCK0):                       Override SD_CMD pad (GPIO11/SPICS0)                = 0 R/W (0b00000)
    DISABLE_SDIO_HOST (BLOCK0):                        Disable SDIO host                                  = False R/W (0b0)
    
    Efuse fuses:
    WR_DIS (BLOCK0):                                   Efuse write disable mask                           = 388 R/W (0x0184)
    RD_DIS (BLOCK0):                                   Efuse read disable mask                            = 3 R/W (0x3)
    CODING_SCHEME (BLOCK0):                            Efuse variable block length scheme
      = NONE (BLK1-3 len=256 bits) R/W (0b00)
    KEY_STATUS (BLOCK0):                               Usage of efuse block 3 (reserved)                  = False R/W (0b0)
    
    Identity fuses:
    MAC (BLOCK0):                                      Factory MAC Address
      = 40:f5:20:81:b4:04 (CRC 0xe0 OK) R/W
    MAC_CRC (BLOCK0):                                  CRC8 for factory MAC address                       = 224 R/W (0xe0)
    CHIP_VER_REV1 (BLOCK0):                            Silicon Revision 1                                 = True R/W (0b1)
    CHIP_VER_REV2 (BLOCK0):                            Silicon Revision 2                                 = False R/W (0b0)
    CHIP_VERSION (BLOCK0):                             Reserved for future chip versions                  = 2 R/W (0b10)
    CHIP_PACKAGE (BLOCK0):                             Chip package identifier                            = 1 R/W (0b001)
    MAC_VERSION (BLOCK3):                              Version of the MAC field                           = 0 R/W (0x00)
    
    Security fuses:
    FLASH_CRYPT_CNT (BLOCK0):                          Flash encryption mode counter                      = 1 R/- (0b0000001)
    UART_DOWNLOAD_DIS (BLOCK0):                        Disable UART download mode (ESP32 rev3 only)       = False R/- (0b0)
    FLASH_CRYPT_CONFIG (BLOCK0):                       Flash encryption config (key tweak bits)           = 15 R/W (0xf)
    CONSOLE_DEBUG_DISABLE (BLOCK0):                    Disable ROM BASIC interpreter fallback             = True R/W (0b1)
    ABS_DONE_0 (BLOCK0):                               Secure boot V1 is enabled for bootloader image     = True R/W (0b1)
    ABS_DONE_1 (BLOCK0):                               Secure boot V2 is enabled for bootloader image     = False R/W (0b0)
    JTAG_DISABLE (BLOCK0):                             Disable JTAG                                       = True R/W (0b1)
    DISABLE_DL_ENCRYPT (BLOCK0):                       Disable flash encryption in UART bootloader        = True R/W (0b1)
    DISABLE_DL_DECRYPT (BLOCK0):                       Disable flash decryption in UART bootloader        = True R/W (0b1)
    DISABLE_DL_CACHE (BLOCK0):                         Disable flash cache in UART bootloader             = True R/W (0b1)
    BLOCK1 (BLOCK1):                                   Flash encryption key
      = ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? -/-
    BLOCK2 (BLOCK2):                                   Secure boot key
      = ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? -/-
    BLOCK3 (BLOCK3):                                   Variable Block 3
      = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
    
    Flash voltage (VDD_SDIO) determined by GPIO12 on reset (High for 1.8V, Low/NC for 3.3V).
    

    and a espfuses-dump of my bricked esp32:

    C:\Users\m-sja\Downloads\fluidnc-v3.2.5\win64>espefuse.exe -p com7 -b 115200 -c esp32 dump fuse.hex
    Connecting...
    Device PID identification is only supported on COM and /dev/ serial ports.
    
    BLOCK0          (                ) [0 ] read_regs: 00130184 2081b404 00e040f5 0000a200 00001032 f0000000 000003d4
    BLOCK1          (flash_encryption) [1 ] read_regs: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
    BLOCK2          (secure_boot_v1 s) [2 ] read_regs: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
    BLOCK3          (                ) [3 ] read_regs: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
    
    EFUSE_REG_DEC_STATUS        0x00000000
    

    Here is a espfuse-dump of the new esp32:

    C:\Users\m-sja\Downloads\fluidnc-v3.2.5\win64>espefuse.exe -p COM7 -b 115200 dump
    Connecting.....
    Detecting chip type... Unsupported detection protocol, switching and trying again...
    Connecting...
    Detecting chip type... ESP32
    BLOCK0          (                ) [0 ] read_regs: 00000000 a49b4224 007a30ae 00008200 00000036 00000000 00000004
    BLOCK1          (flash_encryption) [1 ] read_regs: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
    BLOCK2          (secure_boot_v1 s) [2 ] read_regs: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
    BLOCK3          (                ) [3 ] read_regs: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
    
    EFUSE_REG_DEC_STATUS        0x00000000
    

    The first section of Block0 is the interesting one.

    As one of your projects goals is lo lower the barrier to for new users, it should be obvious also protect them from bricking their devices wherever possible.

    Thank you very much for all the effort you put in these cnc-projects!!! If you have any questions, i'll try to help as best as i can.

    Best regards Marian

    opened by m-sja 24
  • xPro V5 - x/y/y1/z axis motor error

    xPro V5 - x/y/y1/z axis motor error

    Hi,

    First thanks to bdring for this awesome project and your support.

    Got the machine.h converted with the tool: https://github.com/bdring/Grbl_Esp32/issues/1152

    Upon loading the config file to xPro v5, I get axis error on all motors. HW and my setup is working OK (with xPro v5 stock FW)

    @Spark-Concepts team; There seem to be many of us here using your product. It would be great if you would post yaml files for your configurations…

    Here’s the boot up log:

    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:0x3fff0018,len:4 load:0x3fff001c,len:1044 load:0x40078000,len:10124 load:0x40080400,len:5856 entry 0x400806a8

    [MSG:INFO: FluidNC v3.4.3] [MSG:INFO: Compiled with ESP32 SDK:v3.3.5-1-g85c43024c] [MSG:INFO: Configuration file:config.yaml] [MSG:INFO: Machine CNC_xPRO_V5_Machine_Template] [MSG:INFO: Board 0407_v0.13] [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 (-300.000,0.000)] [MSG:INFO: Motor0] [MSG:INFO: tmc_5160 Step:gpio.12 Dir:gpio.14 CS:gpio.17:low Disable:NO_PIN Index:0 R:0.050] [MSG:INFO: All Limit gpio.35:low] [MSG:INFO: Motor1] [MSG:INFO: Axis Y (-300.000,0.000)] [MSG:INFO: Motor0] [MSG:INFO: tmc_5160 Step:gpio.27 Dir:gpio.26 CS:NO_PIN Disable:NO_PIN Index:1 R:0.050] [MSG:INFO: All Limit gpio.34:low] [MSG:INFO: Motor1] [MSG:INFO: tmc_5160 Step:gpio.33 Dir:gpio.32 CS:NO_PIN Disable:NO_PIN Index:2 R:0.050] [MSG:INFO: Axis Z (0.000,300.000)] [MSG:INFO: Motor0] [MSG:INFO: tmc_5160 Step:gpio.15 Dir:gpio.2 CS:NO_PIN Disable:NO_PIN Index:3 R:0.050] [MSG:INFO: All Limit gpio.39:low] [MSG:INFO: Motor1] [MSG:ERR: X Axis driver test failed. Check connection] [MSG:ERR: Y Axis driver test failed. Check connection] [MSG:ERR: Y2 Axis driver test failed. Check connection] [MSG:ERR: Z Axis driver test failed. Check connection] [MSG:INFO: Door gpio.16:low:pu] [MSG:INFO: Macro 0 gpio.13:low:pu] [MSG:INFO: Macro 1 gpio.0:low:pu] [MSG:INFO: Kinematic system: Cartesian] [MSG:INFO: PWM Spindle Ena:gpio.4 Out:gpio.25 Dir:NO_PIN Freq:5000Hz Res:13bits] [MSG:INFO: Using spindle PWM] [MSG:INFO: Mist coolant gpio.21] [MSG:INFO: Probe Pin: gpio.22:low:pu] [MSG:INFO: Connecting to STA SSID:xxxxxxxx] [MSG:INFO: Connecting.] [MSG:INFO: Connecting..] [MSG:INFO: Connected - IP is 192.168.51.220] [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 3.4 [FluidNC v3.4.3 (wifi) '$' for help] [MSG:INFO: '$H'|'$X' to unlock]

    help wanted 
    opened by possu911 23
  • Problem:  FluidNC 3.4.6 skips steps when 3.4.4 does not with same config and gcode

    Problem: FluidNC 3.4.6 skips steps when 3.4.4 does not with same config and gcode

    Controller Board

    6-pack

    Help From Board Vendor

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

    Machine Description

    Flatbed router with DM556 drivers, M091-FD09 https://www.datasheets.com/en/part-details/m091-fd09-superior-electric-79098766

    Configuration file

    name: 6 Pack External XYZ with relay
    board: 6-pack
    meta: b44
    
    kinematics:
      Cartesian:
    
    stepping:
      engine: I2S_STREAM
      idle_ms: 255
      dir_delay_us: 5
      pulse_us: 4
      disable_delay_us: 4
    
    axes:
      x:
        steps_per_mm: 98.175
        max_rate_mm_per_min: 20000.000
        acceleration_mm_per_sec2: 400.000
        max_travel_mm: 2580.000
        soft_limits: false
        homing:
          cycle: 2
          allow_single_axis: true
          mpos_mm: 0.000
          positive_direction: false
          settle_ms: 250.000
          seek_mm_per_min: 5000.000
          feed_mm_per_min: 200.000
          seek_scaler: 1.100
          feed_scaler: 1.100
        motor0:
          limit_neg_pin: gpio.33:high
          limit_pos_pin: gpio.32:high
          limit_all_pin: NO_PIN
          hard_limits: true
          pulloff_mm: 5.000
          standard_stepper:
            direction_pin: i2so.1:high
            step_pin: i2so.2:low
            disable_pin: i2so.0:low
      y:
        steps_per_mm: 98.195
        max_rate_mm_per_min: 20000.000
        acceleration_mm_per_sec2: 400.000
        max_travel_mm: 1270.000
        soft_limits: false
        homing:
          cycle: 2
          allow_single_axis: true
          mpos_mm: 0.000
          positive_direction: false
          settle_ms: 250.000
          seek_mm_per_min: 5000.000
          feed_mm_per_min: 200.000
          seek_scaler: 1.100
          feed_scaler: 1.100
        motor0:
          limit_neg_pin: gpio.35:high
          limit_pos_pin: gpio.34:high
          limit_all_pin: NO_PIN
          hard_limits: true
          pulloff_mm: 5.000
          standard_stepper:
            direction_pin: i2so.4:high
            step_pin: i2so.5:low
            disable_pin: i2so.7:low
      z:
        steps_per_mm: 399.000
        max_rate_mm_per_min: 1000.000
        acceleration_mm_per_sec2: 200.000
        max_travel_mm: 70.000
        soft_limits: false
        homing:
          cycle: 1
          allow_single_axis: true
          mpos_mm: 0.0
          positive_direction: true
          settle_ms: 250.000
          seek_mm_per_min: 1000.000
          feed_mm_per_min: 200.000
          seek_scaler: 1.100
          feed_scaler: 1.1000
        motor0:
          limit_pos_pin: gpio.2:high
          limit_all_pin: NO_PIN
          hard_limits: true
          pulloff_mm: 5.000
          standard_stepper:
            direction_pin: i2so.9:low
            step_pin: i2so.10:low
            disable_pin: i2so.8:low
    
    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:
      cs_pin: gpio.5
    
    control:
      feed_hold_pin: gpio.36
      cycle_start_pin: gpio.39
    
    coolant:
      mist_pin: gpio.14
      delay_ms: 1000.000
    
    probe:
      pin: gpio.25:high
      check_mode_start: true
    
    macros:
      startup_line0: 
      startup_line1: 
      macro0: 
      macro1: 
      macro2: 
      macro3: 
    
    start:
      must_home: true
      check_limits: true
      deactivate_parking: false
    
    user_outputs:
    
    relay:
      tool_num: 0
      speed_map: 0=0.0% 18000=100.0%
      spinup_ms: 2000
      spindown_ms: 10000
      output_pin: gpio.26
      disable_with_s0: false
      s0_with_disable: false
      spinup_ms: 0
      spindown_ms: 0
    arc_tolerance_mm: 0.002
    junction_deviation_mm: 0.010
    verbose_errors: true
    report_inches: false
    enable_parking_override_control: false
    use_line_numbers: true
    

    Startup Messages

    [MSG:INFO: FluidNC v3.4.4]
    [MSG:INFO: Compiled with ESP32 SDK:v3.3.5-1-g85c43024c]
    [MSG:INFO: Configuration file:config.yaml]
    [MSG:INFO: Machine 6 Pack External XYZ with relay]
    [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:4us Dir Delay:5us Idle Delay:255ms]
    [MSG:INFO: Axis count 3]
    [MSG:INFO: Axis X (0.000,2580.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO:     standard_stepper Step:I2SO.2:low Dir:I2SO.1 Disable:I2SO.0:low]
    [MSG:INFO:     Neg Limit gpio.33]
    [MSG:INFO:     Pos Limit gpio.32]
    [MSG:INFO: Axis Y (0.000,1270.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO:     standard_stepper Step:I2SO.5:low Dir:I2SO.4 Disable:I2SO.7:low]
    [MSG:INFO:     Neg Limit gpio.35]
    [MSG:INFO:     Pos Limit gpio.34]
    [MSG:INFO: Axis Z (-70.000,0.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO:     standard_stepper Step:I2SO.10:low Dir:I2SO.9:low Disable:I2SO.8:low]
    [MSG:INFO:     Pos Limit gpio.2]
    [MSG:INFO: FeedHold gpio.36]
    [MSG:INFO: CycleStart gpio.39]
    [MSG:INFO: Kinematic system: Cartesian]
    [MSG:INFO: Relay Spindle Ena:NO_PIN Out:gpio.26 Dir:NO_PIN]
    [MSG:INFO: Using spindle Relay]
    [MSG:INFO: Mist coolant gpio.14]
    [MSG:INFO: Probe Pin: gpio.25]
    [MSG:INFO: Connecting to STA SSID:BA WIFI]
    [MSG:INFO: Connecting.]
    [MSG:INFO: Connecting..]
    [MSG:INFO: Connected - IP is 192.168.1.2]
    [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, Fluidterm

    What happened?

    Using FluidNC 3.4.4 all is OK. Installed 3.4.6 and the stepper motors start missing steps, no error messages but a grinding noise from the motors. Reinstall 3.4.4 and it works as expected. Tried slowing down the movement rate (using a pen in the router rather than a bit AND did the process above the job). With 3.4.6 (and 3.4.5) the issue showed up. Tried just doing a 1.5mx1.2m rectangle plus the diagonals as an air cut and the issue occurred. With 3.4.4 there is no issue with the steppers or locations. Tried putting resistance on the Y-axis beam as the job moved on the X-axis and it would pull me over, the same with the Y-Axis.

    The failures seemed to occur irrespective of the complexity of the g-code. i.e. complex curves with lots of g-code did not affect the rate of failures. The speed of the movement seemed to increase the number of errors when they occurred.

    On slower jobs, you can hear the stepper motors stutter (very slight hesitation) and if watching the X-axis rails you can just see the slight hesitation. On faster jobs, the whole axis locks up. pattern - example.g.txt.zip

    Other Information

    Testing the new version of FluidNC on 6-Pack_CNC_Controller which was using Grbl-esp32 previously. Changeover was made to make it easier to maintain by owner due to text file configurations.

    opened by jongough 21
  • How easy is it to switch between wifi and bluetooth?

    How easy is it to switch between wifi and bluetooth?

    FluidNC 3.2.8

    Can anyone explain how in FluidNC you can switch from wifi mode to bluetooth mode and back using the commands [esp...]? If I understand correctly, for this you need to run files on the PC either install-bt.bat or install-wifi.bat. Then only one thing will work. As for me, this is not very inconvenient and requires the use of a PC in the workshop. In the GRBL_ESP32 version, this is much easier and all this can be done from a smartphone or tablet. Or I don't know the correct commands for FluidNC.

    If so, can the developers tell how this can be done (if possible) from a smartphone or tablet, or simplify this procedure and make the switch between wifi and bluetooth and vice versa the way it is in GRBL_ESP32?

    Thanks.

    help wanted 
    opened by IgorPack 21
  • File index.html.gz is missing, please upload it

    File index.html.gz is missing, please upload it

    I tried to flash the latest FluidNC on a ESP32 dev board. When I try to connect to it (AP) it says you need to log in and it opens a page that says "File index.html.gz is missing, please upload it".. Any advice?

    opened by TadyTheFish 21
  • Filename too long - Web UI wont launch - Loading...

    Filename too long - Web UI wont launch - Loading...

    Please only submit bugs for the latest version of the code. You can check the version number in the startup messages.

    Do not add the bug label. The developers of this repo will do that after confirming the issue.

    Please provide the FluidNC boot messages per this page.

    Select a COM port 0: COM1 (\Device\Serial0) 1: COM3 (\Device\Silabser0) Choice: 1 Using COM3 Ctrl-] to exit, Ctrl-U to upload, Ctrl-R to reset [MSG:INFO: Filename too long] [MSG:INFO: Filename too long] [MSG:INFO: Filename too long] [MSG:INFO: Filename too long] [MSG:INFO: Filename too long] [MSG:INFO: Filename too long] Resetting MCU [MSG:INFO: Filename too long] [MSG:INFO: Filename too long] 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:0x3fff0018,len:4 load:0x3fff001c,len:1044 load:0x40078000,len:10124 load:0x40080400,len:5856 entry 0x400806a8

    [MSG:INFO: FluidNC v3.4.1] [MSG:INFO: Compiled with ESP32 SDK:v3.3.5-1-g85c43024c] [MSG:INFO: Cannot open configuration file:config.yaml] [MSG:INFO: Using default configuration] [MSG:INFO: Axes: using defaults] [MSG:INFO: Machine Default (Test Drive)] [MSG:INFO: Board None] [MSG:INFO: SPI not defined] [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: 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.4 [FluidNC v3.4.1 (wifi) '$' for help] [MSG:INFO: Filename too long] [MSG:INFO: Filename too long] [MSG:INFO: Filename too long] [MSG:INFO: Filename too long] [MSG:INFO: Filename too long] [MSG:INFO: Filename too long] [MSG:INFO: Filename too long] [MSG:INFO: Filename too long] [MSG:INFO: Filename too long] [MSG:INFO: Filename too long] [MSG:INFO: Filename too long] [MSG:INFO: Filename too long] [MSG:INFO: Filename too long] [MSG:INFO: Filename too long] [MSG:INFO: Filename too long] [MSG:INFO: Filename too long]

    Please answer the following questions.

    What version of the firmware are you using? v3.4.1

    Is the problem repeatable? Yes

    Under what conditions does the bug occur? When I'm opening the browser UI on my tablet. Works on my PC and Laptop. My old ESP32_Grbl works on the tablet. The FluidNC worked on my tablet a few days ago. Doesn't work any longer for unknown reasons. The browser says "Loading..." continuously. I now notice all of the "filename too long" messages everywhere upon reset and about 10 seconds after the Grbl prompt appears. Will also get two "filename too long' msgs echod in my command prompt every time I refresh my WebUI browser. The browser on the tablet says "Loading..." and sits there forever, rather than opening the ESP3D interface. I have erased my dev board using your batch file. Reloaded the firmware. There has been no change to the UI behavior or "Filename too long" messages in the command prompt. Also tried deleting all files from LocalFS except index.html.gz. I reset the name of the config file back to config.yaml. By the way, seems an "erase" doesn't completely erase the ESP32. After reinstalling the firmware I noticed my config file was still the same name in the config, and still appeared in the filesystem. I attached a few files documents my 15 hour ordeal over a 3 day period. Should put you to sleep at night. By the way, how do you clear the error messages via $E?

    Important If you paste firmware code, please use Markdown Code and Syntax Highlighting with language C++. Use the three back tick method.

      #define EASIER_TO_READ true
    

    Tablet-browserNotWorking.odt Tablet-filenametoolong.odt Tablet-browserNotWorking.odt

    opened by Gerard1983 20
  • Problem:  in v3.4.6 and v3.4.5 axes X, Y do not work

    Problem: in v3.4.6 and v3.4.5 axes X, Y do not work

    Controller Board

    in v3.4.6 and v3.4.5 axes X, Y do not work and axes Z, A work in v3.4.1..2..3 all axes work I have coreXY , tried it in different ways and rolled back please correct and how can I help you?

    Help From Board Vendor

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

    Machine Description

    coreXY , esp32 , 4axis xyza , tangential knife tang

    Configuration file

    name: "ESP32 V4 corexy"
    board: "ESP32"
    meta: "N_ver 3.4.1"
    
    stepping:
      engine: RMT
      idle_ms: 254
      dir_delay_us: 2
      pulse_us: 1
      disable_delay_us: 0
    
    kinematics:
      corexy:
      
    
    axes:
      shared_stepper_disable_pin: gpio.25:low
    
      x:
        steps_per_mm: 80.000
        max_rate_mm_per_min: 6000.000
        acceleration_mm_per_sec2: 1000.000
        max_travel_mm: 300.000
        homing:
          cycle: 2
          mpos_mm: -3.000
          feed_mm_per_min: 200.000
          settle_ms: 200
          positive_direction: false
        
        motor0:
          limit_all_pin: gpio.36:low
          hard_limits: true
          pulloff_mm: 3.000
          stepstick:
            direction_pin: gpio.14
            step_pin: gpio.15
    
      y:
        steps_per_mm: 80.000
        max_rate_mm_per_min: 6000.000
        acceleration_mm_per_sec2: 1000.000
        max_travel_mm: 300.000
        homing:
          cycle: 2
          mpos_mm: -3.000
          feed_mm_per_min: 50.000
          settle_ms: 200
          positive_direction: false
        
        motor0:
          limit_all_pin: gpio.35:low
          hard_limits: true
          pulloff_mm: 3.000
          stepstick:
            direction_pin: gpio.27
            step_pin: gpio.13
    
      z:
        steps_per_mm: 426.000
        max_rate_mm_per_min: 500.000
        acceleration_mm_per_sec2: 300.000
        max_travel_mm: 50.000
        homing:
          cycle: 1
          mpos_mm: 3.000
          feed_mm_per_min: 100.000
          positive_direction: false
        
        motor0:
          limit_pos_pin: gpio.34:low
          hard_limits: false
          pulloff_mm: 1.000
          stepstick:
            direction_pin: gpio.26
            step_pin: gpio.12
    
      a:
        steps_per_mm: 4.444
        max_rate_mm_per_min: 30000.000
        acceleration_mm_per_sec2: 10000.000
        homing:
          cycle: 0
          positive_direction: false
          
        motor0:
          stepstick:
            direction_pin: gpio.32
            step_pin: gpio.33
    
    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: gpio.4
    
    start:
      must_home: false
      deactivate_parking: true
      check_limits: false
    
    Laser:
      pwm_hz: 5000
      output_pin: gpio.2
      enable_pin: gpio.17
      disable_with_s0: false
      s0_with_disable: true
      tool_num: 100
      speed_map: 0=0.000% 255=100.000%
    

    Startup Messages

    normal all ok
    

    User Interface Software

    webui

    What happened?

    in v3.4.1 everything worked, the configuration file did not change, then I installed v3.4.6 the xX, Y axes do not work, the log passes normally, the Z, A axes work then returned to v3.4.1 everything works again put v3.4.1,2,3 everything works set v3.4.5,6 does not work XY

    Other Information

    No response

    opened by vadim7272 19
  • Problem: uploading a file to the SD card through FluidTerm on a Win 10 PC

    Problem: uploading a file to the SD card through FluidTerm on a Win 10 PC

    Controller Board

    FYSETC E4

    Help From Board Vendor

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

    Machine Description

    Pen plotter with dual steppers with CoreXY config and 3.4.9 release of FluidNC

    Configuration file

    name: "PlotterXY"
    board: "FYSETC E4"
    
    stepping:
      engine: RMT
      idle_ms: 255
      dir_delay_us: 0
      pulse_us: 2
      disable_delay_us: 0
      segments: 20
    
    kinematics:
      corexy:
    
    axes:
    
      x:
    # 16t = 100, 20t = 80 for 16 microsteps – change for y axes also
        steps_per_mm: 20
        max_rate_mm_per_min: 64000
        acceleration_mm_per_sec2: 2400
        max_travel_mm: 280
        soft_limits: true
        homing:
          cycle: 2
          allow_single_axis: true
          mpos_mm: 280
          positive_direction: true
          seek_mm_per_min: 4000
          feed_mm_per_min: 600
          settle_ms: 200
          seek_scaler: 1.100
          feed_scaler: 1.100
    
        motor0:
          limit_pos_pin: gpio.34:high
          hard_limits: true
          pulloff_mm: 10.000
          tmc_2209:
            uart:
              txd_pin: gpio.22
              rxd_pin: gpio.21
              baud: 115200
              mode: 8N1
            addr: 1
            r_sense_ohms: 0.110
            run_amps: 1.200
            hold_amps: 0.800
            microsteps: 4
            stallguard: 0
            stallguard_debug: false
            toff_disable: 0
            toff_stealthchop: 5
            toff_coolstep: 3
            run_mode: StealthChop
            homing_mode: StealthChop
            use_enable: true
            step_pin: gpio.27
            direction_pin: gpio.26:high
            disable_pin: NO_PIN
    
      y:
        steps_per_mm: 20
        max_rate_mm_per_min: 64000
        acceleration_mm_per_sec2: 2400
        max_travel_mm: 340
        soft_limits: true
        homing:
          cycle: 1
          allow_single_axis: true
          mpos_mm: 340
          positive_direction: true
          seek_mm_per_min: 4000
          feed_mm_per_min: 600
          settle_ms: 200
          seek_scaler: 1.100
          feed_scaler: 1.100
    
        motor0:
          limit_pos_pin: gpio.35:high
          hard_limits: true
          pulloff_mm: 10.000
          tmc_2209:
            addr: 3
            r_sense_ohms: 0.110
            run_amps: 1.200
            hold_amps: 0.800
            microsteps: 4
            stallguard: 0
            stallguard_debug: false
            toff_disable: 0
            toff_stealthchop: 5
            toff_coolstep: 3
            run_mode: StealthChop
            homing_mode: StealthChop
            use_enable: true
            step_pin: gpio.33
            direction_pin: gpio.32:high
            disable_pin: NO_PIN
    
      z:
        steps_per_mm: 80
        max_rate_mm_per_min: 1000
        acceleration_mm_per_sec2: 1000
        max_travel_mm: 5
        
        motor0:
          solenoid:
            output_pin: gpio.2
            pwm_hz: 30000
            off_percent: 0.000
            pull_percent: 100.000
            hold_percent: 20.000
            pull_ms: 25
            direction_invert: false
    
    spi:
      miso_pin: gpio.19
      mosi_pin: gpio.23
      sck_pin: gpio.18
    
    sdcard:
      cs_pin: gpio.5
      card_detect_pin: NO_PIN
    
    coolant:
      mist_pin: gpio.13
      delay: 0
    
    macros:
      startup_line0:
      startup_line1:
      macro0:
      macro1:
      macro2:
      macro3:
    
    start:
      must_home: true
    

    Startup Messages

    [MSG:INFO: FluidNC v3.4.9]
    [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:WARN: Ignored key delay]
    [MSG:INFO: Machine PlotterXY]
    [MSG:INFO: Board FYSETC E4]
    [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:0us Idle Delay:255ms]
    [MSG:INFO: Axis count 3]
    [MSG:INFO: Axis X (0.000,280.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO: Trinamic Stepper Uart Tx:gpio.22 Rx:gpio.21 RTS:NO_PIN Baud:115200]
    [MSG:INFO:     tmc_2209 Step:gpio.27 Dir:gpio.26 Disable:NO_PIN Addr:1 R:0.110]
    [MSG:INFO:     Pos Limit gpio.34]
    [MSG:INFO: Axis Y (0.000,340.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO:     tmc_2209 Step:gpio.33 Dir:gpio.32 Disable:NO_PIN Addr:3 R:0.110]
    [MSG:INFO:     Pos Limit gpio.35]
    [MSG:INFO: Axis Z (-5.000,0.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO:     solenoid Pin: gpio.2 Off: 0.000 Hold: 20.000 Pull:100.000 Duration:25 pwm hz:30000]
    [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: Mist coolant gpio.13]
    [MSG:INFO: Connecting to STA SSID:Trilights]
    [MSG:INFO: Connecting.]
    [MSG:INFO: Connected - IP is 192.168.1.179]
    [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

    FluidTerm

    What happened?

    I'm running the 3.4.9 release and can upload files through the web interface to the SD card. The wiki shows that a file can also be uploaded via fluidterm by prefixing the filename with /sd

    **Adding or Uploading Files to SD Card

    From a terminal program such as fluidterm prefix the local name with /sd and it will upload to the SD card. Sending /sd/Foo.nc will upload Foo.nc to the root directory.**

    I'm connected to the controller via a USB cable (it's shows up as COM3), and can access the other features of FluidTerm with no issues, but when I tried to upload a local file from my D: drive using the wiki method, I get the following results:

    ok /sdd:\test.gcode error:1 /sd/d:\test.gcode error:1 /sd/d:/test.gcode error:1

    I don't believe this is an error, just a lack of understanding on my part how to properly format the command. Yes, the SD card works, I can upload files from the web interface. Also, the file I referenced also exists on my system.

    If I were to use the example from the wiki, does the file foo.nc need to be in the same folder as the FluidTerm executable? Can I use standard DOS-style formatting for drive and folder names if my file is in a folder on another drive? Is there some front-slash / back-slash path issue I'm unaware of? Thanks!

    Other Information

    No response

    opened by crcayer 1
  • Problem: Axis homing speed and steps are wrong and after homing axis no longer jogs correctly

    Problem: Axis homing speed and steps are wrong and after homing axis no longer jogs correctly

    Controller Board

    6-pack socket / board 1 / 4x Switch Input module 2 / 4x Switch Input module 3 / Relay module 4 / 5v output module 5 / Quad MOSFET CNC I/O module

    Help From Board Vendor

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

    Machine Description

    Fixed gantry router, single Nema 23 driving leadscrew per axis, x/y have limit switches at both ends, z has positive limit switch only, spindle is a trend router controlled via Solid State Relay SSR-60DA which is hooked up to the relay module. I have 4 TMC5160's installed but only 3 configured.

    Configuration file

    board: 6 P ack
    name: 6 Pack External XYZA Relay
    meta: 2022-06-07 B. Dring for Syme Kutz 331662
    stepping:
      engine: I2S_stream
      idle_ms: 250
      pulse_us: 4
      dir_delay_us: 1
      disable_delay_us: 0
      segments: 12
    
    axes:
      shared_stepper_disable_pin: NO_PIN
      shared_stepper_reset_pin: NO_PIN
      x:
        steps_per_mm: 615.000
        max_rate_mm_per_min: 1500.000
        acceleration_mm_per_sec2: 20.000
        max_travel_mm: 500.000
        soft_limits: false
        homing:
          cycle: 2
          allow_single_axis: true
          positive_direction: false
          mpos_mm: 0.000
          feed_mm_per_min: 500.000
          seek_mm_per_min: 1000.000
          settle_ms: 500
          seek_scaler: 1.100
          feed_scaler: 1.100
    
        motor0:
          limit_neg_pin: gpio.33:low
          limit_pos_pin: gpio.32:low
          limit_all_pin: NO_PIN
          hard_limits: true
          pulloff_mm: 15.000
          tmc_5160:
            step_pin: I2SO.2
            direction_pin: I2SO.1:low
            disable_pin: I2SO.0
            r_sense_ohms: 0.075
            run_amps: 2.500
            hold_amps: 1.000
            microsteps: 16
            toff_disable: 0
            toff_stealthchop: 5
            use_enable: false
            cs_pin: I2SO.3
            spi_index: -1
            run_mode: StealthChop
            homing_mode: StealthChop
            stallguard: 0
            stallguard_debug: false
            toff_coolstep: 3
            tpfd: 4
      y:
        steps_per_mm: 400.000
        max_rate_mm_per_min: 1500.000
        acceleration_mm_per_sec2: 20.000
        max_travel_mm: 500.000
        soft_limits: false
        homing:
          cycle: 2
          allow_single_axis: true
          positive_direction: false
          mpos_mm: 0.000
          feed_mm_per_min: 500.000
          seek_mm_per_min: 1000.000
          settle_ms: 500
          seek_scaler: 1.100
          feed_scaler: 1.100
    
        motor0:
          limit_neg_pin: gpio.34:low
          limit_pos_pin: gpio.35:low
          limit_all_pin: NO_PIN
          hard_limits: true
          pulloff_mm: 15.000
          tmc_5160:
            step_pin: I2SO.5
            direction_pin: I2SO.4:high
            disable_pin: I2SO.7
            r_sense_ohms: 0.075
            run_amps: 2.500
            hold_amps: 1.000
            microsteps: 16
            toff_disable: 0
            toff_stealthchop: 5
            use_enable: false
            cs_pin: I2SO.6
            spi_index: -1
            run_mode: StealthChop
            homing_mode: StealthChop
            stallguard: 0
            stallguard_debug: false
            toff_coolstep: 3
            tpfd: 4
      z:
        steps_per_mm: 615.000
        max_rate_mm_per_min: 500.000
        acceleration_mm_per_sec2: 10.000
        max_travel_mm: 300.000
        soft_limits: false+-
        homing:
          cycle: 1
          allow_single_axis: true
          positive_direction: true
          mpos_mm: 150.000
          feed_mm_per_min: 150.000
          seek_mm_per_min: 300.000
          settle_ms: 500
          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: 15.000
          tmc_5160:
            step_pin: I2SO.10
            direction_pin: I2SO.9:low
            disable_pin: I2SO.8
            r_sense_ohms: 0.075
            run_amps: 2.500
            hold_amps: 1.000
            microsteps: 16
            toff_disable: 0
            toff_stealthchop: 5
            use_enable: false
            cs_pin: I2SO.11
            spi_index: -1
            run_mode: StealthChop
            homing_mode: StealthChop
            stallguard: 0
            stallguard_debug: false
            toff_coolstep: 3
            tpfd: 4
      
    kinematics:
      Cartesian:
    
    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:
      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: gpio.2
      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: true
    report_inches: false
    enable_parking_override_control: false
    use_line_numbers: false
    planner_blocks: 16
    
    Relay:
      direction_pin: NO_PIN
      output_pin: gpio.26
      enable_pin: NO_PIN
      disable_with_s0: false
      s0_with_disable: true
      spinup_ms: 0
      spindown_ms: 0
      tool_num: 100
      speed_map: 0=0.000% 0=100.000% 1=100.000%
    

    Startup Messages

    [MSG:INFO: FluidNC v3.4.7]
    [MSG:INFO: Compiled with ESP32 SDK:v4.4.1-1-gb8050b365e]
    [MSG:INFO: Local filesystem type is SPIFFS]
    [MSG:INFO: Configuration file:6P_5160_XYZA_Relay.yaml]
    [MSG:INFO: Machine 6 Pack External XYZA Relay]
    [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,500.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO:     tmc_5160 Step:I2SO.2 Dir:I2SO.1:low CS:I2SO.3 Disable:I2SO.0 Index:-1 R:0.075]
    [MSG:INFO:     Neg Limit gpio.33:low]
    [MSG:INFO:     Pos Limit gpio.32:low]
    [MSG:INFO: Axis Y (0.000,500.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO:     tmc_5160 Step:I2SO.5 Dir:I2SO.4 CS:I2SO.6 Disable:I2SO.7 Index:-1 R:0.075]
    [MSG:INFO:     Neg Limit gpio.34:low]
    [MSG:INFO:     Pos Limit gpio.35:low]
    [MSG:INFO: Axis Z (-150.000,150.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO:     tmc_5160 Step:I2SO.10 Dir:I2SO.9:low CS:I2SO.11 Disable:I2SO.8 Index:-1 R:0.075]
    [MSG:INFO:     Neg Limit gpio.36:low]
    [MSG:INFO: X Axis driver test passed]
    [MSG:INFO: Y Axis driver test passed]
    [MSG:INFO: Z Axis driver test passed]
    [MSG:INFO: Kinematic system: Cartesian]
    [MSG:INFO: Relay Spindle Ena:NO_PIN Out:gpio.26 Dir:NO_PIN]
    [MSG:INFO: Using spindle Relay]
    [MSG:INFO: Probe Pin: gpio.2]
    [MSG:INFO: Connecting to STA SSID:Kutz-WiFi]
    [MSG:INFO: Connecting.]
    [MSG:INFO: Connecting..]
    [MSG:INFO: Connected - IP is 192.168.1.186]
    [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, Arduino Serial Terminal

    What happened?

    Unlock machine (using button on dashboard or by typing $X in either program) test jogging X Axes (via dashboard controls, or tablet controls) I make sure the x axis is jogging correctly and at normal speed, then I Hit the Home x button in the WebUI dashboard screen / controls section. The machine will begin to home but moves at a very slow speed and the distance is not correct. The gantrty is in the middle it will say it moved 500 mm and did not find a switch but it only moved maybe 50mm, if I continue this cycle eventually it will reach the switch back off and perform the correct homing procedure and correctly set x. However when I try and jog now it will jog at the same reduced rate that it homed at.

    Other Information

    The only anomaly I see in the logs is that some times when it starts up I get a driver error. Restarting it with $bye and within a couple restarts all will pass.

    [MSG:INFO: FluidNC v3.4.7] [MSG:INFO: Compiled with ESP32 SDK:v4.4.1-1-gb8050b365e] [MSG:INFO: Local filesystem type is SPIFFS] [MSG:INFO: Configuration file:6P_5160_XYZA_Relay.yaml] [MSG:INFO: Machine 6 Pack External XYZA Relay] [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,500.000)] [MSG:INFO: Motor0] [MSG:INFO: tmc_5160 Step:I2SO.2 Dir:I2SO.1:low CS:I2SO.3 Disable:I2SO.0 Index:-1 R:0.075] [MSG:INFO: Neg Limit gpio.33:low] [MSG:INFO: Pos Limit gpio.32:low] [MSG:INFO: Axis Y (0.000,500.000)] [MSG:INFO: Motor0] [MSG:INFO: tmc_5160 Step:I2SO.5 Dir:I2SO.4 CS:I2SO.6 Disable:I2SO.7 Index:-1 R:0.075] [MSG:INFO: Neg Limit gpio.34:low] [MSG:INFO: Pos Limit gpio.35:low] [MSG:INFO: Axis Z (-150.000,150.000)] [MSG:INFO: Motor0] [MSG:INFO: tmc_5160 Step:I2SO.10 Dir:I2SO.9:low CS:I2SO.11 Disable:I2SO.8 Index:-1 R:0.075] [MSG:INFO: Neg Limit gpio.36:low] [MSG:INFO: X Axis driver test passed] [MSG:ERR: Y Axis driver test failed. Check motor power] [MSG:INFO: Z Axis driver test passed] [MSG:INFO: Kinematic system: Cartesian] [MSG:INFO: Relay Spindle Ena:NO_PIN Out:gpio.26 Dir:NO_PIN] [MSG:INFO: Using spindle Relay] [MSG:INFO: Probe Pin: gpio.2] [MSG:INFO: Connecting to STA SSID:Kutz-WiFi] [MSG:INFO: Connecting.] [MSG:INFO: Connecting..] [MSG:INFO: Connected - IP is 192.168.1.186] [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]

    opened by symekutz 4
  • Problem: issues running 16 microsteps on FYSETC E4

    Problem: issues running 16 microsteps on FYSETC E4

    Controller Board

    FYSETC E4

    Help From Board Vendor

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

    Machine Description

    Pen plotter — CoreXY — A1 in size. https://github.com/jamescarruthers/PlotterXY/tree/main/Hardware

    Configuration file

    name: "PlotterXY"
    board: "FYSETC E4"
    
    stepping:
      engine: RMT
      idle_ms: 255
      dir_delay_us: 0
      pulse_us: 2
      disable_delay_us: 0
      segments: 20
    
    kinematics:
      corexy:
    
    axes:
      shared_stepper_disable_pin: gpio.25:high
    
      x:
    # 16t = 100, 20t = 80 for 16 microsteps – change for y axes also
        steps_per_mm: 20
        max_rate_mm_per_min: 12000
        acceleration_mm_per_sec2: 1200
        max_travel_mm: 860
        soft_limits: true
        homing:
          cycle: 2
          allow_single_axis: true
          mpos_mm: 860
          positive_direction: true
          seek_mm_per_min: 4000
          feed_mm_per_min: 600
          settle_ms: 200
          seek_scaler: 1.100
          feed_scaler: 1.100
    
        motor0:
          limit_pos_pin: gpio.34:high
          hard_limits: true
          pulloff_mm: 10.000
          tmc_2209:
            uart:
              txd_pin: gpio.22
              rxd_pin: gpio.21
              baud: 115200
              mode: 8N1
            addr: 1
            r_sense_ohms: 0.110
            run_amps: 1.200
            hold_amps: 0.800
            microsteps: 4
            stallguard: 0
            stallguard_debug: false
            toff_disable: 0
            toff_stealthchop: 5
            toff_coolstep: 3
            run_mode: StealthChop
            homing_mode: StealthChop
            use_enable: true
            step_pin: gpio.27
            direction_pin: gpio.26:high
            disable_pin: NO_PIN
    
      y:
        steps_per_mm: 20
        max_rate_mm_per_min: 12000
        acceleration_mm_per_sec2: 1200
        max_travel_mm: 600
        soft_limits: true
        homing:
          cycle: 1
          allow_single_axis: true
          mpos_mm: 600
          positive_direction: true
          seek_mm_per_min: 4000
          feed_mm_per_min: 600
          settle_ms: 200
          seek_scaler: 1.100
          feed_scaler: 1.100
    
        motor0:
          limit_pos_pin: gpio.35:high
          hard_limits: true
          pulloff_mm: 10.000
          tmc_2209:
            addr: 3
            r_sense_ohms: 0.110
            run_amps: 1.200
            hold_amps: 0.800
            microsteps: 4
            stallguard: 0
            stallguard_debug: false
            toff_disable: 0
            toff_stealthchop: 5
            toff_coolstep: 3
            run_mode: StealthChop
            homing_mode: StealthChop
            use_enable: true
            step_pin: gpio.33
            direction_pin: gpio.32:high
            disable_pin: NO_PIN
    
      z:
        steps_per_mm: 80
        max_rate_mm_per_min: 1000
        acceleration_mm_per_sec2: 1000
        max_travel_mm: 5
        
        motor0:
          solenoid:
            output_pin: gpio.2
            pwm_hz: 30000
            off_percent: 0.000
            pull_percent: 100.000
            hold_percent: 15.000
            pull_ms: 25
            direction_invert: false
    
    spi:
      miso_pin: gpio.19
      mosi_pin: gpio.23
      sck_pin: gpio.18
    
    sdcard:
      cs_pin: gpio.5
      card_detect_pin: NO_PIN
    
    macros:
      startup_line0:
      startup_line1:
      macro0:
      macro1:
      macro2:
      macro3:
    
    start:
      must_home: true
    

    Startup Messages

    [MSG:INFO: FluidNC v3.4.7]
    [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 PlotterXY]
    [MSG:INFO: Board FYSETC E4]
    [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:0us Idle Delay:255ms]
    [MSG:INFO: Axis count 3]
    [MSG:INFO: Shared stepper disable gpio.25]
    [MSG:INFO: Axis X (0.000,860.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO: Trinamic Stepper Uart Tx:gpio.22 Rx:gpio.21 RTS:NO_PIN Baud:115200]
    [MSG:INFO:     tmc_2209 Step:gpio.27 Dir:gpio.26 Disable:NO_PIN Addr:1 R:0.110]
    [MSG:INFO:     Pos Limit gpio.34]
    [MSG:INFO: Axis Y (0.000,600.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO:     tmc_2209 Step:gpio.33 Dir:gpio.32 Disable:NO_PIN Addr:3 R:0.110]
    [MSG:INFO:     Pos Limit gpio.35]
    [MSG:INFO: Axis Z (-5.000,0.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO:     solenoid Pin: gpio.2 Off: 0.000 Hold: 15.000 Pull:100.000 Duration:25 pwm hz:30000]
    [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: Connecting to STA SSID:CatFi]
    [MSG:INFO: Connecting.]
    [MSG:INFO: Connected - IP is 192.168.0.129]
    [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?

    If I issue the commands G00 X0 Y0 and then G00 X0 Y500 - instead of the plotter going from 0,0 to 0,500 it goes to something more like 200,400. It moves diagonally. I can "fix" this by changing the microsteps from 16 to 4.

    If I use another board, Bart's CNC Dev v3.5 running TMC2209 or DRV8825 — there are no issues using 16 microsteps. The stepper drivers are set to anything from 1A to 1.5A. I originally thought it was a current issue.

    If I go back to my original GRBL ESP32 install running on the FYSETC E4 I don't have any issues.

    Other Information

    The GRBL ESP32 config I'm using is here; https://github.com/jamescarruthers/PlotterXY/tree/main/Firmware/GRBL-ESP32%20(Depreciated)

    opened by jamescarruthers 3
  • In M3 laser mode (constant power), G0 moves don't clear laser PWM

    In M3 laser mode (constant power), G0 moves don't clear laser PWM

    Controller Board

    Personnal board 4 DRV8825 driven through I2S_Stream Laser PWM pin Enable Laser pin (reversed because of K40 power supply)

    Help From Board Vendor

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

    Machine Description

    Stock K40 And test on table with oscilloscope

    Configuration file

    name: K40_AvaShield
    board: Ava_Shield_7.3
    
    kinematics:
      Cartesian:
    
    stepping:
      engine: I2S_STREAM
      idle_ms: 255
      dir_delay_us: 1
      pulse_us: 4
      disable_delay_us: 0
    
    axes:
      shared_stepper_disable_pin: NO_PIN
    
      x:
        steps_per_mm: 78.74
        max_rate_mm_per_min: 20000.000
        acceleration_mm_per_sec2: 2000.000
        max_travel_mm: 300.000
        soft_limits: false
        homing:
          cycle: 1
          positive_direction: false
          mpos_mm: 5.000
          feed_mm_per_min: 200.000
          seek_mm_per_min: 2500.000
          settle_ms: 250.000
          seek_scaler: 1.500
          feed_scaler: 5.000
    
        motor0:
          limit_neg_pin: gpio.39
          limit_pos_pin: NO_PIN
          limit_all_pin: NO_PIN
          hard_limits: true
          pulloff_mm: 5.000
          stepstick:
            ms3_pin: I2SO.3
            step_pin: I2SO.2
            direction_pin: I2SO.1
            disable_pin: I2SO.0
    
    
      y:
        steps_per_mm: 78.74
        max_rate_mm_per_min: 20000.000
        acceleration_mm_per_sec2: 2000.000
        max_travel_mm: 200.000
        soft_limits: false
        homing:
          cycle: 1
          positive_direction: false
          mpos_mm: 5.000
          feed_mm_per_min: 200.000
          seek_mm_per_min: 2500.000
          settle_ms: 250.000
          seek_scaler: 1.500
          feed_scaler: 5.000
    
        motor0:
          limit_neg_pin: gpio.34
          limit_pos_pin: NO_PIN
          limit_all_pin: NO_PIN
          hard_limits: true
          pulloff_mm: 5.000
          stepstick:
            ms3_pin: I2SO.7
            step_pin: I2SO.6
            direction_pin: I2SO.5
            disable_pin: I2SO.4
    
      z:
        steps_per_mm: 1000.000
        max_rate_mm_per_min: 100.000
        acceleration_mm_per_sec2: 500.000
        max_travel_mm: 20.000
        soft_limits: false
        homing:
          cycle: 2
          positive_direction: true
          mpos_mm: 5.000
          feed_mm_per_min: 200.000
          seek_mm_per_min: 2500.000
          settle_ms: 250.000
          seek_scaler: 1.500
          feed_scaler: 5.000
    
        motor0:
          limit_neg_pin: gpio.35:low
          limit_pos_pin: NO_PIN
          limit_all_pin: NO_PIN
          hard_limits: true
          pulloff_mm: 5.000
          stepstick:
            ms3_pin: I2SO.11
            step_pin: I2SO.10
            direction_pin: I2SO.9
            disable_pin: I2SO.8
        motor1:
          null_motor:
    
    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:
      cs_pin: gpio.5
    
    control:
      safety_door_pin: gpio.27:low:pu
      reset_pin: gpio.12:low:pu
      feed_hold_pin: gpio.14:low:pu
      cycle_start_pin: gpio.13:low:pu
    
    coolant:
      mist_pin: gpio.4
      delay_ms: 50.000
    
    probe:
      pin: gpio.36:low
      check_mode_start: false
    
    macros:
      startup_line0: 
      startup_line1: 
      macro0: 
      macro1: 
      macro2: 
      macro3: 
    
    start:
      must_home: true
      check_limits: true
      deactivate_parking: false
    
    user_outputs:
    
    laser:
      tool_num: 0
      speed_map: 0=0.0% 1000=100.0%
      output_pin: gpio.15
      enable_pin: gpio.16:low
      disable_with_s0: false (tried true)
      s0_with_disable: false (tried true)
      pwm_hz: 15000
    
    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
    

    Startup Messages

    $ss
    [MSG:INFO: FluidNC v3.0.x (noGit)]
    [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 K40_AvaShield]
    [MSG:INFO: Board Ava_Shield_7.3]
    [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:255ms]
    [MSG:INFO: Axis count 3]
    [MSG:INFO: Axis X (5.000,305.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO:     stepstick Step:I2SO.2 Dir:I2SO.1 Disable:I2SO.0]
    [MSG:INFO:     Neg Limit gpio.39]
    [MSG:INFO: Axis Y (5.000,205.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO:     stepstick Step:I2SO.6 Dir:I2SO.5:low Disable:I2SO.4]
    [MSG:INFO:     Neg Limit gpio.34]
    [MSG:INFO: Axis Z (-15.000,5.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO:     stepstick Step:I2SO.10 Dir:I2SO.9:low Disable:I2SO.8]
    [MSG:INFO:     Neg Limit gpio.35:low]
    [MSG:INFO:   Motor1]
    [MSG:INFO: Door gpio.27:low:pu]
    [MSG:INFO: Reset gpio.12:low:pu]
    [MSG:ERR: Reset pin is active at startup]
    [MSG:INFO: FeedHold gpio.14:low:pu]
    [MSG:INFO: CycleStart gpio.13:low:pu]
    [MSG:ERR: CycleStart pin is active at startup]
    [MSG:INFO: Kinematic system: Cartesian]
    [MSG:INFO: Laser Spindle Ena:gpio.16:low Out:gpio.15 Freq:15000Hz Res:12bits Laser mode:On]
    [MSG:INFO: Using spindle Laser]
    [MSG:INFO: Mist coolant gpio.4]
    [MSG:INFO: Probe Pin: gpio.36:low]
    [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

    Lightburn / GCode / Console

    What happened?

    GCODE is the following :

    G00 G17 G40 G21 G54
    G91
    M4
    M7
    G0 X0Y0                                   ;Move OK - LASER OFF
    M3                                            ;Constant power mode
    G1 X28S550F720                      ;Move OK - LASER ON - PWM and laser enable pin ok on oscilloscope
                                                     ;At the end of movement, PWM stays at same value and enable is still ON (osscilloscope)
    G0 X9Y10                                 ;Move OK - LASER ON -----> I'm expecting LASER OFF
    

    If I suppress M3 command (but I need it), LASER is turned OFF after G1 command

    Other Information

    No response

    opened by Avataar120 6
  • Problem: After firmware upgrade one motor does not power up and rates are off

    Problem: After firmware upgrade one motor does not power up and rates are off

    Controller Board

    CNC xPro V5

    Help From Board Vendor

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

    Machine Description

    Bulkman 3D Ultimate Bee, configured for dual X motors.

    Configuration file

    board: unknown
    name: CNC_xPRO_V5_Machine_Template
    meta: 
    stepping:
      engine: RMT
      idle_ms: 255
      pulse_us: 4
      dir_delay_us: 0
      disable_delay_us: 0
      segments: 6
    axes:
      shared_stepper_disable_pin: NO_PIN
      shared_stepper_reset_pin: NO_PIN
      x:
        steps_per_mm: 160.000
        max_rate_mm_per_min: 6000.000
        acceleration_mm_per_sec2: 100.000
        max_travel_mm: 800.000
        soft_limits: false
        homing:
          cycle: 1
          allow_single_axis: true
          positive_direction: false
          mpos_mm: 0.000
          feed_mm_per_min: 200.000
          seek_mm_per_min: 3000.000
          settle_ms: 250
          seek_scaler: 1.000
          feed_scaler: 1.500
        motor0:
          limit_neg_pin: NO_PIN
          limit_pos_pin: NO_PIN
          limit_all_pin: gpio.34:low
          hard_limits: true
          pulloff_mm: 10.000
          tmc_5160:
            step_pin: gpio.27
            direction_pin: gpio.26
            disable_pin: NO_PIN
            r_sense_ohms: 0.050
            run_amps: 1.800
            hold_amps: 1.250
            microsteps: 8
            toff_disable: 0
            toff_stealthchop: 5
            use_enable: true
            cs_pin: gpio.17
            spi_index: 1
            run_mode: StallGuard
            homing_mode: StallGuard
            stallguard: 16
            stallguard_debug: false
            toff_coolstep: 3
            tpfd: 4
        motor1:
          limit_neg_pin: NO_PIN
          limit_pos_pin: NO_PIN
          limit_all_pin: NO_PIN
          hard_limits: false
          pulloff_mm: 1.000
          tmc_5160:
            step_pin: gpio.33
            direction_pin: gpio.32
            disable_pin: NO_PIN
            r_sense_ohms: 0.050
            run_amps: 1.800
            hold_amps: 1.250
            microsteps: 8
            toff_disable: 0
            toff_stealthchop: 5
            use_enable: true
            cs_pin: NO_PIN
            spi_index: 2
            run_mode: StallGuard
            homing_mode: StallGuard
            stallguard: 16
            stallguard_debug: false
            toff_coolstep: 3
            tpfd: 4
      y:
        steps_per_mm: 200.000
        max_rate_mm_per_min: 6000.000
        acceleration_mm_per_sec2: 100.000
        max_travel_mm: 550.000
        soft_limits: false
        homing:
          cycle: 1
          allow_single_axis: true
          positive_direction: false
          mpos_mm: 0.000
          feed_mm_per_min: 200.000
          seek_mm_per_min: 3000.000
          settle_ms: 250
          seek_scaler: 1.000
          feed_scaler: 1.500
        motor0:
          limit_neg_pin: NO_PIN
          limit_pos_pin: NO_PIN
          limit_all_pin: gpio.35:low
          hard_limits: true
          pulloff_mm: 5.000
          tmc_5160:
            step_pin: gpio.12
            direction_pin: gpio.14
            disable_pin: NO_PIN
            r_sense_ohms: 0.050
            run_amps: 1.800
            hold_amps: 1.250
            microsteps: 8
            toff_disable: 0
            toff_stealthchop: 5
            use_enable: true
            cs_pin: NO_PIN
            spi_index: 3
            run_mode: StallGuard
            homing_mode: StallGuard
            stallguard: 16
            stallguard_debug: false
            toff_coolstep: 3
            tpfd: 4
        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: 400.000
        max_rate_mm_per_min: 2000.000
        acceleration_mm_per_sec2: 100.000
        max_travel_mm: 300.000
        soft_limits: false
        homing:
          cycle: 1
          allow_single_axis: true
          positive_direction: true
          mpos_mm: 0.000
          feed_mm_per_min: 200.000
          seek_mm_per_min: 1000.000
          settle_ms: 250
          seek_scaler: 1.000
          feed_scaler: 1.500
        motor0:
          limit_neg_pin: NO_PIN
          limit_pos_pin: NO_PIN
          limit_all_pin: gpio.39:low
          hard_limits: true
          pulloff_mm: 5.000
          tmc_5160:
            step_pin: gpio.15
            direction_pin: gpio.2
            disable_pin: NO_PIN
            r_sense_ohms: 0.050
            run_amps: 1.800
            hold_amps: 1.250
            microsteps: 8
            toff_disable: 0
            toff_stealthchop: 5
            use_enable: true
            cs_pin: NO_PIN
            spi_index: 4
            run_mode: StallGuard
            homing_mode: StallGuard
            stallguard: 16
            stallguard_debug: false
            toff_coolstep: 3
            tpfd: 4
        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: gpio.16:low:pu
      reset_pin: NO_PIN
      feed_hold_pin: NO_PIN
      cycle_start_pin: NO_PIN
      macro0_pin: gpio.13:low:pu
      macro1_pin: gpio.0:low:pu
      macro2_pin: NO_PIN
      macro3_pin: NO_PIN
    coolant:
      flood_pin: NO_PIN
      mist_pin: gpio.21
      delay_ms: 1000
    probe:
      pin: gpio.22:low:pu
      check_mode_start: false
    macros:
      startup_line0: 
      startup_line1: 
      macro0: 
      macro1: 
      macro2: 
      macro3: 
    start:
      must_home: true
      deactivate_parking: false
      check_limits: true
    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
    [Error] An error was detected while sending '$cd': verbose_errors: false. Streaming has been paused.
    report_inches: false
    enable_parking_override_control: false
    use_line_numbers: false
    planner_blocks: 16
    PWM:
      pwm_hz: 5000
      direction_pin: NO_PIN
      output_pin: gpio.25
      enable_pin: gpio.4
      disable_with_s0: false
      s0_with_disable: false
      spinup_ms: 0
      spindown_ms: 0
      tool_num: 0
      speed_map: 0=0.000% 12000=100.000%
    

    Startup Messages

    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
    **** Connected to /dev/ttyUSB0 @ 115200 baud ****
    [MSG:INFO: FluidNC v3.4.7]
    [MSG:INFO: Compiled with ESP32 SDK:v4.4.1-1-gb8050b365e]
    [MSG:INFO: Local filesystem type is SPIFFS]
    [MSG:INFO: Configuration file:v5.yaml]
    [MSG:INFO: Machine CNC_xPRO_V5_Machine_Template]
    [MSG:INFO: Board unknown]
    [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 (0.000,800.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO:     tmc_5160 Step:gpio.27 Dir:gpio.26 CS:gpio.17 Disable:NO_PIN Index:1 R:0.050]
    [MSG:INFO:     All Limit gpio.34:low]
    [MSG:INFO:   Motor1]
    [MSG:INFO:     tmc_5160 Step:gpio.33 Dir:gpio.32 CS:NO_PIN Disable:NO_PIN Index:2 R:0.050]
    [MSG:INFO: Axis Y (0.000,550.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO:     tmc_5160 Step:gpio.12 Dir:gpio.14 CS:NO_PIN Disable:NO_PIN Index:3 R:0.050]
    [MSG:INFO:     All Limit gpio.35:low]
    [MSG:INFO:   Motor1]
    [MSG:INFO: Axis Z (-300.000,0.000)]
    [MSG:INFO:   Motor0]
    [MSG:INFO:     tmc_5160 Step:gpio.15 Dir:gpio.2 CS:NO_PIN Disable:NO_PIN Index:4 R:0.050]
    [MSG:INFO:     All Limit gpio.39:low]
    [MSG:INFO:   Motor1]
    [MSG:INFO: X Axis driver test passed]
    [MSG:INFO: X2 Axis driver test passed]
    [MSG:INFO: Y Axis driver test passed]
    [MSG:INFO: Z Axis driver test passed]
    [MSG:INFO: Door gpio.16:low:pu]
    [MSG:INFO: Macro 0 gpio.13:low:pu]
    [MSG:INFO: Macro 1 gpio.0:low:pu]
    [MSG:INFO: Kinematic system: Cartesian]
    [MSG:INFO: PWM Spindle Ena:gpio.4 Out:gpio.25 Dir:NO_PIN Freq:5000Hz Res:13bits]
    [MSG:INFO: Using spindle PWM]
    [MSG:INFO: Mist coolant gpio.21]
    [MSG:INFO: Probe Pin: gpio.22:low:pu]
    [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

    UGS

    What happened?

    I was a few revisions behind and did the upgrade to 3.4.7.

    After doing so, one of my X axis motors does not power up. I can turn the stepper by hand, while the others I am not able to. After $MD, I can turn them all.

    The feed rates and distances are also not correct. G91 G0 Y100, for example, moves about 1/4 of the expected distance and not at the expected rate. steps_per_mm looks right, but I wasn't smart enough to make a backup of the config before the upgrade so unless the upgrade process changed something, it should be right.

    I haven't tried to revert the firmware (yet).

    Other Information

    No response

    opened by lagnat 5
Releases(v3.4.9)
  • v3.4.9(Jun 21, 2022)

  • v3.4.8(Jun 18, 2022)

    New FluidNC Release 3.4.8

    Bug Fixes

    Fixes to Bluetooth/Telnet/Websockets When commands were being sent via Bluetooth (and also telnet websockets), certain operations like homing would discard sent-ahead GCode commands. Those other channels now behave almost identically with regard to send-ahead. In addition, Bluetooth - but not telnet and websocket - now supports advanced line editing like serial. (#482)

    Enhancements

    Bad gcode debug message Shows line sent when invalid or unsupported gcode is rejected when $Message/Level=Debug

    User settable start message New NVS setting $Start/Message to control the startup message. This can be used if your gcode sender requires a specific message like Grbl 1.1g ['$' for help]. See this wiki section on how to use it. (#480)

    https://github.com/bdring/FluidNC/wiki/FluidNC-Commands-and-Settings#start_message

    Fluidterm edit mode Returns editing mode to the the default (off) when it closes. Furthermore, by sending CTRL-L, a sender can turn off advanced editing mode explicitly.

    Refactored control switches They will report and show startup errors a little differently now - the control switch names in the messages are now spelled the same as their configuration items. Also fixes rare ESP32 problem where switches reported incorrectly if read too soon after setup.

    Source code(tar.gz)
    Source code(zip)
    bt-firmware.elf(24.15 MB)
    fluidnc-v3.4.8-posix.zip(9.47 MB)
    fluidnc-v3.4.8-win64.zip(12.34 MB)
    wifi-firmware.elf(23.63 MB)
  • v3.4.7(Jun 2, 2022)

    Bug Fixes

    ESP-IDF Issues We fixed a few issues related to the latest version of the framework. The attributes for the cs_pin on Trinamic drivers were not working. There are likely a few other issues. We will fix them as they are identified.

    10V spindle The initial state was not set which means it assumed it had to wait for a spin down when the state was set to disabled at turn on. If you had a long delay, this was pretty annoying.

    Homing Fixed problems with asymmetric pulloff not working, removes the requirement that motor1 have the larger pulloff, and stops running homing cycles if one fails. Homing pulloff from an initially active switch is now handled better.

    Enhancements

    TMC2209 now disables the power down pin feature. This is not needed because we have separate run and hold currents. Since the power down pin is the same as the UART, it is recommended to turn off that feature in UART mode.

    Homing You can now send a parameter with $H like $H=XY to home X and Y is a single cycle. You can also send cycle numbers from your config like $H=1 to home all axes in cycle 1. You can send $H=12 to do cycle 1 and then cycle 2. The versions without parameters, such as $H, $HX, etc., still work.

    Source code(tar.gz)
    Source code(zip)
    bt-firmware.elf(24.03 MB)
    fluidnc-v3.4.7-posix.zip(9.46 MB)
    fluidnc-v3.4.7-win64.zip(12.33 MB)
    wifi-firmware.elf(23.34 MB)
  • v3.4.6(May 24, 2022)

  • v3.4.5(May 19, 2022)

    Enhancements

    FluidTerm

    Ctrl+Q is an alternative for Ctrl+] to exit from fluidterm. This helps with keyboards that don't have a ] key

    Ctrl+O allows you to send special characters for things like feed/speed overrides and macros. Send Ctrl+O then the 2 key sequence like "fr" for feed override override reset. Ctrl-O xx shows the list of overrides.

    PlatformIO and ESP Framework version updates

    is now compatible with PlatformIO ver 6

    FluidNC is now compatible with ESP32 Framework 4.2.0 (woot!). This will enable a future switch from SPIFFS to LittleFS as the local FLASH filesystem - LittleFS has numerous improvements over SPIFFS. It will also enable future support for newer ESP32 variants.

    Firmware

    Improvements to the way limits are handled

    Fixed a WebUI bug where you could not put an equal sign in settings

    Fixed WebUI Tablet layout problems on small screens like older iPhones.

    Fixed a problem with CoreXY feed rates.

    Fixed a bug where $MI motors init was causing problems with SPI daisy chained motors and RMT channels.

    Solenoid axes with high frequencies were not working correctly.

    Source code(tar.gz)
    Source code(zip)
    bt-firmware.elf(23.94 MB)
    fluidnc-v3.4.5-posix.zip(9.45 MB)
    fluidnc-v3.4.5-win64.zip(12.32 MB)
    wifi-firmware.elf(23.01 MB)
  • v3.4.4(Apr 26, 2022)

    New FluidNC Release 3.4.4**

    New Features

    • New $Motor/Init (or $MI) command. This is used to reinitialize motors. It is primarily for SPI and UART types. If you forget to have power on at startup or change a setting like run current. You can send $MI to reinitialize the motors.
    • New HBridge Spindle. This spindle type has separate CW and CCW PWM pins. It is intended to directly control an H Bridge circuit. (details coming to wiki soon)
    • ELF files are now generated with each release. If you have a crash. The backtrace information along with the ELF file can tell you the exact line where the crash occurred. (details coming to wiki soon)
    • Default homing sections. If your config file does not have homing sections, default ones will be created.

    Enhancements

    • The solenoid motor type now ignores the idle_ms setting. It will not deactivate with the motors.
    • BESC. The acceptable frequency range has been expanded.

    Bug Fixes

    • The card_detect: pin was defined as an output.
    Source code(tar.gz)
    Source code(zip)
    bt-firmware.elf(19.84 MB)
    fluidnc-v3.4.4-posix.zip(9.60 MB)
    fluidnc-v3.4.4-win64.zip(12.47 MB)
    wifi-firmware.elf(20.19 MB)
  • v3.4.3(Apr 1, 2022)

    New FluidNC Release 3.4.3

    Bug Fixes

    Hard Limits: A hard limit error during motion was often causing a crash. Also cleaned up internal issues with multiple pin instances.

    Filename Too Long: A string replace issue was causing filenames that were too long.

    PWM Crash: Crashed when output_pin is not defined

    Probe Offset Fix: Offset correction was inverted.

    H2A Spindle Fix: Fixed some speed issues

    Enhancements

    Trinamic Refactor: Split all drivers into separate classes. This allows for different config items.

    Source code(tar.gz)
    Source code(zip)
    fluidnc-v3.4.3-posix.zip(9.60 MB)
    fluidnc-v3.4.3-win64.zip(12.47 MB)
  • v3.4.2(Mar 22, 2022)

  • v3.4.1(Feb 28, 2022)

    FluidNC

    • Fixed issue where motion could occur in feed hold after clearing an alarm #305
    • Fixed "No SD Card" response after remove/reinsert #313
    • Fixed crash when both Wi-Fi and BT are enabled with custom user compiles. #311
    • Fixed attributes not being properly applied to I2SO pins. #304
    • Fixed CoreXY homing #322
    • Feature. Added shared reset pin for stepstick motors #309
    • Feature Added some constraints on config values. If you specify a value outside of a defined range it will issue a warning and move the value into the range. #309

    WebUI

    • Fixed tablet mode not going to full screen on non-mobile devices. #324
    • Fixed repeating message when probe failed. #320
    • Fixed file listing bug #323

    Fluidterm

    • Fixed Ensure that fluidterm.exe exits when its parent window dies #307

    Release Package

    • Added erase flash and other info to Windows install instructions #307

    The WebUI has changed in this release and you should upgrade it.

    Source code(tar.gz)
    Source code(zip)
    fluidnc-v3.4.1-posix.zip(9.60 MB)
    fluidnc-v3.4.1-win64.zip(12.46 MB)
  • v3.4.0(Feb 16, 2022)

    Enhancements

    • Rotary axis units These will no longer scale if you chose to use inches. They are typically angular units that do not scale between unit systems.

    • Jogging Jogging will no longer trigger soft limit alarms. It will constrain the motion so it stops before going outside the range. This allows for better continuous jogging. This makes it easy to jog to the extremes of travel and possibly nudge a limit switch. This could cause a hard limit alarm. To mitigate this, we now remove the switch pulloff from the range of travel. You will be protected on that end. You may want to relook at max_travel after this upgrade. Note: This will affect existing machines. If you are upgrading, you should validate your travel and reset any offsets (G54-G59, G28 & G30).

    • Install Script Improvements

      • Now there are only 2 sets of scripts. Windows and all others via python
      • Fluidterm Windows behaves the same as Fluidterm python
      • eFuse check improvements to prevent false warnings.
    • Startup Messages They are now saved and you can get them at any time with $Startup/Show or $SS

    Source code(tar.gz)
    Source code(zip)
    fluidnc-v3.4.0-posix.zip(9.60 MB)
    fluidnc-v3.4.0-win64.zip(12.46 MB)
  • v3.3.2(Feb 6, 2022)

    Features

    • Dynamixel Servos now supported
    • Linux install now uses python to make it work on more processors.

    Bug Fixes

    • A reset during a VFD delay caused a crash
    • Fixed URLs in WebUI
    • Fixed GCC issue with Templates and ISRs
    • G2 G3 now include ABC axis moves
    • Folder support in WebUI tablet tab
    • Cancel pending stepper disable on wake up (edited)

    The WebUI has been updated you can load it via the WebUI from the Wifi folder of the release.

    Source code(tar.gz)
    Source code(zip)
    fluidnc-v3.3.2-linux-amd64.zip(17.73 MB)
    fluidnc-v3.3.2-macos.zip(9.45 MB)
    fluidnc-v3.3.2-win64.zip(12.46 MB)
  • v3.3.1(Jan 17, 2022)

  • v3.3.0(Jan 8, 2022)

    • New Features
      • New config item for homing section. 'allow_single_axis:`. This allows you to block the single axis homing command for an axis. Previously $H would only home axes with homing cycles set up, but you could still home any axis with $H<axis>. This could be a problem if that axis did not have a switch. Also some people want to enforce a $H and not allow any $H<axis>.
    • Enhancements
      • You can now use button macros for homing.
      • Better boot messages for motors. It uses the config name for the driver.
      • The security fuse checking now outputs debugging information. We had a false positive test for one user.
    • Bug Fixes
      • Trinamic drivers were not always handling the software enable correctly.

    No change to the WebU

    Source code(tar.gz)
    Source code(zip)
    fluidnc-v3.3.0-linux-amd64.zip(17.73 MB)
    fluidnc-v3.3.0-macos.zip(9.44 MB)
    fluidnc-v3.3.0-win64.zip(12.45 MB)
  • v3.2.9(Dec 31, 2021)

    Bug Fixes**

    • XModem corruption issue
    • Control pin reporting miss Pn: prefix

    Enhancements

    • Fluidterm for windows is now a c++ program and will not falsely report as a virus
    • There are now recommended partitions for 8M and 16M ESP32 modules. Requires user compile. 1 Meg SPIFFS on 8Meg chip and 9 on 16M chip.

    Features

    • A solenoid can now be used as an axis

    No changes to the WebUI this time.

    Source code(tar.gz)
    Source code(zip)
    fluidnc-v3.2.9-linux-amd64.zip(17.73 MB)
    fluidnc-v3.2.9-macos.zip(9.44 MB)
    fluidnc-v3.2.9-win64.zip(12.45 MB)
  • v3.2.8(Dec 23, 2021)

    New

    • midtbot example config

    Enhancements

    • If a pin does not support :pu or :pd it will warn you rather than force the loading of a default config
    • You can now put the special Grbl characters '!', '~', & '?' in SSIDs and passwords by escaping them like %21.
    • Uart parser fixes
    • Isometric visualizer in tablet view.

    Bug Fixes

    • Fixed an Espressif where wifi was causing problems with interrupts on gpio.36 & gpio.39
    • IP adddress formatting
    • OLED issues

    The WebUI was updated, so people doing an upgrade will need to load a new index.html.gz

    Source code(tar.gz)
    Source code(zip)
    fluidnc-v3.2.8-linux-amd64.zip(17.72 MB)
    fluidnc-v3.2.8-macos.zip(9.44 MB)
    fluidnc-v3.2.8-win64.zip(20.52 MB)
  • v3.2.7(Dec 8, 2021)

    New Features

    • H100 RS485 VFD Spindle Added
    • MKS DCL32 Controller example config added
    • Stepper Dir pin is now options. You can use NO_PIN on second motor to save I/O

    Enhancements

    • New release process.
      • Smaller downloads
      • Easy for upgrades.
      • Includes and auto starts the fluidterm serial terminal

    Bug Fixes

    • Console completion bug at advance mode startup fix

    Notes

    The WebUI has not changed in this release. No need for upgraders to upload it.

    Source code(tar.gz)
    Source code(zip)
    fluidnc-v3.2.7-linux-amd64.zip(17.72 MB)
    fluidnc-v3.2.7-macos.zip(9.44 MB)
    fluidnc-v3.2.7-win64.zip(20.52 MB)
  • v3.2.6(Nov 29, 2021)

  • v3.2.5(Nov 18, 2021)

    • Bug Fixes
      • VFD Spindle Override no longer pauses job to sync speed
      • Probe report was missing a closing bracket
      • Fixed WebUI problem with probe reporting in $#
      • Print of large float values was causing a crash (espressif issue)
      • UserOutput pin definition problems caused crash
      • Initial value of limit switch is now read.
    • Enhancements
      • Wifi will stay up after pin config problems.
    Source code(tar.gz)
    Source code(zip)
    fluidnc-v3.2.5.zip(31.34 MB)
  • v3.2.4(Nov 10, 2021)

    Features

    Kinematics are back. CoreXY, Midtbot and a wallbot compile by default. Search wiki for kinematics Advanced serial terminal mode (history, auto-complete, more)

    Enhancements

    M9 is now ignored if no coolant pins are setup. This prevents an unneeded buffer sync. Better error feedback with incorrect speed_maps in config files.

    Bug Fixes

    $I crash fix and adding back $I= OEM information feature. Added reasonable ranges for arc tolerance and junction deviation. Resetting coordinate offsets with $rst=# was updating the current coordinate system until reboot. Fixed an edge case where stepper idle was not working right. Fixed VFD queue full issue Fix planner bug causing offsets

    Source code(tar.gz)
    Source code(zip)
    fluidnc-v3.2.4.zip(31.34 MB)
  • v3.2.3(Oct 28, 2021)

    • Bug Fixes
      • $Limit switch reporting
      • Realtime characters ($,!,~,^X, etc.) not seen in some modes
      • Cancel pending stepper idle on cycle start
    • WebUI
      • Lots of work on FluidNC tab and settings
      • Tool tips added to most buttons
      • Cleaned up hamburger menu
      • Flash Settings vs Config items selector.
    • Improvements
      • Removed unneeded boot messages
      • Added pin names to pin boot messages
      • Added a meta: key to config for file author comment
    Source code(tar.gz)
    Source code(zip)
    fluidnc-v3.2.3.zip(31.31 MB)
  • v3.2.2(Oct 23, 2021)

  • v3.2.1(Oct 14, 2021)

    • Improvements
      • XModem file upload
      • Config/Filename and Message/Level now show up in WebUI
    • Bug Fixes
      • Trinamic motors. The Coolstep, etc. modes were matching the config file setting.
      • Fixed crash issue with UART Trinamic Drivers
      • Fixed $CD= with empty filename issue
    Source code(tar.gz)
    Source code(zip)
    fluidnc-v3.2.1.zip(31.31 MB)
  • v3.2.0(Oct 8, 2021)

  • v(Oct 7, 2021)

    Note: This release will require you to update your config files. We renamed many of the keys to make them more consistent and more self describing. We hope this is the last time we need to do something like this.

    • Changed some file permissions in the install scripts
    • SPI Stepper drivers can now be used in daisy chain mode
    Source code(tar.gz)
    Source code(zip)
    fluidnc-v3.1.7.zip(31.30 MB)
  • v3.1.6(Oct 3, 2021)

  • v3.1.5(Sep 25, 2021)

  • v3.1.4(Sep 17, 2021)

  • v3.1.3(Sep 12, 2021)

  • v3.1.2(Sep 2, 2021)

  • v3.1.1(Aug 31, 2021)

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 48 Jun 10, 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 152 Jun 16, 2022
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 69 Jun 21, 2022
Bobby Cooke 266 Jun 20, 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 10 Jun 19, 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 39 Jun 25, 2022
How To Build The NeXT ROM Monitor From Sources

How To Build The NeXT ROM Monitor From Sources

Jeffrey H. Johnson 10 May 9, 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 May 21, 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 165 May 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 13 Jun 20, 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 3 May 17, 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 3 Jun 2, 2021
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 24 Jun 28, 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 3 Apr 18, 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 29 May 30, 2022