What am I missing...updating from grbl 0.8 to 0.9

Apologies if this is a redundant question, but I have been trying to read around this issue and have been getting myself confused. I have an upgraded shapeoko 2 (now x-carve) and am still running the 0.8v of Grbl that came preloaded onto my electronics.

I have been reading around the literature in grbl v0.9 and believe the stability fixes will alleviate some of the issues I have periodically had throughout my cnc journey! However, I am somewhat baffled as to how I go about updating (reflashing?) my current version of grbl to the newer output.

I have been onto the Github website an tried to make sense of the procedure but am still a bit unsure as to what I have to do. Is there, or can anyone give me a step by step process I need to follow?

Again, sorry for the rehash of a similar topic…

Any help would be greatly appreciated,


A quick addendum to this…

whenever i have tried to download the relevant hex file (though clicking the appropriate link) it just opens a window in safari with a series of numbers, rather than instigating a download.

These are all the files basically you need.
I included X-Loader also in case you need it.
There is a trick to load this files, I’m looking for. Just give me a little time.

grbl0_9i_X_Carve_500mm_ACME (1).hex (80.3 KB) X_Carve_mm.pp (3.9 KB) X_Carve_inch.pp (3.9 KB) XLoader.zip (678.1 KB)

Open the Arduino IDE

Go to File - Examples - EEPROM - eeprom_clear
Click it,

Find this line,

for ( int i = 0 ; i < EEPROM.length() ; i++ )


for ( int i = 0 ; i < 1024; i++ )

After upload finish, close Arduino IDE, open XLoader , Make sure all your settings are correct
Device = Uno(ATmega328)
Baud rate 115200
Load HEX file name = grbl0_9i_X_Carve_500mm_ACME.hex

Close XLoader and start Easel, run machine setup.

There is newer grbl hex now people trying to load, didn’t work yet. I suggest you stick with 0.9i for now.
Don’t forget to run Machine Setup on Easel. This is one time deal, specifically for your machine. If you have further problems, let us know.

1 Like

Fantastic, thanks Alan. I notice the Hex file has ACME in the name, I am running the traditional threaded rod… will that be an issue or can I reconfigure post update.

Take all the time you need, your a hero!

No problem, also saying 500, that’s way I’m asking you to run Machine setup and give all proper information. The other two .pp files are Post Processor files. If your tool path generator (VCarve/Aspire ETC.) requires, you have to put those files into PostProcessors folder. I have already modified those for Spindle On/Off, Job End.

Ah I see, no worries… I replied before reading the whole message… school boy error on my part.

I am at work now (currently not marking my students papers and instead doing this), but once I am home later I will go through the machine set up.


1 Like

Also is this mac appropriate… the process I mean, or am I making it more complicated?

We haven’t heard any problems from ios users. but since I’m not the one, I’ll check with couple Mac guys.

Right, I am about to give it a go… I have gathered that I need to use Mac OS X Hex loader instead of the x loader which is for windows.

Before I start, am I right in using the hex file you sent me (Alan), or should I be using the “Grbl v0.9i Atmega328p 16mhz 115200baud with ShapeOko2 defaults.hex” from github. I am only asking as I am still using the ShapeOko2 defaults


Sorry I sent message to several guys, didn’t receive any answer back. I think you can use defaults then run Machine setup to see if corrects the parameters. You can’t pass machine setup if it doesn’t like it anyway.

Alan, I cannot perform this part of the process, when I open the IDE and go to file there is no example folder…

Let me see on mine.

On Arduino main screen Under File Tab. Can you see Examples?

You can open this notepad file, copy all lines and paste into Arduino. I think works. I already changed necessary line.EEprom_clear.txt (877 Bytes)

I had that problem, I had the wrong type of Arduino selected. EPROM menu item only appears for the correct one.

1 Like

I could NOT get the HEX file to work.
I could NOT get the Grbl Upload example to compile.
It turns out that the files need to be included for it to compile / load were not being added to the library automatically like they should. I manually added the grbl folder with all the necessary .h files to the Arduino Library folder on my PC (I found the path in the software’s settings)

Once I did that the Grbl Upload example compiled and uploaded correctly.

Did you check your port if Arduino software connects to your machine.?

Just a heads up, some pins changed between grbl .8 and .9:

Default serial baudrate is now 115200! (Up from 9600)
Z-limit(D12) and spindle enable(D11) pins have switched to support variable spindle!

from https://github.com/grbl/grbl