I started with arduino because I wanted to build an optical drive laser engravin

I started with arduino because I wanted to build an optical drive laser engraving machine.

The engraving machine is made according to GRBL.However, I ran into some questions when looking up tutorials online, which may be very basic.

  1. What is the specific reference to the grbl.hex firmware mentioned in the tutorial

  2. I downloaded the grbl-master package of GRBL, extracted it and imported it into the ide.This step says import source code.So what's the difference between source code and firmware

I've learned a little bit about microcontroller so I know hex is a compile file, but I'm a little confused about the firmware here.

I think that "firmware" here means the code in the fixed program store of a controller. It offers a fixed functionality while the loadable and configurable part of a project runs on a general purpose computer (PC...), e.g. the CAD software.

Controller firmware often comes as source code, for use on various controllers. With grbl I could imagine that "hex" refers to a binary data transmission protocol between the software (PC) and firmware (┬ÁC).

keonwood:

  1. What is the specific reference to the grbl.hex firmware mentioned in the tutorial

  2. I downloaded the grbl-master package of GRBL, extracted it and imported it into the ide.This step says import source code.So what's the difference between source code and firmware

The source code for a C++ program is the text that humans can read.

When the program is compiled it is converted into numbers that the microprocessor can read and that is contained in the hex file.

When you upload an Arduino program it is the content of the hex file that is sent to the Arduino board.

It may be possible to get a pre-compiled version of GRBL as a hex file, but then you will need a hex file upload program to send it to the Arduino board. It's probably simpler to start from the source code.

...R

The grblUpload sketch in the grbl examples (sketchbook/libraries/grbl/grblUpload) makes it easy to upload grbl to your Uno.