User Tools

Site Tools


cpm4030

ISEL CPM 4030

Dit is een CPM 4030, van het duitse bedrijf ISEL.

De besturing en bijgeleverde software waren wat beperkt en verouderd, dus is hij omgebouwd naar FluidNC (grbl variant voor ESP32). http://wiki.fluidnc.com/

Software

GCode Creeren / CAM

PCB gerber omzetten naar gcode :
coppercam
online rapidpcb
flatcam
pcb2gcode en pcb2gcodeGUI
pcbgcode

2d/3d tekening omzetten naar 2d / 2.5d / 3d gcode :
cambam
carbidecreate
freemill
Fengrave
EstlCAM
PixelCNC
FreeMill
PyCAM

CAM in bestaande tekensoftware :
fusion360 CAM
Path workbench in Freecad
Inkscape

Grafische truukjes :
Halftoner en Reactor
Rasterbator
plaatjes naar svg

problemen met arcs:
G2/G3 error 33 uitleg en oplossing

GCode Simulator :

GCode Streamers :

Gcode streamers zijn bijna hetzelfde als 3D printer software die coördinaten naar de printer sturen vanaf de pc alleen zijn deze versies voornamelijk bedoeld voor Frezen of lasersnijden. Niet elke software voor grbl werkt ook met FluidNC, dit is testen of uitzoeken.

GSender

Universal G-Code Sender (Java Cross-platform - ook voor mac!)

bCNC

Candle

CamBam+ met plugin

Freesjes

Type diameter Lengte snijlengte Doel Link voor als hij stuk gaat
90 graden V-cutter 6mm 50mm tip Graveren / V-Carve link
Frees 1-snijder 4mm 45mm 22mm uitfrezen van objecten of pockets link
Frees 2-snijder 0,6mm ?mm ?mm Printplaten of fijn gaveerwerk link

Electronica

Freesmotor

De freesmotor was een ISEL UFM 500 met OZ8A / EOC8A / DIN6388A spantangen (vergelijkbaar met kress FME serie) Deze gaf storingen bij langer gebruik, en onderdelen hiervoor bleken bijna even duur als een nieuwe spindel van vevor. Het gaat om de JST-JGF-F65A, een 800 watt 3-fasen spindel die op 400 Hz van de bijbehorende frequentieregelaar 10000 toeren draait. Er zit een complete set ER11 collets bij met alle metrische en imperial maten.

Electronica - Drivers

Er worden MSD-50-5.6 stepper driver aan de controller gekoppeld voor de aansturing van de stappenmotoren. Deze kunnen maximaal 5.6A en 50V aan.

Electronica - stappenmotoren

Het betreft st5818m3008 stappenmotoren.

De spanning naar de stappenmotoren is 48v, de maximale stroom is gelimiteerd op 2,7A. De bekabeling naar de motoren is vervangen door nieuwe kabels zonder de limit switches er bij in.

Electronica - Endswitches

Alle endswitches waren gewone schakelaartjes waarvan de draden door dezelfde kabels als de motoren liepen, dit veroorzaakte veel storing.

Alle bekabeling is vervangen door losse kabels naar de endswitches, de endswitches zijn vervangen door inductieve switches die op 12v werken.

Electronica - controller

