FluidNC und Estlcam im Parallelbetrieb am OCS2

In diesem Blog-Beitrag zeige ich, wie man FluidNC und Estlcam am OPEN-CNC-Shield 2 parallel nutzen kann, ohne umstecken zu müssen. Dazu wird das ControllerModule Dual Adapter verwendet. Ich zeige den Einbau und die Konfiguration anhand meiner MPCNC.

Dieser Adapter wird auf den Steckplatz für ControllerModule auf dem OCS2 aufgesetzt und bietet Platz für zwei zusätzliche Module. Dadurch ist es möglich, zwei unterschiedliche ControllerModule auf einem OCS2 zu betreiben. Über einen Schalter am Dual-Adapter lässt sich komfortabel zwischen den beiden Modulen wechseln. Es ist jedoch zu beachten, dass die Maschine zu jedem Zeitpunkt nur durch ein Modul gesteuert werden kann.

In diesem Video stelle ich die Kombination vom Zusammenbau bis zur ersten Inbetriebnahme an meiner Maschine vor:

Zusammenbau

Zunächst werden die Abstandsbolzen auf dem Dual Adapter mit M3-Muttern angebracht. Diese dienen der Befestigung des zusätzlichen ControllerModules.

Dann können die beiden ControllerModule angebracht und befestigt werden. Das Estlcam ControllerModule wird zusätzlich mit zwei 3D-gedruckten Stützen befestigt.

Für das Umschalten zwischen den beiden Modulen wird ein Schalter benötigt. Die Pinbelegung gibt es in der Dokumentation. Es kann ein typischer ON-OFF-ON oder ON-ON Schalter genutzt werden, auch SPDT-Schalter genannt: Amazon

Bevor das ControllerModule aufgesteckt wird, sollte der ESP32 für FluidNC mit der passenden Firmware bespielt werden. Siehe dazu den Abschnitt FluidNC Konfiguration.

Danach kann das Modul auf das OCS2 aufgesteckt werden. Bevor der Strom eingeschaltet wird, sollte das Thema ENA/Enable der Treiber aus der Dokumentation noch durchgelesen werden.

In Estlcam kann die Steuerung nun programmiert werden. Je nach Stellung des Umschalters kann jetzt zwischen Estlcam und dem FluidNC Controller gewechselt werden.

Achsenkonfiguration am OCS2

Die Achsenkonfiguration am OCS2 sieht bei mir so aus. Hierbei unbedingt das Kapitel über die Achsenkonfiguration aus der Dokumentation beachten.

An meiner MPCNC sind jeweils zwei Motoren für die X- und Y-Achse. Daher nutze ich „AxisA“ für X2 und „AxisB“ für Y2.

FluidNC Konfiguration

Ich habe für dieses Projekt an meiner MPCNC folgende Konfiguration verwendet. Bitte beachte, dass sich die Einstellungen der STEPs usw. für jede Maschine unterscheiden können.

name: "OCS2 FluidNC"
board: "OCS2 FluidNC Controller"

stepping:
  engine: I2S_STREAM
  idle_ms: 250
  dir_delay_us: 1
  pulse_us: 4
  disable_delay_us: 0

axes:
  # shared_stepper_disable_pin: i2so.12

  x:
    steps_per_mm: 50
    max_rate_mm_per_min: 7000
    acceleration_mm_per_sec2: 500
    # max_travel_mm: 1000
    # soft_limits: true

    homing:
      cycle: 2
      positive_direction: false
      mpos_mm: 0.000
      feed_mm_per_min: 500.000
      seek_mm_per_min: 1000.000
      seek_scaler: 1.1
      feed_scaler: 1.1

    motor0:
      limit_neg_pin: gpio.36:high
      hard_limits: true
      pulloff_mm: 5
      stepstick:
        direction_pin: i2so.1
        step_pin: i2so.0
    # motor1:
    # limit_neg_pin: gpio.39:high
    # hard_limits: true
    # pulloff_mm: 5
    # stepstick:
    # direction_pin: i2so.7
    # step_pin: i2so.6

  y:
    steps_per_mm: 50
    max_rate_mm_per_min: 7000
    acceleration_mm_per_sec2: 500
    # max_travel_mm: 1000
    # soft_limits: true

    homing:
      cycle: 2
      positive_direction: false
      mpos_mm: 0.000
      feed_mm_per_min: 500.000
      seek_mm_per_min: 1000.000
      seek_scaler: 1.1
      feed_scaler: 1.1

    motor0:
      limit_neg_pin: gpio.34:high
      hard_limits: true
      pulloff_mm: 5
      stepstick:
        direction_pin: i2so.3
        step_pin: i2so.2
    # motor1:
    # limit_neg_pin: gpio.35:high
    # hard_limits: true
    # pulloff_mm: 5
    # stepstick:
    #   direction_pin: i2so.9
    #   step_pin: i2so.8

  z:
    steps_per_mm: 50
    max_rate_mm_per_min: 2000
    acceleration_mm_per_sec2: 100
    max_travel_mm: 1000
    homing:
      cycle: -1

    motor0:
      limit_all_pin: NO_PIN
      stepstick:
        direction_pin: i2so.5
        step_pin: i2so.4
    motor1:
      null_motor:

