FluidNC icon indicating copy to clipboard operation
FluidNC copied to clipboard

Problem: Offline Controller Not Working

Open ashokmanker opened this issue 4 months ago • 7 comments

Wiki Search Terms

Offline controller with uart

Controller Board

piBot v4.8A

Machine Description

3020 CNC with drv8825 drivers and Nema17 Steppers

Input Circuits

gpio.25 used as TX and gpio.27 as RX

Configuration file

board: PiBotV48A
name: ASHOK
stepping:
  engine: I2S_STREAM
  idle_ms: 25
  pulse_us: 4
  dir_delay_us: 1
  disable_delay_us: 0

axes:
  shared_stepper_disable_pin: NO_PIN
  x:
    steps_per_mm: 800.000
    max_rate_mm_per_min: 5000.000
    acceleration_mm_per_sec2: 100.000
    max_travel_mm: 300.000
    soft_limits: false
    homing:
      cycle: 2
      positive_direction: false
      mpos_mm: 150.000
      feed_mm_per_min: 100.000
      seek_mm_per_min: 200.000
      settle_ms: 500
      seek_scaler: 1.100
      feed_scaler: 1.100

    motor0:
      limit_neg_pin: gpio.33:low
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: false
      pulloff_mm: 1.000
      standard_stepper:
        step_pin: I2SO.2
        direction_pin: I2SO.1
        disable_pin: I2SO.0

  y:
    steps_per_mm: 800.000
    max_rate_mm_per_min: 5000.000
    acceleration_mm_per_sec2: 100.000
    max_travel_mm: 300.000
    soft_limits: false
    homing:
      cycle: 2
      positive_direction: true
      mpos_mm: 150.000
      feed_mm_per_min: 100.000
      seek_mm_per_min: 200.000
      settle_ms: 500
      seek_scaler: 1.100
      feed_scaler: 1.100

    motor0:
      limit_neg_pin: gpio.32:low
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: false
      pulloff_mm: 1.000
      standard_stepper:
        step_pin: I2SO.5
        direction_pin: I2SO.4
        disable_pin: I2SO.7

  z:
    steps_per_mm: 800.000
    max_rate_mm_per_min: 5000.000
    acceleration_mm_per_sec2: 100.000
    max_travel_mm: 300.000
    soft_limits: false
    homing:
      cycle: 1
      positive_direction: true
      mpos_mm: 150.000
      feed_mm_per_min: 100.000
      seek_mm_per_min: 800.000
      settle_ms: 500
      seek_scaler: 1.100
      feed_scaler: 1.100

    motor0:
      limit_neg_pin: gpio.35:low
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: false
      pulloff_mm: 1.000
      standard_stepper:
        step_pin: I2SO.10
        direction_pin: I2SO.9
        disable_pin: I2SO.8

  a:
    steps_per_mm: 53.400
    max_rate_mm_per_min: 5000.000
    acceleration_mm_per_sec2: 100.000
    max_travel_mm: 960.000
    soft_limits: false
    homing:
      cycle: 2
      positive_direction: false
      mpos_mm: 150.000
      feed_mm_per_min: 100.000
      seek_mm_per_min: 200.000
      settle_ms: 500
      seek_scaler: 1.100
      feed_scaler: 1.100

    motor0:
      limit_neg_pin: NO_PIN
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: false
      pulloff_mm: 3.000
      standard_stepper:
        step_pin: I2SO.13
        direction_pin: I2SO.12
        disable_pin: I2SO.15

  b:
    steps_per_mm: 808.000
    max_rate_mm_per_min: 5000.000
    acceleration_mm_per_sec2: 100.000
    max_travel_mm: 200.000
    soft_limits: false
    homing:
      cycle: 1
      positive_direction: false
      mpos_mm: 150.000
      feed_mm_per_min: 100.000
      seek_mm_per_min: 800.000
      settle_ms: 500
      seek_scaler: 1.100
      feed_scaler: 1.100

    motor0:
      limit_neg_pin: NO_PIN
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: false
      pulloff_mm: 3.000
      standard_stepper:
        step_pin: I2SO.18
        direction_pin: I2SO.17
        disable_pin: I2SO.16

  c:
    steps_per_mm: 808.000
    max_rate_mm_per_min: 5000.000
    acceleration_mm_per_sec2: 100.000
    max_travel_mm: 200.000
    soft_limits: false
    homing:
      cycle: 1
      positive_direction: false
      mpos_mm: 150.000
      feed_mm_per_min: 100.000
      seek_mm_per_min: 800.000
      settle_ms: 500
      seek_scaler: 1.100
      feed_scaler: 1.100

    motor0:
      limit_neg_pin: NO_PIN
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: false
      pulloff_mm: 3.000
      standard_stepper:
        step_pin: I2SO.21
        direction_pin: I2SO.20
        disable_pin: I2SO.23

