Email Support | Mon - Fri: 9am - 5pm Sun: 12pm - 4pm CT | Call Support: 312-775-7009

CNC Halftoning - Step by Step

Jon Glazer

Project by

Jon Glazer
Grove City, Ohio

General Information

After building my X-Carve, one of the first things I wanted to do was create a decent halftone image. After many hours of experimenting with bits, software and material, I think I finally found a combination that works great!

Like this project
1

Material

1 minute

I experimented with a number of different materials including

  • birch plywood (sprayed black)
  • mounting board – white surface and black foam interior use in mounting photos and such
  • Gatorfoam board – much like above but stiffer
  • Masonite – hard brown surface and pressed cardboard-like interior (sprayed white)
  • Whiteboard stock – similar to Masonite but with a high-sheen white glossy surface.

The best results were achieved with the whiteboard. Its hard surface allows the bit to carve a smooth, sharp circle with no “tearing”.

The photo shows the 2′×4′ “whiteboard” which, I think is simply a cut piece of melamine. The other photos shows a 4′×8′ sheet of melamine. Cost-wise, you get 4 whiteboards for the cost of 3 if you have them cut the melamine for you. Unfortunately they only had a single damaged 4×8 so I went with the 2×4.

2

Software - G-Code

5 minutes

Unfortunately Easel cannot create halftones. Well, at least not directly. So I turned to other software designed specifically for this purpose:

  • Halftoner v1.5 – Wonderful software written by Jason Dorie and available here [click link]
  • DXF Halftone 2.1. – Also a decent software but generates more complicated g-code (IMHO) and the software is difficult to find. I could not find a regularly available download site for this software so I am hosting it here [click link].

I settled on Halftoner v1.5. It’s easy to use and very clean. The interface could be improved a bit (like the ability to zoom in on your preview). It generates simple G-Code that every simulator I tried was able to read (but not render … rending halftone images seems beyond anything I have found so far).

More on Halftoner v1.5 later in “Creating the Halftone G-Code”

3

Software - G-Code Sender

5 minutes

As stated previously, Easel won’t help you here. It would be nice if it has a decent interface for simply sending G-Code to your CNC but fact is (at the time of this writing) it doesn’t. So I turned to alternatives. There are many G-Code senders out there. Some are free, some can be purchased for a nominal fee and they cover just about every O/S you can think of – Windows, Linux, Android, MAC, etc…

For the my purposes (and this article) I chose to use Universal GCode Sender. This is a free, Java based application that will run, pretty much, on anything. I am not saying it is the best, but from my limited use (about 12 different runs) it’s pretty solid. I’d like to see some improvements, like a visualizer that can actually show you your halftone result. However, it does what it needs to do, send G-Code to your GRBL CNC without a hitch. More on this later in “Sending the G-Code”

4

Masking

5 minutes

Assuming you choose to use the whiteboard or something with a white-painted surface, depending on the core material you may wish to spray paint the final holes black for the best contrast. To prep for this, use some inexpensive “blue” masking tape to cover the entire board prior to drilling. You will be drilling through the tape to make the holes.

5

Creating the Halftone G-Code

Now we get to the meat of the project. Creating the G-Code. Again, I am going to use Halftoner v1.5 for this example.

Metric Metric Metric!!!

I cannot tell you what a headache it was to work in inches when everything (including the X-Carve itself) is laid out in millimeters. That aside, there seems to be an error in Halftoner that will not convert from inches to millimeters when writing the G-Code (or maybe the sender needs to know that the data is inches). Save yourself some frustration and heed this advice!

Generator

This tab allows you to define the specifications of the halftone itself. Most of it is self explanatory. My experience thus far is to make a halftone that is at least 400mm in one direction. Anything smaller and you have to make too small of holes or too few to get it to fit and the result doesn’t have enough detail. I think spacing needs to be at least or slightly smaller than the max size and the measurement is from origin to origin of each hole. This means that if do not change the spacing but change the max size, the number of holes will not change, they will just get grouped closer together as you increase the size. You can experiment with the other setting and see what will happen in the preview. The screen shot shows the settings I used for this example.

Toolpath

Since I am using a Dewalt 611 router that is not controllable in speed by the software, the only settings that mean anything are Safe Z, Feed and Tool Angle.

  • Safe Z – This is the minimum height your bit will be raised above the surface of your material prior to movement to the next location. Essentially the rule is, the higher it has to go before moving, the longer it will take to finish your project. Even a slight adjustment to this will have substantial effects to this time. So long as the bit clears the material anything above that minimal clearance is a waste of time.
  • Feed – This controls how quickly your CNC machine actually moves up and down. I don’t have any experience with changing this setting so I will update this part as I get more time to experiment.
  • Tool angle – This is the slap your head cuz you’re a moron setting. I don’t know how long I had been trying to get good results using a 90 degree bit and setting this to 45 degrees. I mean it’s 45 degrees. Right? It looks like it. No it doesn’t even look like it you idiot! lol. Ok, after setting this correctly things started pulling together. A 90 degree bit will cut shallower holes than a 60 degree bit. Makes sense, right? But be aware that, as in my case, some material is quite thin. So I used a 90. If you use 3/4 ply or some other thick material, a 60 degree bit is more forgiving for a less smooth surface.

