Flashing GRBL 1.1e/f
I am in this awesome predicament where I don't run Windows, and have been using Candle to control my CNC. Lately, I haven't been able to finish runs, as my computer loses connection to the EleksMana board. I read somewhere else, and suspected, that this may be due to running GRBL 0.9. I thought to test this by flashing GRBL 1.1e/f onto the Eleksmana using the arduino ide, but the bootloader on the nano is too big to allow space for the newer version. I have a couple of solutions but require answers before embarking down whichever path I choose.
Solution 1: Use an ISP (my girlfriend has an arduino uno i can use) to put optiboot on the Eleksmana, saving the amount of space I need on the nano to run GRBL 1.1e/f. Flash GRBL1.1e/f using the arduino ide. This is an easy fix, except it doesn't appear the Eleksmana comes with the ICSP pins. Or does it and where are they located?
Solution 2: Buy an arduino nano (~$20, not necessarily expensive but I put some money into upgrading other parts of the machine already) and use that in place of the cheap nano replica on the eleksmana. Unfortunately right now, the arduino store is sold out of nanos.
Solution 3: Get the source code for GRBL 1.1e/f and get rid of things that are unnecessary for the eleksmill, such as coolant control, and hope that I save enough space to fit). This is obviously not the best solution as future upgrades to GRBL will require me to revise the source code again.
What is the best option? Please refrain from suggesting ideas that require Windows (I know T2Laser can upgrade the firmware), as I don't use or have access to one immediately. I do have a Mac laptop and am running linux as my desktop.
@nickolas You are making it more difficult than it needs to be, use something like this https://github.com/paulkaplan/HexUploader/wiki/Using-HexUploader and upload a known good hex. I can provide one that is ready to go, just let me know if you need home switches etc and what pins you have them connected to.
His site: http://paulkaplan.me/HexUploader/
@Zax I have tried loading the hex file provided by the GRBL1.1f page to the board. Since the hex is derived from the source code, that same hex file is too large (which means any hex file that does fit is from modified source code). I don't think the typical workflow is considered difficult, I reflashed it with GRBL0.9 easily, the issue is that the boot loader on the mana and nano is larger than the traditional boot loader on unos now a days, and GRBL was made to flash on an uno. Of course, with 0.9 this wasn't an issue as the source code was smaller and fit with either the larger boot loader on the nano or the smaller boot loader on the unos. The easiest work around would be to use the ICSP pins on the nano (which the mana for some reason doesn't have) to just load a smaller boot loader and viola, the source code from github now compiles and fits.
Anyway, if you could supply a smaller hex file, that would be nice, but in the future I need to know how to make one if I need the home switches etc customized later. As of now, I only use the probe feature, which i assume you don't need to supply to get the hex file out (A5 for probe if I recall correctly).
@nickolas As you said, if you are selective as to what features you enable it will fit (just). I am not sure about probing, that may or may not. Using the ICSP will save a little more but using OptiBoot is almost the same and still allows you to flash via USB.
@Zax from my knowledge, you need the ICSP pins to put optiboot on the mana. I wanted to do this as I could flash the source using the Arduino IDE and everything would fit. Is there a way to get optiboot on the mana without ICSP pins?
@nickolas The Nano clones used by EleksMaker already use it, but yes if you want to replace the older Nano bootloader with OptiBoot from the Uno then you do need to upload via ICSP.
@Zax If eleksmana uses optiboot, then compiling grbl 1.1e/f and flashing using the arduino ide should work. I'll try one more time, in the meantime would you mind sharing a hex file for one of them that should work? Thanks for your help.
I see what you are saying now. I flashed it over without the Variable_Spindle option (only one that would get it low enough), hopefully nothing breaks. This spindle uses one voltage so it should be fine.
Maybe this wasn't such a good idea, I turned it on, and the spindle was going full speed, couldn't shut it off.
@nickolas It won't let me upload hex here but I have sent you a PM.
Hex files are posted on benboxlaser.us as well as the typical source changes, which are fairly minimal.
@Zax, it wouldn't let me load your hex to it. I then looked at my source and verified our cpu_map is the same as well as commented out even the homing features of grbl1.1f, and it doesn't verify and compile. It is way too big and I'm not so confident that my board has optiboot on it (though I am not sure if I have a way to verify this).
"Binary sketch size: 31,336 bytes (of a 30,720 byte maximum)"
@nickolas What error did you get loading my hex? I've put it on all Eleks boards from L1 to Mana SE and CNC with no issues. It should fit with the standard bootloader.
Hey @Zax, I have more time (months) to play around with getting Grbl 1.1e/f to work now that I found out the disconnecting issue. School just started picking up at UChicago so I will let you know the error at a later time when I'm around the machine playing with it again.
For anyone experiencing similar issues, it appears that using a USB hub can cause the machine to disconnect midrun. Wasted a lot of PCBs trying to figure out the issue through trial and error.
Another Linux user here...
First, I was able to upgrade the board my AsX came with using these instructions: https://github.com/gnea/grbl/wiki/Flashing-Grbl-to-an-Arduino
I used the Arduino IDE as advised. It did give a warning about space being tight, but this is normal.
Second, I'm working on an Inkscape extension: https://bitbucket.org/vig/lasergcode
This is much simpler to use than the gcodetools extension, and if you have a moment to install and test, I'd love your feedback.