uart1:
  txd_pin: gpio.25
  rxd_pin: gpio.27
  rts_pin: NO_PIN
  cts_pin: NO_PIN
  baud: 115200
  mode: 8N1

uart_channel1: 
  report_interval_ms: 75
  uart_num: 1
  message_level: Verbose

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


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


sdcard:
  card_detect_pin: NO_PIN
  cs_pin: gpio.5


probe:
  pin: gpio.2:high
  toolsetter_pin: gpio.26:high



start:
  must_home: false


# Begin OLED
#i2c0:
#   sda_pin: gpio.27
#   scl_pin: gpio.25

#oled:
#   i2c_num: 0
#   i2c_address: 60
#   width: 128
#   height: 64
#   radio_delay_ms: 1000

# Begin relay
#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: 0
#  speed_map: 0=0.000% 0=100.000% 1=100.000%
#  off_on_alarm: false

# Begin PWM  
#pwm:
#  pwm_hz: 5000
#  direction_pin: NO_PIN
#  output_pin: gpio.4
#  enable_pin: NO_PIN
#  disable_with_s0: false
#  s0_with_disable: true
#  spinup_ms: 0
#  spindown_ms: 0
#  tool_num: 1
#  speed_map: 0=0.000% 10000=100.000%
#  off_on_alarm: false
  
# Begin Laser 
Laser:
  pwm_hz: 5000
  output_pin: gpio.12
  enable_pin: NO_PIN
  disable_with_s0: false
  s0_with_disable: true
  tool_num: 2
  speed_map: 0=0.000% 255=100.000%
  off_on_alarm: true

# Begin 10V
#10V:
#  forward_pin: NO_PIN
#  reverse_pin: NO_PIN
#  pwm_hz: 5000
#  output_pin: gpio.13
#  enable_pin: NO_PIN
#  direction_pin: NO_PIN
#  disable_with_s0: false
#  s0_with_disable: true
#  spinup_ms: 0
#  spindown_ms: 0
#  tool_num: 3
#  speed_map: 0=0.000% 1000=0.000% 24000=100.000%
#  off_on_alarm: false
  
# Begin YL620 RS485
#uart1: 
#  txd_pin: gpio.15
#  rxd_pin: gpio.16
#  rts_pin: NO_PIN
#  cts_pin: NO_PIN
#  baud: 115200
#  mode: 8N1

#uart_channel1: 
#  report_interval_ms: 75
#  uart_num: 1
#  message_level: Verbose


#YL620:
#  uart_num: 1
#  modbus_id: 1
#  tool_num: 4
#  speed_map: 0=0% 0=25% 6000=25% 24000=100%
#  off_on_alarm: false


################################################################################################################################

# Begin Huanyang RS485
#uart1:
  #txd_pin: gpio.15
  #rxd_pin: gpio.16
  #rts_pin: gpio.14
  #baud: 9600
  #mode: 8N1

