SLB Manual

image_print
If there’s any extra information you’d like to see regarding the SLBs specs, just let us know and we’ll work to add it 👍

This document is the “SLB bible” for any of the ‘raw’ answers you might be looking for when setting up your new board. This includes sections on all the features, their pinouts, associated settings, and other things you should know when installing the SLB onto your CNC.

You’ll find that the SLB builds a lot onto our original LongBoard while maintaining a lot of the familiar behaviour and features. If you find any holes in this documentation, brush up on the original LongBoard documentation here: https://resources.sienci.com/view/lmk2-longboard-details/. Learn more about the latest updates on Beta testing and board developments on our company Blog or SLB page: https://sienci.com/product/slb/

Features List

Comparing the SLB to our Original LongBoard and to other controllers on the market, some of the main advantages you might notice:

  • Be confident in your CNC completing jobs in a variety of environments. Vastly improved reliability and immunity against EMI with better board wiring, protective components, onboard ferrite improved USB protocol, processor capability, larger buffer, and Ethernet as a communication alternative
  • Faster CNC speeds and less motor noise by using more efficient motor drivers
  • Safer E-stop informs machine when an emergency has happened and depowers all accessories
  • Detachable E-stop gives you something to reach for if your CNC starts going where you didn’t expect
  • RGB CNC Status lights visible from a distance to always know what your CNC is up to or if something’s gone wrong. Light onboard plus support for external RGB strips to setup as you wish: under your X-axis rail, a router/spindle ring light
  • 3 programmable buttons for you to customize your CNC to your workflow
  • Live overrides to fine-tune your feeds & speeds on the fly when running a job
  • Supports inductive sensors for far more accurate and repeatable CNC positioning for job recovery or multi-day runs than using stall homing in a dirty CNC environment, also use mechanical switches
    Individual axis holding current, allows you to hold just the Z-axis from falling with a heavy spindle without having to keep all other motors powered too
  • Added support for an independent Tool Length Sensor for tool changes
  • Control Spindles/VFDs and other accessories with Modbus over RS485
  • Independant 4th/rotary axis output to an external driver for simultaneous 4-axis cutting
  • More customizable IO to fine-tune your at-home or shop CNC setup
  • Powered by HAL, leaving bandwidth for even more features to be added with future Firmware updates
  • Don’t have to pay extra for a built-in computer, instead choose to run something lightweight you already have on hand or a more powerful setup to combine both design and CNC control from one computer in your shop

Dimensions

The SuperLongBoard is a typical PCB with a roughly 210 x 100 x 20mm (8.3x4x0.8”) footprint, not including plug stick-out on the short ends. It’s designed to either fit inside its enclosure, accommodate up to 4mm of edge mounting on the long side, or mount via 4 standoffs.

The enclosure has a rough size of 215 x 112 x 50mm (8.5×4.4×2”) not including the 16mm (0.63”) flanges on the short ends. These flanges allow it to be mounted to any flat surface either horizontally or vertically as pictured. The backside of the enclosure also has a feature to fit a bracket which allows the SLB to mount to the Y-axis rail of any LongMill MK2 CNC.

The enclosure has been designed with reasonable consideration for dust penetration, but if you are a more cautious person you can feel free to mount the box further away from your CNC. When placing your SLB on its own or among other CNC control electronics, consider that most wires are designed to route out the backside of the enclosure with the exception of a handful of more typically accessible plugs on its front like the E-stop and USB-C. For more information on mounting the enclosure see the section on Enclosure Mounting.

Note: for the rest of the docs the typical naming orientation for the SLB is shown below

Software

Sender: Any g-code senders able to run “grblHAL” should be able to support most of the SLBs features. We recommend using gSender to get the most out of your SLB (you have to use at least version 1.4.0 or later). If you prefer other options, you could try ioSender, UGS, or OpenBuilds CONTROL.

Note: Since the SLB is running a much newer and more advanced firmware, some senders that you’re used to using might not yet work with it like Easel, VTransfer, CNCjs, Candle, and others.

Post Processor: For now, the SLB will continue working the best with any typical ‘grbl’ post processor setup. If you already had a working grbl setup then you won’t need to change anything, but if the SLB is your first board then you can check out or Post Processor suggestions page.

This works because any g-code supported by grbl is also supported by grblHAL, so there’s full forward compatibility even with all your past cutting files. As we continue to expand on the SLBs capabilities there might be an “SLB” or “grblHAL” post processor released in the future that introduces new g-code to control those new features. If/when this happens we’ll keep this section updated. If you’d like to try your own exploration in the meantime, you can read more on the superset of other niche g-codes (based on primarily LinuxCNC specifications) here: Additional G and M codes.

Computer: The SLB runs independent of your computer’s ability, so as long as your computer is able to run newer versions of gSender or another g-code sending software without freezing up then your setup will be good. That being said, some old computers can have less reliable USB ports so in some cases it might be worth the upgrade if it makes your cutting more reliable.

Firmware

Your board will ship with the latest version of firmware already installed, but we’ll occasionally release updates for new features, functionality, or bug fixes. The SLB runs grblHAL. For more information on this process, go to the Firmware Flashing section.

Open Source

This project has no patents, we make everything available to the public just like much of the rest of Sienci Labs’ projects. As we start to roll out the SLB into production, we’ll post our source files for Firmware tweaks from Core grblHAL, our custom grblHAL plugins, the SuperLongBoard PCB design, enclosure design, and any other relevant manufacturing and sourcing info we can think of. We’ll also make sure we’re clear on the licenses for use.

Wiring

The SLB accepts the same or similar input and output plugs as our original LongBoard; you should be able to unplug everything from the LongBoard and replug everything back into the SLB without much trouble. The only exceptions are the new USB-C communication cable, and the SpinPWM, SpinDir, and AUX limits, which can be easily rewired to the new terminal connectors with a small flat head screwdriver. The 12V misc output is also now 24V and switchable, see the section on ‘Accessory Outputs’ to learn about this.

Some of the connectors are inside the enclosure so you’ll need to remove the cover to access them. To remove the cover, unscrew the top-right thumbscrew a couple turns (pictured) then slide the cover to the right. Once the hole in the cover lines up, you’ll be able to pull the top of the cover towards you and it will come free.

 

Route all the wires from inside the enclosure through the two cable guides at the back so you can close the lid again. The smaller, bottom one is meant to snugly fit all the motor cables, while the remaining cables should all fit into the larger, upper opening. These cable guides will keep all your wires in place when you’re accessing the inside.

Here’s a general wiring ‘map’ you can use as a reference to start hooking things up. It covers the full scope of plugs and features that plan to be supported at the time of launch of the SLB. Go here for the full list of connectors.

Power & E-stopPower in and control via switch, E-stop, E-stop backup, and board reset
USB & EthernetCommunication ‘streaming’ to the SLB
MotorsTypical 3 axis (ganged Y) bipolar stepper motor control
Touch Plate/ProbeSupports touch plates or other surface probing
Status LightsOnboard CNC status light, RGB LED strip outputs, other diagnostics lights
Limit SwitchesHookup for Homing/Limits with two plug styles, also supports min/max switches for hard limits
Laser5V PWM dedicated output for independent Laser control
Action Buttons3 programmable action buttons that support macros
Accessory Outputs2 SWITCH outputs that turn on any external circuits up to 24V 1A, and 2 AUX POWER outputs which provide up to 24V 250mA to external accessories
Spindle/RS485Controls a Spindle or VFD using 5V PWM or RS485
Tool Length SensorPowered input for a Tool Length Sensor for tool changing or for use as a secondary probe
Rotary/4th/A-AxisOutput signals for an external motor driver and input of an independent rotary axis limit switch