Voor de besturing is een nieuwe print ontworpen (https://github.com/WRusman/FluidNC-BOB-v1.1) en besteld bij JLC.

In de ESP32 is FluidNC gezet voor aansturing. http://wiki.fluidnc.com/ Dit werkt als “vertaler” tussen de gcode die via USB naar de arduino wordt gestuurd en genereert stappenmotor pulsen en leest schakelaars. De software in de controller is te vergelijken met 3D printer software.

Na wat testen is een goede config gemaakt (zie onderaan) en zijn in Universal Gcode Sender een aantal macro's gemaakt voor makkelijker gebruik (zie ook onderaan).

Settings

CAM en Sender instellingen

x: 380mm max 4000mm/min
y: 300mm max 4000mm/min
z: 200mm max 4000mm/min

FluidNC Settings

config.yaml

board: Fluidnc-bob-v1.1
name: Maakmeneer Fluidnc-bob version 1.1

start:
  must_home: true
  check_limits: false
  
stepping:
  engine: RMT
  idle_ms: 255
  pulse_us: 4
  dir_delay_us: 1
  disable_delay_us: 0

axes:
  shared_stepper_disable_pin: NO_PIN
  shared_stepper_reset_pin: NO_PIN

  x:
    steps_per_mm: 200.000
    max_rate_mm_per_min: 4000.000
    acceleration_mm_per_sec2: 100.000
    max_travel_mm: 380.000
    hard_limits: true
    soft_limits: true
    homing:
      cycle: 2
      allow_single_axis: true
      positive_direction: false
      mpos_mm: 1.000
      feed_mm_per_min: 400.000
      seek_mm_per_min: 1000.000
      settle_ms: 500
      seek_scaler: 1.100
      feed_scaler: 1.100

    motor0:
      limit_all_pin: gpio:36:low
      hard_limits: true
      pulloff_mm: 1.000
      standard_stepper:
        step_pin: gpio.21
        direction_pin: gpio.17
        disable_pin: NO_PIN

  y:
    steps_per_mm: 200.000
    max_rate_mm_per_min: 4000.000
    acceleration_mm_per_sec2: 100.000
    max_travel_mm: 300.000
    hard_limits: true
    soft_limits: true
    homing:
      cycle: 2
      allow_single_axis: true
      positive_direction: false
      mpos_mm: 1.000
      feed_mm_per_min: 400.000
      seek_mm_per_min: 1000.000
      settle_ms: 500
      seek_scaler: 1.100
      feed_scaler: 1.100

    motor0:
      limit_all_pin: gpio:39:low
      hard_limits: true
      pulloff_mm: 1.000
      standard_stepper:
        step_pin: gpio.16
        direction_pin: gpio.25:low
        disable_pin: NO_PIN

  z:
    steps_per_mm: 200.000
    max_rate_mm_per_min: 4000.000
    acceleration_mm_per_sec2: 100.000
    max_travel_mm: 200.000
    hard_limits: true
    soft_limits: true
    homing:
      cycle: 1
      allow_single_axis: true
      positive_direction: true
      mpos_mm: 1.000
      feed_mm_per_min: 400.000
      seek_mm_per_min: 1000.000
      settle_ms: 500
      seek_scaler: 1.100
      feed_scaler: 1.100

    motor0:
      limit_all_pin: gpio:34:low
      hard_limits: true
      pulloff_mm: 1.000
      standard_stepper:
        step_pin: gpio.26
        direction_pin: gpio.27:low
        disable_pin: NO_PIN

  a:
    steps_per_mm: 800.000
    max_rate_mm_per_min: 1000.000
    acceleration_mm_per_sec2: 100.000
    max_travel_mm: 300.000
    hard_limits: false
    soft_limits: false
    homing:
      cycle: 2
      allow_single_axis: true
      positive_direction: false
      mpos_mm: 1.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:
      hard_limits: false
      pulloff_mm: 5.000
      standard_stepper:
        step_pin: gpio.23
        direction_pin: gpio.22
        disable_pin: NO_PIN


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

coolant:
  flood_pin: gpio.19
  mist_pin: gpio.18
  delay_ms: 0

probe:
  pin: gpio.33:low
  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

pwm:
  pwm_hz: 5000
  direction_pin : gpio.4
  output_pin: gpio.5
  enable_pin: NO_PIN
  disable_with_s0: false
  s0_with_disable: true
  spinup_ms: 5000
  spindown_ms: 5000
  tool_num: 0
  speed_map: 0=0.000% 10000=100.000%
  off_on_alarm: true

parking:
  enable: true
  axis: Z
  pullout_distance_mm : 5.000
  pullout_rate_mm_per_min: 250.000
  target_mpos_mm: -5.000
  rate_mm_per_min: 800.000

spi:
  miso_pin: NO_PIN
  mosi_pin: NO_PIN
  sck_pin: NO_PIN

sdcard:
  cs_pin: NO_PIN
  card_detect_pin: NO_PIN
  frequency_hz: 0

Macro's

"Home All"

$HZ ;$HX;G10 P0 L20 X0;$HY; G10 P0 L20 Y0;

"Probe Z" voor gebruik met de toolsetter (kan nog beter)

g90;g21;g38.2 z-70 f100;G92 z65;g1 z67;g38.2 z-10 f50;G92 z65;g0 z75;

"Probe Z" voor gebruik met de toolsetter v2 (kan nog beter?)

G91 G21 ; (Relative position in mm.)
G38.2 Z-70 F100 ;(Search of the probe on 70 mm. speed 100, if not found after 70 mm. Alarm GRBL)
G0 Z2 ; (back 2mm.)
G38.2 Z-2 F50 ; (Searching the probe for 2 mm, slower, speed 50)
G92 Z65 ; (Adjustment of the Z offset according to the thickness of the probe, 65 mm in this case)
G0 Z75 ; (back 10mm.)
M0; (pause)

"Ga naar positie x10 y10"

G90 G21; (Absolute position in mm.)
G0 X10 Y10;
cpm4030.txt · Last modified: 2024/01/31 14:27 by wrusman