#Huanyang:
  #uart_num: 1
  #modbus_id: 1
  #tool_num: 0
  #speed_map: 0=0% 0=25% 6000=25% 24000=100%
  #off_on_alarm: false

# #begin PWM
# pwm:
  # pwm_hz: 5000
  # direction_pin: NO_PIN
  # output_pin: gpio.13
  # enable_pin: gpio.14
  # disable_with_s0: false
  # s0_with_disable: true
  # spinup_ms: 0
  # spindown_ms: 0
  # tool_num: 0
  # speed_map: 0=0.000% 10000=100.000%
  # off_on_alarm: false

# #begin Laser
# Laser:
  # pwm_hz: 5000
  # output_pin: gpio.4
  # enable_pin: gpio.12
  # disable_with_s0: false
  # s0_with_disable: true
  # tool_num: 1
  # speed_map: 0=0.000% 255=100.000%
  # off_on_alarm: true

# #begin 10V
10V:
  forward_pin: gpio.15
  reverse_pin: gpio.14
  pwm_hz: 5000
  output_pin: gpio.13
  enable_pin: NO_PIN
  direction_pin: NO_PIN
  disable_with_s0: false
  s0_with_disable: true
  spinup_ms: 0
  spindown_ms: 0
  tool_num: 0
  speed_map: 0=0.000% 1000=0.000% 24000=100.000%
  off_on_alarm: false

# Using MOSFETs (Check Spindle Pin Usage)
# coolant:
  # flood_pin: gpio.12
  # mist_pin: gpio.4
  # delay_ms: 0
  
# Begin YL620 RS485
#uart1:
  #txd_pin: gpio.15
  #rxd_pin: gpio.16
  #rts_pin: gpio.14
  #baud: 9600
  #mode: 8N1

#YL620:
  #uart_num: 1
  #modbus_id: 1
  #tool_num: 0
  #speed_map: 0=0% 0=25% 6000=25% 24000=100%
  #off_on_alarm: false

Startup Messages

