Problems With Easel Driver 0.3.7 on Shapeoko 2

I have been using my Shapeoko 2 with Easel on my Mac for a long time with no problems. I was fed up with Easel telling me that I needed to update to the 0.3.7 version of the Easel Driver and I so foolishly performed the update. After updating the driver, Easel then kept telling me I needed to install the driver even though I just installed it.

Thinking that this was perhaps caused by bad firmware on the Arduino, I again foolishly updated the Arduino GRBL firmware. The Arduino IDE source code approach to the update is for V1 of GRBL and so I instead used the 0.9J hex file on the Inventables site. This didn’t solve the problem. I was still getting the message to install the driver.

I then tried to install and use the 0.3.7. driver on both a Windows 7 and Windows 10 system. I didn’t get the message to install the driver, but Easel would not connect to the Arduino on either system. I found the Arduino IDE could see the Arduino and so I manually entered the COM port number in the Easel machine configuration. Easel still couldn’t access the Arduino, but there was a slight noise on the spindle when trying to connect each time, which suggested it trying to connect but was failing.

I then decided to go back to my Mac computer and install back-level software. After a lot of fiddling around I found the only combination that worked was version 0.3.5 of the Easel driver and the version 0.9g GRBL hex file obtained from the GRBL site on GITHUB. I then configured the Easel software for Shapeoko 2. After this I could run Easel on Shapeoko2, but the X-axis was reversed. The machine configurator enabled me to fix the X-axis issue and so at last after two days of work I thought I was back where I started with a working system. Wrong!

Now when trying to carve, movement on all three axes is about seven times bigger than it should be and I have to abort the cut to prevent the spindle crashing into the sides of the router. My design is in inches and so I checked that Easel does send a g-code command to set the UOM to inches. At this point I am completely fed up and not sure where to go next. Any suggestions?

The bottom line here is that it looks like the latest version of the software was not tested for the Shapeoko 2, which is disappointing. I am in the middle of building a new X-Carve machine, but given that I have wasted two days trying to get a new version of the software running on my old machine I am beginning to wonder if I should have gone with a different product. So I guess I have two problems. The first is that the latest version of the software doesn’t work with my Shapeoko 2 on either a Mac, Windows 7 or Windows 10. The second is that I can’t revert to an old version of the code because of the X/Y/Z movement issue. On the surface fixing, the X/Y/Z movement issue on the old software seems the easiest to address and any suggestions here would be appreciated.

Thanks

Colin White

Just an additional comment. I hadn’t updated any GRBL settings (except the X-axis reversal) before the upgrade and so therefore I didn’t think to record the settings.

Colin White

What electronics does the Shapeoko 2 use? Is it Arduino with the gShield?

Which Arduino pin do you have the Z homing switch wired to (if you have homing switches)

Using the Arduino IDE serial monitor get the grbl settintgs ($$) and post them here.

Well after several more hours of work I finally have got the Shapeoko 2 working again with Easel. To get it to work I had to use version 0.3.5 of the Easel driver and version 0.9g of the GRBL firmware. I then updated the GRBL parameters to match those documented on the old Shapoko Wiki at shapeoko.com.

I am not sure exactly what caused the problems. I think it was a mixture of issues. What is clear is that the latest version of the Mac Easel driver does not work with the Shapeoko 2. This means Inventables never tested the Mac driver for a Shapeoko 2. I can perhaps understand Inventables not supporting older hardware with new releases, but what bugs me is issuing a message to update the software to the latest version, which didn’t work!

Compounding my problem was the advice (which I took!) by Inventables to update the firmware if the new version of Easel doesn’t work. This was a mistake. In my case, the Easel installer messed up the GRBL parameters for the Shapeoko 2. This may have been caused by the fact that prior to the update the router had been running V8 of the GRBL software. One feature of Easel that helped a lot in working on my problems was the Machine Inspector (found under advanced settings).

My conclusion from three days of work in fixing the issues is be very cautious before applying Easel or GRBL updates. I will most probably now look for something more reliable than Easel - Vcarve is a possibility. I must admit my confidence in Inventables is dropping given this and other issues I have had with the company of late, e.g., in moving to a new X-Carve machine.

This is always a good plan. I don’t really think that grbl was the issue.

If you are running an Arduino with the gShield you should be able to upgrade grbl keeping in mind that you have to save the working grbl parameters before you do the update and then modify the parameters back to the set that worked after you do the upgrade.

There are several improvements in 1.0c that would be good to have, especially if you are going to move away from Easel.