# I2SO for shift registers
i2so:
  bck_pin: gpio.22
  data_pin: gpio.21
  ws_pin: gpio.17

# SPI for SD Card
spi:
  miso_pin: gpio.19
  mosi_pin: gpio.23
  sck_pin: gpio.18

sdcard:
  cs_pin: gpio.5
  card_detect_pin: NO_PIN

# I2C for OLED Display
i2c0:
  sda_pin: gpio.14
  scl_pin: gpio.13

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

coolant:
  # Ausgang 1
  flood_pin: i2so.16:high
  # Ausgang 2
  mist_pin: i2so.17:high
# probe:
#   pin: gpio.32:low:pu

Laser:
  pwm_hz: 5000
  output_pin: gpio.25:high
  enable_pin: NO_PIN
  disable_with_s0: false
  s0_with_disable: true
  tool_num: 0
  speed_map: 0=0.000% 1000=100.000%
  off_on_alarm: true

control:
  safety_door_pin: NO_PIN
  reset_pin: gpio.12:low:pu
  feed_hold_pin: gpio.26:low:pu
  cycle_start_pin: gpio.27:low:pu
  macro0_pin: NO_PIN
  macro1_pin: NO_PIN
  macro2_pin: NO_PIN
  macro3_pin: NO_PIN

10 Gedanken zu „FluidNC und Estlcam im Parallelbetrieb am OCS2“

  1. Hallo zusammen,
    ich habe ein kleines Problem. Ich habe meine Chinaspindel 1.5 kW mit FU „YL 620-A“ an das Board angeschlossen. Über Estlcam kann ich die Spindel starten und die Drehzahl regulieren. Leider läuft die Spindel nur mit ca. 8.000 bis 9.000 U/min statt mit 24.000 U/min.
    Die Parameter habe ich wie folgt am FU eingestellt: P00.01 – 1
    P00.23 – 6
    P00.24 – 9
    P03.10 – 60
    P03.11 -1015
    P03.12 – 60
    P03.13 – 400
    P07.08 – 3
    Ich würde mich freuen, wenn mir jemand helfen könnte.

    Lieben Gruß Thomas

    Antworten
  2. Hallo,

    ich hätte eine Frage zu externen Motortreibern. Wenn ich z.B. den DM542T von Stepperonline verwende auf welche Spannung soll ich den einstellen und muss ich am Ocs2 auch hierfür Jumper setzen ? Der Treiber kann auf 5v oder 24V eingestellt werden.

    Danke
    Grüße Daniel

    Antworten
    • Moin Daniel,
      ich bin auch gerade dabei die DM542T in Betrieb zu nehmen. Ist aber auch mehr Probieren als genaues wissen 😐
      Die Treiber habe ich auf 5V Steuersignal gestellt. Ich Versorge die DM542T mit externen 36V, daher habe ich keine „Driver Versorgung“ an das Open-CNC-Shield_2 gelegt und auch den Jumper „J3“ nicht gesetzt.
      PUL(-) und DIR(-) habe ich auf den Pluggable DriverModul auf GND gelegt. PUL(+) auf STEP und DIR(+) auf DIR.
      Wenn ich den ENA in der selben Logik auflege kann ich die Achse nicht mehr verfahren,
      also habe ich ENA(+) auf GND und ENA(-) auf ENA ohne gesteckten Jumper bei „JP1“. Ob das so richtig ist, weiß ich nicht!
      Zumindest habe ich im eingeschalteten zustand (ohne aktiven Estlcam Controller) ein Haltemoment und mit Estlcam kann ich die Achsen verfahren.
      Den Alarm Ausgang (ALM(+),ALM(-)) von DM542T kann ich gar nicht auf „Alarm“ anschließen, bekomme in beiden Möglichkeiten immer einen Daueralarm ohne das beim DM542T ein Alarm ansteht.

      Decken sich deine Erfahrungen mit meinen oder hast du die DM542T anders angeschlossen.

      Gruß
      Matthias

      Antworten
  3. Moin,
    ich habe mal zwei Fragen zu Ihren OPEN-CNC-Shield 2, können Sie mir bitte einmal die Abmaße des Mainboard nennen.
    Mir ist noch nicht klar wie ich auf den „Arduino Mega 2560“ die Firmware von Estlcam raufbekomme, kann dazu leider auch nix im Netz finden…

    Gruß und Dank
    Matthias

    Antworten

Schreibe einen Kommentar