This page covers all the advanced features of gSender such as shortcuts, macros, workspaces, calibration tools, controlling spindles, lasers, coolant, and more. Remember, you can always quickly navigate the page by clicking the headings in the ‘Page Contents’.
Shortcuts
Starting off as a more advanced gSender user, the first feature you’ll want to leverage is shortcuts. These can allow you to assign gSender or CNC actions to keys and key combinations or even to gamepads and joystick movements. There are 3rd party apps like JoyToKey, Xpadder, Comfort Keys Pro and reWASD that allow you to do this, but to eliminate needing to download and configure other programs we’ve rolled all the functionality into gSender itself.
Going to the settings gear, then the ‘Shortcuts’ section, you’ll see that shortcuts can come in the form of ‘Keyboard Shortcuts’ or ‘Gamepad Shortcuts’, all searchable by category. Both options enable you to set up, modify, and enable or disable shortcuts. These will be automatically saved when you close the dialog box and will remain on gSender as long as the program is installed on your computer.
Shortcut Printing
Find yourself forgetting how you’ve configured your keyboard or gamepad profile shortcuts? Hit the ‘Print’ button to generate a simple PDF that you can store on a tablet or print on some paper to keep next to your CNC. This PDF will contain all the shortcuts you’ve created and what actions they’re assigned to.

Keyboard Shortcuts
Either for use on a keyboard, macro pad, or mini Bluetooth keyboard, these are split up into categories so they’re easy to locate and modify. There are shortcuts for carving, overrides, jogging, zero setting, probing, macros, visualization, window navigation, and more!

Common Shortcuts
A great place to start is the Jogging category. In the picture below, see that right now we can jog the X-axis by hitting the shift + right or shift + left keys. The Y-axis responds to shift + up and shift + down keys and the Z-axis uses the shift + pageup and shift + pagedown keys. Being able to look at your CNC, while your hand is on your keyboard is a great way to ensure you are moving in the right direction, without having to look back at your screen to click the mouse on the right button.

You can use the preset shortcuts and/or add your own. Click the ‘+’ or the ‘edit’ to the right of each shortcut to bring up a popup window that allows you to add or edit your own key combination (shown in the example below). You can see it’s as easy as pressing the key or key combination once the popup is open. In addition, you’ll be informed if the combination you’ve entered is already used elsewhere and be given the option to overwrite the existing one if you want.

You can turn on or off individual shortcuts in the Active column or enable/disable all shortcuts at the bottom of the window. Some people find this useful since it can turn off the shortcut temporarily without losing the key combination.

Gamepad Shortcuts
Many users really love this feature since using a controller is convenient (especially for when you’re closer to your machine), inexpensive, and makes certain repetitive actions much easier. Common options are Xbox, PlayStation, and other third-party controllers available to buy online.
We have some pre-made profiles for gamepads we’ve already tested with gSender and you can still reference these if you have a different gamepad or want to make your own. To create your own, connect your gamepad to your computer and click the ‘Add New Gamepad Profile’ button, then make sure the gamepad is recognized before beginning to assign actions to each button. These profiles mean you can set up multiple gamepads if you’d like since they each have their own unique ID.

If you run into difficulty with getting a particular gamepad set up in gSender, consider:
- Some gamepads may require drivers to be downloaded so your computer can read the signals that the gamepad sends out.
- Go into the gamepad profile while it’s connected and click the Help button where you’ll be able to diagnose whether your gamepad is broken and sending out bad signals.
- Searching for documentation provided by the manufacturer (for example, Xbox or PlayStation).
Tested Gamepads
To better guarantee your experience using a gamepad in gSender, we’ve taken the time to test a shortlist of some common and affordable options that are easy to source. With community help, we hope to continue growing this list of officially tested gamepads which currently includes:
![]() |
YCCTeam Xbox Controller
|
![]() |
Logitech F710
|
Having a listed gamepad means you can both be more confident that your hardware will be compatible with gSender, as well as many of the ‘tested gamepads’ will have pre-made shortcut profiles built right in to save you time setting up your own. Find these pre-made ‘profiles’ alongside all the other gamepad settings in the Shortcuts ➜ Gamepad tab.
Connect your controller to your PC and press any button on it. gSender will identify and provide a profile if one is available. You can see in the screenshot below, it correctly identifies the DualSense Wireless Controller I’m adding. Enter your profile name and hit Add New Profile.

Gamepad Setup
Once you have a profile for your connected gamepad, click on that profile to edit it.

Inside a profile, you’ll be able to see if that specific gamepad is currently connected and be able to assign shortcuts to the two major groups: buttons, and thumbsticks.
Buttons are the most versatile in how they can be set up. Any button on your gamepad can be set up to:
- Activate an action
- You can assign a button as a ‘Second Action Button’ which acts similar to a ‘Shift’ key on your keyboard to allow you to create two-button combinations on your gamepad.
- You can also assign a ‘Lockout Button’ which acts as a safety lock for your CNC when controlling it with the gamepad. If you set up a lockout button, then no other buttons on the gamepad will work until you’re pressing on the lockout button. This stops from pressing buttons accidentally or if you dropped your gamepad on the ground.
To add an action to a button, start by pressing the button on your gamepad to see which one on the list lights up green. In this case, the X button lit up button 0. After pressing the +
symbol in the Action column, you will see a list of actions you can map to that button. In this case an action was added for Homing – Go to back left corner, so now when the X button is hit on the gamepad, gSender will move the CNC to the back left corner!

You can repeat these steps to keep adding more shortcuts to your gamepad, this also includes:
- If you’re having difficulty remembering your gamepad buttons, you can click on the black box label and rename it to whatever you’d like.
- The ‘2nd Action’ column will allow you to give each gamepad button a second shortcut action once you set up a ‘Second Action Button’. Do this by clicking the
+
symbol in the Action column of the button you want to use, then clicking the ‘Use as Second Action Button’ toggle on the right side. - Assign a ‘Lockout Button’ in a similar way but by toggling the ‘Use as Lockout Button’ toggle on the right side.

Thumbsticks are set up to be used for jogging because of the ability to move them a little or a lot, which is different from buttons which can only be clicked on or off. This works well because most gamepads tend to have 2 thumbsticks (like the Xbox controller shown above), meaning you can use one to jog in the X and Y, and the other to jog in the Z and A (if your machine has a rotary axis). For gamepads that don’t have thumbsticks this is still fine because buttons can also be set up to jog.
On the right side of the gamepad profile window, you can see the options for what axis you’d like to move with your gamepad thumbsticks. Similar to setting up buttons, you can move the thumbstick to see which one lights up, and you can also assign a ‘2nd action’ if you’d like. In this example, Stick 1 controls the X-axis left and right, and the Y-axis forward and back while Stick 2 controls the A-axis with left/right and the Z-axis with up/down.

Once you’ve set up your thumbsticks, you’ll find you can push them any amount and the distance you push them will decide the speed that axis moves at. If you’ve set up both the left/right and up/down, you can also mix these to make continuous diagonal movements to get to your final location easier. You can also flick the thumbstick once and the CNC will move one increment, according to the rapid/normal/precise movements you have set up for Jog Controls.
- If you find your thumbstick is moving the axis in the wrong direction, use the ‘Invert‘ checkbox to correct that
- If you let go of the thumbstick and the axis keeps moving, increase the ‘Zero Threshold‘ amount since your gamepad might be older and more worn out
- If you get jittering while moving with the thumbsticks, or you let go of the sticks and it takes a while to stop moving, you might want to adjust the ‘Movement Distance Override‘ value until you get smooth movement on your setup

Another cool feature is the Use MPG selection. If you map one of your thumbsticks to an axis with MPG selected, it will automatically grey out the other stick selections. Now you can rotate your stick in any direction and for each quarter rotation, your axis will move once, according to your preselected Jog Controls.

Lightweight Mode
This mode enables gSender to run faster on computers that are less powerful and prone to lagging. ‘Lightweight Mode’ reduces the memory gSender uses by turning off processor-heavy aspects of the visualizer, from reducing detail to disabling it altogether. You can toggle it on or off using the slider positioned at the top right of the visualizer.

If you go to the visualizer settings, you can also customize what features are active in both ‘Regular’ and ‘Lightweight’ modes.

If gSender’s visualizer is impacting the performance of your machine but Lightweight mode only helps once the whole visualizer is turned off, this hybrid option could help. Found in the Visualizer settings, the ‘SVG Visualizer’ substitutes the default 3D viewer with a pre-rendered, top-down image of your project, drastically reducing computer strain but still allowing the project to be displayed.

Once you toggle on ‘Enable SVG Visualizer’, whenever you turn on Lightweight Mode in the top right of the visualizer, you’ll see the alternate view with all animations turned off.

Touch Plate Setup
gSender has support for three types of touch plates:
- The Standard Block design
- Z Probe, also sometimes referred to as a ‘puck’
- And our specialized AutoZero touch plate
For a Z Probe, setting up is simple since you just need the thickness of the ‘puck’. Enter that value into gSender’s ‘Probe’ settings under ‘Z Thickness’ and you should be good to go!
If you’re trying to set up a custom ‘standard block’ plate, use some calipers to pick up on the measurements noted below. Once these are noted down, enter these into gSender’s ‘Probe’ settings in similarly named entries, and now you should find that gSender’s probing routine has been altered to fit the shape of your touch plate.

Coolant Control / IOT Relay
If you have a coolant control pin on your CNC machine, gSender has a tab for manually controlling it. Under the ‘Coolant’ tab on the main screen, you can find the ‘Mist’ and ‘Flood’ buttons to activate the different modes of coolant use, as well as an indicator for whether the coolant function is active or inactive. This indicator also functions during job sending. You can turn off both coolant pins by pressing the ‘Off’ button.
Many hobby CNCers don’t have a need for coolant and so prefer to use these outputs for controlling other periphery. The most common is an IOT relay that can be used to automatically control a vacuum for dust collection, the CNC’s router, LED lighting, and more. See an example of how to set that up here: https://resources.sienci.com/view/lm-iot-relay/

Spindle & Laser Support
Similar to the manual coolant control, this area is for manual control of a spindle or laser outside of g-code sending. If you have a spindle or laser, you can activate these controls by going to the settings gear at the far right. In the ‘Spindle/Laser’ section in the left toolbar, press the toggle for ‘Spindle/Laser’.

Back at the main screen, you’ll see the ‘Spindle/Laser’ tab at the bottom right. Here you can click to toggle between ‘Spindle Mode’ and ‘Laser Mode’, changing your grbl settings for you and displaying buttons specific to each device. For each mode there is also a red caution circle that indicates whether the spindle or laser is active. This works during manual control but also during job sending.
In spindle mode you can set the spindle speed with a slider, spin it up in either direction, and stop it again with the ‘Stop’ button. These are all based on g-code commands that can also be entered into the console manually if desired. The speed slider is set from your grbl firmware settings, so max and min speed can be altered in the Firmware Tool.

‘Laser Mode’ is very similar, allowing for On/Off control, a slider for setting the laser power during manual control, and a ‘Laser Test’ button. The laser testing function is handy when troubleshooting your laser setup or for other sorts of locating and alignment because it only enables the laser for a short time before turning it back off again. Though this is much safer than regular on/off control, we still highly advise that you have you have a hand on a kill switch or E-stop during testing or control of either Laser or Spindle modes so that in case something goes wrong with your computer or the program they can still be safely deactivated.

Laser Diode Support
Some accessories can be really handy to add to a CNC router like a laser diode, drag knife, or pen plotter. These would all perform better on a faster, dedicated machine, but for occasional use why not use the existing motion system of the router to do other things for you? A laser diode in particular can be great because you can clamp the material to carve and then laser engrave afterwards and know that everything is still aligned.
Since many CNCs are coming with diode accessories, gSender has some unique features to also support lasers. Once ‘Laser Mode’ is turned on, gSender will:
- Automatically apply an offset from the router/spindle to the laser so all your g-code files stay aligned (configured in the Spindle/Laser settings, or with Firmware settings $741 and 742 on the SLB)
- Turn on the laser at low power when running a job outline (enabled in the Spindle/Laser settings). This will help you to better see where your project is going to be located on the material
- Switch to a specialized visualization designed to show raster engraving images better than typical g-code visualizers. Seeing the laser intensity in the movements is very useful to get a better idea of what your projects are going to look like when they’re run. This will only apply to files loaded after ‘Laser mode’ is enabled and the colour can be customized in the settings

