GRBL ESP32 WiFi controller board by Makerbase

Anyone tried this board? This looks like a nice GRBL board that has the laser connection I need and a price of only $13.50 for just the board.

That’s new to me, and it is definitely more affordable than the competition, especially since it includes the tft (not that you’d want that on a cnc anyways). The board itself looks like it has just enough to get you going. At that price (and PCB size) I’m guessing all the io are direct pin connections. So no buffers to prevent stray electrons from causing a phantom input, or even killing the esp. I also an not a big fan of those esp32 modules with antenna connectors. I have yet to find any esp with antenna connector where the wifi connection outperforms the usual pcb antenna, even with a known excellent antenna attached… the only exception being when the esp has to be in a faraday cage. That isn’t an issue if you don’t plan to heavily use the wifi anyways… I don’t use wifi for anything on my 6-pack, other than for fw updates.

On another note, in case you weren’t familiar, grblesp32 is pretty much going to be replaced in the future by fluidnc:

If I was planning this project out, I’d definitely base it around fluidnc.

What software is running to make that screen work? And does it use tmc drivers?

You could make it work, for sure. It looks like a nice deal. I wonder if it would work for the ZenXY tables. But there are a lot of unknowns. We need someone to take the plunge and figure out how it works!

I ordered one, just the base board & will use it as a GRBL board on my rotary axis laser engraver. Sounds like it is not difficult to use GRBL on 32bit. I plan to use DRV8825 drivers with it but have some tmc drivers I could test on it.

Here is the firmware for it.
GitHub - Macrobase-tech/MKS-DLC32: MKS DLC32 is 32bit MCU powerful controller for CNC machine.

So far these boards are pretty nice. I have two of them, one each screen size. I’ve been bench testing them working through firmware bugs and suggestions with others on Github. MKS seems pretty responsive to feedback. I’ve even made an enclosure for board and 2.4" screen. I’m planning on using one for my laser rig.

@jeffeb3 The screen code is built in to the board firmware. I’m not exactly sure how, beyond my expertise. The firmware differs depending on if you are using the 3.5" or 2.4" screen. I suppose you can use the 2209 in step/dir mode. I don’t believe they have a feature for spi or uart. They do have firmware versions for CoreXY machines as well as cartesian.

1 Like

Well. That is good, I guess. But that means you will lose the screen if you switch to fluidNC or something. But it is still a decent board.

It does run Grbl_ESP32, with a modified version of the web GUI, as well as supporting all of the extended settings too. But yeah, if you load FluidNC it’ll bork the touchscreen.

Thanks for your model reference. That will give me a head start designing one to fit on V-Slot. I will probably make mine a hinged box like my other one. I had been looking for the hole pattern dimensions but had not found them anywhere. I had not looked for STL models yet. I just realized this morning, I have a Bigtreetech TFT24 V1.1 Touchscreen I bought 2 years ago to replace my 2004 screen, but never did. Maybe I will test it on with this board. It has an EXP1 & EXP2 connection on it.

1 Like

I got the MKS DLC32 V2.1 board yesterday & flashed it with their latest firmware. My Bigtreetech TFT24 did not work with it, but don’t really need a screen on it anyway. Will the FluidNC work ok with this board as long as I don’t use a screen with it? In the FluidNC github, I see there is an example file for the MKS DLC32, so seems like it should. I designed a hinged case for it & am printing it now. I just have to solder up a new laser wire cable. I wish these companies would standardize these laser cable connections.
Here is what my hinged board will look like.


I have been building the ZenXY table and it seems that Barts board is not to be had for some time now, so I bought this MKS DLC v2.1 and have plugged it all up with the TFT32 screen that came with it. It connects right up with two motors and operates them with the grbl interface over usb. Now I need to know what changes to make to the configuration for ZenXY. Also what to edit in the software file to be compatible with ZenXY. These things are way out of my knowledge base so nay help would be much appreciated.
David Streeter

1 Like

Are you using fluidNC?