Power & E-stop

The SLB needs a 24V 10A power supply to run all stepper motors at rated current alongside the other onboard accessories. Higher current such as 24V 12.5A is even better so the power supply isn’t strained even during peak draw. This range means you can use the same power supply that came with the original LongBoard if you’re switching over.

  • The larger 2-pin plug on the left side is the power connection
  • There’s a main power switch above it to switch main power to the whole board
    • Reset pin on the top right to quickly power-cycle the board
  • The plug on the bottom right is for the E-stop and customizable action buttons
  • E-stop pin on the bottom left to keep the E-stop connected

Sienci power supplies should already be correctly polarized, but MAKE SURE the polarity of the power supply connector is correct before plugging it in (red/+ on top, black/- on the bottom, same as for the LongBoard).

Have the power switch ‘Off’ (slide it UP to be in the OFF position) whenever you plug the power in as a good rule of thumb.

The E-stop connection wiring is shown below. This is only needed if you’re doing custom work, since this wiring comes in the box with all SLBs:

Note: If you accidentally plug the E-stop cable into the Ethernet port, this shouldn’t cause any damage to your SLB as long as you don’t have the E-stop pins shorted.

The E-stop is designed to cut all power to your CNCs stepper motors and also send a signal back to the MCU to disable all other accessories that your SLB controls. This includes turning off the spindle, IOT Relay, and anything else that’s triggered by M3/4 and M7/8 commands. Use the E-stop when there’s a hazard during carving and you need to immediately stop the machine. Press down on the E-stop to engage it and twist it clockwise (follow the arrows) while pulling up to disengage it. You’ll know it is engaged when the E-stop light turns off, and disengaged when the power light turns back on.

If you don’t have an E-stop, you can use a header jumper on the pair of E-stop pins shown in the top picture near the power input and outlined in red. Keeping the header on will make the board think the E-stop is connected, but not activated. Another option is to just short the two E-stop wires (shown as orange wires).

If you want to set up the custom action buttons for your E-stop now, jump forward to the Action Buttons section 🙂

USB & Ethernet

The SLB offers USB-C as well as Ethernet as a way to connect your CNC to your computer. Both are isolated for noise, with larger data buffers, and should provide a reliable connection. Though Ethernet is generally considered to be more reliable, we worked hard on a robust USB interface with far more data checks and signal isolation to match a typical Ethernet setup. This means you can use either, but USB-C is more beginner friendly and at the minimum a USB-C connection is needed to perform the initial board setup. If you want to place your computer further away from your machine or feel that the USB is still occasionally causing you issues then we’d recommend switching over to Ethernet.

The SLB needs to be powered via 12-24V and turned on for you to be able to make any USB or Ethernet connection.

To connect over USB, plug the cable into the front of the control box and into an available USB port on your computer, then refresh the USB list in gSender or ioSender, click the new device, and connect. Ensure that the USB cable you use is capable of data transfer and not just charging. You should see the light near the USB port turn on to confirm a connection (not working on current boards). If in gSender it doesn’t connect, make sure you’ve selected ‘grblHAL’ in the dropdown.

Plug the USB-C cable into the front

To connect over Ethernet, you’ll need:

  • An Ethernet cable
  • A g-code sender that can connect to CNCs over a network, like gSender or ioSender
  • A device with a free Ethernet port that can also run the g-code sender
    • If your computer only has one Ethernet port and it’s already used, you can try picking up a USB to Ethernet dongle or adding an additional Ethernet card. You don’t need anything fancy since the SLB only needs 1-2 Mbps of bandwidth to run. If you use the dongle, the USB side will plug into your computer, and the Ethernet side will connect an Ethernet cable that you’ll run to the SLB.

Keep in mind that setting up Ethernet is a bit more involved, and at the time of SLB launch we’ll be primarily aiming to support direct Ethernet communication from a computer to the SLB; not sending over a network. Also the SLBs STM32 chip isn’t capable of supporting firmware flashing over Ethernet so keep the USB-C cable handy if you need to do any future updates or recover from a board reset.

Ethernet on Windows

1. To start, connect to your CNC over USB to note down the EEPROM values set for the IP address and Netmask (302 and 304). The defaults should be IP:192.168.5.1 and Netmask:255.255.255.0 with the IP mode set to ‘static’.

2. Once confirmed, you can unplug your USB and connect the Ethernet cable directly from your PC to your board. If you look where you plugged the Ethernet cable into the SLBs port from the outside, you should see a green light on and a flickering yellow light.

3. You’ll need to configure the PC’s Ethernet interface. Open network connections to get a list of Ethernet ports.

4. Right click your Ethernet port and go to Properties and then find the “Internet Protocol Version 4 (TCP/IPv4)” entry and open its properties.

5. Select the “Use the following IP address:” option and configure it as above. You want the subnet mask to be the same value from the EEPROM ‘Netmask’. The IP address should have a different last digit on the same mask – so if the board is device 1 (192.168.5.1), you could call your PC device 5 (192.168.5.5). Click “OK” to save and close the options.

6. Back in gSenders general Settings, make sure the IP Range matches the IP from the EEPROM.

7. With the grblHAL firmware selected, choose the ‘Network Devices’ option and you should see it connect successfully 🙂

8. If you have a problem connecting with Ethernet, go back over the setup steps. You can also reconnect over USB to double-check your SLB Ethernet settings.

Motors

The board comes with 4 onboard stepper motor drivers so you can plug a typical XYYZ CNC router straight in. We recommend putting the left side motor on Y1 and the right side motor on Y2. If you ever need to swap cables around, grabbing the connectors by their sides and wiggling back and forth helps them pop back off easily.

The TMC2660C motor drivers are capable of 2800mA RMS and should allow for faster speeds than the previous LongBoard’s TB6600 drivers due to their higher efficiency which also means the machine runs quieter. Though they can all run independently (allowing Y-axis auto-squaring in the future), the two Y-axes are currently running ‘mirrored’.

Movement & Cutting Speeds

The default movement speed of the SLB has been set up to work out-of-the-box for a LongMill CNC with typical tuning on an average setup. Based on your setup you may be able to adjust your Maximum Speeds for X, Y, and Z ($110-112) to be higher than their defaults of 5500mm/min, or you might have to lower them if those speeds are losing steps for you. You can also do this to the Acceleration ($120-122) of each axis from its default of 1000mm/s2 for XY and 750mm/s2 for Z.

To check if your machine is able to handle the default speeds, manually set the jogging ‘Speed’ value in your g-code sender to the maximum default speed and then make long jog movements over the full cutting area for your CNC to see if you encounter any snags. If you snag once you’re up to speed then consider decreasing the speed, whereas if you snag at the start then consider decreasing the acceleration of the specific axis. Alternatively if it seems like your machine handles all movement just fine then also feel free to experiment by increasing the default values to be higher:

  • We tend to put more weight on increasing acceleration over speed since the majority of CNC projects consist of small movements where acceleration has a larger impact on carve time, such as 3D carves or v-carving
  • Sometimes faster speeds can also be useful though for making lots of long cuts or moving between locations or jogging
  • Be mindful that sometimes faster speeds won’t actually make projects run faster since you might be limited by the speed you can realistically cut through the material
  • For a well-tuned LongMill which is lead screw driven on Delrin nuts and v-wheels, we’ve been able to reach XY speeds of 7500mm/min with the default acceleration, or if acceleration is reduced to 200mm/s2 then we’ve tested to go past 12000mm/min. This can show the give-and-take relationship between velocity and acceleration when tuning these settings for yourself.