Macros
Macros are standalone buttons within the gSender interface that allow you to execute a series of g-code commands when they’re run. Macros can come in handy for a variety of uses:
- Button to run a v-carve or laser engraving of a common insignia into the back of your wood pieces
- Perform a specialized probing function for a particular jig you’ve set up
- Apply a predetermined offset that allows you to easily array your cutting jobs
You can create macros using the ‘+’ button under the ‘Macros’ tab. Here you’ll see a space for inputting your custom g-code and adding a name and description for the macro. Advanced users may also want to leverage ‘Macro Variables’ which allow for greater g-code manipulation and pseudo-programming. Press ‘Add New Macro’ when completed.

New macros will appear as buttons in the ‘Macro’ tab that can be rearranged by dragging them around. These buttons will display the macro name, show the description if you hover your mouse over them, and can always be later altered or deleted by clicking on their ‘…’ button.
Any macro can be executed by pressing it. Before pressing it, a play icon will appear to show that you can select it. Once running, you should see the macro start to pulse green while a toast notification on the bottom left hand side of gSender also notifies you that it’s running.

Macros can also be executed using shortcuts. Every time you create a new macro it’ll become available at the bottom of the shortcuts list for you to assign a key or gamepad button to. Add your keybindings and enable them by pressing the slider beside the label.
You can share macros with other users or transfer them between computers by using the import and export features. To import one or multiple macros, just press the button with the downward arrow and a browsing window will appear so that you can select the macros you wish to import. Similarly, to export all your current macros, press the button with the upward arrow and it’ll generate a save file for you.

