Grbl esp32

what is this board here? and what would I need to get it to contrrol 4 axis?

the one on the left.

On the face of it, that is a ESP32 in a uno footprint board, which means a cnc shield could (probably) be used to make a 4 channel controller running GRBL_ESP32. Be aware though you will probably have to reconfigure the firmware to suit the IO pin choices made on the cnc shield.
Also be aware that there are also ESP 12N versions of these boards which are actually 8266’s…

$2.87 is a crazy price!

Be aware that that board with a shield might not be 100% compatible with Grbl Esp32. In fluidnc at least it is not. Check the wiki for suported hardware.

Yep OK…It compiles OK in the IDE as a WEMOS D1 MINI ESP32 and, whilst I note Bart specifically says don’t use the cnc shield because it is not 100% compatible, I have checked from the pictures of the board and it looks ok with the io’s connecting in the right places on the cnc shield, …apart from the coolant pin which comes out to IO34… which is an i/p only pin on the esp32 so a quick mod on the shield to swap coolant with one of the limit switches and it should work.
Must remember though, there will be no SD card but still, got to be worth a punt at that price if you are in the market.
There was also an adapter board that took a esp32 devkit and plugged into a RAMPS board but that seems unobtainium now.

<$3 makes it hard to resist in some regards I guess. It could probably work for someone who can’t afford to support Bart’s efforts by buying his boards. I feel like getting one, just to get a photo of it installed in my new box next to 3 meanwell supplies and 5 dm542 drivers lol. Just my box cooling fan cost 10x that board.

I bought a 6 pack. About pulled my hair out trying to learn it. Got all motor drivers working and motor turn. I need to study the switches and pins and such. Bart got the program to ability to change the configuration of machine in the config file. The only thing I need to do is configure it. Here is the config file for mine I need to put a switch on my y2, and change the probe pin. Hopefully I will have hair when I’m done.

bdring
/
6-Pack_CNC_Controller
Public
Code
Issues
28
Pull requests
1
Actions
Projects
Wiki
Security
Insights
6-Pack_CNC_Controller/FluidNC_configs/6P_extn_XYYZ_DE.yaml
@bdring
bdring adding files
1 contributor
139 lines (122 sloc) 2.82 KB
board: 6 Pack
name: 6 Pack External XYYZ No Square
meta: 2022-09-19 B. Dring for Dean Embrey

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

axes:
  shared_stepper_disable_pin: NO_PIN
  x:
    steps_per_mm: 100.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: 0.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: gpio.33:low
      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: 100.000
    max_rate_mm_per_min: 5000.000
    acceleration_mm_per_sec2: 100.000
    max_travel_mm: 300.000
    soft_limits: false
    homing:
      cycle: 3
      positive_direction: true
      mpos_mm: 0.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: gpio.32:low
      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
    
    motor1:
      limit_neg_pin: NO_PIN
      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

  z:
    steps_per_mm: 100.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: 0.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: gpio.35:low
      limit_all_pin: NO_PIN
      hard_limits: false
      pulloff_mm: 1.000
      standard_stepper:
        step_pin: I2SO.13
        direction_pin: I2SO.12
        disable_pin: I2SO.15
        
probe:
  pin: gpio.34:high
  check_mode_start: true
  
        
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

start:
  must_home: true
  deactivate_parking: false
  check_limits: true
  
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
planner_blocks: 16

NoSpindle:

Footer
© 2022 GitHub, Inc.
Footer navigation
Terms
Privacy
Security
Status
Docs
Contact GitHub
Pricing
API
Training
Blog
About
6-Pack_CNC_Controller/6P_extn_XYYZ_DE.yaml at main · bdring/6-Pack_CNC_Controller

Turns out there is another [slight] ‘wrinkle’ - the steppers enable pin on the cnc shield comes out to gpio12, which cannot be pulled high during boot or else the uP constantly resets and guess what?.. there is a pull up on steppers enable doh!. more surgery required to swap [maybe] spindle direction pin on gpio18 with steppers enable?

You are probably at this stage wondering if it is worth it… I know I am!

Are they 2209’s? Just remove the pullups? To keep price in line they should be a4988… which have pull downs. :wink:

No Kev, it’s the stepper enable signal which has the pull up on GPIO12 and AFAIK it wont work reliably without it (your steppers might become disabled during a run!). I have re-worked a cnc shield, swapping coolant on GPIO34 with X limit on GPIO13 and also swapped steppers enable on GPIO12 with spindle direction on GPIO18 to work around the cnc shield incompatibilities. The probe is now on GPIO 2 instead of ABORT, PWM output on GPIO4 instead of HOLD, Y2 limit on PIO35 instead of RESUME and Y2 step on GPIO19 instead of spindle enable. I think that is all! It compiles, loads and runs, I just need to test it all out next!
I actually have scrap 8825’s on it just because I had them but yes, I agree, in order to keep within the original principle it should be A4988’s :slight_smile:

edit
I have butchered an Uno CNC Shield to fit on top of the Wemos D1 R32 board and it all seems to work. I say ‘seems to work’ as without actually attaching it to a dual y axis machine it is very difficult to see the y axis homing by manually flicking limit switches… but there you go - cheapest commercial cnc/laser controller unless anyone can do better! and it all works without resorting to i2s and shift registers.

1 Like

A4988 has a pulldown, which should handle the floating state well:

https://www.google.com/search?q=a4988+schematic&source=lnms&tbm=isch&sa=X&ved=2ahUKEwiJhNG988H6AhU6LEQIHX7vDpwQ_AUoAXoECAIQAw&biw=2560&bih=1289&dpr=1.5#imgrc=kHegoGgy7762WM

…but sounds like that won’t matter now. Awesome you got it working!

Gotcha… cool!