[MSG:INFO: FluidNC v3.9.8 https://github.com/bdring/FluidNC]
[MSG:INFO: Compiled with ESP32 SDK:v4.4.7-dirty]
[MSG:INFO: Local filesystem type is littlefs]
[MSG:INFO: Configuration file:config.yaml]
[MSG:INFO: Machine ASHOK]
[MSG:INFO: Board PiBotV48A]
[MSG:INFO: UART1 Tx:gpio.25 Rx:gpio.27 RTS:NO_PIN Baud:115200]
[MSG:INFO: uart_channel1 created at report interval: 75]
[MSG:INFO: I2SO BCK:gpio.22 WS:gpio.17 DATA:gpio.21Min Pulse:2us]
[MSG:INFO: SPI SCK:gpio.18 MOSI:gpio.23 MISO:gpio.19]
[MSG:INFO: SD Card cs_pin:gpio.5 detect:NO_PIN freq:8000000]
[MSG:INFO: Stepping:I2S_STREAM Pulse:4us Dsbl Delay:0us Dir Delay:1us Idle Delay:25ms]
[MSG:INFO: Axis count 6]
[MSG:INFO: Axis X (150.000,450.000)]
[MSG:INFO:   Motor0]
[MSG:INFO:     standard_stepper Step:I2SO.2 Dir:I2SO.1 Disable:I2SO.0]
[MSG:INFO:  Neg Limit gpio.33:low]
[MSG:INFO: Axis Y (-150.000,150.000)]
[MSG:INFO:   Motor0]
[MSG:INFO:     standard_stepper Step:I2SO.5 Dir:I2SO.4 Disable:I2SO.7]
[MSG:INFO:  Neg Limit gpio.32:low]
[MSG:INFO: Axis Z (-150.000,150.000)]
[MSG:INFO:   Motor0]
[MSG:INFO:     standard_stepper Step:I2SO.10 Dir:I2SO.9 Disable:I2SO.8]
[MSG:INFO:  Neg Limit gpio.35:low]
[MSG:INFO: Axis A (150.000,1110.000)]
[MSG:INFO:   Motor0]
[MSG:INFO:     standard_stepper Step:I2SO.13 Dir:I2SO.12 Disable:I2SO.15]
[MSG:INFO: Axis B (150.000,350.000)]
[MSG:INFO:   Motor0]
[MSG:INFO:     standard_stepper Step:I2SO.18 Dir:I2SO.17 Disable:I2SO.16]
[MSG:INFO: Axis C (150.000,350.000)]
[MSG:INFO:   Motor0]
[MSG:INFO:     standard_stepper Step:I2SO.21 Dir:I2SO.20 Disable:I2SO.23]
[MSG:INFO: Kinematic system: Cartesian]
[MSG:INFO: Connecting to STA SSID:SDECIVIL]
[MSG:INFO: Connecting.]
[MSG:INFO: Connecting..]
[MSG:INFO: Connected - IP is 192.168.151.171]
[MSG:INFO: WiFi on]
[MSG:INFO: Start mDNS with hostname:http://fluidnc.local/]
[MSG:INFO: HTTP started on port 80]
[MSG:INFO: Telnet started on port 23]
[MSG:INFO: Laser Ena:NO_PIN Out:gpio.12 Freq:5000Hz Period:8191]
[MSG:INFO: 10V Spindle Ena:NO_PIN Out:gpio.13 Dir:NO_PIN Fwd:gpio.15 Rev:gpio.14 Freq:5000Hz Period:8191]
[MSG:INFO: Changed to spindle:10V]
[MSG:INFO: Probe gpio.2]
[MSG:INFO: Toolsetter gpio.26]
ok

User Interface Software

WebUI and UGS

What happened?

I have defined uart1: and uart_channel1: in config files. But Offline controller is not connecting. I have tested 2 years back, does it changed something in recent versions?

GCode File

No response

Other Information

No response

ashokmanker avatar Aug 23 '25 09:08 ashokmanker

What offline controller are you using?

breiler avatar Aug 23 '25 09:08 breiler

I am using the controller came with machine. It has ESP32 with 3.2inch TFT. One other which is made by me ESP32 4.0inch TFT. Both were working with FluidNC I have tested earlier (2 Years Back) Now a days I was using LinuxCNC so didnt tested. Now That setup broked.

ashokmanker avatar Aug 23 '25 10:08 ashokmanker

You would have to ask the display designer.

bdring avatar Aug 23 '25 11:08 bdring

Earlier it was working on earlier versions of FluidNC. Nothing changed since then, only the change is latest FluidNC.

ashokmanker avatar Aug 23 '25 13:08 ashokmanker

I found a photo that shows a FluidDial connected to a pibot. Is your pendant based on FluidDial? The supported FluidDial variants use M5Dial and 2.8" CYD displays. We do not have schematics or software info about variants of the display sizes that you lost above.

MitchBradley avatar Aug 23 '25 17:08 MitchBradley

I see that you have the uart1 baud rate at 115200. The baud rate for standard FluidDial software is 1000000, I.e. 1 megabaud. But since I do not know the details of your non-standard pendant, I cannot say if 115200 is correct or not. We need complete information to solve problems.

MitchBradley avatar Aug 23 '25 17:08 MitchBradley

Uart channel is created as displayed in FluidNC msg using gpio 25 as tx and gpio 27 as rx. It's standard offline controller which comes with Chinese 3020 type CNC. And it's available as separate also. It has +5v, GND, rx and tx pins. It sends g-codes via uart channel. I have one diy offline controller also which also based on esp32 and TFT display. Source code https://github.com/mstrens/grbl_controller_esp32

It was working in previous versions of FluidNC. I used to connect at 115200. Tried at 9600 also.

ashokmanker avatar Aug 23 '25 18:08 ashokmanker