Two notes: Firstly you might be worried that the faster speeds and acceleration might cause faster wear of your CNCs motion system and although this is partially true, these higher speeds won’t typically be reached during cutting which is the majority of the time that your CNC moves so it shouldn’t cause much added stress to machine life. Secondly, if your CNC was set up with homing and you’ve tuned its movement speeds after the fact, be sure to re-check your homing offsets if you’re using jigs since motor acceleration can change where your machine homes to.

Independent Motor Holding

Instead of the old solution of setting $1=255 which forces all motors to hold at full current, two new settings allow you to select individual motors that you want to hold, and what holding strength you want to use. With $37, simply toggle the axis you want to hold while using $210-212 to decide what the holding strength will be (as a % of the motor’s full current).

Useful in cases of:

  • Heavy spindle that can lower the Z-axis over time
  • Vertically set up CNC
  • Stop your motors from losing position in cases where you do manual tool changing

We’ve found that a minimum of 15% works for lead screw-driven CNCs. These hold current settings will also apply even if $37 is off when the machine is cutting but that axis isn’t moving. Note that these settings won’t work for an A-axis since that would typically be done using the DIP switches on the external motor driver.

Touch Plate/Probe

Connect your touch plate or probe here. Any Sienci touch plate and many 3rd-party continuity-style touch plates should work and can be configured through gSender. For most touch plates, it doesn’t matter which way you plug them in.

Touch plate cable goes in the front, above the E-stop cables

If you want to check continuity, tapping the touch plate and magnet together should turn on the yellow ‘PRB’ LED near the touch plate connector. For a NC probe this behaviour will be inverted.

You should find that probing with the SLB is faster due to its 32-bit processor, speeding up cycle times for zeroing and tool changing. You might also find that the touches are so much more sensitive that you don’t need to hold the touch plate in place anymore. Otherwise, all other aspects of probing should follow what you’re familiar with.

If you go to probe and find that there’s a touch being detected when there shouldn’t be, either the probe or the TLS signal needs to be inverted. Try combinations of toggling the $6 and $668 EEPROM values to the opposite of what’s currently set then check again. For other reading on touch plate setup, see our MK2 resources here: https://resources.sienci.com/view/lmk2-touch-plate/

Status Lights

A new and simple way to know your CNC status at a glance or from a distance. Hook up your own RGB LED strips to light up your machine, enclosure, or surrounding work area, or reference the on-board RGB LED which is visible from most angles and illuminates the SLBs enclosure cover.

  • White: CNC is Idle, flashing white means a job has completed
  • 🟩 Green: Jogging or actively Running a Job
  • 🟨 Yellow: Paused or the Door is open
  • 🟥 Red: E-stop is pressed or an Alarm occurred
  • 🟦 Blue: Homing or Verifying a job (check state)

Note: if you ever see the light change from green to white during a job, this is normal and can happen during G4 dwells or when changing spindle speeds.

There are also plenty of other status lights on the board for the purpose of troubleshooting, go HERE to see what they all do.

LED Strips

See below for more options on LED accessories! If you’re buying your own LEDs make sure the wires don’t say “R, G, B” on them and also make sure you don’t buy the 4-wire type or a strip that already has a colour controller built-in. Instead search for “neopixel” style RGB LEDs which always have 3 wires for power, signal, and ground. If you don’t want different colours and just want your LEDs to turn on and off, instead consider using the SLBs AUX Power outputs.

  • The top “Ring” plug is a second, unique RGB LED output that we recommend you only power up to 20 external LEDs. These could be mounted near the Router head to illuminate your cutting area or somewhere else that you don’t need a lot of light output.
  • The bottom “Rail” plug extends from the on-board light to run a much longer LED strip using an external 5-24V, max 3A power supply (denoted LED PWR). You could mount this strip under your CNCs X or Y-axis rails or use multiple strips to light up your whole enclosure.

The wiring for both of these is the same and is written on the board: power, signal, ground (left-to-right). The plug is a standard ‘JST XH 2.54 3-Pin Female Connector’ which should be very common to find. ‘Dupont 2.54 Wire Female’ connectors could also work as single or 3-pin form which are also very ubiquitous and tend to be included with many beginner electronic kits (shown respectively).

Once you’re done wiring up, update the $664 (ring) or $665 (rail) firmware settings for the number of LEDs you’ve plugged in and power-cycle the board for the changes to take effect. Enjoy your new pizazz! A member of our community, Jim, also made his own LED write-up if you’d like to check that out too: Jims SLB Rail LED Guide (PDF)

Manual Control

The lights will automatically change colour based on the CNC’s status by default, but if you want to change that you can use the M356 command in the console to make either output stay white (to illuminate your cutting area all the time), turn off, or go back to Auto switching. An example would be using “M356 P1 Q1” to make the ring light stay white. The remaining combinations are shown below:

RailRing
AutoM356 P0 Q0M356 P1 Q0
WhiteM356 P0 Q1M356 P1 Q1
OffM356 P0 Q2M356 P1 Q2

Homing & Limit Switches

Depending on your limit switches, you’ll either be able to plug them straight into the four JST 4-pin connectors near each axis, or use the more versatile terminal output at the top for custom wiring. Sienci inductive sensors can be plugged straight into the JST connectors.

Dual Y homing will be available in the future but for now don’t use the Y2 limit switch plug. For reference dual Y homing needs the Y1 switch on the same side as Y1 and the same with Y2.

The JST pinouts are 5V, GND, N/A, LIM going top to bottom, and the terminal is 5V, X, Y1, Y2, Z, A, GND going left to right. All plug outputs can also be changed to throughput 24V (solder R10, break R9).

Homing & Limits Setup

On top of the typical settings that the original LongBoard has when it comes to homing like homing speed and direction, the SLB brings along some new options that you can configure. Firstly, $22 now controls far more settings than just turning homing on and off:

SettingDescription
EnableTurns on homing
Enable single axis commandsAllows special homing commands so you can, for instance, re-home only your Z-axis without having to re-home the whole machine
Homing on startup requiredReminds you to home your machine every time you power it on, since CNCs typically lose their position when they lose power
Set machine origin to 0Typically enabled so that re-homing re-zeros the machines location
Two switches share one input pinEnable if you plan to set up hard limits at the end of each axis
Allow manualIf you want to home an axis that isn’t homed when you ‘Home all’
Override locksIn case you’ve turned on ‘Home on startup’ but want to skip it in certain cases
Keep homed status on resetIn a case where the machine is reset, it’ll try it’s best to maintain the machine position and not force you to re-home

If you’d like to match the SLB behaviour to the typical LongMill/grbl setup, then we’d recommend you enable all the bolded settings (homing on startup, set machine origin to 0. and override locks). We also recommend scrolling down to turn on setting 40, called “Limit jog commands”, which can only be turned on if you’ve turned on homing and makes sure that your CNC can’t jog outside its soft limits.

The SLB has much faster default homing speeds, so once you use homing if you hear a ‘bang’ when it approaches the sensors, don’t be concerned since this is likely the LongMill just stopping really quickly. If you’re setting up the SLB on a larger machine, you might want to reduce these homing speeds to not overshoot the sensors.