The basic things are going to be:

  • It needs to be configured for corexy
  • The steps per mm, max speed, and max acceleration need to be set. The steps per mm should be 100, and the max speed and acceleration are up to you, to a certain extent.
  • The homing sequence needs to be set. It needs to home one direction first always, and then the second direction, and Ther might be some specific offsets.

I haven’t tried fluidNC with the zxy yet. I am still on grbl esp32. It’s configuration was through config files. I know Ryan and I were both working on it and I think it is posted here somewhere. But I would have recreate it for fluidNC.

I am happy to review what your doing, but you’ll have to do most of it yourself. If you look at the fluidNC docs, these things should be documented there.

You can also ask in the discord for fluidNC. But it would help everyone if you tried poking around a bit first. I guess a lot of the questions are answered in the docs. They are super nice there though.

I was unaware of the change in naming to FluidNC. I didn’t know that was what Bart’s port of GRBLE was for the ESP32. Makes much more sense, now. I kind of wonder if I should update my laser controller. (Not touching the sand table, since it works, and the people using it are somewhat change-resistant. It can just keep working as long as it still works.)


I just got the mks dlc32 v2.1 running with fluidnc and tmc2209 drivers. I burst out laughing when I finally figured out the config. It’s soooo silent! And tweaking the firmware settings is soo simple! I don’t know what my wife will say if I claim to have fallen in love with an electronic board, let’s just say I’m excited! I’m testing it on my eggbot. Only remains to hook it up with a proper gcode sender(I don’t like the simple web interface for production), and making the servo work as z.


Can you share your config file? Since you have the servo as Z, this might work on my rolling plotter. I originally bought mine to use on another laser engraver I haven’t built yet. Think I have DRV8825 drivers on mine.

Which pins did you hook the servo up to?

I use the example config from here: FluidNC/example_configs at main · bdring/FluidNC · GitHub

This file worked for me:FluidNC/MKS_DLC32_21_XYZ.yaml at main · bdring/FluidNC · GitHub

I don’t understand how the I2S pins are set up, if they are physical at all - or software configured. If they are, I don’t know how - but they are working! I haven’t got the servo working either, but example from the instructions seem decent enough:

steps_per_mm: 100
max_rate_mm_per_min: 5000
acceleration_mm_per_sec2: 100
max_travel_mm: 5
cycle: 1
mpos_mm: 0
positive_direction: true

    pwm_hz: 50
    output_pin: gpio.27
    min_pulse_us: 1000
    max_pulse_us: 2000
1 Like

It looks like there is a “daughter chip”. The ESP32 is sending commands over I2C and the daughter board is controlling some functions, like the motor enable.

  engine: I2S_STATIC
  bck_pin: gpio.16
  data_pin: gpio.21
  ws_pin: gpio.17

That sets up the I2C. The Esp pins 16, 21, 17 are used to send that data to the daughter chip.

  shared_stepper_disable_pin: I2SO.0
        step_pin: I2SO.1
        direction_pin: I2SO.2

This is one example, the steppers share an enable pin on the daughter board that is pin 0. The X stepper is ok pins 1,2. It doesn’t matter what pins they actually are on the daughter chip, as long as the I2C interprets them as 0,1,2.


I see they added some more example configs since I looked at it last. There was only the MKS_DLC32_2_ABC.yaml for the DLC32 board a few versions back. I will have to play with this once I finish some house projects.
@jeffeb3 Thanks for the additional servo info. Using the servo for the z-axis for a plotter would simplify my setup. I was thinking of using a real stepper for this, but this looks promising.

1 Like

I used the probe pin, gpio.22. Spent a few night getting it to work. Ended up asking Bart Dring himself. It didn’t seem like he was impressed with my troubleshooting skills… a little embarassing - but now I’ve solved it. The servo itself was bust - AND I didn’t have the indents in the config file right! Who would’ve know that a few spaces missing is enough to ruin the whole setup!

1 Like

From your comment, sounds like you did not get the servo to work? What does your config file look like now?

I solved it :slight_smile: I think there’s a lot of redundant parts in this config, but at least I got it to work! (no tuning/calibration is done yet) Here’s the config code: Untitled (exze705w) -

1 Like