Home : Workshop : CNC :


Estcam contains CAM and CNC controller programs. Vector graphics (dxf and svg) and 3D (stl) files can be imported and machined using Estlcam. While doing everything in Estlcam is the simplest and most reliable route, the programs can be used individually to generate G-code for another controller (GRBL, Mach3, etc.) or to machine G-code generated by another CAM program (Vectric, Fusion 360, etc).

The Estcam controller program is easy to install on a lot of ATmega microprocessor/GRBL compatible hardware (e.g. Uno/Nano) and Estlcam will backup anything currently installed on the hardware. If the hardware isn't recognized, USB drivers may need to be installed (drivers for FTDI or WCH serial chips are the most common).

The Estlcam controller is free, the CAM program is free to try (becomes nagware w/ increasing wait times to generate/machine G-code) and ~$60 to buy.

Carving Raised Text

Carving Raised TextA few tips based on my first attempt. In a nutshell, getting this to work well depends on the 'Carve pocketing tool' diameter and the 'Depth limit' setting. When using a pocketing tool it's the 'Maximum [pocket] width' to the right and left of the letters - 999 would be fine.

The main window is only vaguely helpful with the pocketing showing up as gray. The Preview window is much more useful, it shows the paths and how much of the pocketing needs to be done by the V-bit (smaller offset and lighter blue).
[ comment | link | top ]admin

Tool Length Sensor

Tool Length SensorAs with any Estlcam probe function, the probe plate can be a simple piece of aluminum (tape) attached to the probe wire. Using the one click automatic tool length measurement function speeds up and simplifies tool changes, no probe menu navigation or manual touch off required. While a 3-axis probe plate makes a handy sensor, a spoilboard mounted sensor is needed if the surface of the material will be machined away.

To setup the sensor go to Setup : CNC controller : Length sensor. I use a speed of 60mm/min for all probing functions. A fixed position mount point requires homing be enabled. Locating (mounted or not) the sensor relative to the project origin/0,0 point is also possible.

Warning: Unlike other probe options, the Z-axis will start moving when you click the icon. When you move the tool over the sensor and click the icon, the tool will automatically travel down, touch and retract. After the first touching off of the tool length sensor, the material top also needs to be touched off/zeroed. After that the sensor will automatically adjust the Z-axis zero point after tool change sensor probes. Note: After a sensor touch off, Esc does nothing and the message will only go away when you do something else (v11.244).

A 3-axis probe plate works great for one-off projects where the corner won't get machined away. With the tool a bit in from the corner (wherever you normally start a 3-point probe) start by clicking the length sensor icon. Do the 3-point auto probe after and you're good to go. After tool changes go to that 'in from the corner' position, slide the probe plate in position and click the length sensor icon. To have the machine automatically go to that position for tool changes, add G00 coordinates to Setup: program : text : tool length.
[ comment | link | top ]admin

Center Origin

Center OriginA center origin is used when you want to center a project/drawing on the material being cut. It's easy if your drawing has a center point mark (Zero/origin first 2 options), but there are a lot of shapes (3 shown) that have a circumcenter (three point/triangle circumcircle center) which makes for a pretty flexible third option... which could also be used to find a close to center point on irregular shapes.

You can either mark the center of the material and manually center the bit/zero X/Y, or use the Estlcam center probe options to precisely center the bit and automatically zero X/Y. Note: The probing options work on parts/outside and holes/inside, e.g. zero probing inside and outside corners. Probing at 45 degrees also works and can be handy when probing circles.
[ comment | link | top ]admin

Nano Shield

ShieldsWith no relatively inexpensive Estcam (or GRBL) pinout shields available to the US I've been making my own. The pictured Nano shield (w/o Nano) is the latest and currently supports drivers, probe, DC-AC relay/VFD run and VFD speed - all but the probe are isolated via external optocouplers (e.g. spindle run and PWM). While I have no need for them, I may add a daughter board for isolated limit switches (via 6 pin stacked header).

While I had been using pins and plugs and was planning on upgrading to latching plugs, the layout seemed to work better with screw terminals (the driver gnd pins/plugs were an as-built change). Especially on the crowded top row, using crimp ferrules makes it much easier to (re)hook things up reliably. The primary purpose of the design was having the signal and ground terminals next to each other to maximize shielding and minimize mess (not possible w/ a basic screw shield).

