Root controller and GRBL

Hello, I’m new to the forum and I apologize if I make any mistakes.
I would like to buy the ROOT CONTROLLER REV.3 for a 4-axis CNC (3 + rotary). I would like to use it with the G-SENDER software (SIENCI LAB) and I would like to know if they are compatible for use together.
I would also like to know how to program the relay and optoisolated outputs to be used by g-sender (flood, mist or probe).
I hope I was clear.
Thanks in advance
Matteo

Hi Matteo,

I cannot say I have used SIENCI LAB software before. I personally use Universal Gcode Sender. which works great! though, any GRBL compatible G-code sender will work fine!

If you want Mist, Flood - these are dedicated G-code commands which can be assigned a pin - super easy and configurable in the machine configuration YAML file. For example;

control:
  safety_door_pin: NO_PIN
  reset_pin: NO_PIN
  feed_hold_pin: gpio.36
  cycle_start_pin: gpio.39
  macro0_pin: gpio.34
  macro1_pin: NO_PIN
  macro2_pin: NO_PIN
  macro3_pin: NO_PIN

coolant:
  flood_pin: gpio.33
  mist_pin: gpio.13
  delay_ms: 0

Likewise the Probe has a user defined pin too!

probe:
  pin: gpio.27
  check_mode_start: true

if you want user controller outputs, then again this is easily done with the M62 / M36 commands; for example;

user_outputs:
  analog0_pin: gpio.13
  analog1_pin: gpio.14:low
  analog2_pin: NO_PIN
  analog3_pin: NO_PIN
  analog0_hz: 5000
  analog1_hz: 5000
  analog2_hz: 5000
  analog3_hz: 5000
  digital0_pin: gpio.26
  digital1_pin: gpio.4
  digital2_pin: i2so.5
  digital3_pin: i2so.6:low
  digital4_pin: NO_PIN
  digital5_pin: NO_PIN
  digital6_pin: NO_PIN
  digital7_pin: NO_PIN

Please note - if you’re struggle in the regard. I do offer a video call functionality where we can run through the configuration together.

Thanks Pete, I have two questions:
1_ does the motherboard already come with FLUID NC loaded as firmware?
2_ Could you send me an example of a config.yaml file for a CNC with 3 axes, (limit x,y,z) flood, coolant, and work cycle start and stop buttons? (I would like to create two buttons to start the cycle and stop without intervening with the mouse on the PC)
Thank you in advance and sorry because I still don’t know FLUIDNC, and I still have a lot to learn.

P.S. The motherboard hasn’t arrived yet

This is the tracking link but it looks like the motherboard is in the US
Can you please check it too?

www.royalmail.com/portal/rm/track?trackNumber=RY470421669GB .

Thanks a lot
Matteo Diversi

Hey Matteo,

I does indeed come pre-loaded with the Fluidnc Firmware. That you will need to upload you’re configuration too. naturally, a newer version might have been released. So its always wise to double check this page for the lates version;

Please use this as a starter (I’ve not tested this but I’m fairly confident it’ll work)

board: Root Controller ISO Rev 3
name: Matteo
stepping:
  engine: I2S_STREAM
  idle_ms: 255
  pulse_us: 4
  dir_delay_us: 1
  disable_delay_us: 3

axes:
  shared_stepper_disable_pin: NO_PIN
  x:
    steps_per_mm: 160.000
    max_rate_mm_per_min: 4500.000
    acceleration_mm_per_sec2: 500.000
    max_travel_mm: 100
    soft_limits: true
    homing:
      cycle: 1
      positive_direction: true
      mpos_mm: 100
      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: gpio.34
      hard_limits: true
      pulloff_mm:1.000
      standard_stepper:
        step_pin: I2SO.7:low
        direction_pin: I2SO.5:low
        disable_pin: I2SO.3:high

  y:
    steps_per_mm: 160.000
    max_rate_mm_per_min: 4500.000
    acceleration_mm_per_sec2: 500.000
    max_travel_mm: 100.000
    soft_limits: true
    homing:
      cycle: 1
      positive_direction: true
      mpos_mm: 100
      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: gpio.32
      hard_limits: true
      pulloff_mm:1.000
      standard_stepper:
        step_pin: I2SO.12:low
        direction_pin: I2SO.10:low
        disable_pin: I2SO.8:high

  z:
    steps_per_mm: 160.000
    max_rate_mm_per_min: 4500.000
    acceleration_mm_per_sec2: 500.000
    max_travel_mm: 100.000
    soft_limits: true
    homing:
      cycle: 1
      positive_direction: true
      mpos_mm: 100
      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: gpio.27
      hard_limits: true
      pulloff_mm:1.000
      standard_stepper:
        step_pin: I2SO.18:low
        direction_pin: I2SO.16:low
        disable_pin: I2SO.14:high

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

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