Side note

The author of this software, Jason Dorie, actually responded a few times to emails when I was trying to find all the right settings. For this reason alone, I highly recommend the software and to donate to his cause (PayPal link in his web page). Thanks Jason!

6

Sending the G-Code (the cut)

360 minutes

Ok we’re all set to start cutting!

Connecting to your CNC

The most difficult part of this software is getting it to communicate with your CNC. Each USB port on your computer is “assigned” a COM number. There is no telling which is the correct one. I expermented until I found that, in my case, COM4 corresponds to the USB port I connected to the machine. Set the baud to 115200 and click OPEN. You should hear your CNC stiffen up a bit as it receives a ready signal. To further test if the connection is good, click on the Machine Control tab and try raising the router (Z+) or any of the other controls. It will be apparent when you have hit on the right combination.

Home your machine

Using the buttons (X,Y,Z) move your drill bit to the lower left corner of your material. This is the home position. Lower the bit until it is firmly touching the tape. This is important. Usually you only want to barely touch your material but remember that it has to cut through the tape before cutting the material. I generally use a piece of paper and lower the bit until the paper is caught, then lower it another .2 mm or so. Once you do this and it’s set, tap the RESET ZERO button to lock it in.

Start cutting

Go to the File Mode tab and select your G-Code file created above. When everything is set correctly, hit SEND. The bit should raise, the router turned on (if you have that controller) and it will move to the first hole and begin drilling. Then sit back and watch it do its work … for 3-6 hours! Its mesmerizing, believe me! After staring at it for 5 minutes, shake yourself out of the trance and go live your life!

If, for some reason, its cutting wrong or you have a problem, click CANCEL (pause never did anything for me). Then, back on the Machine Control tab, click SOFT RESET to turn off the spindle and fix whatever needs fixing.

Here is a brief checklist to follow for each cut:

  • Secure the material and ensure its straight to your CNC
  • “Home” the spindle
  • Make sure nothing is in the way of the path of the X or Y access (like the clamps you used…experience… sigh)
  • Start intently at the whole setup and think about what you missed
  • Carefully use your mouse to prepare to click the SEND button
  • Look once more to make sure you are HOMEd correctly and the material is secure
  • Click that SEND button!
  • Hit CANCEL as soon as you realize you didn’t secure it well enough, you didn’t home it correctly, or you are just too nervous to let it continue.
  • Rinse… Repeat…

7

Finishing your masterpiece!

Now that you’re done drilling holes, now you have to perform a few small finishing tasks:

Trim it

Using your favorite table saw, trim the artwork but leave a boarder. I’ve trimmed to a zero border but I don’t think it looks as good.

Blow it off

I happen to have a compressor nearby but you can use a can of air. Use these to blow all the dust out of your drill-work. This is important because of the next step…

Spray paint it

I use black. Black and white seem to work well together. It doesn’t have to be an amazing, expensive, paint. Just something that will make the holes…well…black! Use a liberal amount and spray it from at least two different directions (from the top then from the bottom). And let it dry before…

Sand it

I choose to sand the work before removing the masking tape. This ensure that you get rid of any burrs left from drilling and makes sure the tape comes off with sharp circles. Just sand down to the blue and it doesn’t have to be perfectly sanding. This is just a precaution if nothing more.

8

The Great Reveal!

5 minutes

Now we’re ready to reveal your masterpiece!

Carefully pull back and remove your masking tape. If you pull in the right direction, it should come off in one piece.

VOILA! Looks great, doesn’t it!!??

Well mostly. Mine (the little girl in flowers) was a bit undercut so there are white blotches here and there. I’ll try again. But the girl (top of this project) came out perfect! With a little practice you’ll be turning these out in a storm … so long as each storm is 4-6 hours long!

9

Final Tips

1 minute

Here are a couple more words of wisdom:

Backlash

As you see in the image here, I had a problem with what I called ‘striping’. I didn’t know any better. The holes were coming out in diagonal groupings of two holes per strip. I couldn’t tell why until talking with Jason. He nailed it when he told me about backlash. This is the result of, essentially, something not being tight on your machine. It moves, say, in the X direction then settles back a little each time because something was loose. In my case, one of the pulley set-screws was loose on one of the motors. Tightening it cleared it right up!

Paint the edges

If you choose to use Melamine, white board (same stuff) or some other pressed “cardboardy” like material, you may want to paint the edges of the final artwork BEFORE removing the masking tape. Of course, paint by hand, don’t spray them. You’d be surprised how much paint that cardboard absorbs before it starts to leave a nice coloring behind. Just be patient.

10

