Firmware & Flashing

image_print

Your board will likely ship with the latest firmware already installed, but we occasionally make updates. These updates will typically add new features to the SLB or address any discovered bugs. You may also choose to reflash the firmware onto your board if you’ve attempted to customize it or for troubleshooting purposes.

Before getting started, check what your current version is by going to the ‘Console’ of your g-code sender and send the command “$i”. The result will be a long list of text in square brackets. If you scroll down to about the 9th line you’ll see something like “[BOARD:” where you’ll also see the version number at the end. Compare this to the version list below to see which one you’d like to flash:

  • 5.0.3: firmware shipped with original batch of SLBs
  • 5.0.5: the current, most up-to-date available
    • Updated default homing speed to stop occasional disconnection issues

Flashing Summary

To successfully flash new firmware onto your SLB, you’ll need:

  1. The firmware file; all versions are listed above as “.hex” files to download
  2. A computer that can run either gSender or the STM Cube Programmer software to perform the flashing
  3. The SLB connected to that computer over USB (you can’t flash over Ethernet because the MCU on the SLB can’t support it, but you can return to using your Ethernet connection once flashing is complete)
  4. A 12-24V power supply to power the SLB during flashing
  5. Have separately noted down any firmware settings that are particular to your machine setup like for limit switches, macros, etc. New firmware can sometimes override existing settings so having a list can help you double check if you need to make any manual tweaks afterwards.
  6. For your safety, if there are any accessories that receive a control signal from the SLB, turn their power off just in case the flashing process inadvertently sends control signals to those accessories. This would be unsafe to have a spindle or laser power on when you don’t expect it to. You can turn these back on after flashing is complete.

You can choose to either use gSender or the STM Cube Programmer software to update your SLB, the steps for either option are below. If you find yourself getting stuck in the process and are on a Windows computer, see also the driver section.

gSender Flashing

  1. Be connected to your SLB over USB with the power on, ensure the firmware selected is “grblHAL” not “grbl”
  2. Go to the ‘Firmware’ tool
    1. Click the “Flash grblHAL” button
    2. Ensure the COM port is correct (matches the board you’re connected to)
    3. Click ‘Choose File’ to select the “.hex” firmware file you plan to update to, in the picture below it’s the 5.0.7 firmware
    4. Click ‘Yes’ to begin the flashing process
  3. Once you see the loading bar at 100%, flashing is complete. Exit out of the firmware window and switch off the board with the power switch at the back then turn it back on again.
  4. Once it’s back on, you should be able to re-connect to it in gSender. Go to the ‘Console’ tab and send the command “$rst=$” to revert your machine back to the default firmware settings.
  5. Power the board off and then back on one more time after sending the command. Finally, if you had any specific settings from your previous setup that you want to check or reload, connect back to gSender and change those firmware values back. Remember to hit “Apply New Settings” when you’re doing this and ensure that the settings are being re-added correctly, if they don’t seem to be sticking then make sure that your SLB is in an ‘Idle’ state, cleared of all Alarms, and try turning the SLB off and back on again.

Congrats are in order, well done! If you go back to the ‘Console’ you should now see that sending the “$i” command will give you new text that matches up with the update you’ve made.

STM Cube Flashing

Download the software from here (we recommend version 2.15.0): https://www.st.com/en/development-tools/stm32cubeprog.html#st-get-software

  1. On the SLB, switch off the power toggle switch at the black of the board or unplug it from power
  2. Use a jumper or metal tipped tool like a screwdriver or Allen key to short the BOOT pin (shown) and hold it in place
  3. Now turn the SLBs power toggle switch back on or reconnect power. You should see that most LEDs on the board are turned off now, especially the main Status LED.
  4. You can remove or let go of the BOOT jumper now.
  5. With the STM32 Cube Programmer opened on your computer:
    1. Select “USB” in the blue drop down box at the top of the right of the window
    2. Click the refresh button next to “Port”, the board will typically show up as “USB1”
    3. If the board shows up, press the green “Connect” button. If you still see “No DFU”, check your setup then click the refresh button again
    4. Go to the “Erasing & Programming” tab on the left side of the screen
    5. Select the blue “Browse” button to select the latest hex file (firmware file) on your computer
    6. Press the blue “Start Programming” button
  6. Once complete, you’ll have to exit out of a bunch of small windows
  7. Switch off the board power switch then turn back on again, then reconnect to the board in gSender, ioSender, or any other g-code sender.
  8. Follow the same last 2 steps (4 and 5) of the gSender Flashing process and you should be done!

Windows Driver Update

If you’re failing to update your SLBs firmware and see the message “Error: LIBUSB_ERROR_NOT_SUPPORTED”, this stems from the sometimes problematic way that Windows handles USB devices. This isn’t a problem for Linux or Mac systems, but if your Windows computer is having this issue it can still be fixed by overriding the wrong driver it’s using with the correct one.

To do this we’ll use a program called Zadig. The program is only needed to make the fix, which should permanently fix SLB flashing issues:

  1. Download Zadig at https://zadig.akeo.ie/# (alternate download from: https://github.com/pbatard/libwdi/releases/download/v1.5.0/zadig-2.8.exe).
  2. Put the SLB into DFU mode. There is two methods for this:
    1. Connect to the SLB in gSender and type “$dfu” in the Console tab. This will disconnect it from gSender and it will no longer appear in the dropdown connection area.
    2. Use a jumper, flathead screwdriver, or other small piece of metal to short between two pins on the SLB near the USB port. The two pins will have “SPIN” written near them, and you’ll need to be shorting them while you use the power toggle switch to turn the SLB on.
  3. Open Zadig and in the toolbar click ‘Options’ -> “List all Devices”
  4. In the main dropdown, find and select the “STM32 Bootloader” device. This name might change depending on your current operating system.
  5. Make sure that “WinUSB” is the selected driver type.
  6. Click the “Replace Driver” button and wait for the operation to complete.
  7. Power cycle the board to exit DFU mode, then give flashing another shot. If you followed all the steps you should now be able to change and update your SLBs firmware now!

Settings Descriptions

If you’d like to know all the ins and outs of the SLB’s firmware, and broader settings of grblHAL as a whole, you’ll find it all in the tables below.

For added clarity, settings that are currently unused on the SLB have been highlighted in orange. Also, the ones highlighted in blue though they are supported we don’t advise changing or are still building up documentation on.

$NameDescriptionUnit (example)How to Use
$0Step pulse time

Sets time length per step. Minimum 2 microseconds.

This needs to be reduced from the default value of 10 when max. step rates exceed approximately 80 kHz.

microseconds (5)
$1Step idle delaySets a short hold delay when stopping to let dynamics settle before disabling steppers. Value 255 keeps motors enabled.milliseconds (254)
$2Step pulse invertInverts the step signals (active low).mask (0)
$3Step direction invertInverts the direction signals (active low).mask (6)
$4Invert stepper enable pin(s)

Inverts the stepper driver enable signals. Most drivers uses active low enable requiring inversion.

NOTE: If the stepper drivers shares the same enable signal only X is used.

mask (15)
$5Invert limit pinsInverts the axis limit input signals.mask (15)
$6Invert probe pinInverts the probe input pin signal.boolean (1)
$8Ganged axes direction invert

Inverts the direction signals for the second motor used for ganged axes.

NOTE: This inversion will be applied in addition to the inversion from setting $3.

boolean (0)
$9Spindle PWMEnable: Controls PWM output availability.
RPM controls spindle enable signal: When M3 or M4 is active,  S > 0 turns on spindle enable and S0 turns it off.
mask (1)
$10Status report optionsSpecifies optional data included in status reports.
If Run substatus is enabled it may be used for simple probe protection.NOTE: Parser state will be sent separately after the status report and only on changes.
mask (511)
$11Junction deviationSets how fast Grbl travels through consecutive motions. Lower value slows it down.mm (0.01)
$12Arc toleranceSets the G2 and G3 arc tracing accuracy based on radial error. Beware: A very small value may effect performance.mm (0.002)
$13Report in inchesEnables inch units when returning any position and rate value that is not a settings value.boolean (0)
$14Invert control pinsInverts the control signals (active low).
NOTE: Block delete, Optional stop, EStop and Probe connected are optional signals, availability is driver dependent.
mask (14)
$15Invert coolant pinsInverts the coolant and mist signals (active low).mask (0)
$16Invert spindle signals

Inverts the spindle on, counterclockwise and PWM signals (active low).

NOTE: A hard reset of the controller is required after changing this setting.

mask (0)
$17Pullup disable control pinsDisable the control signals pullup resistors. Potentially enables pulldown resistor if available.
NOTE: Block delete, Optional stop and EStop are optional signals, availability is driver dependent.
mask (0)
$18Pullup disable limit pinsDisable the limit signals pullup resistors. Potentially enables pulldown resistor if available.mask (0)
$19Pullup disable probe pinDisable the probe signal pullup resistor. Potentially enables pulldown resistor if available.boolean (0)
$20Soft limits enableEnables soft limits checks within machine travel and sets alarm when exceeded. Requires homing.boolean (0)Docs
$21Hard limits enableWhen enabled immediately halts motion and throws an alarm when a limit switch is triggered. In strict mode only homing is possible when a switch is engaged.mask (0)
$22Homing cycle

Enables homing cycle. Requires limit switches on axes to be automatically homed.

When `Enable single axis commands` is checked, single axis homing can be performed by $H<axis letter> commands.

When `Allow manual` is checked, axes not homed automatically may be homed manually by $H or $H<axis letter> commands.

`Override locks` is for allowing a soft reset to disable `Homing on startup required`.

mask (205)
$23Homing direction invertHoming searches for a switch in the positive direction. Set axis bit to search in negative direction.mask (11)
$24Homing locate feed rateFeed rate to slowly engage limit switch to determine its location accurately.mm/min (150)
$25Homing search seek rateSeek rate to quickly find the limit switch before the slower locating phase.mm/min (4300)
$26Homing switch debounce delaySets a short delay between phases of homing cycle to let a switch debounce.milliseconds (25)
$27Homing switch pull-off distanceRetract distance after triggering switch to disengage it. Homing will fail if switch isn’t cleared.mm (1.5)
$28G73 retract distanceG73 retract distance (for chip breaking drilling).mm (0.1)
$29Pulse delay

Step pulse delay.

Normally leave this at 0 as there is an implicit delay on direction changes when AMASS is active.

microseconds (0)
$30Maximum spindle speedMaximum spindle speed, can be overridden by spindle plugins.RPM (24000)Docs
$31Minimum spindle speedMinimum spindle speed, can be overridden by spindle plugins.RPM (7200)
$32Mode of operationLaser mode: consecutive G1/2/3 commands will not halt when spindle speed is changed.
Lathe mode: allows use of G7, G8, G96 and G97.
integer (0)
$33Spindle PWM frequencySpindle PWM frequency.Hz (1000)
$34Spindle PWM off valueSpindle PWM off value in percent (duty cycle).percent (0)
$35Spindle PWM min valueSpindle PWM min value in percent (duty cycle).percent (0)
$36Spindle PWM max valueSpindle PWM max value in percent (duty cycle).percent (100)
$37Steppers de-energizeSpecifies which steppers not to disable when stopped.mask (0)Docs
$39Enable legacy RT commandsEnables “normal” processing of ?, ! and ~ characters when part of $-setting or comment. If disabled then they are added to the input string instead.boolean (1)
$40Limit jog commandsLimit jog commands to machine limits for homed axes.boolean (1)Docs
$41Parking cycleEnables parking cycle, requires parking axis homed.mask (1)
$42Parking axisDefine which axis that performs the parking motion.integer (2)
$43Homing passesNumber of homing passes. Minimum 1, maximum 128.(1)
$44Axes homing, first passAxes to home in first pass.mask (4)
$45Axes homing, second passAxes to home in second pass.mask (3)
$46Axes homing, third passAxes to home in third pass.mask (0)
$47Axes homing, fourth passAxes to home in fourth pass.mask (0)
$56Parking pull-out distanceSpindle pull-out and plunge distance in mm.Incremental distance.mm (5)
$57Parking pull-out rateSpindle pull-out/plunge slow feed rate in mm/min.mm/min (100)
$58Parking targetParking axis target. In mm, as machine coordinate [-max_travel, 0].mm (-5)
$59Parking fast rateParking fast rate to target after pull-out in mm/min.mm/min (500)
$60Restore overridesRestore overrides to default values at program end.boolean (1)
$61Safety door optionsEnable this if it is desirable to open the safety door when in IDLE mode (eg. for jogging).mask (3)
$62Sleep enableEnable sleep mode.boolean (0)
$63Feed hold actionsActions taken during feed hold and on resume from feed hold.mask (3)
$64Force init alarmStarts Grbl in alarm mode after a cold reset.boolean (0)
$65Probing feed overrideAllow feed override during probing.boolean (0)
$70Network services

Network services/protocols to enable.

NOTE: A hard reset of the controller is required after changing this setting.

mask (11)Docs
$100X-axis travel resolutionTravel resolution in steps per millimeter.step/min (800)
$101Y-axis travel resolutionTravel resolution in steps per millimeter.step/min (800)
$102Z-axis travel resolutionTravel resolution in steps per millimeter.step/min (800)
$103A-axis travel resolutionTravel resolution in steps per millimeter.step/deg (19)
$110X-axis maximum rateMaximum rate. Used as G0 rapid rate.mm/min (5500)Docs
$111Y-axis maximum rateMaximum rate. Used as G0 rapid rate.mm/min (5500)
$112Z-axis maximum rateMaximum rate. Used as G0 rapid rate.mm/min (4500)
$113A-axis maximum rateMaximum rate. Used as G0 rapid rate.deg/min (8000)
$120X-axis accelerationAcceleration. Used for motion planning to not exceed motor torque and lose steps.mm/sec^2 (1000)
$121Y-axis accelerationAcceleration. Used for motion planning to not exceed motor torque and lose steps.mm/sec^2 (1000)
$122Z-axis accelerationAcceleration. Used for motion planning to not exceed motor torque and lose steps.mm/sec^2 (750)
$123A-axis accelerationAcceleration. Used for motion planning to not exceed motor torque and lose steps.deg/sec^2 (1000)
$130X-axis maximum travelMaximum axis travel distance from homing switch. Determines valid machine space for soft-limits and homing search distances.mm (810)
$131Y-axis maximum travelMaximum axis travel distance from homing switch. Determines valid machine space for soft-limits and homing search distances.mm (855)
$132Z-axis maximum travelMaximum axis travel distance from homing switch. Determines valid machine space for soft-limits and homing search distances.mm (120)
$133A-axis maximum travelMaximum axis travel distance from homing switch. Determines valid machine space for soft-limits and homing search distances.mm (0)
$140X-axis motor currentMotor current in mA (RMS).
NOTE: Only used for axes controlled by a Trinamic driver.
mA (2800)
$141Y-axis motor current
$142Z-axis motor current
$143A-axis motor current
$150X-axis microstepsMicrosteps per fullstep.
NOTE: Only used for axes controlled by a Trinamic driver.
steps (32)
$151Y-axis microsteps
$152Z-axis microsteps
$153A-axis microsteps
$180X-axis homing locate feed rateFeed rate to slowly engage limit switch to determine its location accurately.
NOTE: Defaults to $24 setting if axis isn’t controlled by a Trinamic driver.
mm/min (150)Docs
$181Y-axis homing locate feed rate
$182Z-axis homing locate feed rate
$183A-axis homing locate feed rate
$190X-axis homing search seek rateSeek rate to quickly find the limit switch before the slower locating phase.
NOTE: Defaults to $25 setting if axis isn’t controlled by a Trinamic driver.
mm/min (4300)Docs
$191Y-axis homing search seek rate
$192Z-axis homing search seek rate
$193A-axis homing search seek rate
$200X-axis StallGuard2 fast thresholdStallGuard threshold for fast (seek) homing phase.
NOTE: Only used for axes controlled by a Trinamic driver.
(22)
$201Y-axis StallGuard2 fast threshold
$202Z-axis StallGuard2 fast threshold
$203A-axis StallGuard2 fast threshold
$210X-axis hold currentMotor current at standstill as a percentage of full current.
NOTE: If grblHAL is configured to disable motors on standstill this setting has no use. Only used for axes controlled by a Trinamic driver.
% (35)Docs
$211Y-axis hold current
$212Z-axis hold current
$213A-axis hold current
$220X-axis stallGuard2 slow thresholdStallGuard threshold for slow (feed) homing phase.
NOTE: Only used for axes controlled by a Trinamic driver.
(22)
$221Y-axis stallGuard2 slow threshold
$222Z-axis stallGuard2 slow threshold
$223A-axis stallGuard2 slow threshold
$300HostnameNetwork hostname.
~Controller reset required for setting change to take effect~
(grblHAL)Docs
$301IP modeIP mode.
~Controller reset required for setting change to take effect~
integer (0)
$302IP addressStatic IP address.
~Controller reset required for setting change to take effect~
(192.168.5.1)
$303GatewayStatic gateway address.
~Controller reset required for setting change to take effect~
(192.168.5.1)
$304NetmaskStatic netmask.
~Controller reset required for setting change to take effect~
(255.255.255.0)
$305Telnet port(Raw) Telnet port number listening for incoming connections.
~Controller reset required for setting change to take effect~
(23)
$307Websocket portWebsocket port number listening for incoming connections.
NOTE: WebUI requires this to be HTTP port number + 1.
~Controller reset required for setting change to take effect~
(80)
$308FTP portFTP port number listening for incoming connections.
~Controller reset required for setting change to take effect~
(21)
$338Trinamic driverEnable SPI or UART controlled Trinamic drivers for axes.mask (7)
$339Sensorless homingEnable sensorless homing for axes. Requires SPI or UART controlled Trinamic drivers.mask (0)
$340Spindle at speed toleranceSpindle at speed tolerance as percentage deviation from programmed speed, set to 0 to disable.
If not within tolerance when checked after spindle on delay ($392) alarm 14 is raised.
percent (0)
$341Tool change mode

Normal: allows jogging for manual touch off. Set new position manually.

Manual touch off: retracts tool axis to home position for tool change, use jogging or $TPW for touch off.

Manual touch off @ G59.3: retracts tool axis to home position then to G59.3 position for tool change, use jogging or $TPW for touch off.

Automatic touch off @ G59.3: retracts tool axis to home position for tool change, then to G59.3 position for automatic touch off.

All modes except “Normal” and “Ignore M6” returns the tool (controlled point) to original position after touch off.

integer (0)
$342Tool change probing distanceMaximum probing distance for automatic or $TPW touch off.mm (30)
$343Tool change locate feed rateFeed rate to slowly engage tool change sensor to determine the tool offset accurately.mm/min (25)
$344Tool change search seek rateSeek rate to quickly find the tool change sensor before the slower locating phase.mm/min (200)
$345Tool change probe pull-off ratePull-off rate for the retract move before the slower locating phase.mm/min (200)
$346Restore position after M6When set the spindle is moved so that the controlled point (tool tip) is the same as before the M6 command, if not the spindle is only moved to the Z home position.boolean (1)
$370Invert I/O Port inputsInvert IOPort inputs.mask (0)
$372Invert I/O Port outputsInvert IOPort output.mask (0)
$374Modbus baud rateinteger (3)
$375Modbus RX timeoutmilliseconds (50)
$376Rotational axesmask (1)
$384Disable G92 persistenceDisables save/restore of G92 offset to non-volatile storage (NVS).boolean (0)
$392Spindle on delayDelay to allow spindle to spin up after safety door is opened.s (4)
$393Coolant on delayDelay to allow coolant to restart after safety door is opened.s (1)
$395Default spindleSpindle selected on startup.integer (0)
$398Planner buffer blocksNumber of blocks in the planner buffer.
~Controller reset required for setting change to take effect~
(128)
$450Button 1 actionAssign a real-time action to button 1, or run your own macro g-code.integer (1)Docs
$451Button 2 actionAssign a real-time action to button 2, or run your own macro g-code.integer (2)
$452Button 3 actionAssign a real-time action to button 3, or run your own macro g-code.integer (4)
$453Button 1 macroMacro content, limited to 127 characters. Separate lines with the vertical bar character |.(G4P0)
$454Button 2 macroMacro content, limited to 127 characters. Separate lines with the vertical bar character |.(G4P0)
$455Button 3 macroMacro content, limited to 127 characters. Separate lines with the vertical bar character |.(G4P0)
$456Aux output 0 triggerA second, more common action can be assigned to trigger this output. M62/63 P# is always available as a buffered on/off or M64/65 P# as an immediate on/off.integer (0)Docs
$457Aux output 1 triggerA second, more common action can be assigned to trigger this output. M62/63 P# is always available as a buffered on/off or M64/65 P# as an immediate on/off.integer (2)
$458Aux output 2 triggerA second, more common action can be assigned to trigger this output. M62/63 P# is always available as a buffered on/off or M64/65 P# as an immediate on/off.integer (0)
$459Aux output 3 triggerA second, more common action can be assigned to trigger this output. M62/63 P# is always available as a buffered on/off or M64/65 P# as an immediate on/off.integer (2)
$462Run/stop registerMODVFD register for run/stop.decimal (8192)Docs
$463Frequency set registerMODVFD register to set frequency.decimal (1893)
$464Frequency get registerMODVFD register to get frequency.decimal (8451)
$465Run CW commandMODVFD command word for CW.decimal (18)
$466Run CCW commandMODVFD command word for CCW.decimal (34)
$467Stop commandMODVFD command word for stop.decimal (1)
$468RPM input multiplierMODVFD RPM value multiplier for programming RPM.(50)
$469RPM input dividerMODVFD RPM value divider for programming RPM.(60)
$470RPM output multiplierMODVFD RPM value multiplier for reading RPM.(60)
$471RPM output dividerMODVFD RPM value divider for reading RPM.(100)
$478Spindle 2 Modbus addressSpindle 2 Modbus address.(3)
$479Spindle 3 Modbus addressSpindle 3 Modbus address.(4)
$481Autoreport intervalInterval the real time report will be sent, set to 0 to disable.
~Controller reset required for setting change to take effect~
ms (0)
$484Unlock required after E-StopIf set, unlock (by sending $X) is required after resetting a cleared E-Stop condition.boolean (1)
$486Lock coordinate systemsLock coordinate systems against accidental changes.mask (0)
$511Spindle 1Spindle to use as spindle 1.
~Controller reset required for setting change to take effect~
integer (7)Docs
$512Spindle 2Spindle to use as spindle 2.
~Controller reset required for setting change to take effect~
integer (8)
$513Spindle 3Spindle to use as spindle 3.
~Controller reset required for setting change to take effect~
integer (5)
$520Spindle 0 tool number startStart of tool numbers for selecting spindle 0 (default spindle). Normally leave this at 0.(0)
$521Spindle 1 tool number startStart of tool numbers for selecting spindle 1.(0)
$522Spindle 2 tool number startStart of tool numbers for selecting spindle 2.(0)
$523Spindle 3 tool number startStart of tool numbers for selecting spindle 3.(0)
$650Chopper toffOff time. Duration of slow decay phase as a multiple of system clock periods: NCLK= 24 + (32 x TOFF). This will limit the maximum chopper frequency (0-15).
0: MOSFETs shut off, driver disabled.
1: Use with TBL of minimum 24 clocks.
integer (1)
$651Chopper tblBlanking time interval in system clock periods (0-3 = 16,24,36,54). Needs to cover the switching event and the duration of the ringing on the sense resistor.integer (1)
$652Chopper chmChopper mode. Affects HDEC, HEND, and HSTRT parameters.
0: Standard mode (SpreadCycle).
1: Constant TOFF with fast decay time. Fast decay is after on time. Fast decay time is also terminated when the negative nominal current is reached.
boolean (0)
$653Chopper hstrCHM=0: Hysteresis start, offset from HEND (0-7 = 1-8). To be effective, HEND+HSTRT must be ≤15.
CHM=1: Fast decay time. Three least-significant bits of the duration of the fast decay phase. The MSB is HDEC0. Fast decay time is a multiple of system clock periods: NCLK= 32 x (HDEC0+HSTRT).
integer (2)
$654Chopper hendCan be either negative, zero, or positive, 0-15 = -3 to 12.
CHM=0: Hysteresis end (low). Sets the hysteresis end value after a number of decrements, used for the hysteresis chopper and controlled by HDEC. HSTRT+HEND must be less than 16. 1/512 adds to the current setting.
CHM=1: Sine wave offset. A positive offset corrects for zero crossing error. 1/512 adds to the absolute value of each sine wave entry.
integer (8)
$655Chopper hdecCHM=0: Hysteresis decrement interval period in system clock periods. Determines the slope of the hysteresis during on time from fast to very slow (0-3 = 16,32,48,64).
CHM=1: Fast decay mode.
integer (0)
$656Chopper rndtfChange from fixed to randomized TOFF times, by dNCLK= -24 to +6 clocks. Only for CHM=1.boolean (1)
$657THRESHStallGuard threshold.(22)
$658CoolStep seminLower CoolStep threshold. If the SG value falls below SEMIN x 32, the coil current scaling factor is increased (0-15).
0: CoolStep disabled.
integer (7)
$659CoolStep seupNumber of increments of the coil current each time SG is sampled below the lower threshold (0-3 = 1,2,4,8).(3)
$660CoolStep semaxUpper CoolStep threshold offset from lower threshold. If SG is sampled above (SEMIN+SEMAX+1)x32 enough times, the coil current scaling factor is decremented (0-15).(0)
$661CoolStep sednNumber of times SG must be sampled above the upper threshold before the coil current is decremented (0-3 = 32,8,2,1).(3)
$662CoolStep seiminMinimum CoolStep current as a factor of the set motor current.
0: 1/2, 1: 1/4
boolean (0)
$663drvconf_regDRVCONF register defaults 0xA31F. All protections enabled.(41759)
$664Ring pixelsNumber of individual pixels or LEDs connected.
~Controller reset required for setting change to take effect~
(0)Docs
$665Rail pixelsNumber of individual pixels or LEDs connected. Include the onboard LED.
~Controller reset required for setting change to take effect~
(1)
$666Using add-onsSienci specific capability flags.mask (0)
$668Invert TLS inputInvert the TLS input ahead of the OR function.
~Controller reset required for setting change to take effect~
boolean (1)
$730Maximum laser powerMaximum S word power for laser.(255)Docs
$731Minimum laser powerMinimum S word power for laser.(0)
$733Laser PWM frequencyLaser PWM frequency.Hz (1000)
$734Laser PWM off valueLaser PWM off value in percent (duty cycle).percent (0)
$735Laser PWM min valueLaser PWM min value in percent (duty cycle).percent (0)
$736Laser PWM max valueLaser PWM max value in percent (duty cycle).percent (100)
$741Laser X offsetLaser offset from spindle on X-axis.mm (0)
$742Laser Y offsetLaser offset from spindle on Y-axis.mm (0)
$743Invert laser signalsInverts the laser enable and PWM signals (active high).
~Controller reset required for setting change to take effect~
mask (0)