Advanced Macros
gSenders Macro architecture is based on JavaScript and uses the Esprima library (https://esprima.org/) and so will theoretically support any code that it does. This is exciting because Macros can move far past basic variables if you’d like to perform advanced functions on your CNC:
If you want some initial inspiration, see other macros made by our community or ones made for CNCjs (another g-code sender) which should also work in gSender. Otherwise, here are some other points of guidance:
- You’ll want to develop your understanding of typical g-codes and m-codes that are used for CNC control (the pages linked are very good sources for that)
- The “Macro Variables” dropdown in gSender shows many of the most commonly used operations when making your own macro
- Make your own variable with
%variable = value_you_want_to_set
(ex. % probeSpeed = 150) - Use your variable in g-code, like
G21 G91 G0 X[variable]
(moves the X-axis by the amount set in the variable) - Test your code by printing it to the console
([variable])
- Make dialog boxes appear on the screen to confirm a value or position by putting in an M0 line with a comment, for example
M0 ;Remember to turn on your router before the next step
which will pause the macro and give you the option to ‘continue’ or ‘cancel’ - Start experimenting with basic math using numbers and variables
- Use global variables
global.variable
if you want variables that you can use in other macros (note that these get reset once gSender is closed) - Read up on all the other Math features available like absolute value, rounding, and trigonometry (become very useful for more advanced probing cycles for example)
- Start to add more logic to your code using ternary expressions to choose between two outcomes (e.g.
%variable = (30 > 20) ? 10 : 20
which is checking if 30 is bigger than 20, and if it is it’ll make the variable = 10, otherwise it’ll make the variable = 20). - Here’s an example of a more advanced macro, made by gSenders Lead Developer, which shows off much of the guidance given above. This macro was made for our new SLB control board in order to cycle between its 3 status light states.
- The macro is only 3 lines. First it checks what the current light state is and sets it to 0 if it doesn’t have a state. Next, it sets the lights to the current state but applies a modulus of 3 since we can only have a state value of 0, 1, or 2 so we’ll get an error if the value is 3 or above. Lastly, it adds +1 to the state so that if the macro is run again it’ll put the lights into a new state.
%nextLight = global.lightState || 0
M356 P0 Q[nextLight % 3]
%global.lightState = Number(nextLight) + 1
- Store many variables in an array so that those variables can be used in other macros without assigning them all as global
%setup = {}
%setup.this = 0
%setup.that = 1
%global.setup = setup
- then in the other macro
%setup = global.setup
- Create functions that you can then call later such as
%rapid = function (x, y) {return 'G53 G90 G0 X' + x + ' Y' + y + 'n'}
then later run it with[rapid(x, y)]
- Read more about the Esprima library here: https://docs.esprima.org/en/latest/syntactic-analysis.html
Console
The console is a tab that you can access at the bottom right hand side of the gSender window. The text here shows a truer representation of the communication that happens between your computer and your CNC. As you start to understand more about your machine, this is a great tab to reference so you can see if commands are being properly sent, received, and executed. It’s also great for troubleshooting since you can:
- Manually send g-code commands to your CNC
- Check for errors or alarms and the g-code that caused them (normally the line that comes before)
- Copy text straight from the console to send in an email for help by clicking the icon beside the “Run” button
- Even open the console in another window by pressing the top, right icon to help you see more console text at a time (if you press the button again once you reconnect to your CNC, it’ll reconnect the console stream to the original window too)

When you first start up gSender, the console will display EEPROM settings that are sent from the Arduino in the control box. These EEPROM settings control parameters for your CNC such as:
- Maximum speed and acceleration in each axis
- Boundaries of the work area
- Direction of each axis movement
- Limit switch settings
To access EEPROM settings again, enter in “$$” into the console and hit the ‘Enter’ key or click the ‘Run’ button. These settings can be changed via the console as well as the Firmware Tool which we’ve designed as a much more visual way to alter machine settings.
Calibrate Tool
The ‘Calibration Tool’ on gSender enables you to make finer adjustments to your machine for improved performance. There are three processes available on gSender:
- Diagnostics
- XY Squaring
- Movement Tuning
- Surfacing Wasteboard

Diagnostics
If you’d like to see general information about your CNC or are experiencing issues that you’d like to troubleshoot, gSender has a Diagnostics tool for that. Access it by clicking the ‘Calibrate’ tool on the top-right and opening the ‘Diagnostics’ tab.
Here you’ll see machine information, notable firmware settings, and at-a-glance status on whether your limit switches, touch probe, or other pins are activated. This can be handy if you’re encountering odd behaviour with certain machine accessories or to double-check your wiring.

Another valuable feature is the ability to download a Diagnostic PDF file of your CNC machine when you click ‘Download Now!’. This PDF file is meant to include information on your computer, your CNC, recent alarms / errors, any currently loaded g-code file, and more. It’s basically a treasure trove of information that you can share on community forums, Facebook groups, or with your CNC customer support. This can go a long way towards getting help from others on diagnosing any problems your CNC might be experiencing.
To download the PDF, click the “Download Now!” button. This will open a save dialog box. Save the file to a location that you can easily access to send along to others in an email, support ticket or post online.
Lastly, you can copy the last 40 lines of code in the gSender console (1), by hitting the double page icon to the left of the Run button (2). This will copy the code to your clipboard, so you can paste it to forums or share it with support teams.

XY Squaring
When mounting your LongMill on the table, there is a basic squaring process illustrated in our instructions (https://resources.sienci.com/view/lm-table-mounting/). If you do find that the machine is not perfectly square, you can follow the steps in this process to fine tune the position of your rails.
When you access the ‘Calibration Tool’ window, the ‘XY Squaring’ procedure is shown on the first tab. All instructions are illustrated in the window, however a brief overview will be provided.

You will need the following:
- Ruler or measuring tape
- Tapered bit or V-bit
- Tape
- Jog the machine to the front left corner, with the bit raised slightly over the surface of your wasteboard
- Mark the points with tape and move the machine as directed
- Measure the distance between the marked points and record the values
- Adjust your rail positions with the values determined by the XY Squaring procedure
The great advantage to this tool is it saves you having to do the trigonometry yourself and will also let you know if your machine is aligned closely enough that it’s not worth worrying about.
Movement Tuning
You are able to change how much your motors turn to improve the accuracy of your machine movement. This is done through modifying the EEPROM settings that are stored on your LongMill, which this process will guide you through. You can tune the X, Y and Z axes individually. All instructions are illustrated in the ‘Calibration Tool’, however a brief overview will be provided.
You will need:
- Marker or tape
- Measuring tape
- Jog your machine to the middle of whichever axes you choose to tune, so that there is enough room to complete this procedure. For example, on the X-axis you would jog halfway on the X-axis rail
- Select what axis to tune on the drop down menu
- Mark down the location of your reference on the machine. For example the X-axis tuning references the edge of the XZ gantry on the X rail
- Move the axis a chosen distance
- Measure the travel distance between the marked location and the reference edge
- Change the EEPROM setting as recommended by the procedure by pressing ‘Set EEPROM setting’
- Repeat the procedure for each axis you wish to tune
Surfacing
Surfacing the wasteboard of your machine can easily be done right inside gSender! The first thing you’ll want to do is decide where you want to start surfacing and in most cases the front, left of the machine is the most convenient. You might also want to remove any accessories that might get in the way of your machine travelling around during surfacing as well as have a good vacuum on hand because surfacing can get really messy. You can find the Surfacing Tool under the Calibrate tab, or under the Surfacing tab.

- Start by entering the settings you’d like to use to generate your surfacing job:
- X & Y: decides the cutting size (width and depth) you want to surface. If you’re surfacing your wasteboard, use the manufacturer’s spec on max machine travel or manually jog to the limits to cover the full cutting area, or if you’re surfacing a piece of material then you can use a measuring tape.
– LongMill MK2: 818mm (32.2”) or 1278 (50.3”) x 366mm (14.4”) or 866 (34.1”)
(if using limit switches, remove about 8mm/0.3” in X and 11mm/0.43” in Y)
– LongMill MK1: 320mm (12.6”) or 805 (31.7”) x 344mm (13.54”) or 844 (33.23”)
(if using limit switches, remove about 35mm/1.38” in X and 24mm/0.94” in Y)
(if using magnetic dust shoe, remove about 34mm/1.34” in X)
– Mill One: 235mm (9.25”) or 257 (10.1”) x 185mm (7.28”) - Cut Depth & Max: describes how deep you want to cut per pass and the total depth you want to cut down. For larger surfacing bits usually you should keep cut depth below 1mm, max depth should be increased to a couple millimeters if you think your material is very warped.
- Bit (typically 6 – 25mm): make sure you have the right bit for the job like a surfacing tool or a large, flat end mill since this will give you a better surface finish.
- Spindle RPM (default 1700): only applies if you have an automatic speed control, otherwise set this manually on your router.
- Feed rate (default 2500mm/min): influenced by the RPM, step over, bit diameter, and cut depth. Luckily if you set it incorrectly you’ll be able to override it during the job since surfacing can cause burning when cutting too slow or can have worse surface finish when cutting too fast.
- Step over (default 40%): sticking around 40% tends to be a good balance between speed (using a higher %) and better surface finish (using a lower %).
- X & Y: decides the cutting size (width and depth) you want to surface. If you’re surfacing your wasteboard, use the manufacturer’s spec on max machine travel or manually jog to the limits to cover the full cutting area, or if you’re surfacing a piece of material then you can use a measuring tape.
- Select a Start Position of any four corners or the center by clicking the dot; this is where the surfacing will begin. You can also select a surfacing pattern of spiral or zig-zag. The spiral will only cut from the inside-out if the start position is the centre. If you toggle the flip cut direction, the spiral will cut conventional instead of climb, and the zig-zag pattern will cut vertically instead of horizontally.
- Press ‘Generate G-code’ and check your surfacing tool path using the ‘Visualizer Preview’ tab. You can also see the raw g-code using the ‘G-code Viewer’ tab and can copy and save it to a g-code file if you’d like to use it again later.
- Press ‘Run on Main Visualizer’ to bring the g-code into gSender’s main screen. Make sure that you jog to the starting point and set your zero in the right place before starting the job. You can also press the ‘Outline’ button as an easy way to check that you’ll be surfacing where you expect and if you find the dimensions aren’t correct you can always re-open the surfacing tool, tweak the size, and try again. Feel free to start the job whenever you’re ready!
Did you know that surfacing can be used for more than your wasteboard? It’s great for creating a perfectly flat surface of your starting materials, just like a jointer or surface planer would. You can also use the Rotary Surfacing tool if you are wanting round stock.
Job Stats and CNC Maintenance
Curious to know how many jobs you’ve completed, how many hours you’ve put on your machine or what maintenance you should be focusing on? Find this information in the ‘Job History & Stats’ section of Settings. Here you will find 3 tabs; Statistics, Job Table, and Maintenance.

Statistics
The statistics tab has a dropdown menu that allows you to select between Overall Stats, Jobs Per Com Port (each com port is a different machine), and Run Time Per Com Port. These selections will show your statistics for total, average and longest runtime along with total, completed and cancelled jobs.
Job Table
The Job Table tab provides a simplified breakdown of each job, including the file name, duration of the job, number of lines in the job, the start date/time and completion status. This chart can be filtered by hitting the column header, or expanded to show more entries.
Maintenance
In the Maintenance tab, you will see preset tasks with an hourly countdown range, to remind you when a maintenance task is due to be performed. These times pull directly from the runtime of your jobs and allow you to mark them as complete to reset the timers. Once the task is in range, the maintenance is due, once past the range, the task becomes critical to address.
You can also add your own reminders, time due range and description to this section, to really make it your own.
Firmware Tool
Any board you have will come pre-installed with CNC firmware, along with the custom EEPROM settings for that machine, so typically you won’t need to access the ‘Firmware’ tool. If you choose to use this tool, it can give you access to many of your machines “behind-the-scenes” settings for tweaking or modding your setup. Open it by clicking the ‘Firmware’ tool at the top of the screen.
Unsupported CNCs
If your CNC isn’t listed below, then it’s considered “unsupported”:
- Sienci Labs LongMill (MK1, MK2, and MK2.5), AltMill, and Mill One (V1, V2, and V3)
- Don’t see your machine on this list and want it fully supported? Let your manufacturer know to get in contact with us so that we can add their machine profiles to gSender 🙂
If your machine is unsupported, it means that the Firmware Tool won’t be able to perform the same features as for supported machines. In this case, if your machine isn’t working, contact your manufacturer to get their advice on how to fix it. Using this tool makes it possible to ruin your machine further and we won’t be able to help you with your specific hardware. For unsupported machines:
- Choosing your machine name from the drop down menu is primarily cosmetic
- Flash either vanilla grbl, or for grblHAL boards upload a hex file to flash a new firmware
- Import EEPROM settings from a file if you had settings that were working and something changed
- Export current EEPROM settings if you’d like to save your current setup in case something goes wrong
- Restore all your machine settings back to typical vanilla grbl values
- And otherwise see and modify any machine settings as well as search any keywords to help you find what you’re looking for

Supported CNCs
If your CNC was listed above then it’s “supported” by the Firmware tool. This means that the manufacturer is working with us to keep their machine profiles up-to-date, which in-turn gives you access to more features:
- Choose your machine name from the drop down menu
- Flash either your specific machines grbl firmware, or for grblHAL boards upload a hex file to flash a new firmware
- Import EEPROM settings from a file if you had settings that were working and something changed
- Export current EEPROM settings if you’d like to save your current setup in case something goes wrong
- Restore all your machine settings back to the defaults for your profile in case they’ve somehow been altered or wiped (like a “factory reset”)
- Also be able to see a yellow highlight and be able to reset individual settings that have been changed from the machine defaults
- And otherwise see and modify any machine settings as well as search any keywords to help you find what you’re looking for

Start/Stop G-code
A powerful feature to control your accessories automatically (like turning on/off a spindle or vacuum) or to run movement macros that are custom to your machine. ‘Program Events’ (formerly “Start/Stop G-code”)’ in gSenders settings automatically apply g-code to your cutting job at the start, end, or if you stop, pause, or resume the job. The ‘Stop’ event is there to ensure that “ending g-code” is always run even if you have to stop a job prematurely. You can also toggle these on and off if you don’t want them run for specific jobs.
Three massive perks to setting up automations this way are:
- There’s no need to get into the weeds customizing your CAM post processor
- gSender is able to send code when you pause, resume, or emergency stop your machine, all of which a g-code file on its own would never be able to do
- This additional amount of control will make your CNC safer to use
For example, if you were to add M3/M5 commands to your CAM post processor to control your spindle but then chose to pause your job midway to check something, then most CNCs wouldn’t know to stop spinning your spindle or retract it since g-code files can’t carry this information; this is where gSender is able to the heavy lifting.
For the text-box of the situation you want the action to happen, type in the g-code commands you wish to run, then press the ‘Update‘ button to save it. For example, if you installed an IOT relay to turn your router and vacuum on and off and wanted to make sure they were enabled for every job you ran, you could add:
- “M8” for Start and Resume
- “M9” for Stop and Pause
- If you wanted to add a delay to give your vacuum or router time to fully turn on, then you could add “G4 P5” after the M8 for a delay of 5 seconds (you can customize that delay to your equipment)
- If you wanted to keep the vacuum and router running during a pause, then you don’t need to add “M9” to Pause
- All this can also apply to automatically control a spindle, where you’d instead use “M3” and “M5“, you can also add a delay with “G4 P#“
- If you want to raise the Z-axis on Pause and lower it on Resume, you could also add:
- “%global.move=modal.distance” then “G91 G0 Z-5” for Pause to move 5mm out of the way
- “G91 G0 Z5” then “[global.move]” for Resume to move back down

Tool Changing
For CNC machines, tool changes are pauses that are programmed in the g-code for a user to switch out the cutting tool for a different one, or the machine to do that automatically. The workflow can also sometimes involve pausing until the user tells it to continue, usually through a ‘Resume’ and/or ‘Confirm Tool Change’ button on the machine interface. This allows you to run multiple toolpaths (cutting operations) within one g-code file.
The g-code for tool changing is an M6 command. gSender is quite capable when it comes to customizing CNCs for tool changing, even having full Wizards built-in. The tool change options are in the Settings ➜ Tool Change menu. You can select from one of 6 different options, and even choose to ‘passthrough’ the M6 and T commands to the CNC controller for CNCs that are capable of handling tool changes on their own.

You can Ignore any M6 tool change commands, Pause the job when a tool change is recognized, or select one of the last three Wizards that will guide you through pre-set tool changing methods. In the split image below, you can see an example of the job Pause on the left side and the Wizard on the right.

If you are using one of the wizard options, know that you can access all other gSender controls while the wizard is open like jogging and zeroing. It also has flexibility to go back a step if you missed something or had a mistake, or to be minimized temporarily if you want to check the visualizer.
- Ignore
This simply ignores any M6 commands in the g-code file. This is the default option since it’s perfect for beginners that only make projects with one tool or those that create separate files for each tool and prefer to manually perform tool changes between files. - Pause
Pauses gSender at the tool change point, as if you had hit the pause button manually. This gives you freedom to jog, zero, or anything else you’d like, and is great for those that are running multi-tool files but want to use a different process than the Wizards provide. This could be a manual probing process, a different tool changing approach, or running custom macros to support your machines specific hardware. gSender is compatible with tool length sensors like the Carbide 3D bitsetter, and our community has compiled a list of macros for tool changing that you can use when you are paused. Just note that pausing can’t always guarantee keeping track of your movements and actions when it comes time to resume the job so try to ensure you get back to the starting point and set zeros correctly. - Standard Re-zero (Wizard)
Titled ‘standard’ because it’s exactly the same as the standard process you might normally follow for running a file, changing the tool, re-zeroing Z, then running the next file except it’s applied to a single file with multiple toolpaths. Since the process is so familiar, this is a great way to dip your toes into tool changing within one file. Compatible with using a touch plate or the paper method, zero out at a predetermined spot (usually at the front left corner), and use jogging to move around. The advantage of introducing this extra automation and guidance during tool changes is that you don’t have to worry about custom macros and it reminds you of simple steps like turning the router back on or zeroing Z. - Flexible Re-zero (Wizard)
Similar to the ‘standard’ wizard with similar steps and manual movements but provides the ability to zero Z off a point that wasn’t your starting Z when it comes time to change the tool. This is useful if you tend to carve away your material and lose the starting Z or you don’t have limit switches but would like a process similar to a tool length sensor. -
Fixed Tool Sensor (Wizard)
This is the most automated setting where all probes and movements are done for you, you only need to intervene by changing the tools. Set up the job and zero normally then expect the machine to move to the sensor location when it reaches a tool change, verify tool length, prompt for a change, probe new tool, then resume cutting. Your machine will need to be homed, have limit switches, and have a tool length sensor (compatible with Carbide 3D bitsetter for example) in order for this option to work. To set up the sensor mount the router/spindle as far down as you might typically put it, with the longest bit mounted in it, then jog it to hover over the tool length sensor with some room to spare and open the settings menu to save that location. This will be the spot your machine moves to every tool change so if it’s too low or your sensor doesn’t work it’ll run into the sensor.
-
Code
You can enter your own macros before and after the tool change with this strategy selected which is fairly powerful for making tool changing processes that are more automated than just pausing.
Workspaces
Usually you would only have one origin or zero position for your project, therefore gSender will only save one zero. However, if you plan to do a series of projects that require different zero positions, or are lining up to do some more complex jigging or part batches, you may want to set up multiple workspaces all at once. This can save you time by not having to set a zero position for repetitive tasks or specific jig setups. You can do this by creating up to six different zero positions with the six workspaces in gSender. Access each ‘Workspace’ at the top right of the program by pressing the drop down to select which workspace to use. gSender will act completely in-line with whatever workspace you’ve selected, whether you want to set zero, probe, surface, or anything else.

The video below explains the process in greater detail. If you’re coming from a more technical background, you’d usually call these ‘workspaces’ G54, G55, G56, … G59.
Settings
Transferring Settings
gSender’s settings are stored on a file on whatever computer is used to run it. This mostly includes everything that you’ll find in the settings menu such as units, machine preset, probe, tools, jogging presets, keymapping, tool change g-code, start/stop g-code, and more. If you plan on using a different computer to run your CNC using gSender or want to run gSender remotely, some of these settings might be very important to carry over to the alternate computer to make sure things keep running as expected.
To transfer your settings over:
- Begin by opening gSender, going to the settings gear in the top-right corner, and clicking the ‘Export Settings’ button in the ‘General’ tab
- Save the file somewhere onto your computer that you can find afterwards
- Outside of gSender, find the file and transfer it using a memory stick or sending it over the internet by emailing to yourself or using Google Drive or OneDrive.
- Once you’ve got the file onto the other computer it’s now easy enough to open gSender on that computer, or in the web browser if you’re doing remote control, and go to the settings and click the ‘Import Settings’ button in the ‘General’ tab.
- Locate the file and click ‘Open’
- You’ll get a warning. Click ‘Import Settings’ if you want to continue. Once you do, gSender will disconnect and you’ll need to reconnect the machine to resume operation but the settings should now be brought over.
Remote Mode
If you’ve ever wanted to run your CNC without being stuck right next to it, this is the feature you’re looking for. The remote mode is exactly how it sounds, it gives the ability for a remote computer to connect over a shared internet network to a permanently installed, normally lower-end computer, that runs the CNC. This ‘remote computer’ can be any device that can connect to the internet and run a web browser, meanwhile the ‘inline computer’ plugs into your CNC with a USB cable and will receive commands over the internet from the remote computer.
This feature is handy if you’d like to:
- Load in a file from your design computer outside your shop then run it on your computer inside the shop
- Use a tablet as the primary means of controlling your CNC rather than a mouse and keyboard
- Use a phone for occasional use when jogging or running functions
- Leverage a mini PC or Raspberry Pi as the inline (tethered) computer for cheap, fanless, and reliable operation without taxing them with a display, keyboard, and mouse
Before diving into the setup, here are some quirks and warnings that are important to keep in mind:
- Both systems need to be on the same internet network to work, where the device used to run remote operations needs to be able to run a web browser
- You may need to be an Administrator of the inline computer to make the changes needed so ensure you have that power
- This feature will always be inherently less reliable than a hard-wired connection because of its reliance on your shop’s internet connection for communication. Keep this in mind if you intend on using remote control for more important projects or with expensive tools or materials
- Remote control is still in development so expect to experience some bugs if you’d like to set this up for yourself. The setup process is a little bit more involved on your computer so we don’t advise using this feature if you’re not confident with troubleshooting your own setup
- This feature is NOT intended to enable use of your CNC while AWAY FROM YOUR WORKSHOP. A CNC should always be run while you or another knowledgeable operator is in the vicinity to ensure safe machine operation and be able to react if intervention is required. CNCs can cause fires from electronics, material friction, and can have other safety hazards if not properly monitored
- In other contexts this feature could be thought of as running ‘headless’ but it doesn’t fully meet the requirements of that term. Though remote controlling the CNC from another computer should reduce the requirements of the inline computer, at minimum it still needs to boot the idle version of gSender with a window manager. This is in contrast to a fully ‘headless’ setup where a skinned-down program exists only to pass along information from other devices with no UI to send along information itself
Enabling Remote Mode
All setup steps need to happen on the inline computer (the computer you’ll have connected via USB to your CNC) and have been simplified to mostly happen within gSender.
- To begin, click the satellite antenna icon on the top right of the screen. If the icon isn’t there, you’ll need to make sure you have a newer version of gSender that supports this feature.
- This is where remote mode is set up. First you’ll want to click the ‘Enable Remote Mode’ toggle. Second, click the box next to ‘IP’ and select one of the options that gSender tries to recommend for your particular computer network. For an average setup the ‘Port’ value can also be left alone. The third step is to click on OK once you have completed the configuration. You can also use your camera to scan the QR code, and be taken directly to your remote interface!
If you’re an advanced user or have tried the default values without success, you can type in any other IP address or Port that you’d like since the defaults aren’t guaranteed to work. Common port values are 3000, 8000, and 8080 and generally don’t go below 1024 since those are considered privileged. Changing IP addresses can also help if you’re running a VPN or need a different internal IP to external IP mapping.
- gSender needs to restart in order for the remaining changes to take place. You can choose to restart immediately or wait until later.
- If there was a problem using the specified IP address or Port, you’ll get an error window to let you know. In this case you should be able to reopen gSender, go back to the Remote Mode settings, and try another IP or Port until the setup is successful.
- You’ll know the setup was successful if gSender restarts, the antenna icon is green, and numbers show next to it. As a quick test, click on the numbers to copy them then open a web browser like Chrome or Edge and paste them into the address bar and press enter (you can also type the number manually). After the page loads, you should see a copy of gSender running in the web browser! If something’s not working, check you followed the setup steps correctly or reference the firewall or troubleshooting sections below.
Firewall Setup
During initial setup, you might see a Security Alert window pop up or run into an issue where the browser address isn’t working. The most likely issue here is that your inline computer firewall isn’t allowing gSender to communicate to other devices on your network.
For Windows: You should simply see a popup from Windows Firewall or your antivirus software asking for approval to allow gSender to communicate on your home network. Please check the box beside “Private networks” and “Public networks”. This should be all that’s needed.

For Mac / Linux / Pi: If you find that you can’t connect with outside devices or just want some extra safety you might want to try opening the Universal FireWall (UFW) on a given port to allow external access. This can be started with sudo ufw enable
(if UFW is not found then install it using sudo apt-get install ufw
and your root password) then opening the desired port, for example sudo ufw allow 8080
opens port 8080 for external access. If you want to see what ports are already open, you can use ufw status verbose
.
Using gSender Remotely
With setup complete, regular use is pretty straightforward:
- Connect the inline computer to your CNC as you would normally using the USB cable. Turn on power to your CNC and connect to it in gSender as usual.
- Look for the numbers next to the antenna and write them down including all the symbols and punctuation; these will be used to connect to your CNC on the remote computer / device.
- On any remote device that can run a web browser like Chrome or Edge (computer, phone, tablet) open the browser and type those same numbers you wrote down into the top address bar. In this example the numbers are 192.168.2.203:8000 but yours may be different. Press enter, and hopefully the familiar gSender interface will appear in your browser window. If not, ensure that your remote device is on the same network as your inline computer.
- Once connected, you should now be able to control your CNC remotely with most of the same features and functions you’d normally expect:
- You’ll be able to use both the remote and inline devices simultaneously to control your CNC like jogging, opening and closing files, probing, macros, and more
- You’ll also see that both their screens look exactly the same so you can watch the visualizer move around or check on the machine state
- On phones the screen will look different since we’ve optimized it for jogging, setting zeros, and probing
- When you click to ‘load a file’ you’ll see that you’ll only be able to load files from the device you’re currently on, don’t expect to gain access to the files stored on the opposite device. However once the file is loaded into gSender, you’ll be able to run it from any device
- There can be multiple remote devices all connected to the same inline computer at the same time to control your CNC from multiple devices. There can also be multiple inline computers controlled from the same remote computer, giving you multi-CNC control from the same device
- gSender settings like ‘safe height’, ‘start/stop g-code’, ‘tool changing’, and any other gSender specific settings won’t carry over to the remote computer. If you want to make sure files are run the same way every time you’ll need to transfer your gSender settings over by following the ‘Transfer Settings’ instructions below
- If you’re using your phone, save the unique URL to a bookmark on your home-screen so you can open Remote gSender easily every time! Check out this video for details
Troubleshooting
If you ran into issues during remote control setup, here are some other checks you can make:
- The easiest checks to make sure remote mode works for you is to make sure you have gSender open, you have gSender connected to your CNC, and you’ve turned remote mode on
- Double-check your remote mode configuration menu, antenna icon, and IP address are showing on the inline computer
- Ensure both your computers / devices are on the same internet network and the IP numbers match on both devices
- Double check you took the right steps in the Firewall Setup section. Your inline computer might be blocking gSender’s ability to send information to the internet because of the firewall. On Windows, follow these steps to modify the firewall:
- Click Start and open your computer’s Control Panel
- Open the ‘System and Security’ settings
- Open the ‘Windows Defender Firewall’ and go to its ‘Advanced settings’
- In the column on the left, click on ‘Inbound Rules’ and then find and double-click on ‘gSender’. There might be three options of gSender to click on, you’ll want to click on the version that has the word “All” under the ‘Profile’ column
- In the pop-up box, click on the tab labelled ‘Protocols and Ports’. Next to ‘Local port:’ you’ll want to use the drop-down menu to select “Specific Ports” and then type in the default port of “8000”. If you have added a custom port to gSender’s Shortcut properties, you’ll need to type in that number instead. Once you hit ‘Apply’, you can check to see if this resolved your problem.
- Click Start and open your computer’s Control Panel
- If when gSender reopens you’re met with a white screen, this means an error has occurred that we weren’t able to detect. This is rare, but unless we can find some other way to manage this the only fix is to uninstall gSender and reinstall it again.
- If on the remote device you get a popup for “Server Connection Lost”, this indicates that either gSender on the inline computer was closed or the shared internet is disconnecting. You should be able to fix this by restarting gSender on the inline device, then clicking “Attempt Reconnect” on the remote device.
Rotary
gSender has a unique ability to control a rotary axis on normal, 3-axis grbl machines. We call this “rotary mode”; which isn’t to be confused with grblHAL machines where gSender by default supports full, 4-axis motion. The idea is that once you’re in this “rotary mode”, gSender does the legwork to swap firmware settings over to your rotary setup, translate A-axis movements to your machine as if they were Y-axis movements, and as long as you’ve done the legwork to align and swap over your wires then your rotary A-axis should now be good to go!
Rotary Mode
Navigate to the Settings where you will find the Rotary settings. Here you can toggle the Rotary controls to make them visible on the main page.

Once the toggle has been turned to display, you will see an additional tab at the bottom right of the window, called Rotary. With this tab you can:

- Jog Control – Rotate the A-axis, go to Zero, set Zero, and adjust speeds
- Rotary Mode – Toggle into Rotary Mode
- Rotary Surfacing – Wizard to turn square stock round
- Probe Rotary Z-axis – Automatically probe to find the Z-axis
- Y-axis Alignment – Automatically probe to align the Y-axis along the A-axis (Turn rotary mode off to access this feature)
- Rotary Mounting Setup – Drill holes in your wasteboard to mount our own Vortex Rotary track (Turn rotary mode off to access this feature)
Note: Before switching to rotary mode, using the jog controls, rotary surfacing, or any other rotary actions, you’ll need to check that you’ve got your rotary set up and positioned correctly. This includes table mounting and Y-axis alignment, outlined below.
Rotary Mounting Setup
When mounting a rotary axis, it’s important to be parallel to the X-axis, and helpful to have a repeatable position so you can reliably mount and unmount the rotary, depending on when you want to use it. If you have your own rotary axis, this is a step that you’ll have to do yourself.
For those who might have our Vortex rotary axis, the ‘Rotary Mounting Setup‘ button is a specific macro that cuts into the machine wasteboard to help you fasten the rotary with perfect parallel alignment. Check out our Vortex Resources for more details on how to use this wizard.
While the Y-axis Alignment button helps in the setup of your Vortex Rotary, so does the Rotary Mounting Setup button. This feature has been designed to provide a center line for your rotary track installation. Check out our Vortex Resources for more details on how this wizard helps you mount your Vortex to your wasteboard.
Y-axis Alignment
When switching from regular CNC use to Rotary Mode, you will probe to align the Y-axis along the A-axis. You can do this in the Rotary Tab by hitting the Y-axis Alignment button. Check out our Vortex Resources for more information on aligning your Y-axis when setting up your Vortex.
Rotary Mode Toggle
This toggle can only happen once you’ve got your rotary axis set up properly, because after switching it’ll assume you’ve changed your motor wiring to be connected to your A-axis instead of your Y-axis. Here you can toggle the Rotary Mode on and off without going into the settings.

When you enable Rotary Mode, several changes will happen to your tool options:
- The Y-axis Alignment and Rotary Mounting Setup buttons become grey and hidden. This is because your Y-axis will be locked in its current position at this time, so there is no need to align it, and your rotary should already be set up.
- The Stock Turning and Probe Rotary Z-axis buttons become available
Several changes will also happen to your controls:
- The GoTo button for Y-axis and Z-axis is hidden
- The Zero Y-axis button is hidden
- It changes the ‘Goto XYO’ button to be a ‘Goto XAO’ button
- The Y-axis jogging buttons are hidden

You will also see a reminder that:
- Your Y-axis will be set to Zero
- Your hard limits have automatically been turned off
- Your firmware EEPROM values have been set to new values, better suited to the rotary.
With a final check to ensure that your switch is turned to rotary, click OK to finish enabling Rotary Mode.

Rotary Probing
In a similar fashion to regular cnc machining where you set a zero position in relation to the stock you are using, we will do the same when rotary carving. Two differences are that we don’t need to enter a tool diameter and each axis will be set separately.
Setting Z-axis
You can set your Z-axis to either the rotating axis center, or the surface of your stock in a similar fashion to regular CNCing. We recommend using the axis center, as that allows you to make use of the Vortex’s built in Z-axis probing functionality.
To do this, jog the cutting bit to be hovering approximately ~15mm just above the chuck. Double check that your probing wires are in place before proceeding!

In gSender, select the rotary axis tab, then Click ‘Probe Rotary Z-axis’ and the Z-axis will begin probing automatically, setting the Z-zero point for you. This will need to be done for each tool change in addition to the beginning of each job.

Setting X & A-axis
Setting both the X-axis and the A-axis are done manually.
- To set your X-axis, jog to wherever you’d like the job to start then click ‘Zero X’ to set your X-zero point. Make sure this is far enough from the chuck to ensure there won’t be any collisions with your cutting bit, workholding or screws.
- To set your A-axis, simply click ‘Zero A’ at the beginning of each job, under the Rotary Jog Controls. Note that if this isn’t done, the rotary will spin back to zero before the job starts.
Rotary Surfacing tool
he Rotary Surfacing button will allow you to turn square stock down to a cylinder. We recommend using a ¼ inch upcut end mill for turning stock, as it’s the most efficient.

Now you will see the Rotary Surfacing Tool. Here you will enter details about your stock length, start and final dimensions. You will also see spots for Bit Diameter, Step over, Spindle RPM, and Feed rate.

Rotary surfacing is similar to the regular XYZ surfacing tool. Let’s explore this a bit further.
- Your start diameter is the largest diameter on your stock. Usually this means the diagonal distance from opposite corners if you’re starting with square or rectangular stock.

- Your final diameter is determined by the short side of your stock.

- With a starting height of 90mm and a finished height of 63.5mm, we are removing 26.5mm of material. However, since we have the Z-axis set at the center of the material, we will need to divide that 26.5mm in half. We are basically taking 13.25mm off of the top and the bottom. If you want a single pass, your step down would be 13.25mm. Dividing that by two and setting the step down to 6.625mm, means that we will be doing two passes. This will produce a piece of round stock with the maximum diameter possible.
(Start Height – Finishing Height) / 2 = Total Step down for ONE pass

Rotary Settings
When you click on the setting button and then select the Rotary tab, you will see the firmware configurations. Here you can enter your own settings, reset the default settings and turn Hard Limits on/off.

About Page
You can find the release notes for the latest version of gSender in the “About” section of the settings.

More
Check out this livestream if you’d like to see a super deep dive on gSender and all of its features as of 0.6.9. Chris spends a lot of time answering questions live about gSender and how to set up for a project:
Community Macros
Disclaimer! These Macros are submitted by our community. They aren’t vetted by us and might cause damage to your machine so use them at your own risk! Please review the code and test it before assuming it will work with your machine setup.
Formatting
If you’d like to add your own macros to this page, edit the page on GitHub and use the template below for each macro.
This page covers all the advanced features of gSender such as shortcuts, macros, workspaces, calibration tools, controlling spindles, lasers, coolant, and more. Remember, you can always quickly navigate the page by clicking the headings in the ‘Page Contents’.
Shortcuts
Starting off as a more advanced gSender user, the first feature you’ll want to leverage is shortcuts. These can allow you to assign gSender or CNC actions to keys and key combinations or even to gamepads and joystick movements. There are 3rd party apps like JoyToKey, Xpadder, Comfort Keys Pro and reWASD that allow you to do this, but to eliminate needing to download and configure other programs we’ve rolled all the functionality into gSender itself.
Going to the settings gear, then the ‘Shortcuts’ section, you’ll see that shortcuts can come in the form of ‘Keyboard Shortcuts’ or ‘Gamepad Shortcuts’, all searchable by category. Both options enable you to set up, modify, and enable or disable shortcuts. These will be automatically saved when you close the dialog box and will remain on gSender as long as the program is installed on your computer.
Shortcut Printing
Find yourself forgetting how you’ve configured your keyboard or gamepad profile shortcuts? Hit the ‘Print’ button to generate a simple PDF that you can store on a tablet or print on some paper to keep next to your CNC. This PDF will contain all the shortcuts you’ve created and what actions they’re assigned to.

Keyboard Shortcuts
Either for use on a keyboard, macro pad, or mini Bluetooth keyboard, these are split up into categories so they’re easy to locate and modify. There are shortcuts for carving, overrides, jogging, zero setting, probing, macros, visualization, window navigation, and more!

Common Shortcuts
A great place to start is the Jogging category. In the picture below, see that right now we can jog the X-axis by hitting the shift + right or shift + left keys. The Y-axis responds to shift + up and shift + down keys and the Z-axis uses the shift + pageup and shift + pagedown keys. Being able to look at your CNC, while your hand is on your keyboard is a great way to ensure you are moving in the right direction, without having to look back at your screen to click the mouse on the right button.

You can use the preset shortcuts and/or add your own. Click the ‘+’ or the ‘edit’ to the right of each shortcut to bring up a popup window that allows you to add or edit your own key combination (shown in the example below). You can see it’s as easy as pressing the key or key combination once the popup is open. In addition, you’ll be informed if the combination you’ve entered is already used elsewhere and be given the option to overwrite the existing one if you want.

You can turn on or off individual shortcuts in the Active column or enable/disable all shortcuts at the bottom of the window. Some people find this useful since it can turn off the shortcut temporarily without losing the key combination.

Gamepad Shortcuts
Many users really love this feature since using a controller is convenient (especially for when you’re closer to your machine), inexpensive, and makes certain repetitive actions much easier. Common options are Xbox, PlayStation, and other third-party controllers available to buy online.
We have some pre-made profiles for gamepads we’ve already tested with gSender and you can still reference these if you have a different gamepad or want to make your own. To create your own, connect your gamepad to your computer and click the ‘Add New Gamepad Profile’ button, then make sure the gamepad is recognized before beginning to assign actions to each button. These profiles mean you can set up multiple gamepads if you’d like since they each have their own unique ID.

If you run into difficulty with getting a particular gamepad set up in gSender, consider:
- Some gamepads may require drivers to be downloaded so your computer can read the signals that the gamepad sends out.
- Go into the gamepad profile while it’s connected and click the Help button where you’ll be able to diagnose whether your gamepad is broken and sending out bad signals.
- Searching for documentation provided by the manufacturer (for example, Xbox or PlayStation).
Tested Gamepads
To better guarantee your experience using a gamepad in gSender, we’ve taken the time to test a shortlist of some common and affordable options that are easy to source. With community help, we hope to continue growing this list of officially tested gamepads which currently includes:
![]() |
YCCTeam Xbox Controller
|
![]() |
Logitech F710
|
Having a listed gamepad means you can both be more confident that your hardware will be compatible with gSender, as well as many of the ‘tested gamepads’ will have pre-made shortcut profiles built right in to save you time setting up your own. Find these pre-made ‘profiles’ alongside all the other gamepad settings in the Shortcuts ➜ Gamepad tab.
Connect your controller to your PC and press any button on it. gSender will identify and provide a profile if one is available. You can see in the screenshot below, it correctly identifies the DualSense Wireless Controller I’m adding. Enter your profile name and hit Add New Profile.

Gamepad Setup
Once you have a profile for your connected gamepad, click on that profile to edit it.

Inside a profile, you’ll be able to see if that specific gamepad is currently connected and be able to assign shortcuts to the two major groups: buttons, and thumbsticks.
Buttons are the most versatile in how they can be set up. Any button on your gamepad can be set up to:
- Activate an action
- You can assign a button as a ‘Second Action Button’ which acts similar to a ‘Shift’ key on your keyboard to allow you to create two-button combinations on your gamepad.
- You can also assign a ‘Lockout Button’ which acts as a safety lock for your CNC when controlling it with the gamepad. If you set up a lockout button, then no other buttons on the gamepad will work until you’re pressing on the lockout button. This stops from pressing buttons accidentally or if you dropped your gamepad on the ground.
To add an action to a button, start by pressing the button on your gamepad to see which one on the list lights up green. In this case, the X button lit up button 0. After pressing the +
symbol in the Action column, you will see a list of actions you can map to that button. In this case an action was added for Homing – Go to back left corner, so now when the X button is hit on the gamepad, gSender will move the CNC to the back left corner!

You can repeat these steps to keep adding more shortcuts to your gamepad, this also includes:
- If you’re having difficulty remembering your gamepad buttons, you can click on the black box label and rename it to whatever you’d like.
- The ‘2nd Action’ column will allow you to give each gamepad button a second shortcut action once you set up a ‘Second Action Button’. Do this by clicking the
+
symbol in the Action column of the button you want to use, then clicking the ‘Use as Second Action Button’ toggle on the right side. - Assign a ‘Lockout Button’ in a similar way but by toggling the ‘Use as Lockout Button’ toggle on the right side.

Thumbsticks are set up to be used for jogging because of the ability to move them a little or a lot, which is different from buttons which can only be clicked on or off. This works well because most gamepads tend to have 2 thumbsticks (like the Xbox controller shown above), meaning you can use one to jog in the X and Y, and the other to jog in the Z and A (if your machine has a rotary axis). For gamepads that don’t have thumbsticks this is still fine because buttons can also be set up to jog.
On the right side of the gamepad profile window, you can see the options for what axis you’d like to move with your gamepad thumbsticks. Similar to setting up buttons, you can move the thumbstick to see which one lights up, and you can also assign a ‘2nd action’ if you’d like. In this example, Stick 1 controls the X-axis left and right, and the Y-axis forward and back while Stick 2 controls the A-axis with left/right and the Z-axis with up/down.

Once you’ve set up your thumbsticks, you’ll find you can push them any amount and the distance you push them will decide the speed that axis moves at. If you’ve set up both the left/right and up/down, you can also mix these to make continuous diagonal movements to get to your final location easier. You can also flick the thumbstick once and the CNC will move one increment, according to the rapid/normal/precise movements you have set up for Jog Controls.
- If you find your thumbstick is moving the axis in the wrong direction, use the ‘Invert‘ checkbox to correct that
- If you let go of the thumbstick and the axis keeps moving, increase the ‘Zero Threshold‘ amount since your gamepad might be older and more worn out
- If you get jittering while moving with the thumbsticks, or you let go of the sticks and it takes a while to stop moving, you might want to adjust the ‘Movement Distance Override‘ value until you get smooth movement on your setup

Another cool feature is the Use MPG selection. If you map one of your thumbsticks to an axis with MPG selected, it will automatically grey out the other stick selections. Now you can rotate your stick in any direction and for each quarter rotation, your axis will move once, according to your preselected Jog Controls.

Lightweight Mode
This mode enables gSender to run faster on computers that are less powerful and prone to lagging. ‘Lightweight Mode’ reduces the memory gSender uses by turning off processor-heavy aspects of the visualizer, from reducing detail to disabling it altogether. You can toggle it on or off using the slider positioned at the top right of the visualizer.

If you go to the visualizer settings, you can also customize what features are active in both ‘Regular’ and ‘Lightweight’ modes.

If gSender’s visualizer is impacting the performance of your machine but Lightweight mode only helps once the whole visualizer is turned off, this hybrid option could help. Found in the Visualizer settings, the ‘SVG Visualizer’ substitutes the default 3D viewer with a pre-rendered, top-down image of your project, drastically reducing computer strain but still allowing the project to be displayed.

Once you toggle on ‘Enable SVG Visualizer’, whenever you turn on Lightweight Mode in the top right of the visualizer, you’ll see the alternate view with all animations turned off.

Touch Plate Setup
gSender has support for three types of touch plates:
- The Standard Block design
- Z Probe, also sometimes referred to as a ‘puck’
- And our specialized AutoZero touch plate
For a Z Probe, setting up is simple since you just need the thickness of the ‘puck’. Enter that value into gSender’s ‘Probe’ settings under ‘Z Thickness’ and you should be good to go!
If you’re trying to set up a custom ‘standard block’ plate, use some calipers to pick up on the measurements noted below. Once these are noted down, enter these into gSender’s ‘Probe’ settings in similarly named entries, and now you should find that gSender’s probing routine has been altered to fit the shape of your touch plate.

Coolant Control / IOT Relay
If you have a coolant control pin on your CNC machine, gSender has a tab for manually controlling it. Under the ‘Coolant’ tab on the main screen, you can find the ‘Mist’ and ‘Flood’ buttons to activate the different modes of coolant use, as well as an indicator for whether the coolant function is active or inactive. This indicator also functions during job sending. You can turn off both coolant pins by pressing the ‘Off’ button.
Many hobby CNCers don’t have a need for coolant and so prefer to use these outputs for controlling other periphery. The most common is an IOT relay that can be used to automatically control a vacuum for dust collection, the CNC’s router, LED lighting, and more. See an example of how to set that up here: https://resources.sienci.com/view/lm-iot-relay/

Spindle & Laser Support
Similar to the manual coolant control, this area is for manual control of a spindle or laser outside of g-code sending. If you have a spindle or laser, you can activate these controls by going to the settings gear at the far right. In the ‘Spindle/Laser’ section in the left toolbar, press the toggle for ‘Spindle/Laser’.

Back at the main screen, you’ll see the ‘Spindle/Laser’ tab at the bottom right. Here you can click to toggle between ‘Spindle Mode’ and ‘Laser Mode’, changing your grbl settings for you and displaying buttons specific to each device. For each mode there is also a red caution circle that indicates whether the spindle or laser is active. This works during manual control but also during job sending.
In spindle mode you can set the spindle speed with a slider, spin it up in either direction, and stop it again with the ‘Stop’ button. These are all based on g-code commands that can also be entered into the console manually if desired. The speed slider is set from your grbl firmware settings, so max and min speed can be altered in the Firmware Tool.

‘Laser Mode’ is very similar, allowing for On/Off control, a slider for setting the laser power during manual control, and a ‘Laser Test’ button. The laser testing function is handy when troubleshooting your laser setup or for other sorts of locating and alignment because it only enables the laser for a short time before turning it back off again. Though this is much safer than regular on/off control, we still highly advise that you have you have a hand on a kill switch or E-stop during testing or control of either Laser or Spindle modes so that in case something goes wrong with your computer or the program they can still be safely deactivated.

Laser Diode Support
Some accessories can be really handy to add to a CNC router like a laser diode, drag knife, or pen plotter. These would all perform better on a faster, dedicated machine, but for occasional use why not use the existing motion system of the router to do other things for you? A laser diode in particular can be great because you can clamp the material to carve and then laser engrave afterwards and know that everything is still aligned.
Since many CNCs are coming with diode accessories, gSender has some unique features to also support lasers. Once ‘Laser Mode’ is turned on, gSender will:
- Automatically apply an offset from the router/spindle to the laser so all your g-code files stay aligned (configured in the Spindle/Laser settings, or with Firmware settings $741 and 742 on the SLB)
- Turn on the laser at low power when running a job outline (enabled in the Spindle/Laser settings). This will help you to better see where your project is going to be located on the material
- Switch to a specialized visualization designed to show raster engraving images better than typical g-code visualizers. Seeing the laser intensity in the movements is very useful to get a better idea of what your projects are going to look like when they’re run. This will only apply to files loaded after ‘Laser mode’ is enabled and the colour can be customized in the settings

Macros
Macros are standalone buttons within the gSender interface that allow you to execute a series of g-code commands when they’re run. Macros can come in handy for a variety of uses:
- Button to run a v-carve or laser engraving of a common insignia into the back of your wood pieces
- Perform a specialized probing function for a particular jig you’ve set up
- Apply a predetermined offset that allows you to easily array your cutting jobs
You can create macros using the ‘+’ button under the ‘Macros’ tab. Here you’ll see a space for inputting your custom g-code and adding a name and description for the macro. Advanced users may also want to leverage ‘Macro Variables’ which allow for greater g-code manipulation and pseudo-programming. Press ‘Add New Macro’ when completed.

New macros will appear as buttons in the ‘Macro’ tab that can be rearranged by dragging them around. These buttons will display the macro name, show the description if you hover your mouse over them, and can always be later altered or deleted by clicking on their ‘…’ button.
Any macro can be executed by pressing it. Before pressing it, a play icon will appear to show that you can select it. Once running, you should see the macro start to pulse green while a toast notification on the bottom left hand side of gSender also notifies you that it’s running.

Macros can also be executed using shortcuts. Every time you create a new macro it’ll become available at the bottom of the shortcuts list for you to assign a key or gamepad button to. Add your keybindings and enable them by pressing the slider beside the label.
You can share macros with other users or transfer them between computers by using the import and export features. To import one or multiple macros, just press the button with the downward arrow and a browsing window will appear so that you can select the macros you wish to import. Similarly, to export all your current macros, press the button with the upward arrow and it’ll generate a save file for you.

Advanced Macros
gSenders Macro architecture is based on JavaScript and uses the Esprima library (https://esprima.org/) and so will theoretically support any code that it does. This is exciting because Macros can move far past basic variables if you’d like to perform advanced functions on your CNC:
If you want some initial inspiration, see other macros made by our community or ones made for CNCjs (another g-code sender) which should also work in gSender. Otherwise, here are some other points of guidance:
- You’ll want to develop your understanding of typical g-codes and m-codes that are used for CNC control (the pages linked are very good sources for that)
- The “Macro Variables” dropdown in gSender shows many of the most commonly used operations when making your own macro
- Make your own variable with
%variable = value_you_want_to_set
(ex. % probeSpeed = 150) - Use your variable in g-code, like
G21 G91 G0 X[variable]
(moves the X-axis by the amount set in the variable) - Test your code by printing it to the console
([variable])
- Make dialog boxes appear on the screen to confirm a value or position by putting in an M0 line with a comment, for example
M0 ;Remember to turn on your router before the next step
which will pause the macro and give you the option to ‘continue’ or ‘cancel’ - Start experimenting with basic math using numbers and variables
- Use global variables
global.variable
if you want variables that you can use in other macros (note that these get reset once gSender is closed) - Read up on all the other Math features available like absolute value, rounding, and trigonometry (become very useful for more advanced probing cycles for example)
- Start to add more logic to your code using ternary expressions to choose between two outcomes (e.g.
%variable = (30 > 20) ? 10 : 20
which is checking if 30 is bigger than 20, and if it is it’ll make the variable = 10, otherwise it’ll make the variable = 20). - Here’s an example of a more advanced macro, made by gSenders Lead Developer, which shows off much of the guidance given above. This macro was made for our new SLB control board in order to cycle between its 3 status light states.
- The macro is only 3 lines. First it checks what the current light state is and sets it to 0 if it doesn’t have a state. Next, it sets the lights to the current state but applies a modulus of 3 since we can only have a state value of 0, 1, or 2 so we’ll get an error if the value is 3 or above. Lastly, it adds +1 to the state so that if the macro is run again it’ll put the lights into a new state.
%nextLight = global.lightState || 0
M356 P0 Q[nextLight % 3]
%global.lightState = Number(nextLight) + 1
- Store many variables in an array so that those variables can be used in other macros without assigning them all as global
%setup = {}
%setup.this = 0
%setup.that = 1
%global.setup = setup
- then in the other macro
%setup = global.setup
- Create functions that you can then call later such as
%rapid = function (x, y) {return 'G53 G90 G0 X' + x + ' Y' + y + 'n'}
then later run it with[rapid(x, y)]
- Read more about the Esprima library here: https://docs.esprima.org/en/latest/syntactic-analysis.html
Console
The console is a tab that you can access at the bottom right hand side of the gSender window. The text here shows a truer representation of the communication that happens between your computer and your CNC. As you start to understand more about your machine, this is a great tab to reference so you can see if commands are being properly sent, received, and executed. It’s also great for troubleshooting since you can:
- Manually send g-code commands to your CNC
- Check for errors or alarms and the g-code that caused them (normally the line that comes before)
- Copy text straight from the console to send in an email for help by clicking the icon beside the “Run” button
- Even open the console in another window by pressing the top, right icon to help you see more console text at a time (if you press the button again once you reconnect to your CNC, it’ll reconnect the console stream to the original window too)

When you first start up gSender, the console will display EEPROM settings that are sent from the Arduino in the control box. These EEPROM settings control parameters for your CNC such as:
- Maximum speed and acceleration in each axis
- Boundaries of the work area
- Direction of each axis movement
- Limit switch settings
To access EEPROM settings again, enter in “$$” into the console and hit the ‘Enter’ key or click the ‘Run’ button. These settings can be changed via the console as well as the Firmware Tool which we’ve designed as a much more visual way to alter machine settings.
Calibrate Tool
The ‘Calibration Tool’ on gSender enables you to make finer adjustments to your machine for improved performance. There are three processes available on gSender:
- Diagnostics
- XY Squaring
- Movement Tuning
- Surfacing Wasteboard

Diagnostics
If you’d like to see general information about your CNC or are experiencing issues that you’d like to troubleshoot, gSender has a Diagnostics tool for that. Access it by clicking the ‘Calibrate’ tool on the top-right and opening the ‘Diagnostics’ tab.
Here you’ll see machine information, notable firmware settings, and at-a-glance status on whether your limit switches, touch probe, or other pins are activated. This can be handy if you’re encountering odd behaviour with certain machine accessories or to double-check your wiring.

Another valuable feature is the ability to download a Diagnostic PDF file of your CNC machine when you click ‘Download Now!’. This PDF file is meant to include information on your computer, your CNC, recent alarms / errors, any currently loaded g-code file, and more. It’s basically a treasure trove of information that you can share on community forums, Facebook groups, or with your CNC customer support. This can go a long way towards getting help from others on diagnosing any problems your CNC might be experiencing.
To download the PDF, click the “Download Now!” button. This will open a save dialog box. Save the file to a location that you can easily access to send along to others in an email, support ticket or post online.
Lastly, you can copy the last 40 lines of code in the gSender console (1), by hitting the double page icon to the left of the Run button (2). This will copy the code to your clipboard, so you can paste it to forums or share it with support teams.

XY Squaring
When mounting your LongMill on the table, there is a basic squaring process illustrated in our instructions (https://resources.sienci.com/view/lm-table-mounting/). If you do find that the machine is not perfectly square, you can follow the steps in this process to fine tune the position of your rails.
When you access the ‘Calibration Tool’ window, the ‘XY Squaring’ procedure is shown on the first tab. All instructions are illustrated in the window, however a brief overview will be provided.

You will need the following:
- Ruler or measuring tape
- Tapered bit or V-bit
- Tape
- Jog the machine to the front left corner, with the bit raised slightly over the surface of your wasteboard
- Mark the points with tape and move the machine as directed
- Measure the distance between the marked points and record the values
- Adjust your rail positions with the values determined by the XY Squaring procedure
The great advantage to this tool is it saves you having to do the trigonometry yourself and will also let you know if your machine is aligned closely enough that it’s not worth worrying about.
Movement Tuning
You are able to change how much your motors turn to improve the accuracy of your machine movement. This is done through modifying the EEPROM settings that are stored on your LongMill, which this process will guide you through. You can tune the X, Y and Z axes individually. All instructions are illustrated in the ‘Calibration Tool’, however a brief overview will be provided.
You will need:
- Marker or tape
- Measuring tape
- Jog your machine to the middle of whichever axes you choose to tune, so that there is enough room to complete this procedure. For example, on the X-axis you would jog halfway on the X-axis rail
- Select what axis to tune on the drop down menu
- Mark down the location of your reference on the machine. For example the X-axis tuning references the edge of the XZ gantry on the X rail
- Move the axis a chosen distance
- Measure the travel distance between the marked location and the reference edge
- Change the EEPROM setting as recommended by the procedure by pressing ‘Set EEPROM setting’
- Repeat the procedure for each axis you wish to tune
Surfacing
Surfacing the wasteboard of your machine can easily be done right inside gSender! The first thing you’ll want to do is decide where you want to start surfacing and in most cases the front, left of the machine is the most convenient. You might also want to remove any accessories that might get in the way of your machine travelling around during surfacing as well as have a good vacuum on hand because surfacing can get really messy. You can find the Surfacing Tool under the Calibrate tab, or under the Surfacing tab.

- Start by entering the settings you’d like to use to generate your surfacing job:
- X & Y: decides the cutting size (width and depth) you want to surface. If you’re surfacing your wasteboard, use the manufacturer’s spec on max machine travel or manually jog to the limits to cover the full cutting area, or if you’re surfacing a piece of material then you can use a measuring tape.
– LongMill MK2: 818mm (32.2”) or 1278 (50.3”) x 366mm (14.4”) or 866 (34.1”)
(if using limit switches, remove about 8mm/0.3” in X and 11mm/0.43” in Y)
– LongMill MK1: 320mm (12.6”) or 805 (31.7”) x 344mm (13.54”) or 844 (33.23”)
(if using limit switches, remove about 35mm/1.38” in X and 24mm/0.94” in Y)
(if using magnetic dust shoe, remove about 34mm/1.34” in X)
– Mill One: 235mm (9.25”) or 257 (10.1”) x 185mm (7.28”) - Cut Depth & Max: describes how deep you want to cut per pass and the total depth you want to cut down. For larger surfacing bits usually you should keep cut depth below 1mm, max depth should be increased to a couple millimeters if you think your material is very warped.
- Bit (typically 6 – 25mm): make sure you have the right bit for the job like a surfacing tool or a large, flat end mill since this will give you a better surface finish.
- Spindle RPM (default 1700): only applies if you have an automatic speed control, otherwise set this manually on your router.
- Feed rate (default 2500mm/min): influenced by the RPM, step over, bit diameter, and cut depth. Luckily if you set it incorrectly you’ll be able to override it during the job since surfacing can cause burning when cutting too slow or can have worse surface finish when cutting too fast.
- Step over (default 40%): sticking around 40% tends to be a good balance between speed (using a higher %) and better surface finish (using a lower %).
- X & Y: decides the cutting size (width and depth) you want to surface. If you’re surfacing your wasteboard, use the manufacturer’s spec on max machine travel or manually jog to the limits to cover the full cutting area, or if you’re surfacing a piece of material then you can use a measuring tape.
- Select a Start Position of any four corners or the center by clicking the dot; this is where the surfacing will begin. You can also select a surfacing pattern of spiral or zig-zag. The spiral will only cut from the inside-out if the start position is the centre. If you toggle the flip cut direction, the spiral will cut conventional instead of climb, and the zig-zag pattern will cut vertically instead of horizontally.
- Press ‘Generate G-code’ and check your surfacing tool path using the ‘Visualizer Preview’ tab. You can also see the raw g-code using the ‘G-code Viewer’ tab and can copy and save it to a g-code file if you’d like to use it again later.
- Press ‘Run on Main Visualizer’ to bring the g-code into gSender’s main screen. Make sure that you jog to the starting point and set your zero in the right place before starting the job. You can also press the ‘Outline’ button as an easy way to check that you’ll be surfacing where you expect and if you find the dimensions aren’t correct you can always re-open the surfacing tool, tweak the size, and try again. Feel free to start the job whenever you’re ready!
Did you know that surfacing can be used for more than your wasteboard? It’s great for creating a perfectly flat surface of your starting materials, just like a jointer or surface planer would. You can also use the Rotary Surfacing tool if you are wanting round stock.
Job Stats and CNC Maintenance
Curious to know how many jobs you’ve completed, how many hours you’ve put on your machine or what maintenance you should be focusing on? Find this information in the ‘Job History & Stats’ section of Settings. Here you will find 3 tabs; Statistics, Job Table, and Maintenance.

Statistics
The statistics tab has a dropdown menu that allows you to select between Overall Stats, Jobs Per Com Port (each com port is a different machine), and Run Time Per Com Port. These selections will show your statistics for total, average and longest runtime along with total, completed and cancelled jobs.
Job Table
The Job Table tab provides a simplified breakdown of each job, including the file name, duration of the job, number of lines in the job, the start date/time and completion status. This chart can be filtered by hitting the column header, or expanded to show more entries.
Maintenance
In the Maintenance tab, you will see preset tasks with an hourly countdown range, to remind you when a maintenance task is due to be performed. These times pull directly from the runtime of your jobs and allow you to mark them as complete to reset the timers. Once the task is in range, the maintenance is due, once past the range, the task becomes critical to address.
You can also add your own reminders, time due range and description to this section, to really make it your own.
Firmware Tool
Any board you have will come pre-installed with CNC firmware, along with the custom EEPROM settings for that machine, so typically you won’t need to access the ‘Firmware’ tool. If you choose to use this tool, it can give you access to many of your machines “behind-the-scenes” settings for tweaking or modding your setup. Open it by clicking the ‘Firmware’ tool at the top of the screen.
Unsupported CNCs
If your CNC isn’t listed below, then it’s considered “unsupported”:
- Sienci Labs LongMill (MK1, MK2, and MK2.5), AltMill, and Mill One (V1, V2, and V3)
- Don’t see your machine on this list and want it fully supported? Let your manufacturer know to get in contact with us so that we can add their machine profiles to gSender 🙂
If your machine is unsupported, it means that the Firmware Tool won’t be able to perform the same features as for supported machines. In this case, if your machine isn’t working, contact your manufacturer to get their advice on how to fix it. Using this tool makes it possible to ruin your machine further and we won’t be able to help you with your specific hardware. For unsupported machines:
- Choosing your machine name from the drop down menu is primarily cosmetic
- Flash either vanilla grbl, or for grblHAL boards upload a hex file to flash a new firmware
- Import EEPROM settings from a file if you had settings that were working and something changed
- Export current EEPROM settings if you’d like to save your current setup in case something goes wrong
- Restore all your machine settings back to typical vanilla grbl values
- And otherwise see and modify any machine settings as well as search any keywords to help you find what you’re looking for

Supported CNCs
If your CNC was listed above then it’s “supported” by the Firmware tool. This means that the manufacturer is working with us to keep their machine profiles up-to-date, which in-turn gives you access to more features:
- Choose your machine name from the drop down menu
- Flash either your specific machines grbl firmware, or for grblHAL boards upload a hex file to flash a new firmware
- Import EEPROM settings from a file if you had settings that were working and something changed
- Export current EEPROM settings if you’d like to save your current setup in case something goes wrong
- Restore all your machine settings back to the defaults for your profile in case they’ve somehow been altered or wiped (like a “factory reset”)
- Also be able to see a yellow highlight and be able to reset individual settings that have been changed from the machine defaults
- And otherwise see and modify any machine settings as well as search any keywords to help you find what you’re looking for

Start/Stop G-code
A powerful feature to control your accessories automatically (like turning on/off a spindle or vacuum) or to run movement macros that are custom to your machine. ‘Program Events’ (formerly “Start/Stop G-code”)’ in gSenders settings automatically apply g-code to your cutting job at the start, end, or if you stop, pause, or resume the job. The ‘Stop’ event is there to ensure that “ending g-code” is always run even if you have to stop a job prematurely. You can also toggle these on and off if you don’t want them run for specific jobs.
Three massive perks to setting up automations this way are:
- There’s no need to get into the weeds customizing your CAM post processor
- gSender is able to send code when you pause, resume, or emergency stop your machine, all of which a g-code file on its own would never be able to do
- This additional amount of control will make your CNC safer to use
For example, if you were to add M3/M5 commands to your CAM post processor to control your spindle but then chose to pause your job midway to check something, then most CNCs wouldn’t know to stop spinning your spindle or retract it since g-code files can’t carry this information; this is where gSender is able to the heavy lifting.
For the text-box of the situation you want the action to happen, type in the g-code commands you wish to run, then press the ‘Update‘ button to save it. For example, if you installed an IOT relay to turn your router and vacuum on and off and wanted to make sure they were enabled for every job you ran, you could add:
- “M8” for Start and Resume
- “M9” for Stop and Pause
- If you wanted to add a delay to give your vacuum or router time to fully turn on, then you could add “G4 P5” after the M8 for a delay of 5 seconds (you can customize that delay to your equipment)
- If you wanted to keep the vacuum and router running during a pause, then you don’t need to add “M9” to Pause
- All this can also apply to automatically control a spindle, where you’d instead use “M3” and “M5“, you can also add a delay with “G4 P#“
- If you want to raise the Z-axis on Pause and lower it on Resume, you could also add:
- “%global.move=modal.distance” then “G91 G0 Z-5” for Pause to move 5mm out of the way
- “G91 G0 Z5” then “[global.move]” for Resume to move back down

Tool Changing
For CNC machines, tool changes are pauses that are programmed in the g-code for a user to switch out the cutting tool for a different one, or the machine to do that automatically. The workflow can also sometimes involve pausing until the user tells it to continue, usually through a ‘Resume’ and/or ‘Confirm Tool Change’ button on the machine interface. This allows you to run multiple toolpaths (cutting operations) within one g-code file.
The g-code for tool changing is an M6 command. gSender is quite capable when it comes to customizing CNCs for tool changing, even having full Wizards built-in. The tool change options are in the Settings ➜ Tool Change menu. You can select from one of 6 different options, and even choose to ‘passthrough’ the M6 and T commands to the CNC controller for CNCs that are capable of handling tool changes on their own.

You can Ignore any M6 tool change commands, Pause the job when a tool change is recognized, or select one of the last three Wizards that will guide you through pre-set tool changing methods. In the split image below, you can see an example of the job Pause on the left side and the Wizard on the right.

If you are using one of the wizard options, know that you can access all other gSender controls while the wizard is open like jogging and zeroing. It also has flexibility to go back a step if you missed something or had a mistake, or to be minimized temporarily if you want to check the visualizer.
- Ignore
This simply ignores any M6 commands in the g-code file. This is the default option since it’s perfect for beginners that only make projects with one tool or those that create separate files for each tool and prefer to manually perform tool changes between files. - Pause
Pauses gSender at the tool change point, as if you had hit the pause button manually. This gives you freedom to jog, zero, or anything else you’d like, and is great for those that are running multi-tool files but want to use a different process than the Wizards provide. This could be a manual probing process, a different tool changing approach, or running custom macros to support your machines specific hardware. gSender is compatible with tool length sensors like the Carbide 3D bitsetter, and our community has compiled a list of macros for tool changing that you can use when you are paused. Just note that pausing can’t always guarantee keeping track of your movements and actions when it comes time to resume the job so try to ensure you get back to the starting point and set zeros correctly. - Standard Re-zero (Wizard)
Titled ‘standard’ because it’s exactly the same as the standard process you might normally follow for running a file, changing the tool, re-zeroing Z, then running the next file except it’s applied to a single file with multiple toolpaths. Since the process is so familiar, this is a great way to dip your toes into tool changing within one file. Compatible with using a touch plate or the paper method, zero out at a predetermined spot (usually at the front left corner), and use jogging to move around. The advantage of introducing this extra automation and guidance during tool changes is that you don’t have to worry about custom macros and it reminds you of simple steps like turning the router back on or zeroing Z. - Flexible Re-zero (Wizard)
Similar to the ‘standard’ wizard with similar steps and manual movements but provides the ability to zero Z off a point that wasn’t your starting Z when it comes time to change the tool. This is useful if you tend to carve away your material and lose the starting Z or you don’t have limit switches but would like a process similar to a tool length sensor. -
Fixed Tool Sensor (Wizard)
This is the most automated setting where all probes and movements are done for you, you only need to intervene by changing the tools. Set up the job and zero normally then expect the machine to move to the sensor location when it reaches a tool change, verify tool length, prompt for a change, probe new tool, then resume cutting. Your machine will need to be homed, have limit switches, and have a tool length sensor (compatible with Carbide 3D bitsetter for example) in order for this option to work. To set up the sensor mount the router/spindle as far down as you might typically put it, with the longest bit mounted in it, then jog it to hover over the tool length sensor with some room to spare and open the settings menu to save that location. This will be the spot your machine moves to every tool change so if it’s too low or your sensor doesn’t work it’ll run into the sensor.
-
Code
You can enter your own macros before and after the tool change with this strategy selected which is fairly powerful for making tool changing processes that are more automated than just pausing.
Workspaces
Usually you would only have one origin or zero position for your project, therefore gSender will only save one zero. However, if you plan to do a series of projects that require different zero positions, or are lining up to do some more complex jigging or part batches, you may want to set up multiple workspaces all at once. This can save you time by not having to set a zero position for repetitive tasks or specific jig setups. You can do this by creating up to six different zero positions with the six workspaces in gSender. Access each ‘Workspace’ at the top right of the program by pressing the drop down to select which workspace to use. gSender will act completely in-line with whatever workspace you’ve selected, whether you want to set zero, probe, surface, or anything else.

The video below explains the process in greater detail. If you’re coming from a more technical background, you’d usually call these ‘workspaces’ G54, G55, G56, … G59.
Settings
Transferring Settings
gSender’s settings are stored on a file on whatever computer is used to run it. This mostly includes everything that you’ll find in the settings menu such as units, machine preset, probe, tools, jogging presets, keymapping, tool change g-code, start/stop g-code, and more. If you plan on using a different computer to run your CNC using gSender or want to run gSender remotely, some of these settings might be very important to carry over to the alternate computer to make sure things keep running as expected.
To transfer your settings over:
- Begin by opening gSender, going to the settings gear in the top-right corner, and clicking the ‘Export Settings’ button in the ‘General’ tab
- Save the file somewhere onto your computer that you can find afterwards
- Outside of gSender, find the file and transfer it using a memory stick or sending it over the internet by emailing to yourself or using Google Drive or OneDrive.
- Once you’ve got the file onto the other computer it’s now easy enough to open gSender on that computer, or in the web browser if you’re doing remote control, and go to the settings and click the ‘Import Settings’ button in the ‘General’ tab.
- Locate the file and click ‘Open’
- You’ll get a warning. Click ‘Import Settings’ if you want to continue. Once you do, gSender will disconnect and you’ll need to reconnect the machine to resume operation but the settings should now be brought over.
Remote Mode
If you’ve ever wanted to run your CNC without being stuck right next to it, this is the feature you’re looking for. The remote mode is exactly how it sounds, it gives the ability for a remote computer to connect over a shared internet network to a permanently installed, normally lower-end computer, that runs the CNC. This ‘remote computer’ can be any device that can connect to the internet and run a web browser, meanwhile the ‘inline computer’ plugs into your CNC with a USB cable and will receive commands over the internet from the remote computer.
This feature is handy if you’d like to:
- Load in a file from your design computer outside your shop then run it on your computer inside the shop
- Use a tablet as the primary means of controlling your CNC rather than a mouse and keyboard
- Use a phone for occasional use when jogging or running functions
- Leverage a mini PC or Raspberry Pi as the inline (tethered) computer for cheap, fanless, and reliable operation without taxing them with a display, keyboard, and mouse
Before diving into the setup, here are some quirks and warnings that are important to keep in mind:
- Both systems need to be on the same internet network to work, where the device used to run remote operations needs to be able to run a web browser
- You may need to be an Administrator of the inline computer to make the changes needed so ensure you have that power
- This feature will always be inherently less reliable than a hard-wired connection because of its reliance on your shop’s internet connection for communication. Keep this in mind if you intend on using remote control for more important projects or with expensive tools or materials
- Remote control is still in development so expect to experience some bugs if you’d like to set this up for yourself. The setup process is a little bit more involved on your computer so we don’t advise using this feature if you’re not confident with troubleshooting your own setup
- This feature is NOT intended to enable use of your CNC while AWAY FROM YOUR WORKSHOP. A CNC should always be run while you or another knowledgeable operator is in the vicinity to ensure safe machine operation and be able to react if intervention is required. CNCs can cause fires from electronics, material friction, and can have other safety hazards if not properly monitored
- In other contexts this feature could be thought of as running ‘headless’ but it doesn’t fully meet the requirements of that term. Though remote controlling the CNC from another computer should reduce the requirements of the inline computer, at minimum it still needs to boot the idle version of gSender with a window manager. This is in contrast to a fully ‘headless’ setup where a skinned-down program exists only to pass along information from other devices with no UI to send along information itself
Enabling Remote Mode
All setup steps need to happen on the inline computer (the computer you’ll have connected via USB to your CNC) and have been simplified to mostly happen within gSender.
- To begin, click the satellite antenna icon on the top right of the screen. If the icon isn’t there, you’ll need to make sure you have a newer version of gSender that supports this feature.
- This is where remote mode is set up. First you’ll want to click the ‘Enable Remote Mode’ toggle. Second, click the box next to ‘IP’ and select one of the options that gSender tries to recommend for your particular computer network. For an average setup the ‘Port’ value can also be left alone. The third step is to click on OK once you have completed the configuration. You can also use your camera to scan the QR code, and be taken directly to your remote interface!
If you’re an advanced user or have tried the default values without success, you can type in any other IP address or Port that you’d like since the defaults aren’t guaranteed to work. Common port values are 3000, 8000, and 8080 and generally don’t go below 1024 since those are considered privileged. Changing IP addresses can also help if you’re running a VPN or need a different internal IP to external IP mapping.
- gSender needs to restart in order for the remaining changes to take place. You can choose to restart immediately or wait until later.
- If there was a problem using the specified IP address or Port, you’ll get an error window to let you know. In this case you should be able to reopen gSender, go back to the Remote Mode settings, and try another IP or Port until the setup is successful.
- You’ll know the setup was successful if gSender restarts, the antenna icon is green, and numbers show next to it. As a quick test, click on the numbers to copy them then open a web browser like Chrome or Edge and paste them into the address bar and press enter (you can also type the number manually). After the page loads, you should see a copy of gSender running in the web browser! If something’s not working, check you followed the setup steps correctly or reference the firewall or troubleshooting sections below.
Firewall Setup
During initial setup, you might see a Security Alert window pop up or run into an issue where the browser address isn’t working. The most likely issue here is that your inline computer firewall isn’t allowing gSender to communicate to other devices on your network.
For Windows: You should simply see a popup from Windows Firewall or your antivirus software asking for approval to allow gSender to communicate on your home network. Please check the box beside “Private networks” and “Public networks”. This should be all that’s needed.

For Mac / Linux / Pi: If you find that you can’t connect with outside devices or just want some extra safety you might want to try opening the Universal FireWall (UFW) on a given port to allow external access. This can be started with sudo ufw enable
(if UFW is not found then install it using sudo apt-get install ufw
and your root password) then opening the desired port, for example sudo ufw allow 8080
opens port 8080 for external access. If you want to see what ports are already open, you can use ufw status verbose
.
Using gSender Remotely
With setup complete, regular use is pretty straightforward:
- Connect the inline computer to your CNC as you would normally using the USB cable. Turn on power to your CNC and connect to it in gSender as usual.
- Look for the numbers next to the antenna and write them down including all the symbols and punctuation; these will be used to connect to your CNC on the remote computer / device.
- On any remote device that can run a web browser like Chrome or Edge (computer, phone, tablet) open the browser and type those same numbers you wrote down into the top address bar. In this example the numbers are 192.168.2.203:8000 but yours may be different. Press enter, and hopefully the familiar gSender interface will appear in your browser window. If not, ensure that your remote device is on the same network as your inline computer.
- Once connected, you should now be able to control your CNC remotely with most of the same features and functions you’d normally expect:
- You’ll be able to use both the remote and inline devices simultaneously to control your CNC like jogging, opening and closing files, probing, macros, and more
- You’ll also see that both their screens look exactly the same so you can watch the visualizer move around or check on the machine state
- On phones the screen will look different since we’ve optimized it for jogging, setting zeros, and probing
- When you click to ‘load a file’ you’ll see that you’ll only be able to load files from the device you’re currently on, don’t expect to gain access to the files stored on the opposite device. However once the file is loaded into gSender, you’ll be able to run it from any device
- There can be multiple remote devices all connected to the same inline computer at the same time to control your CNC from multiple devices. There can also be multiple inline computers controlled from the same remote computer, giving you multi-CNC control from the same device
- gSender settings like ‘safe height’, ‘start/stop g-code’, ‘tool changing’, and any other gSender specific settings won’t carry over to the remote computer. If you want to make sure files are run the same way every time you’ll need to transfer your gSender settings over by following the ‘Transfer Settings’ instructions below
- If you’re using your phone, save the unique URL to a bookmark on your home-screen so you can open Remote gSender easily every time! Check out this video for details
Troubleshooting
If you ran into issues during remote control setup, here are some other checks you can make:
- The easiest checks to make sure remote mode works for you is to make sure you have gSender open, you have gSender connected to your CNC, and you’ve turned remote mode on
- Double-check your remote mode configuration menu, antenna icon, and IP address are showing on the inline computer
- Ensure both your computers / devices are on the same internet network and the IP numbers match on both devices
- Double check you took the right steps in the Firewall Setup section. Your inline computer might be blocking gSender’s ability to send information to the internet because of the firewall. On Windows, follow these steps to modify the firewall:
- Click Start and open your computer’s Control Panel
- Open the ‘System and Security’ settings
- Open the ‘Windows Defender Firewall’ and go to its ‘Advanced settings’
- In the column on the left, click on ‘Inbound Rules’ and then find and double-click on ‘gSender’. There might be three options of gSender to click on, you’ll want to click on the version that has the word “All” under the ‘Profile’ column
- In the pop-up box, click on the tab labelled ‘Protocols and Ports’. Next to ‘Local port:’ you’ll want to use the drop-down menu to select “Specific Ports” and then type in the default port of “8000”. If you have added a custom port to gSender’s Shortcut properties, you’ll need to type in that number instead. Once you hit ‘Apply’, you can check to see if this resolved your problem.
- Click Start and open your computer’s Control Panel
- If when gSender reopens you’re met with a white screen, this means an error has occurred that we weren’t able to detect. This is rare, but unless we can find some other way to manage this the only fix is to uninstall gSender and reinstall it again.
- If on the remote device you get a popup for “Server Connection Lost”, this indicates that either gSender on the inline computer was closed or the shared internet is disconnecting. You should be able to fix this by restarting gSender on the inline device, then clicking “Attempt Reconnect” on the remote device.
Rotary
gSender has a unique ability to control a rotary axis on normal, 3-axis grbl machines. We call this “rotary mode”; which isn’t to be confused with grblHAL machines where gSender by default supports full, 4-axis motion. The idea is that once you’re in this “rotary mode”, gSender does the legwork to swap firmware settings over to your rotary setup, translate A-axis movements to your machine as if they were Y-axis movements, and as long as you’ve done the legwork to align and swap over your wires then your rotary A-axis should now be good to go!
Rotary Mode
Navigate to the Settings where you will find the Rotary settings. Here you can toggle the Rotary controls to make them visible on the main page.

Once the toggle has been turned to display, you will see an additional tab at the bottom right of the window, called Rotary. With this tab you can:

- Jog Control – Rotate the A-axis, go to Zero, set Zero, and adjust speeds
- Rotary Mode – Toggle into Rotary Mode
- Rotary Surfacing – Wizard to turn square stock round
- Probe Rotary Z-axis – Automatically probe to find the Z-axis
- Y-axis Alignment – Automatically probe to align the Y-axis along the A-axis (Turn rotary mode off to access this feature)
- Rotary Mounting Setup – Drill holes in your wasteboard to mount our own Vortex Rotary track (Turn rotary mode off to access this feature)
Note: Before switching to rotary mode, using the jog controls, rotary surfacing, or any other rotary actions, you’ll need to check that you’ve got your rotary set up and positioned correctly. This includes table mounting and Y-axis alignment, outlined below.
Rotary Mounting Setup
When mounting a rotary axis, it’s important to be parallel to the X-axis, and helpful to have a repeatable position so you can reliably mount and unmount the rotary, depending on when you want to use it. If you have your own rotary axis, this is a step that you’ll have to do yourself.
For those who might have our Vortex rotary axis, the ‘Rotary Mounting Setup‘ button is a specific macro that cuts into the machine wasteboard to help you fasten the rotary with perfect parallel alignment. Check out our Vortex Resources for more details on how to use this wizard.
While the Y-axis Alignment button helps in the setup of your Vortex Rotary, so does the Rotary Mounting Setup button. This feature has been designed to provide a center line for your rotary track installation. Check out our Vortex Resources for more details on how this wizard helps you mount your Vortex to your wasteboard.
Y-axis Alignment
When switching from regular CNC use to Rotary Mode, you will probe to align the Y-axis along the A-axis. You can do this in the Rotary Tab by hitting the Y-axis Alignment button. Check out our Vortex Resources for more information on aligning your Y-axis when setting up your Vortex.
Rotary Mode Toggle
This toggle can only happen once you’ve got your rotary axis set up properly, because after switching it’ll assume you’ve changed your motor wiring to be connected to your A-axis instead of your Y-axis. Here you can toggle the Rotary Mode on and off without going into the settings.

When you enable Rotary Mode, several changes will happen to your tool options:
- The Y-axis Alignment and Rotary Mounting Setup buttons become grey and hidden. This is because your Y-axis will be locked in its current position at this time, so there is no need to align it, and your rotary should already be set up.
- The Stock Turning and Probe Rotary Z-axis buttons become available
Several changes will also happen to your controls:
- The GoTo button for Y-axis and Z-axis is hidden
- The Zero Y-axis button is hidden
- It changes the ‘Goto XYO’ button to be a ‘Goto XAO’ button
- The Y-axis jogging buttons are hidden

You will also see a reminder that:
- Your Y-axis will be set to Zero
- Your hard limits have automatically been turned off
- Your firmware EEPROM values have been set to new values, better suited to the rotary.
With a final check to ensure that your switch is turned to rotary, click OK to finish enabling Rotary Mode.

Rotary Probing
In a similar fashion to regular cnc machining where you set a zero position in relation to the stock you are using, we will do the same when rotary carving. Two differences are that we don’t need to enter a tool diameter and each axis will be set separately.
Setting Z-axis
You can set your Z-axis to either the rotating axis center, or the surface of your stock in a similar fashion to regular CNCing. We recommend using the axis center, as that allows you to make use of the Vortex’s built in Z-axis probing functionality.
To do this, jog the cutting bit to be hovering approximately ~15mm just above the chuck. Double check that your probing wires are in place before proceeding!

In gSender, select the rotary axis tab, then Click ‘Probe Rotary Z-axis’ and the Z-axis will begin probing automatically, setting the Z-zero point for you. This will need to be done for each tool change in addition to the beginning of each job.

Setting X & A-axis
Setting both the X-axis and the A-axis are done manually.
- To set your X-axis, jog to wherever you’d like the job to start then click ‘Zero X’ to set your X-zero point. Make sure this is far enough from the chuck to ensure there won’t be any collisions with your cutting bit, workholding or screws.
- To set your A-axis, simply click ‘Zero A’ at the beginning of each job, under the Rotary Jog Controls. Note that if this isn’t done, the rotary will spin back to zero before the job starts.
Rotary Surfacing tool
he Rotary Surfacing button will allow you to turn square stock down to a cylinder. We recommend using a ¼ inch upcut end mill for turning stock, as it’s the most efficient.

Now you will see the Rotary Surfacing Tool. Here you will enter details about your stock length, start and final dimensions. You will also see spots for Bit Diameter, Step over, Spindle RPM, and Feed rate.

Rotary surfacing is similar to the regular XYZ surfacing tool. Let’s explore this a bit further.
- Your start diameter is the largest diameter on your stock. Usually this means the diagonal distance from opposite corners if you’re starting with square or rectangular stock.

- Your final diameter is determined by the short side of your stock.

- With a starting height of 90mm and a finished height of 63.5mm, we are removing 26.5mm of material. However, since we have the Z-axis set at the center of the material, we will need to divide that 26.5mm in half. We are basically taking 13.25mm off of the top and the bottom. If you want a single pass, your step down would be 13.25mm. Dividing that by two and setting the step down to 6.625mm, means that we will be doing two passes. This will produce a piece of round stock with the maximum diameter possible.
(Start Height – Finishing Height) / 2 = Total Step down for ONE pass

Rotary Settings
When you click on the setting button and then select the Rotary tab, you will see the firmware configurations. Here you can enter your own settings, reset the default settings and turn Hard Limits on/off.

About Page
You can find the release notes for the latest version of gSender in the “About” section of the settings.

More
Check out this livestream if you’d like to see a super deep dive on gSender and all of its features as of 0.6.9. Chris spends a lot of time answering questions live about gSender and how to set up for a project:
Community Macros
Disclaimer! These Macros are submitted by our community. They aren’t vetted by us and might cause damage to your machine so use them at your own risk! Please review the code and test it before assuming it will work with your machine setup.
Formatting
If you’d like to add your own macros to this page, edit the page on GitHub and use the template below for each macro.