[Resolved] -Jogging X & Y goes 3x the distance whether mm or inches on new X-Carve

Mike, thanks for the reply. I’ve done a lot of work with Arduino over the past year or so, so I’m versed somewhat in the UNO. now
I went to GBRL and got the 9j library,
Popped the library in my Arudino Library folder
opened my Arudino IDE,
added the gbrl-master to my libraries
loaded the example/gbrlUpload.ino
Uploaded that to the UNO and it ended with no errors.

i’ve done that on 3 different UNO’s, one of which was new out of the box.

I feel that we’re getting down to the crux of the matter. and the fact that

  1. my GCode setup on the UNO is all out of whack
  2. in Machine Inspector it seems to get the correct com port & connect, but i cannot enter any g-Code into it and get the data listing to update.

Should everything up and including the Machine Inspector work even if I don’t have the GShield connected, and just have the UNO connected to my notebook? or is the GCode that we’re reading, reside on the GShield somewhere?

the fact that those numbers (be they incorrect or not) seeme to be being read from wherever it’s supposed to be reading them from (either the UNO or the GShield). but that’s about it, I’ve also tried to load other GBRL “readers” and i’ve had similar luck being able to push $$ over to the UNO and all the apps.

so, maybe i’m not loading the UNO correctly? i hope that’s it, cause that would explain a lot of stuff.


Thanks, Larry,
we’re pretty much on the same page.
When i said “monitor” i meant what was on my computer screen for that page in Easel’s Machine Setup.
Those pull-ups are internal to the UNO & therefore electrically “before” the pins, so their state should not change without any connection to the pins. the pins don’t need anything connected to them in order for the UNO to detect that the 5v is still there. I also would assume that there very low probability of “noise” coming in on those pins through the air now that they are so electrically/physically distant from any of the motors.

that being said - I’m almost certain now that you are correct in that my situation on this is different. My not being able to connect via Machine Inspector or through other software packages I’ve tried, (GCode Teleporter & CarbideMotion GCode Sender). I WILL try HyperTerm next. Darnit, I can’t stand the fact that I have to wait until 5:00pm to go Home & try these out. this is kinda why I was asking if I could do all this stuff without the UNO being Attachce to the GShield board. If I load my UNO with gbrlUpload, can I play with hyperterminal and other terminal programs to load & edit GCode? is the GCode on the UNO board or the GShield?


The grbl code runs on the Arduino and uses resources on the gShield to run the motors.

G-code is generated by a CAM program and downloaded to the machine via something like Universal G-Code Sender or ChiliPepper.

Easel puts both of those steps in one program.

What’s your $$ output now?

Larry, that’s the thing. When I use Easel and bring up the Machine Inspector, the 1st thing i see is the interface where it PROMPTS me to enter G-Codes and shows a listing of codes below. now this is right at the startup of Machine Inspector, before i’ve done ANYTHING. I’m assuming the codes below are the initial read of the G-Code that’s currently on my UNO.

  1. While i’m allowed to enter codes @ the top of the interface and click on the “>” arrow, it appears nothing happens when I do that.
  2. if I enter any G-Codes in the Enter G-Code box, I’m alowed to enter the code, but when i click “send”, again, nothing happens.
  3. If I click on the Refresh (green) icon, nothing appears to happen.

just a reminder, i’ve run the gbrlUpload from the Android IDE interface and I received no errors.
I’m able to run Easel, and it lets me Jog all motors back and forth. and even when i have it connected with the pin, i can Turn on & off the spindle motor from the software.
this would tell me that the UNO board has enough programming on it to correctly send at least some correct messages thru to the GShield.