The motivation was Estlcam USB errors, which it appears can be caused by any signaling/wiring/EMI issue. While the cause could have been a single bad connection, I decided to rewire everything with shielded cables. I used two shielded pair 22awg sound/security cable for everything not in the drag chain. The cable allowed shielded signal/ground pairs from all external components (e.g. driver step/gnd and dir/gnd) all the way to the adjacent signal/ground terminals on the shield. The cable was also convenient for shielded 24v and ground pairs between the power supply and drivers - 2 x 22awg = 19awg.
[ comment | link | top ]admin

Controller Hardware

Controller HardwareThe Estlcam controller software can be installed on boards with with ATmega328 (e.g. Uno and Nano) or ATmega2560 (Mega) micro controllers. While an Arduino board and a simple screw shield is all that is required, there are numerous CNC specific shields and controller boards with added features (optoisolation, adjacent sig/gnd pins, etc.) that can make them more reliable. While there are only a few Estlcam specific boards, Estlcam can be installed on most? GRBL boards. The primary difference is the processor pin layout and Estlcam can be configured to use Estlcam or GRBL layouts.

The Estlcam Terminal Adapter is the only Estlcam specific control board (pictured), but it is only available in the EU (~50EUR) unless you make it yourself (complete open source documentation available)... Shipping to the US is more than the cost of the board, but it is ...once again (nov21) available from Rocketronics (~$113 shipped).

The only ready-made (or kit) Estcam specific shields, that I know of, are available from ArduinoClub.de (Germany). Tonio Grawe provides all the documentation needed to make a basic (no isolation) Estlcam Uno shield. The YRCNC UNO shield w/ isolation looks like a good Estlcam compatible GRBL shield, but it's ~$83 when shipped to the US. I'm too cheap so my latest DIY is a custom Nano shield

Controller Hardware...Slightly off topic at this point, but I noticed at the end of the Estlcam controller page he mentions increasing the responsiveness of the controller by having Windows check for new data from the controller more often than the default 16ms. This appears to only be an option with the FTL USB2serial driver, i.e. the Estlcam FT230XS and Nano (and old Mega) FT232R (right) chips. The Uno and Mega 2650 use the Atmega16U2 (older = 8U2) and most of the cheap Arduino clones use a cheap CH340 chip (left) which has no latency option.

While a common recommendation is to set the FTL USB2serial chip driver to 1ms intervals (e.g. Digi), FTL themselves do not recommend 1ms because it "is the same as the USB frame length"*. SeaLevel does "not recommend setting the latency timer below 4 msec" and 4ms is apparently the latency of the Uno Atmega8u2 (no hits on the 16u2) so 4ms sounds like a good starting point. I have no idea when/if the extra I/O might be an issue.
[ comment | link | top ]admin

Autoselect and Layers

Autoselect and LayersEven on simple projects, having CAM programs auto-select cutting paths can be hit and miss. If the project involves more than one type of cut, e.g. inside and outside of the line, auto-select will be weighted to one or the other and paths will probably need to be edited. Easel auto-selects by default and provides three unweighted options (in/out/on) when importing a drawing. Estlcam auto-select is optional, includes more cut types (e.g. drilling) and the multiple (de)selectable options are weighted (e.g. image) / constrained (e.g. holes under/over a specified size get drilled/routed). Unlike Easel, Estlcam can read DXF layers which makes (auto-)selection so much easier.

Autoselect and LayersThis example image is a layered DXF generated by the BeeHome project and imported into Estlcam. The layer names provide all the information needed to auto-select (e.g. weighted inside/hole) and set the parameters for cutting the paths (bit size, cut depth and pocket). I spent a whole lot of time on just one part of that DXF trying to edit all the paths in Easel before deciding it was just too tedious for a one off project.