sdcard:
  card_detect_pin: NO_PIN
  cs_pin: gpio.5

control:
  safety_door_pin: NO_PIN
  reset_pin: NO_PIN
  feed_hold_pin: gpio.26
  cycle_start_pin: gpio.35
  macro0_pin: NO_PIN
  macro1_pin: NO_PIN
  macro2_pin: NO_PIN
  macro3_pin: NO_PIN

coolant:
  flood_pin: I2SO.20
  mist_pin: I2SO.21
  delay_ms: 0

probe:
  pin: gpio.2
  check_mode_start: true

macros:
  startup_line0:
  startup_line1:
  macro0: 
  macro1: 
  macro2: 
  macro3:
  
user_outputs:
  analog0_pin: NO_PIN
  analog1_pin: NO_PIN
  analog2_pin: NO_PIN
  analog3_pin: NO_PIN
  analog0_hz: 5000
  analog1_hz: 5000
  analog2_hz: 5000
  analog3_hz: 5000
  digital0_pin: NO_PIN
  digital1_pin: NO_PIN
  digital2_pin: NO_PIN
  digital3_pin: NO_PIN


start:
  must_home: true
  

PS it would seem your controller is due for delivery today or tomorrow!

Kind Regards Pete!

Thanks Pete you are very kind, I hope you arrive soon to try it on my cnc.
One last question: how do I understand which electrical terminals on the outside of the controller case correspond to the various inputs GPIO or I2 SO outputs that are written in the .yaml program, for example to which terminals should I connect the start and end cycle buttons, or which terminals to connect the refrigerant?

Hi Pete
This is the tacking numer
RY470421669GB
Unfortunately the ROOT CONTROLLER hasn’t arrived yet, with the tracking you sent me it seems to be in America !!! Can you please check and send me news?
Thanks
Matteo

Hey Matteo!

Oh my! the tracking information is rouge! I am sorry about this. let me look into this - failing this. I shall get a new one sent out to you!

Kind Regards Pete

Please let me know as soon as possible otherwise I will have to open a dispute with PAYPAL to get my money back
I look forward to hearing from you within 1 or 2 days
Thanks
Matteo

Matteo,

It would appear the order has been redirected to Italy! finally. I hope it should be with you shortly!

Thanks, I’ll let you know when it arrives

One last question: how do I understand which electrical terminals on the outside of the controller case correspond to the various inputs GPIO or I2 SO outputs that are written in the .yaml program, for example to which terminals should I connect the start and end cycle buttons, or which terminals to connect the refrigerant?

Dear Pete, unfortunately the controller has not arrived yet.
It’s been a month since the order!!!
Please resend one again, otherwise I will request a refund through paypal.
I hope you will understand
I await your VERY URGENT reply
Matteo

Matteo,

I fully understand your position.

I do not get emails form Discourse and my direct email address is: root@rootcnc.com.

A claim has been raised against Royal Mail, they will get back to me within 48 hours (hopefully).

Please ensure you’ve checked your emails and messages from you shipping company for anything regarding customs duties for you country.

Your item has been presented to Customs on 24-04-2025 for assessment. More information will be available once the assessment is complete.

Hey Matteo,

It would seem the shipment has cleared customs! I hope it’ll be with you shortly

Thanks Pete .
Please can you reply to my mail on 07/04 ?
I amati your response
Thanks
Matteo

Excuseme my last mail of 07/05 !!!
Thanks

Hi Matteo,

I can see the tracking has not move! that isn’t good. I have chased them my end and I’m awaiting a reply.

as for your email, I have not received anything from yourself?

Kind Regards Pete

This is my last mail :

In the meantime I need to understand something and I beg you to reply because I have searched a lot on the internet and on your website but I can’t find an answer:

How can I understand which electrical terminals on the external case correspond to the various inputs and outputs on the controller, for example
coolant:
flood_pin: I2SO.20 which terminal does it correspond to?
mist_pin: I2SO.21 which terminal does it correspond to?

Or which electrical terminal on the external case corresponds to the GPIO.27 that you see below?

motor0:
limit_neg_pin: NO_PIN
limit_pos_pin: NO_PIN
limit_all_pin: gpio.27
hard_limits: true
pulloff_mm:1.000
standard_stepper:
step_pin: I2SO.18:low
direction_pin: I2SO.16:low
disable_pin: I2SO.14:high

Please let me know if there is a map of the digital and analog inputs and outputs that indicates which terminals to use.
Thanks
Matteo