Introduction: Fix No Z-probe Pin on CNC 3018 Pro (no Soldering)

My CNC 3018 "pro" came without port to connect Z-probe. I've been looking through the internet to find solution to this problem, but only thing I could find was hardware solution by pmtgamingxd. I felt like my soldering skills and tools are not that great to do this kind of job.

So here's another solution I came up with, which is purely software and can be reverted anytime.

There is one drawback tho, you have to sacrifice one of your limit switches. Since we are simply gonna tell CNC's board to use limit switch pin as probe pin.

Supplies

  • CNC 3018 pro
  • Usb cable to connect it to your PC (or Mac)
  • Arduino IDE

Step 1: Download Latest GRBL

Download GRBL from here, by clicking on code->Download ZIP

https://github.com/gnea/grbl

Download that zip, unzip it.

Step 2: Search for Config File

Path to file: ../grbl-master/grbl/cpu_map.h

Inside your unzipped folder (for example grbl-master) navigate to grbl folder and open cpu_map.h file in your favorite text editor (might be even notepad, but I highly doubt that :D ).

Step 3: Editing Config File

Now we need to tell the board, to swap the ports. I am gonna use X-limit-switch pin, to act as a probe from now on.

Somewhere in the file, around line 63, there should be

#define X_LIMIT_BIT      1

Change it to

#define X_LIMIT_BIT      5

Next, line 93 (or somewhere around it, that depends on version of GRBL)

  #define PROBE_DDR       DDRC
  #define PROBE_PIN       PINC
  #define PROBE_PORT      PORTC
  #define PROBE_BIT       5  // Uno Analog Pin 5

Change to

  #define PROBE_DDR       DDRB
  #define PROBE_PIN       PINB
  #define PROBE_PORT      PORTB
  #define PROBE_BIT       1  // Uno Analog Pin 9

Don't forget to save the file :-).

Step 4: Upload GRBL

Open your Arduino IDE and in Sketch>Include library>add .ZIP library

Choose your grbl folder (not the grbl-master!). After successfully adding library, go to

File>Examples>grbl>grblUpload

Connect your CNC and hit Upload. Make sure you have the right port and as a board "Arduino Uno".

If this does not work, instead of Arduino uno, select "Arduino pro or pro mini" (this was my case).

Step 5: Use

Now your X-limit pins will act as a z-probe pins! You can now make for example height map for extra precision pcb milling, or use it for stock edges discovery. And btw you've just updated your grbl version as well.

So connect your probe, and make something usefull :-).

Happy probing

Kudlas