Some other new settings that have been introduced include:

  • $21 has been expanded to introduce a “Strict mode” which you can turn on if you want the machine to be forced to home if a hard limit is triggered
  • $40 has been added to stop soft limit alarms from appearing when jogging

If you need any other refreshers on how to set up limit switches or troubleshoot them, see our MK2 resources here: https://resources.sienci.com/view/lmk2-limit-switches/. Remember that if you ever change homing settings like seek rate, locate rate, debounce delay, or pulloff distance, this will change the location your machine homes to so if you’ve set up any work offsets you’ll need to adjust them accordingly.

Laser

If you have a Laser diode accessory for your CNC connect it here. Use the top, third pin if your Laser driver needs an ‘Enable’ signal to operate, otherwise just use the bottom two to get the 5V PWM output that most laser accessories typically need. On the LongBoard this would’ve normally been the 2-pin SpinPWM plug, which you can plug straight into the SLB.

Warning: lasers are very dangerous devices that can instantly damage your vision and cause fires. Become knowledgeable on staying safe by reading documentation by your laser manufacturer, the SLB, how laser mode in grbl and grblHAL works, and how your g-code sender handles laser commands. Even then do not become complacent; continue to treat your laser with caution and respect and turn off power completely to the laser driver when you’re not using it. You can never be sure when the laser might fire unexpectedly and hobby equipment and software can be imperfect. If you have the driver turned on, everyone around should always be wearing eye protection and there should also be clear warning or signage to protect others.

When you mount your laser driver board and electronics, you’ll likely want to stick to whatever your manufacturer recommends. This will probably be in a more secluded spot away from dust and vibrations, since laser electronics tend to be more sensitive and require more air cooling.

More from us on laser wiring, safety, and use: https://resources.sienci.com/view/lmk2-adding-a-laser/

SLB Control

