grbl-xcp
Grbl 1.1h fork for the X-Carve Pro machine.
Prerequisites
macOS
- Install the Arduino IDE.
- Can also be installed via
brew cask install arduino
- Can also be installed via
- Install the
srecord
tools (srec_cat
in particular)brew install srecord
- Add the embedded AVR toolchain to your path
export PATH=$PATH:/Applications/Arduino.app/Contents/Java/hardware/tools/avr/bin
TODO Investigate arduino-cli as simpler alternative
Linux (Debian)
- Install the AVR toolchain packages and
srecord
toolsapt install -y gcc-avr binutils-avr avr-libc srecord
Compiling
Run make
from the root of the repo. This produces a grbl.hex
firmware file that can be flashed. See the original wiki for more notes on building from source.
There's an additional XCPgrblUpload.ino.with_bootloader.mega.hex
target which combines grbl.hex
with a bootloader hex file for the ATmega2560. The bootloader is the one embedded in the Arduino IDE. This combined hex file is what's flashed at the factory.
Flashing
See the same doc as above on the Grbl wiki
for both flashing (grbl.hex
) and compiling instructions.
Flashing the XCPgrblUpload.ino.with_bootloader.mega.hex
is more invovled as you need to setup an ISP to erase and write the full program memory. One relatively easy approach is to use another Arduino as an ISP but this does require a small bit of wiring and uploading an custom ISP program to said Arduino.
There's also flash-grbl.sh
and flash-combined.sh
that wrap the appropriate avrdude
command for the respective hex file.
Releases
There are automated builds setup on CircleCI for this repo. Currently they are run on PR requests and when changes are merged to master. Upon success, the firmware binaries (grbl.hex
and XCPgrblUpload.ino.with_bootloader.mega.hex
) are uploaded as a CircleCI artifact. Here's an example of the artifacts tab from a master
branch build
When preparing a release, we want to use the Grbl+bootloader firmware (from the master
branch build) for handing off to manufacturing. That means properly updating
the build strings and then creating a git tag of the same name. That tag should be the basis for a GitHub release which includes the aforementioned hex file. See the initial release for an example.
Differences
Differences from the stock version of Grbl
- Self-squaring
- Custom motor drivers