Turn a 3018 CNC into a sensor tester

Hello all, this is my first post.

I have been tasked at work to create a machine which can test different proximity sensors effective range and field shape in an automated fashion. I understand basic knowledge like this can normally be obtained from spec sheets but we are wanting to do our own testing under different conditions and materials.

What i'm thinking is that one of those 3018 CNC machines would be almost exactly what I need. I would remove the actual milling router and design a new part for holding sensors. From there write a program that can sweep back and forth (as well as up) in steps and input to a program whether or not the sensor was triggered. I'd like to simultaneously input the coordinates and the sensor status to an excel spread sheet. Once it has completed its testing path I'd use a visual basic program to organize the data and convert it into an easy to read 3D graph. When all said and done, all one would need to do is set up the sensor, push "go" and walk away until it's done.

I like to think my wiring and programming skills are good enough to build this, but my main questions are:

  1. Does this seem feasible?
  2. Can the GRBL boards be custom programmed like an Arduino to accomplish this task?
  3. If so, whats the best way to wire in the sensor being tested? Could I just connect it to a limit switch or probe connection and be able to read it like an input?
  4. If not, should I just get a regular Arduino board with stepper drivers?

If I were doing this at home for a hobby project I'd just mess around and order more parts as needed. However, since it's a work project I need to try and order everything at once and have an actual plan. Thanks for any advice.

Your very first task is to study up on G and M codes for a cnc machine and see if you can figure out a scheme to do what you want. If that seems to work, them begin to think about the actual machine needed to perform your program.


Thanks for the reply. I actually have a 3018 desktop engraving machine at home for my own personal use, so I do have experience with that type of program.

Ideally the program I want to write would start at a home position (let’s call it 0,0,0) take a reading from the sensor and that reading would be put into a spreadsheet, then move to 0,1,0 and repeat. Ultimately I’d have like a 3D grid of 1’s and 0’s in their respective coordinates.

What I’m really trying to figure out is if I can do all that with the GRBL controller that comes with the machine.

I am not familiar with GRBL or with your machine. What you can do depends on the sensor, of course. Do you have to send it a command or a signal the take your reading? What constitutes a "reading"? A 0 or 1 on a single control line or a serial data transfer, or what?

Normal CNC machines programming support turning on pumps, etc. But G/M does not, as I recall, support reading data input from any device.

Is there something special about the stepper controller for your machine that is different from the controllers we use with Arduinos?