The way the laser is set up on the SLB is quite unique. Essentially when your g-code files have spindle commands in them (M3, M4, S##, M5), you have the ability to tell the SLB what output you want it to control with those commands:

  1. A basic spindle
  2. The laser output
  3. More advanced VFDs using the RS485 output

The laser isn’t set as the default for safety reasons, but further down is information on how to switch it to be the default if you tend to use the laser the most, or you can also just switch to it temporarily. Whichever is set as the default is what the board switches back to whenever the board is turned off and back on again, or loses power.

You can only control one at a time, so to select which one you’d like to control you can use the dropdown selector in gSender or use the selection commands. This selection will also apply when you send manual spindle commands in other ways like the console.

For other g-code senders, you’ll need to use the selection commands:

  • By default, the SLBs spindle output is set up as the “Default spindle” ($395), with the Laser output as “Spindle 1” ($511) and the RS485 as “Spindle 3” ($513)
  • Because the laser is set as “Spindle 1”, sending “M104Q1” will switch to controlling the laser
  • Similarly, “M104Q3” will switch to RS485 output, and “M104Q0” will switch back to the spindle output
  • If you ever want to check which output is currently being controlled in the console, you can send the “$spindles” command which will list all the options and which one is currently selected

Knowing all this, you can go into the EEPROM to change your selections for the Default Spindle, Spindle 1, 2, etc. to match how you tend to use your CNC. Then, you can use the dropdown in gSender or the g-code commands to switch outputs when you need to. Ensure that you only turn on ‘Laser Mode’ AFTER you switch over to the laser output, as well as turn off ‘Laser Mode’ BEFORE you switch back to any other output, otherwise you’ll see an error.

If you run into an issue where switching between outputs gets stuck, this can be fixed by power-cycling the board.

Laser Configuration

The SLB is set up to work with the LaserBeam by default, so if you have another laser diode you might need to configure the default settings based on your manufacturer’s specifications.

For all lasers, if you’re using gSender:

  • $741 and 742 now allow the SLB to store the X and Y offset values from the spindle to the laser so that the offset can be applied when the laser output is selected

For other 3rd party lasers (remember to power-cycle the board for certain settings to take effect):

  • $730 Maximum laser power = whatever max laser power your laser calls for
  • $731 Minimum laser power = typically 0
  • $733 Laser PWM frequency = can go to a theoretical max of 100kHz, check your diode manufacturer’s site to see if they specify a frequency range and try to set it to the higher-end of the range for best results
  • $734 Laser PWM off value = typically 0%
  • $735 Laser PWM min value = typically 0%
  • $736 Laser PWM max value = typically 100%
  • $743 Invert laser signals: typically Laser enable = off, Laser PWM = off

At this point, you should be able to use commands to power your laser on and off and vary its power. Optionally you should be able to use a multimeter to check that your PWM output can go between around 1V and 4.5V. If not, double check your wiring and settings again.

Action Buttons

With the SLB you can set up three customizable buttons to help control your CNC however you prefer. These actions can be something simple like Starting or Pausing a cutting job, toggling a signal to an IOT relay, or even custom g-code for probing, or moving the cutting head backwards once you’ve finished a job. The pins only need simple buttons that can handle a digital signal to work.

By default, the Action buttons have been set up so that 1 is Resume, 2 is Pause, and 3 is Stop. There is the full list of premade actions like this that you can choose from such as:

  • Resume running g-code (uses cycle start ‘~’)
  • Pause movement (uses hold ‘!’)
  • Parking Pause
  • Stop movement (uses halt ‘0x18’)
  • Toggle on/off the Spindle while paused (similar to M3/M5, uses ‘0x9E’)
  • Toggle on/off Flood (similar to M8/M9, uses ‘0xA0’)
  • Toggle on/off Mist (similar to M7/M9, uses ‘0xA1’)

or you can run your own custom ‘macro’ g-code. Here are some examples of macros some users have set up (Careful! We can’t guarantee this g-code will work correctly for your setup or possibly break things so use at your own risk):

  • Home all axes: $H
  • Zero XYZ to current location: G10 L20 P1 X0 Y0 Z0
  • Tweak Z-zero down 0.1mm: G10 L20 P1 Z0.1
  • Park the CNC away from the job: G91 G21 G0 X400 Y400
  • Return to the cutting area (XY0 point): G90 G21 G0 X0 Y0

The buttons are customized in the SLBs EEPROM settings, using the Firmware section of either gSender or ioSender. Look for settings $450-452 to select one of the actions from the premade list, or select the first “Macro” option and type in your own g-code string to execute in settings $450-452.

Example Setup

Some find that it’s nice to have “Goto XY0” and “move to back corner” macros programmed into the SLB buttons. Way easier to just hit the button at the end of a carve to move out of the way and then jump back to 0 when you’re ready to load the next piece. This example has Shop Vac control using an IOT Relay by pressing button 1, then button 2 brings the CNC to the previous zero point and button 3 moves it out of the way.

$450 Button 1 Action: Flood Toggle
$451 Button 2 Action: Macro
$452 Button 3 Action: Macro
$454 Button 2 Macro (Go to ZUP, X0 Y0): G53 G21 G0 Z-1|G0 X0 Y0
$455 Button 3 Macro (Go to ZUP, XY to the back right. Need to validate your travel limits): G53 G21 G0 Z-1|G53 G21 G0 X805.000 Y850.000

If you need help making your own custom macro, you can look at gSender’s ‘Console’ tab when you press different buttons to see what’s happening behind the scenes and get some inspiration. Each macro can hold up to 127 characters, can run multiple lines using ‘|’ for a line break, and runs any vanilla g-code but no math operations.

There are also a handful of more advanced premade actions such as:

  • Toggle on/off Probe Connected
  • Toggle on/off Optional Stops
    • When enabled, M1 commands act like pauses just like M0 commands
    • This helps test a file. If you insert M1 commands at certain checkpoints in your g-code, you can pause at those checkpoints while this is enabled, then disable ‘optional stops’ to then run the job as normal
  • Toggle on/off ‘Single Block Mode’

Accessory Outputs

This is where you can get fancy; leveling up your CNC by controlling more accessories to create your own custom setup. Control IOT relays, power relays or solenoids, switch on even more LED strips, and more! This takes the form of 5 plugs: Flood, Switch 1 and 2, and Auxiliary Power 1 and 2 (going left-to-right, ‘+’ then ‘-’). These are all 2-pin plugs that either output a voltage or can switch power through them like a low-power relay.

Flood

If you’ve used a ‘Coolant’ output previously (our LongBoard had one), this 5V output still serves the same function. Simply turn the digital signal on or off using M8 and M9 commands, manually, in g-code using your post-processor, or using your g-code sender’s start/end g-code code blocks.

This output is commonly used to automatically control a vacuum or router to turn on/off at the start/end of a job using an IOT Relay. It also can be used for any other purpose with any component that accepts a 5V 40mA digital signal.

Read more about setting up an IOT Relay here: https://resources.sienci.com/view/lmk2-automated-relay/

Switch & Aux Power

These outputs are far more powerful and customizable than Flood:

  • Switch 1 and Switch 2 outputs are like electrical switches that you can use to ‘switch on’ any external circuits up to 24V 1A. This means you’ll need to provide an additional power supply separately to the circuit. Think of these like a mini version of a relay, known as a MOSFET.

 

  • Auxiliary Power outputs 1 and 2 can be used to provide 24V to any powered accessory like a relay, SSR, solenoid for a mister or ATC, or LED strip; up to 250mA per plug. This can be more convenient for powering less power-hungry components since the power comes straight from the SLB. It also makes more sense if you plan to then use an SSR to switch an air pump, dust collector motor, or spindle water cooling pump on and off.

As opposed to the ‘Flood’ output which is controlled with M8 and M9, you can also customize what M commands will turn each of these outputs on and off in EEPROM. If you go to the ‘Firmware’ tool, you’ll see that $456-459 give you 4 options to choose from:

  • Spindle/Laser Enable (M3/M4): turns the output on with M3 or M4, and off with M5
  • Mist Enable (M7): turns on/off with M7/M9
  • Flood Enable (M8): turns on/off with M8/M9
  • M62-M65 Only: use this if you don’t want the output to be controlled by the common commands used by the other options. Instead, the output can only be controlled by its specialized M command which is always available to use. This also gives greater customization:
    • Turns on/off with M62/63, but waits in line before running
    • Turns on/off immediately with M64/65
    • To select which output to control, refer to the picture below:
    • For example, to turn on ‘Switch 1’ immediately, we’d send the command “M64 P3
    • Read more here: https://linuxcnc.org/docs/html/gcode/m-code.html#mcode:m62-m65

Similar to the ‘Flood’ output, you’ll now be able to control ‘Switch’ and ‘AuxPwr’ outputs either manually, in g-code using your post-processor, or using your g-code sender’s start/end g-code code blocks.

Note: The ‘Auxiliary Power’ outputs are always providing power by default, so when it’s ‘turning on’ it’s actually enabling the ‘ground’ to allow current to flow. This means you can’t typically use it to drive logic, only to drive current components.

Spindle/RS485

As mentioned in the Laser section above, we designed the SLB for a wide range of CNCers, like those with both a VFD and laser diode accessory on their CNC. Our solution was a PWM laser output, PWM spindle output, and an output for Modbus over RS485 – allowing for control of up to 3 accessories without rewiring and with settings stored independently for each.

The Laser wiring is covered above. For Spindles there’s a 5-pin connector for simple signals like GND, PWM, direction control, enable signal, and SaS (left-to-right, all 5V), and a 4-pin connector for RS485 (B, A, 5V, GND).

Both flavours of Spindle signals are there to give you the 2 most popular options for talking to your spindles VFD. The simple signals tend to have easier setup with less fuss, meanwhile RS485 requires more work but provides better, two-way communication during cutting. Note that currently the SLB doesn’t support SaS (‘Spindle-at-Speed’, a signal that some VFDs can send back to the board so that the board can wait for the spindle to speed up before starting the cutting process).

Whichever option you choose, you’ll want to check that you’re wired up correctly and have the right settings. All VFDs look different but generally you’ll need to start by looking for the inputs in the manual or on the unit itself for things like ‘A’, ‘B’, ‘PWM’, ‘DIR’, ‘EN’, and ‘GND’. If using RS485 and the VDF is far away, you’ll want the A and B cables to be twisted together for added EMI resilience. Some VFDs don’t accept 5V PWM in which case if you have difficulty setting up RS485 you can pick up a ‘PWM to 0-10V Analog signal converter’ and use that, typically denoted ‘0-10V’.

The typical settings if you want the simple signals as default will include:

  • $9 PWM Signal: Enable=on, RPM controls spindle enable signal=off
  • $16 Invert spindle signals: Spindle enable=on, Spindle direction=on, PWM=on
  • $30 Maximum spindle speed=30000 RPM
  • $31 Minimum spindle speed=10000 RPM
  • $32 Mode of operation=Normal
  • $33 Spindle PWM frequency=1000 Hz
  • $34 Spindle PWM off value=0%
  • $35 Spindle PWM min value=0%
  • $36 Spindle PWM max value=100%
  • $395 Default spindle: SLB_SPINDLE
  • $520 Spindle 0 tool number start=0
  • $666 Using Add-ons not used yet

Verify these, then power-cycle your board to make sure the changes take effect. If you’re rather wanting to set up RS485 as default, then you’ll want to change $395 to one of the other options.

  • The list of already supported VFDs is the Huanyang v1, Huanyang P2A, Yalang YL620, H-100, and GS20 as noted in https://github.com/grblHAL/Plugins_spindle/tree/master/vfd. That doesn’t mean selecting these is guaranteed to work, rather that they tend to work for those generic models.
  • If your VFD isn’t listed or the other defaults aren’t working for you, you can select “MODVFD” to setup your own custom RS485 settings. Disconnect and reconnect in gSender to see these new settings. They’ll span $462-481 and include registers, command words, addresses, all values that you’ll have to consult your VFD manual for.
    Remember that your VFD will also require some setup through its own button interface or sometimes require jumpers to be placed correctly
  • Remember you can set up more than one option, for example you can leave the Laser as your default ($395), set the simple Spindle as your second option ($511), then RS485 as your third ($512)
  • In Step 4 of the Laser section, it explains the process of switching between output options

Example Setup

A Huanyang v1 VFD set up as “Spindle 1” (the secondary option):

  • $511=Huanyang v1 (once set, the SLB is power-cycled)
  • $477=2
  • On the VFD interface, we’ll have to set some values. Power on the VFD and get acquainted with navigation. Press ‘PRGM’ to enter the programming menu. Use ‘SHIFT’ to cycle through the digits and the ‘up’ and ‘down’ arrows to select what ‘PD’ you want to change. Once you’ve got one, press ‘SET’, followed by the up and down arrows to edit the value. Save the new value by pressing ‘SET’ again and it’ll return you back to the ‘PD’ menu. In total we’ll set:
  • Now setup is complete!

Find more information for VFD setup at https://wiki.printnc.info/en/electronics/vfd/config or https://github.com/grblHAL/Plugins_spindle/blob/master/vfd/

Other Uses

Modbus over RS485 is also a much more ubiquitous communication protocol used in many industries for reliable and EMI resilient communication between modules. There are likely instances of boards that support 0-10V, pumps, relays, and more which can all be controlled over RS485 – go out and explore!

TLS

Short for “Tool Length Sensor”, this is a very common accessory for slightly more fancy CNC routers. Mounted somewhere the CNC can reach, they’re used as a reliable place to go to re-zero the Z-axis on jobs that require multiple tools/ tool changes. This is also handy when your original Z zero is lost because the material is cut away, a perk over a standard Touch Plate. TLSs are typically NC (normally closed) switches so that if the wire gets cut the machine doesn’t crash into the sensor. The TLS output on the SLB also provides 5V power for powered TLSs, the wire order being power, signal, gnd (top-to-bottom).

If your TLS is wired correctly, you should be able to press it and see the “TLS” status light toggle on or off (either is fine, on is NO, off is NC). If you’re unsure with your wiring or your TLS has more than 3 wires, you can use a multimeter and check any two wires until you find a set that contact or open when pressed and those will be the ones you use for the signal and gnd; the third might be power. If you have 4 wires your TLS might have 2 switches, one that triggers when pressed down just a bit then the next one pressed in case of over travel. This would typically trigger an E-stop or Pause but you only really have to use the one that triggers first.

Lastly, check in your g-code sender if the TLS signal is set up correctly. This signal is shared with the touch plate, so activating either of them should be recognized. The SLBs defaults expect NO to not cause confusion for non-TLS owners. If the signal is on and only turns off when the TLS is pressed, then go to the $668 firmware setting and toggle it to the opposite of what it was set to:

Rotary Axis

The SLB will still support anyone who already has a ‘switching’ rotary axis setup, like the A/Y Switch we launched our Vortex Rotary Axis with, in the same way that older grbl boards do. We wanted to preserve this functionality for easier backward-compatibility with older setups, plus making the switch to full 4-axis cutting has the extra cost of an external driver and some wiring despite some of the benefits that it offers.

The main improvements to how SLB handles rotary switching is:

  • The A-axis values for steps/deg, maximum speed, and acceleration ($103, 113, and 123) are now stored directly on the SLB instead of relying on gSender settings
  • This will help maintain correct values across computers, since every time gSender is switched into Rotary mode it can just swap the A-axis values and the Y-axis values, then swap them back once you leave rotary mode
  • Hard and soft limits can now be left on while in rotary mode
  • This is new from grblHAL, where when the maximum travel of any axis is set to 0, it’s able to rotate infinitely while leaving hard and soft limits on for all other axes

For anyone who isn’t already familiar, ‘rotary switch’ setups were created so that people with typical 3-axis CNCs (X, Y, Z), could move on to more advanced rotary carving (X, Z, A) by swapping or mechanically switching Y-axis movements and limit switches over to an A-axis since typical grbl boards can’t run more than 3 axes at a time. This setup also has some other requirements:

  • A g-code sender that can convert and display rotary axis files, and ideally store and swap grbl settings between the Y and A-axes (gSender accomplishes this)
  • A CNC that’s set up to hold itself in place in the Y-axis while cutting with the A-axis, either using clamps or in the case of the LongMill it relies on the friction and mechanical advantage in its leadscrews

You can read more about how this control works and our approach here: https://resources.sienci.com/view/vx-first-project/

4th/A-axis

Available if you’re looking to set up a fourth, fully independent cutting axis. This rotary “A-axis” is set up to run along the width/X-axis of your CNC and also has an independent limit switch hookup. Advantages over ‘rotary switch’ setups are:

  • The Y-axis motors can stay powered while cutting, meaning they can hold their position for more accurate cutting and not rely on lead screw friction clamping the CNCs Y-axis
  • There’s no ‘changeover’ process which saves you time and mistakes since you don’t need to swap back to realign the rotary, or bother with toggling switches or changing settings
  • If you’re ready to dive in, you can generate much more complex and efficient cuts using all 4 axes of movement and creating even more impressive projects

This takes the form of two independent plugs labeled for an “A-axis”, where you can plug in your rotary axis limit switch and external motor driver. Any motor driver rated for the stepper motor you’re planning to use and can be driven by Step/Dir common-cathode arranged signals will work. If your limit switch doesn’t have a JST connector, you can also use the terminal connector ‘Limits’ A-axis output.

This is the most complex to set up, not just because of the custom wiring involved but because we also currently don’t have many recommendations when it comes to making 4th axis toolpaths easily or without having to pay for expensive options. There are some things that we’ve tried to work well though like Snapmaker’s Luban software. We’ll update this section with more once we have more to recommend.We’ll also look into offering a pre-made wiring loom and driver kit to purchase in the future. For now most motor drivers on the market will do like a DM542 or TB6600 but use your best judgement and be mindful of who you buy from.

Driver Wiring

For wiring up the 4th axis driver, you’ll need to provide it with an external power source as well as connect the drivers signal pins to the SLB. The exact connector is a “Female IDC Flat Ribbon Cable Connector, 8 pins, 2 Row, 2.54mm Pitch”, but you can also realistically use any 2.54mm spaced connector cables.

Below we’ve illustrated two examples that you can use to better understand how to create your own setup. One shows the TB6600 driver and uses the IDC connector with all the available connections running to the SLB. The other has the DM542 driver hooked up with single-wires and bridging between the ground pins. Either hookup method is fine no matter the driver, just note that different drivers will have their outputs in different orders. The drivers will also require you to use an appropriate power supply, manually configure the DIP switches for current or holding current, as well as set the microstepping (most times we’d recommend 1/8th).

  • D+ goes to DIR+
  • S+ goes to STEP+ or PUL+
  • 5V goes to EN+ or ENA+
  • GD goes to the Driver ground pins like DIR-, PUL-, etc.
  • AL- likely won’t be supported by your driver, but is an active-low alarm signal for the motor driver to tell the board if something has gone wrong similar to the E-stop


Once the wiring is complete, in your g-code sender check that the rotary is moving at the speed, distance, and direction you’d expect and that the limit switch is working if you have one. If there’s anything wrong you’ll want to check your typical A-axis settings for movement ($2, 3, 4, 37, 103, 113, 123, 133, and 376) and for homing/limits ($5, 18, 23, 44, 45, and 46). Note that some settings like $143, 153, 183, 193, 203, 213, 223, 338, 339 won’t have any effect on your setup since the 4th axis is an external stepper motor driver.

Cut & Experiment

If you’re happy that your rotary is turning successfully, feel free to try out some sample 4th axis files we made to test how your setup is working. Some things to keep in mind to carve these sample files successfully:

If you’re ever running into a situation where clicking “Zero A” in gSender sets the value to 0.01 or 0.02 instead of zero, this is a known bug with grbl and grblHAL where the location doesn’t get reported back from the machine correctly, but the location is definitely being set to zero. This can be a little stressful to see but unfortunately we don’t have the ability to fix it ourselves.

Tips to set up Luban for A-axis CAM:

  • Select “link” as the carve option inside Luban, otherwise you’ll just get 3 axis movements
  • Remember to define the tool geometry
  • After you export the code, remove the default header since it contains a bunch of Snapmaker specific M-codes that grbl doesn’t support
  • Check the first Z-movement to make sure there are no unexpected plunges
  • Do a find and replace such that X->Y; Y->X; B->A. The rotary on the Snapmaker machine is lined up along the Y-axis, so such replacements are needed.

Troubleshooting

Troubleshooting Lights

There are several other small ‘status’ lights you’ll notice as you look around on the SLB. We put these in place to help with general troubleshooting anytime you’re not getting the behaviour you expect. These lights directly reflect the hardware they’re attached to, allowing you to check the raw hardware connections before they’re processed by the SLBs firmware or your g-code sender. This means they’re not able to be inverted or changed, they’ll always have the same behaviour.

This is a list of all the lights and how they function:


NOTE: only LEDs set up for ‘inputs’ like limit switches and E-stop buttons need the hardware to be hooked up to confirm an incoming signal. Otherwise, LEDs for ‘outputs’ like PWM or motor signals will still turn on and off without needing to hook up the components.

Section#Why is it lit up?TypeColour
Power1E-stop pressed or power disruptionInRed
25V power is working on the boardInGreen
33.3V power is working on the boardInGreen
Communication4RS485 TX signals are being sentOutGreen
5RS485 RX signals are being sentInRed
6USB connection is activeComGreen
7CAN bus TX signals are being sentOutGreen
8CAN bus RX signals are being sentInRed
9Ethernet is connected at the standard speed
*Side of board where plug goes in
OutGreen
10Ethernet data is being sent/received (blinking)
*Side of board where plug goes in
ComYellow
Accessory Outputs11Switch 1 output is activeOutGreen
12Switch 2 output is activeOutGreen
13Aux power 1 output is activeOutGreen
14Aux power 2 output is activeOutGreen
Spindle/RS48515Laser PWM output pin is sending signals
Note: this is not dependant on $32 or gSender being in laser mode, this relies on the active ‘spindle’ output being “SLB_LASER” and there being a specified power output while M3 or M4 are on, see the laser section to read about this
OutRed
16Spindle PWM output pin is sending signals
Note: checks and setup for this is the same as for the laser PWM output above, also only one of these lights will be able to be on at one time since only one ‘spindle’ can be active at once
OutWhite
Limit Switches17Z-axis limit switch is closedInYellow
18Y2-axis limit switch is closedInYellow
19Y1-axis limit switch is closedInYellow
20X-axis limit switch is closedInYellow
Rotary21A-axis limit switch is closedInYellow
22A-axis motor is reaching its stall pointOutRed
23A-axis motor is enabled
Note: depending on what external motor driver you wire up, this light might be inverted and instead light up for ‘disabled’
OutGreen
XYZA Axis Enabled24Z-axis motor is enabledOutGreen
25Y2-axis motor is enabledOutGreen
26Y1-axis motor is enabledOutGreen
27X-axis motor is enabled
Note: all motors will typically light as ‘enabled’ for any movement, unless they’re constantly lit from keeping them energized using $37
OutGreen
XYZA Axis Stalled
28Z-axis motor is reaching its stall pointOutRed
29Y2-axis motor is reaching its stall pointOutRed
30Y1-axis motor is reaching its stall pointOutRed
31X-axis motor is reaching its stall pointOutRed
Main LED Strip32Flood command (M8) is onOutBlue
33Mist command (M7) is onOutBlue
34Door input signal is closedInYellow
35Tool length sensor signal is closedInYellow
36Probe input signal is closedInYellow
37Action button 1 is being pressedInYellow
38Action button 2 is being pressedInYellow
39Action button 3 is being pressedInYellow
40E-stop is pressed (circuit open)InRed

Setup

The SLB is set up to be automatically compatible with most LongMills by default. If you’re finding this isn’t the case then generally the best approach is to send the “$RST=$” command in the ‘Console’ tab then use the power switch on the back of the board to turn it off then back on again. This will reset your board back to the default values and then you can continue further troubleshooting from there.

  • Firmware settings look funny, don’t have descriptions, changing settings causes unexpected changes to happen: if you’re using gSender, check that you’ve selected ‘grblHAL’ as the firmware when you connect to your machine, not ‘grbl’.
  • Pressing to ‘Zero’ axes isn’t working: ensure “work coordinate offset” is enabled for $10 or that $10 = 511
  • Probing isn’t passing continuity check: ensure the yellow ‘PRB’ light is coming on, if isn’t then check your touch plate wiring, and if it is then ensure “pin state” is enabled for $10 or that $10 = 511
  • Dual Y-axes drifting out of sync: for grblHAL there is a new solution to this which is $37. This is better than the old $1=255 solution because $37 can hold individual motors rather than holding all of them. If you’d like to turn it on to keep your dual Y-axes in sync then turn it on for ‘Y’ or set $37=2.
  • CNC losing location during goto, outlining, probing, or running a job: all of these situations use high-speed ‘G0’ movements where the motors might not be able to keep up if your machine is not mechanically sound. First, confirm this is the problem by manually jogging your machine using the jog arrows and slowly increasing the jogging ‘Speed’ value until you notice any of the axes moving intermittently. Since your machine should be able to handle these speeds, it’s likely there’s some components that you’ve assembled too loose or too tight or misaligned. Check if you can turn your lead screws by hand, if your belts or v-wheels are too tight, if you have a coupler that’s too loose. These will all be the same components you should be looking at during regular machine maintenance. If you still can’t manage to get your machine to run at full speed the other option is to consider lowering the SLBs maximum speed with settings 110, 111, and 112 and maximum accelerations with settings 120, 121, and 122 until the problem goes away.
  • Overriding speed, spindle, or laser doesn’t seem to work on shorter files: this is an outlying grblHAL issue which should only occur on shorter files. If you want to still override, you should still have the option to set the override before starting the job.
  • Homing gets stuck or disconnects: try reducing the homing “seek rate” (25) or increasing the “debounce delay” (26) settings. Depending on your setup or sensors, the default values might be a bit too aggressive.
  • Issues with Independant A-axis homing or hard limits: earlier versions of SLB firmware might exhibit difficulties with this. In this case you’ll have to disable hard limits when doing 4-axis cutting, and if you want to do independent A-axis homing you’ll want to temporarily add it to $44 or 45, then run the independent homing cycle using the button in gSender or sending “$HA”, then remove the A-axis again from $44 or 45.
  • Other unexpected behaviours: sometimes there might be a case where your SLB isn’t doing what you’d expect it to do but you don’t see the solution in our resources. In these cases feel free to report it to us so we can try to investigate it further, but otherwise you might find that the old adage may still hold true where turning it off and back on again with the main power switch on the back resolves your issue.

Bad E-stop

The E-stop behaviour should be such that all 3 Action buttons light up the Action button lights on the SLB, and the main E-stop button should be illuminated. Once the E-stop button is pressed it should unlight and stay latched closed – this will cause the motors controlled by the SLB to lose power and an Alarm 10 to appear in your g-code sender and halt all motions. Once you untwist the E-stop button it should pop back up and become lit again, then you should be able to clear the Alarm and resume operation. If you experience anything else:

  • E-stop light stays on even after the button is pressed, or SLB doesn’t seem to respond to E-stop being pressed: there’s a backup option on the board which is able to act as the E-stop and it looks like two metal pins sticking out near the back of the board where you plug the power in. Once you find these two pins, grab anything conductive like a flat head screwdriver and insert it between the two pins that are sticking up to ‘connect’ them together electrically. This should activate the E-stop if you weren’t able to activate it before, or if your problem was that it was never deactivating then keep conducting the pins while turning the toggle switch on the board off then back on again and you should see the red lights for the E-stop turn off. If this is successful then you’ve either got a loose E-stop wire (check your connections) or your E-stop button is broken. If neither of these work then your board is likely defective and you can contact us to replace it.
  • E-stop doesn’t latch closed or doesn’t untwist or move: your E-stop button is likely broken and we can replace it if it’s under warranty
  • Unlocking after E-stop press freezes up machine: this is a bug we’ve found to exist in the 5.0.3 version of the SLBs firmware. We’ve implemented a solution in a new firmware version that you should upgrade to since this behaviour can be bothersome. See the Firmware Flashing section for more.

Alarms & Errors

  • Supposed to have multiple Alarms but only one showed up OR after clearing E-stop Alarm there’s no message to remind you to home: this is a current flaw in how grblHAL handles Alarms since they can stack on top of each other but can’t be dismissed selectively so all of them get cleared at once. In these situations just be mindful of what’s happened so, for instance, you can still remember to home your machine on startup.
  • Alarm 3 or 10 take a couple tries to unlock: in the newer versions of gSender (1.4.6 onward) this should be fixed where unlocking just takes some time
  • Alarm 10 on startup: you should be able to “Click to Unlock Machine” in gSender. If this doesn’t work, you can try to:
    • Turn on the board without the E-stop doing anything and the big LED should be Red as well as the small light next to “Halt” on the board which is near the big LED.
    • Rotate to unlock the E-stop, this should turn the smaller red “Halt” light off.
    • Click the Unlock button in gSender.
    • If your machine doesn’t change to ‘Idle’ (white status light), turn the board off then on again and repeat this process until it goes through
  • Alarm 10 when E-stop not pressed: the E-stop signal needs to be safe so it’s designed to be very sensitive. Check if you have any loose wires or have conductive material in contact with the underside circuitry of the E-stop unit, any of these cases could be causing it to trigger unexpectedly
  • Alarm 14 unexpectedly or during spindle setup: this would point to an error in how you’ve set up your spindle, either in the wiring, how you’ve set up the SLB EEPROM values, or how you’ve set up the PD values on your VFD. Double-check that everything is as it should be since if there’s a misalignment in any way then the controller won’t receive proper responses and send an Alarm 14 to protect the machine
  • Error 8 or 9 after hitting E-stop: the typical routine after hitting the E-stop will be to first ‘reset’ the board and then ‘unlock’ it, you’ll get either of these errors if a step in this process is missed
  • Error 10 when changing firmware settings: you’re likely trying to turn on a setting that first requires homing ($22) to be enabled before the other setting can be enabled
  • Error 24 in gSender: check that you are not loading up a regular file while in Laser mode

See the meaning of all Alarms here: https://github.com/grblHAL/core/blob/master/alarms.h or type “$EAG” into the console

Other

  • If there’s a problem when you “Import Settings” from an older Firmware version to a new one in gSender’s Firmware Tool, this is expected. Different versions of the SLB have different EEPROM outputs that won’t be compatible with each other, so for the duration of Beta testing you’ll just have to note down your changed settings manually and revert them manually on new Firmware versions
  • If you change a firmware setting and notice that it isn’t taking effect, check if the setting description mentions that you need to “hard reset” your board for the changes to take effect. Some settings need this, and this just means you’ll need to turn your board off and back on again before the change takes effect.
  • If the gSender screen ever goes black, please let us know what happened leading up till that point, then use the toolbar to select ‘View’ -> ‘Reload’, to get refreshed and the screen showing once again
  • If you hear the SLB ‘clicking’ when you change EEPROM settings, this is normal
  • If you’re experiencing any issues with SLB ‘Disconnection’ while running your CNC, try switching from USB over to Ethernet

Tools

Some nice tools to have on hand for troubleshooting are:

  • A small shorting wire, header pins, or something metal to bridge contact
  • Tiny flathead screwdriver to rewire terminal connectors
  • Multimeter
  • Extra limit switch

Enclosure Mounting

You can mount your SLB however you like. Some factors to consider might be your machine setup, computer location, if you have an enclosure, or if you want to access other things or see the pretty lights on the board. The most versatile way is the 4 holes in the SLBs enclosure which will allow you to mount it to any flat surface, but if you have a LongMill MK2 you also have the option to mount it directly to your Y-axis rail (not compatible with MK1).

Some of the extra tools you’ll need:

  • Bolting to MK2 Rail – M5 Allen wrench, plus grab the hardware and bracket provided with the SLB
  • Screw Down / Flat Mounting – 2 to 4 wood screws (minimum size #4 or ¾” and min length of ½”) plus the necessary screwdriver or bit driver

Bolt to Rail

For rail mounting, slide the two T-nuts onto the track above the left Y-rail and loosely thread on the two M5 bolts. You may need to remove your limit switch on MK2’s temporarily to enable the nuts to be slid into the rail.

 

Insert the sheet metal bracket into the slot at the back of the SLB enclosure. The bracket will feel loose for now so you’ll want to hold it in place until the next step.

 

Place the bracket-enclosure assembly onto the Y-rail and slide the two screws into the slots in the bracket, then tighten the two screws with an Allen key to lock the entire assembly onto the rail.

Screw Down

You can mount your SLB flat on your wasteboard next to your machine, or even on the side or at the back of your workstation. You can also hang the SLB vertically. The enclosure has been designed with reasonable consideration for dust penetration and vibration, but if you are a more cautious person you can feel free to mount the box further away from your CNC.

When placing your SLB on its own or among other CNC control electronics, consider that most wires are designed to route out the backside of the enclosure with the exception of a handful of more typically accessible plugs on its front like the E-stop and USB.

 

It’s easy to use the enclosure as a template to mark and drill the holes. The holes are 4.5mm large, spaced 45mm from each other and 230mm from the opposite pair. They’re not perfectly centered on the box but close to it.

You can use whatever bolt or screw type you like but the easiest approach is to use a minimum of 2 countersunk wood screws on diagonal holes from size #4-#8 and a minimum length of ½”. You might have to remove some of the plugs on the ends to access the holes when you screw down the enclosure.

Firmware Flashing

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: the current, most up-to-date available

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!

Technical Reference

Connectors List

The SuperLongBoard comes with many inputs and outputs that are easy to wire in for CNC customization and accessory hookup by using pluggable terminal connectors. There are also a handful of other connectors used that are common and widely available for purchase. Below lists all connectors used on the board (male) with example links:

If you don’t happen to have these specific connectors on hand there are also common ‘hookup wires’ that ship with many electronics or Arduino kits that are 2.54mm pitch that you could also use to make many of the above connections.

Current Unused Ports

Right now there are a handful of plugs and pins on the SLB that technically don’t do anything useful yet which is why there’s nothing in the manual on it. The idea was that by adding in the hardware now, over the next year we could keep working on testing and implementing firmware that would continue making more features available to all SLB owners without having to buy a new board. We’re very excited about it but ultimately can’t make any guarantees on what will and won’t ultimately work, so that’s why no features have been promised yet outside of what’s already been tested and delivered. These ports include the: Y2 Limit Switch, SaS Spindle pin, Pendant, SD card, Door, ADC, 40-pin AUX COMM Header, and AUX IO Header.

If you’re still interested in trying these out without current support or documentation, we’ll soon have all our board designs and firmware code available online for reference and modification so you can feel free to try your own stuff or contribute back if you’d like!