yet, i’m apparently not able to get into the G-Code from, well, at least Machine Inspector (which is part of the program in Easel!

I feel that there is something i may have been missing in the install, that would allow the UNO to communicate with Machine Inspector.

Russ from Coral Springs, FL

Ok, I don’t use Easel so I can’t be much help there, but if you want to go an alternate route just to see if your machine is working right and prove that it’s an Easel issue I can help you with that.

What you would need is a terminal program, something like HyperTerminal or Putty. Alternatively, we could debug using Universal G-code sender.

G-code doesn’t reside on the UNO. The grbl software on the UNO interprets G-code commands sent to it by some other program, in your case it’s Easel. Others use Universal G-code Sender, or ChiliPepper.

If you want to bypass Easel just to check your machine, I can help you with that.


I feel that there is something i may have been missing in the install

Did you install Easel Local?

i did install Easel locally. I thought i hadn’t, but when went to do the install, I found that through my Chrome, I can bring up that “Easel Local is up and running” window.
Ive downloaded and installed HyperTerminal v7.04 and also Putty, and i’ll try them when I get home this afternoon, also.

I’d like to clarify the GCode thingy again.
you say that the G-Code doesn’t reside on the UNO.
Maybe I should be clearer.
I’ve been using Machine Inspector on Easel, but as I know now, there are any number of comm programs out that that can also communicate via UNO’s comm connection.
Hypothetically, Let’s say i’m using HyperTerminal and connect with the UNO via it’s open comm port, for example Com 07.
If I send (from HyperTerminal) the command $$ to the UNO, the HyperTerminal screen(window) SHOULD return a listing of what ARE G-Codes, right? they represent the parameters to be used by whatever the code in the GRBL libraries will convert to when it communicates with the GShield.

Maybe I’m so off on this, that I’m explaining something that’s totally off the mark. but I guess my big question here is WHERE are the G-Code residing that get sent back to the Communications Program (HyperTerminal or whatever) when the $$ command is sent over to the UNO/GShield?

If the code setup parameters reside on the UNO, then I can possibly test out my G-Code communications with only usint the UNO, if these codes are residing on the GShield board, and the get accessed through the UNO requesting them, then i would have to have GShield ON the UNO to test out my comm systems.

You are confusing the configurations settings that reside in the Uno with the Gcode that is generated by Vcarve (or Easel or any other toolpath generator).

The configuration settings that you see with you send the $$ command are the settings that define things like how many steps of a stepper motor = 1 inch, and if you have limit switches or homing switches installed. These configurations settings have nothing to do with the gcode.

The gcode is basically a programming language that your design program (like Vcarve) uses to instruct the X-Carve (or any CNC) how to move the cutting tool in 3D space to produce the design you created.

The Post processer in Vcarve is a translation tool that makes the generic gcode produced by Vcarve understandable by the X-Carve controller (Arduino Uno/Gshield).

From another thread------

Russ, if you would like to do this for the experience that’s great, but if your main goal is just to get homing working and a way to prevent your X-carve moving outside the workspace and crashing there is a simple way to do that with what you already have.

Ok, back to this thread.

My bad, by Easel Local I meant the driver portion that the web program uses to talk with your machine. If you can jog your machine with Easel then it’s already there.

Here’s an overview to help out with the discussion. The Arduino runs some firmware that is
called Grbl. The gShield does not have any software capability it is mainly the stepper motor drivers and some pass through pins to the Arduino.

You can send commands to Grbl via the serial port.

Grbl stores some configuration information about the machine it is controlling. $$ is a Grbl command that tells Grbl to output a list of the parameters settings that it has stored on the Arduino. You can issue other Grbl $ commands which will change the parameter settings and perform a few operations. For example, the command $H is a Grbl command that tells Grbl to home the machine.

In addition to the above functionality the Grbl software will accept G-code commands and execute them to accomplish a CNC task such as move the spindle to a particular location.

The G-code resides on your computer in a text file that any text editor can open. Several programs have been developed to send this file to the Arduino for Grbl to process. Easel is one these programs which also contains other functionality. If you wanted to you could pass each command to Grbl using a terminal program, but it sure is nice to have something else do it as many designs require 100s of thousands of G-code commands.

Alan, you are correct. I wanted to refer to the parameters for the basic settings that reside out (on what you say is) the UNO board. we can access (read 'n write) parameters on the UNO via sending G-Codes to the UNO.
so - if we know that the parameters reside on the UNO and not the GShield, then I should be able to take a “Programmed UNO” and use a Terminal program to communicate my G-Codes to the UNO & read and change parameters there without having to have the GShield attached to the UNO.
thanks, for the clarification.
someone who wants to get up to speed on all this as soon as he can,

Yes, you can send Grbl and G-code commands to the UNO without the gShield. See above.

You can use a terminal emulator, but it should be much easier (and more beneficial) to just install UGS and get it talking to the Arduino. UGS already has all the functionality you will need to send gcode and configuration commands. Plus it will allow you to test the movement of the machine with “Jog” controls. Eventually you will need a real gcode sender so why not go ahead and get that working.

Let make it simple. HEX file for Arduino Firmware. GShield receives command from Arduino, G-Code is the machine language tells Arduino What to do. Arduino takes those codes, convers to proper voltages and sends GShield to control Drivers. I hop this clears a little.

For start ups I generally recommend a terminal program to eliminate as many chances for failure as possible.

I know UGS is good (I use it), but it does have some problems from time to time.

i may have mentioned i have both HyperTerminal 7 & Putty downloaded into my DropBox - i’ll pull them off tonight & get them tested out.
I DID find a link to UGC and downloaded the zip & un-zipped it.
the readme.md file says to run, simply unzip the .zip file and double-click on the .jar file. why in the world couldn’t they just say WHAT .JAR file it was. this has happened to me more often than i care to mention.
so… do i have the wrong zip file, or is there a certain .jar file i should be a clickin’ on. (a search on *.jar came up with 62 files in the folder. meh)

Suggestion, Copy zip file into single folder, right mouse click on it and say extract here. Besides, you’re not going to start Jar file, must be start.bat file you have to double click. Not to mention , UGS is Java based program, make sure your Java is up to date.

Double click the UniversalGcodeSender.jar file in the directory where you extracted the files.

This works for me on Windows 7.

Here is explanation from GitHub ;

Universal GcodeSender is a Java based GRBL compatible cross platform G-Code sender. Use this program to run a GRBL controlled CNC machine.

To run simply unzip the .zip file and double click the .jar file. On some platforms you will need to run an included start script.

Note for MAC users: For version 1.0.8 and earlier you may need to create a “/var/lock” directory on OSX to fix a bug in the serial library. To do this open the Terminal application and run the following two commands:
sudo mkdir /var/lock
sudo chmod 777 /var/lock

Alan, that’s a great overview. I think people should send those things out more often.
MIKE, (and everyone) last night i loaded Hyperlink on my notebook. i tried to get into a couple of my arduino boards that i thought i had set up with the grblUpload, but couldn’t get in. then i installed on a 3rd UNO and when i used hyperlink, i was able to look at the parms that were setup ($$) and also revise them. as you mentioned, many of them were way off from your example. i then change most all of them to be in line with your example, rev’d up Easel and i could tell right when the connection was made that the Jogs were much shorter than they had been. (the Subject of this Topic).
I went through all the steps and everything seems to work “exactly as expected” except for my limit (zero) switches. but THAT is in a different Topic, I went ahead with out using them.
ran through a mock (no bit in the spindle) carve and it seemed to work perfectly. <-- really wonderful to watch that thing move around so smoothly for the 1st time!
I then taped a marker to the spindle & did another mock carve & it worked seamlessly!
thanks to everyone for your help. I like reading through most of the troubleshooting topics, there’s much to gain. please, keep up the great work that’s being done in this forum and I, too, will try and be a helping force as my experience grows.

I’m fine with marking this topic [Solved].
do i do that or does a moderator do that?

Russ from Coral Springs, Fl.


Glad to hear you got it worked out! I’ve marked the topic as resolved, thanks for sharing what you went through to get the problem fixed :smiley:

1 Like

Russ, I think I can save you some time when you start working on this.