I agree about recording your GRBL setup parameters. I didn’t bother because I just used the V0.8 GRBL firmware provided with my Shapeoko. However, things change over time and if I had recorded them it would have saved me some time in backing out the GRBL update I had made. For some reason V0.9J of GRBL will not work with Easel on my Shapeoko and that is why I am using V0.9G. With V0.9J you can hear the controller trying to work, but it fails. I will need to investigate this issue if I want to move to V1.0.

I think the other issue is that GRBL really pushes the memory limits of the Arduino Uno. For example, it will not compile on newer versions of the Arduino IDE because it runs out of dynamic memory space. Ultimately it will become necessary to move to an Arduino with more memory.

The other interesting thing about my issues is the setup parameters are significantly different between V0.8 and V0.9 of GRBL. Recording the V0.8 parameters would not have been very useful in moving to V0.9. That is why the old Shapeoko wiki was so useful.

This is an error in the Arduino IDE. Here is a thread about this issue.

Shapeoko 2 defaults for version 1.0c

// Description: Shapeoko CNC mill with three NEMA 17 stepper motors, driven by Synthetos
// grblShield at 28V.
#define MICROSTEPS_XY 8
#define STEP_REVS_XY 200
#define MM_PER_REV_XY (2.020) // 2mm belt pitch, 20 pulley teeth
#define MICROSTEPS_Z 2
#define STEP_REVS_Z 200
#define MM_PER_REV_Z 1.250 // 1.25 mm/rev leadscrew
#define DEFAULT_X_STEPS_PER_MM (MICROSTEPS_XY
STEP_REVS_XY/MM_PER_REV_XY)
#define DEFAULT_Y_STEPS_PER_MM(MICROSTEPS_XYSTEP_REVS_XY/MM_PER_REV_XY)
#define DEFAULT_Z_STEPS_PER_MM (MICROSTEPS_Z
STEP_REVS_Z/MM_PER_REV_Z)
#define DEFAULT_X_MAX_RATE 5000.0 // mm/min
#define DEFAULT_Y_MAX_RATE 5000.0 // mm/min
#define DEFAULT_Z_MAX_RATE 500.0 // mm/min
#define DEFAULT_X_ACCELERATION (250.06060) // 256060 mm/min^2 = 25 mm/sec^2
#define DEFAULT_Y_ACCELERATION (250.06060) // 256060 mm/min^2 = 25 mm/sec^2
#define DEFAULT_Z_ACCELERATION (50.06060) // 256060 mm/min^2 = 25 mm/sec^2
#define DEFAULT_X_MAX_TRAVEL 290.0 // mm
#define DEFAULT_Y_MAX_TRAVEL 290.0 // mm
#define DEFAULT_Z_MAX_TRAVEL 100.0 // mm
#define DEFAULT_SPINDLE_RPM_MAX 10000.0 // rpm
#define DEFAULT_SPINDLE_RPM_MIN 0.0 // rpm
#define DEFAULT_STEP_PULSE_MICROSECONDS 10
#define DEFAULT_STEPPING_INVERT_MASK 0
#define DEFAULT_DIRECTION_INVERT_MASK ((1<<X_AXIS)|(1<<Z_AXIS))
#define DEFAULT_STEPPER_IDLE_LOCK_TIME 255 // msec (0-254, 255 keeps steppers enabled)
#define DEFAULT_STATUS_REPORT_MASK ((BITFLAG_RT_STATUS_MACHINE_POSITION)|(BITFLAG_RT_STATUS_WORK_POSITION))
#define DEFAULT_JUNCTION_DEVIATION 0.02 // mm
#define DEFAULT_ARC_TOLERANCE 0.002 // mm
#define DEFAULT_REPORT_INCHES 0 // false
#define DEFAULT_INVERT_ST_ENABLE 0 // false
#define DEFAULT_INVERT_LIMIT_PINS 0 // false
#define DEFAULT_SOFT_LIMIT_ENABLE 0 // false
#define DEFAULT_HARD_LIMIT_ENABLE 0 // false
#define DEFAULT_HOMING_ENABLE 0 // false
#define DEFAULT_HOMING_DIR_MASK 0 // move positive dir
#define DEFAULT_HOMING_FEED_RATE 25.0 // mm/min
#define DEFAULT_HOMING_SEEK_RATE 250.0 // mm/min
#define DEFAULT_HOMING_DEBOUNCE_DELAY 250 // msec (0-65k)
#define DEFAULT_HOMING_PULLOFF 1.0 // mm

Thanks for the information.