Conclusion

1 minute

I hope you find this tutorial useful and I am anxious to see your tips and tricks. I’m happy to correct anything here or add your own experiences as we do more of this type of work.

To Inventables:

Great machine! I’ve been happy thus far and plan on using it for many projects to come!!

Ben Ezzell
Very cool project. Does the software allow you to invert the halftone image? Meaning could you cut the negative space leaving posts instead of holes? On a smaller scale, cut into linoleum, you could make a really neat block-print halftone stamp.
Ben Ezzell
Jon Glazer
hadn't thought of that. You can't because the generated g-code is simply "drill here.. this deep". It doesn't generate circles.
Jon Glazer
Jon Glazer
That being said, I guess you can use the above to make a mold for some kind of form. Then the holes would fill with your material and when you remove the mold ... viola!
Jon Glazer
Jason Dorie
You can generate a DXF from the software, and in that case it does output circles. From that you could produce a "negative space" version of the cut using any other pocketing software.
Jason Dorie
Jon Glazer
That's really cool Jason. I had no idea.
Jon Glazer
Albert Hill
What size bit did you use? I used a 1/16 in and all I got was a 21 x 14 in array of 1/16 in holes? Thanks!
Albert Hill
Jon Glazer
Good question. I'll have to add that. I used a 90 Degree 1/4 shaft bit. It has to be a V-Bit (pointy). I'll add a picture of that. I think I mention that a 60 degree v-bit is better for rougher surfaces.
Jon Glazer
Kevin Roberts
Jon, thanks for posting this. And Jason, thanks for making this software available.
Kevin Roberts
James Mikeworth
this looks great. i downloaded the half toner and works great, but was having issues with downloading the g code sender you used. followed the directions, but can't get it to install. any thoughts
James Mikeworth
Jon Glazer
There' really isn't an installer. Its a java applet so you must first install Java (www.java.com). If you have already done that, what error are you having?
Jon Glazer
Kyle Slack
How do you set the max z depth so it won't go all the way through the material and hit the waste board?
Kyle Slack
Hassan raza
Hello sir. Need help for g-code My cnc machine working on nc g-code. How i make halftone photo... Need help
Hassan raza
Jon Glazer
You cannot set max z but that should not be an issue. You don't want hole so large that it goes through the material.
Jon Glazer
Joseph Dunmire
Thank for posting this. This will help me ton's. Much appreciated.
Joseph Dunmire
casi m pourfarhadi
I'm having trouble with the halftone software. Or rather I'm using it incorrectly. After setting my zeros and starting the project my cnc traveled to the very back of the machine and tried to continue farther as if it thought the work area was larger than it is.
casi m pourfarhadi
Jon Glazer
Which halftone software are you using? What size machine are you using? Is the origin in the halftone software set to zeros? Can you possibly post the first few lines of the gcode here?
Jon Glazer
shawn mavity
Jon--I was wondering on your statements about setting the angle. Did you end up setting it for 90? You mention 45 in the instructions which I assume you are implying was incorrect is that right?
shawn mavity
Jon Glazer
Yes I meant 90. Does it still say 45? I should fix that.
Jon Glazer
shawn mavity
The way it is written insinuates that you were setting the Angle to 45 at first and using a 90 degree bit and then changed the angle but it does not state specifically what you changed it to, I assume 90. Is the angle setting to be set to the angle of the bit? If I use a 60 degree, angle is set 60?
shawn mavity
shawn mavity
Also could you elaborate on what the "Engraving Depth" setting does? I do like you have in the demo using the painters tape, so is that depth the top of the tape, the work piece under the tape or what?
shawn mavity
Jon Glazer
The angle should be set to what the bit actually is. I looked at the 90 degree bit and thought it was 45 because my head was not screwed on straight at the moment. It should have been set to 90. Engraving depth is a max depth setting that I don't use.
Jon Glazer
Goran Ciganovic
Hi Jon. I've just joined the inventables community and have found your post very informative. I am just not clear on engraving depth. In the Halftoner settings you've posted that the engraving depth is set to 0. Is this correct? Could you, please, elaborate on that. Thanks.
Goran Ciganovic
Hany Heshmat
Thanks alot for this program.. I have some pictures that I did it . But I don't know how to send you..
Hany Heshmat
Andrea Jay
Wow! Thank you John for this post. I was intimidated by Halftoner being a new CNCer but I'm gonna try now!
Andrea Jay
Paul D
Great post and detailed steps thanks Jon Tried for first time on small 3018 CNC A small image, sent GCode with Candle, Candle said it was 40mins, but 5hrs later it eventually finsihed, Engrave went ok but I made a mistake, mask tape did not hold so paint was not good Might try again, cheers
Paul D
LOTHAR HARRIS
Halftoner 1.7 is out now. It uses inches correctly and will write G-code that Easel will read. My problem is keeping the tape down since the holes are very very close together. I'm still experimenting.
LOTHAR HARRIS