10-23-21: While Estlcam can lock/unlock DXF layers to allow (auto-)selecting paths by layer, running auto-select multiple times (e.g. on multiple layers for multiple bits/DOC's) requires locking the already selected/configured paths and the layer so that they don't get modified or re-selected on subsequent runs.

Since it took me a while to get it:
    The View > Layer list > layer lock only prevents the creation of (new) paths on that layer.
    The Edit > Lock only prevents the modification of already created and selected paths.

Note: There is no need to 'unlock all' and there seems to be a bug (v11.244) where hole/part paths can revert to on line when unlocking all.

Using layers makes (auto-)selecting easy and reliable, great for any project with any combination of cut types and bits/DOC's. Depending on the project, I use Autosketch or Inkscape for creating my layered DXF files.
[ comment | link | top ]admin

Estlcam VS Easel

...Most of what I post in the Estlcam category will have some Estlcam VS Easel aspect. Both are CAM and control packages and I spent a lot of time with Easel before switching to Estlcam. While Estlcam has a lot more features than Easel, the interface is not as clean/intuitive as Easel and v-carving text is easier with Easel.

One of the key functional differences between Estlcam and Easel is that Easel can only cut inside/outside of a closed line/path (e.g. a circle). Any shape with ends that don't meet (e.g. a line) can only be "Cut on shape path". I'm guessing that the closed line restriction/awareness is why Easel will never cut into an adjacent line (on the same closed path). Any irregular pocket cutting (e.g. text) with a straight bit is affected. If the space between two lines is smaller than the bit, Easel won't cut it.

Estlcam VS EaselWhile Estlcam will cut into the adjacent line if the space between two lines (e.g. text) is smaller than the bit, it can cut to the right/bottom or left/top of open paths, e.g. lines. While this is a very useful feature, e.g. being able to cut a shape on the end/edge of a board, it has some bass-ackward constraints.

The default is bidirectional cutting. While bidirectional cutting is fast and efficient (great for roughing) any machine/bit flex will create noticeable ridges on the cut face because each pass will flex the machine in the opposite direction, i.e. not ideal for hobby level machines.

The solution (when one side of the cut is waste) is to add a finish pass to right or left of the line cuts. It's not a very efficient solution because both the roughing and finish pass cuts are unidirectional. While less than ideal, the loss of bidirectional roughing would be acceptable if the configured cut direction settings were honored, they are not.

Right of the line cuts are always climb cut and left of the line cuts are always conventional cut (both cut bottom to top, top and bottom of the line paths are cut right to left). The cut direction workaround is to manually set the point to point path (1st point = cut start). There may be some logic that I am missing because I've only used the engraving function for edge cutting (edge > cut > waste).

Estlcam VS EaselAnother area where Estlcam and Easel differ is when cutting pockets. The example is a complex maze and both programs were set to cut parallel/offset (Estlcam changed/Easel default). Both generated paths that jump around a lot and it isn't obvious which moves around more. Both appear to use an ~40% stepover, but Estlcam leaves an ~20% path around the perimeter. While this does result in an additional path in some places, that 20% path is cut last - no finish pass required... Side note: Estlcam set to parallel provides the best results on narrow pockets, but the algorithm is too conservative/safe, i.e. too many unnecessary and time consuming passes... because parallel stepover is limited to 45% (regardless of bit settings).

Estlcam VS EaselThe Easel generated path includes some full width cuts along the perimeter (more likely to leave wall marks and top tearout). While both can leave islands (which can break and tear grain) and it would be nice to see everything cut from center out, Estlcam saving the perimeter for a 20% wide final pass is a big plus.

[ comment | link | top ]admin

Estlcam Screen Rounding

Most on screen number entries in Estlcam are rounded to two (mm) or three (inch) decimal places and the common assumption is that Estlcam is storing/using the rounded numbers. The rounded on screen numbers do not appear to be stored or used by Estlcam. Many of the numbers Estlcam stores/uses appear to have sixteen decimal places. To see some of those numbers view the 'Settings CNC... .txt' file in 'Program Data Estlcam...'.

While entering something like 8.016mm for X-axis distance per revolution will be rounded to 8.02 on screen, the stored/used number will be 8.0159997940063477. I have no idea where that number comes from, but it is only off by .0000002mm. For a frame of reference, the rounded .004 difference divided by 20,000 equals the .0000002 stored/used difference.
[ comment | link | top ]admin

Back to: CNC