What gcode sender for 3d carve

OK so I’m totally new to this (as in my first cnc has yet to be delivered) and I’m trying to get a handle on 3d carving workflow. I have aspire and have designed a few projects. I got the xcarve PP for aspire, and have exported my toolpaths. Now I just need to figure out the sender. Is there a difference between UGS and grbl controller? Are there any other senders I should know about? Thanks for the help

UGS and Chilipeppr (http://chilipeppr.com/grbl) are both popular with users on this board. I haven’t heard of grbl controller before, but it seems roughly on-par with UGS. Chilipeppr has a more advanced user interface, and support for features like a z-zero touchplate. My recommendation is that you give all three a try (they’re free, after all), and let us know which one you end up with :smile:

[sidenote - I was trying to find images of the UI for grbl controller and universal gcode sender. Running a google image search for UGS did not return what I thought it would ;)]

Is there a way to add a touch plate to the xcarve?

Inventables is in the process of coming out with an official product, hopefully they’ll have something to share soon. Grbl supports a “probe” on analog pin 6 of the Ardunio, so in the meantime you can wire up something yourself, like this (click on the arrow in the upper right to go to the thread):

Awesome. Thanks for the info. I already have some projects that have multiple toolpaths including tool changes and I was wondering about accurately re zeroing the machine. I think i’m going to try that.

I was working on a project today in Easel and used the “use last home position” button. I had to rerun the job 8 times and it worked with no offset.

You should be able to achieve the same thing with UGS or Chilipeppr but I’ve never tried it myself.

1 Like

When you select the “use last home position” do you need to reset the zero?

Easel has a walk through so it is different than a traditional sender. It gives you the choice to reset the home or use the last home position.

Is Chillipeppr a web based app similar to Easel? I have tried to use Easel but my internet connection in the shop is via wifi. I’m a good 250 feet from my wireless router so I added in an external antenna to boost my signal strength. That worked but still trying to use Easel is painfully slow. I switched to Aspire and it is absolutely awesome. I had to download the gcode generator add on from Inventables to get it to produce the gcode. Even then I had to modify the configuration file because it was not sending the correct M code to stop the spindle after the job was completed and it was also sending a M30 code to end the project. I simply inserted M5 at the end of the job and deleted the M30 and Universal Gcode sender works flawlessly now.

I would like to try Chillipeppr since it does support a touch plate for Z zero but don’t want to get into another web app that is going to be jerky and lag.

Yes it is web based. You can try it here:

@JohnLauer would have the definitive answer on this, but I feel like the Chilipeppr app is all Javascript, so once it’s loaded up in your browser, you shouldn’t experience any jerkiness or lag, since it’s not going to be going back to the server to do anything (or maybe I have that wrong, I guess it would be a fairly easy thing to test).

Once ChiliPeppr is loaded up in your browser EVERYTHING is local. The app talks DIRECT to your Serial Port JSON Server (SPJS). Nothing goes back up to the cloud or through the ChiliPeppr servers. So, it really just acts like a local desktop app.

Also, even IF stuff did go back up to the cloud (which again, it doesn’t) it still would run with no hiccups because SPJS has a massive buffer of Gcode lines. ChiliPeppr fills that buffer up as fast as it can to get all the lines over to SPJS. It’s as if ChiliPeppr is just doing a file upload to SPJS of your Gcode file. At that point, you could actually close down your browser and your job will still run headless because SPJS is the one doing all the hard work.

I tried Chillipeppr and everything was working as it should until the start of the job. I made a touch plate and hooked it up with perfect results. When I imported the gcode and started the job the machine took off at high speed and headed almost all the way back the the right side of the machine and all the way to the back. Being unsure, I had my hand on the emergency stop button and hit it before the machine crashed in to the limits. Not sure what that was all about. The exact same gcode worked fine in UGS.

I’m thinking it may be due to my design being created in inches and chillipeppr wants to run in mm but it seems to me if that were in issue then it would create a smaller part rather than larger. The gcode was created from an aspire drawing.

I am happy with Universal Gcode Sender but there is not touch plate function. Is there a script that could be used to zero the z with a touch plate with UGS?

Any thoughts.

Check your gcode, if you see a G20 that means it’s telling the machine to run in inches, G21 means run in millimeters. Are you using the correct post-processor in Aspire?

I’m not at the shop yet to check the gcode but I am using the post processor for aspire that I downloaded from inventables. I did have to edit that though. It wasn’t including a M5 code to turn off the spindle. It sent something else instead. Can’t remember what it was but simply editing the pp file fixed that issue. Now when exporting gcode from aspire the spindle stops at the end of the job and with UGS I get an end of job pop up.

I found this gcode online but haven’t tried it. I don’t know enough about gcode to be able to tell if it will do the trick for using a touch plate for z zero in Universal Gcode Sender.

CurrentFeed = GetOemDRO(818) 'Get the current feedrate to return to later
CurrentAbsInc = GetOemLED(48) 'Get the current G90/G91 state
CurrentGmode = GetOemDRO(819) 'Get the current G0/G1 state

If GetOemLed (825)=0 Then 'Check to see if the probe is already grounded or faulty
DoOEMButton (1010) 'zero the Z axis so the probe move will start from here
Code “G4 P3” ’ this delay gives me time to get from computer to hold probe in place
Code “G90 G31Z-4. F4” 'probing move, can set the feed rate here as well as how far to move
While IsMoving() 'wait while it happens
ZProbePos = GetVar(2002) 'get the exact point the probe was hit
Code “G0 Z” &ZProbePos 'go back to that point, always a very small amount of overrun
While IsMoving ()
Call SetDro (2, .060) ’ change .060 to your plate thickness and then adjust for final accuracy
Sleep 200 'Pause for Dro to update.
Code “G1 Z1. F50” 'put the Z retract height you want here, must be greater than the touch plate thickness
While IsMoving ()
Code “(Z axis is now zeroed)” 'puts this message in the status bar
Code “F” &CurrentFeed 'Returns to prior feed rate
Code “(Z-Plate is grounded, check connection and try again)” 'this goes in the status bar if applicable
End If
If CurrentAbsInc = 0 Then 'if G91 was in effect before then return to it
Code “G91”
End If
If CurrentGMode = 0 Then 'if G0 was in effect before then return to it
Code “G0”
End If

Hi @CharleyThomas ChiliPeppr has about 4,000 monthly active users all having success, so I can’t see the problem you’re describing be because of ChiliPeppr. I also don’t think the units issue would be a problem because ChiliPeppr specifically checks if you specified a units value in your Gcode file and if you did not it prompts you to tell it what units you want. UGS doesn’t do stuff like that as far as I know.

Any chance you could post your Gcode file? I’d like to look at it.

Bad news, that’s not actually gcode. My guess is that it was written for Mach3, which has support for a Visual Basic type scripting language. That’s not going to work for UGS, sorry.

I will as soon as I get to the shop. Going to lunch with my dear ol’ Mom first. The part I was attempting to mill was just a simple circle as a test. I’ll post it as soon as I get there though. And about the zeroing script. Didn’t know that was for Mach 3. Good thing I didn’t try it. Thanks for the heads up.

Here is the gcode file that worked perfect with UGS and caused a runaway in chillipeppr.

Circle.gcode (10.8 KB)