Electronics Build Guide BTT SKR Pico

This guide provides step-by-step instructions for building the electronic components of a CNC foam cutter. The BTT (BigTreeTech) SKR Pico board, which features the Raspberry Pi RP2040 32-bit processor, is commonly used in Voron 3D printers. I now use this microcontroller on my CNC foam cutter, running the grblHAL firmware.

Thanks to advancements in 3D printing, the electronics for a foam cutter are now affordable and easy to source

SKR Pico Microcontroller

SKR Pico 32-bit

The SKR Pico microcontroller offers several advantages for CNC foam cutting

  • Powerful and Efficient Processing Powerful and Efficient ProcessingPowerful and Efficient ProcessingThe SKR Pico uses the RP2040, a 32-bit dual-core ARM Cortex-M0+ processor, providing sufficient processing power for precise, real-time control over CNC movements.
  • Compact Size The SKR Pico is a small, compact board, making it ideal for space-constrained setups. Its minimal footprint allows for easier integration into the CNC foam cutter’s electronics compartment without sacrificing performance.
  • Cost-Effective The SKR Pico is relatively affordable compared to other high-performance CNC controllers. The embedded TMC2209 stepper drivers help keep the cost down. It can be cheaper than an 8-bit MKS Gen L board.
  • 12 or 24-volt Operation allows the use of hot wires longer than 39 inches or 1 meter
  • Larger G-Code File Handling: The increased memory available in 32-bit microcontrollers allows grblHAL to handle larger and more complex G-code files without running into memory limitations. This is particularly useful for large CNC jobs that require a lot of toolpath data.
  • Configuration: The driver current and microstepping can be configured on the settings page of GRBL Hotwire. There is no need to fiddle with trim pots and pin jumpers.

Are there any disadvantages if you choose the BTT SKR Pico

  • Embedded Drivers. Although this makes for a very cost-effective board, if one of the drivers fails, the whole board will need to be replaced.

Build Guide

Please make sure you have used the recommended parts from the parts list. If you use alternatives, this guide may not work.

Please don’t install the electronics onto the foam cutter until it’s working on the bench. After the bench test, you can do the final calibration and dry run once installed on the foam cutter.  The foam cutter will require longer wires than your bench testing, which is usually the source of problems if it doesn’t work correctly when installed  

Please note that Homing can’t be tested on the bench. It’s only possible after installation on the foam cutter with all the switches wired.

Step 1 – Connect the board

Connect the board to your computer running Windows 10 or 11.  I can’t confirm if it will run on older versions of Windows because I don’t use them anymore.

If you can’t detect the board, then ensure you have the jumper for USB power bridged.

skr pico jumper settings

Step 2 – Firmware

Download the firmware and software from here and unzip them to your computer. In the location, you unzipped the download, then unzip grblHAL.zip

grblhal zip file
Unzip grblHAL.zip

Unzip grblHAL.zip to a suitable location. This will save the file

grblhal.uf2
grblHAL.uf2

When you connect the board, you should see an extra drive. Just copy the grbHAL.uf2 onto the drive, and the board will reboot. Remove the jumpers.

Default Settings
IDValueDescription
$010.0step pulse usec
$1255step idle delay msec
$20step port invert mask:
$36dir port invert mask:
$415step enable invert bool
$50limit pins invert bool
$10383status report mask
$130report inches bool
$200soft limits bool
$210hard limits bool
$220homing cycle bool
$2315homing dir invert mask
$2425.0homing feed mm/min
$25500.0homing seek mm/min
$26250homing debounce msec
$271.000homing pull-off mm
$1002132.000x step/mm
$1012132.000y step/mm
$1022132.000z step/mm
$1032132.000a step/mm
$110400.000x max rate mm/min
$111400.000y max rate mm/min
$112400.000z max rate mm/min
$113400.000a max rate mm/min
$12010.000x accel mm/sec^2
$12110.000y accel mm/sec^2
$12210.000z accel mm/sec^2
$12310.000a accel mm/sec^2
$130600.000x max travel mm
$131300.000y max travel mm
$132300.000z max travel mm
$133600.000a max travel mm
$140500x-axis current mAh
$141500y-axis current mAh
$142500z-axis current mAh
$143500a-axis current mAh
$15016x-axis microsteps
$15116y-axis microsteps
$15216z-axis microsteps
$15316a-axis microsteps

Step 3 – Software

From the downloaded file, unzip grblHotwire.zip to a folder. Then run the setup.exe 

This will install the software so that we can complete the rest of the bench testing.

In the software, if your COM port is not selected, press ReScan and click Connect. You should see the image below. Your COM port may be different, but that’s OK.

If you see any numbers other than zero in the DRO, run the following command in the MDI dialogue box $RST=* This will clear any old settings in the EEPROM.

 Step 4 – Power Supply

The SKR Pico board can be powered by a 12- or 24-volt power supply. Ensure it is at least 150 Watts and set to the correct voltage for your country. Make sure you remove the USB and Firmware jumpers before powering on

Power Supply for the Hot Wire CNC Foam Cutter
Power Supply

Switch on your power supply and verify that the board is still functioning by connecting it to the GRBL Hotwire software.

Step 5 – MicroStepping

The SRK Pico firmware on this website uses 1/16th microstepping, which can be seen in settings $150-$153.

microstepping set to 1/16th
microstepping set to 1/16th

The firmware is preconfigured to use this setting with a 1.5mm pitch threaded rod. If you use a different microstepping, you will need to adjust the setting $100-$103 on the settings tab of the software.   The default setting is 2132 steps/mm

If you are using different leadscrews/threaded rods, then this will need to be recalculated. A good resource is https://blog.prusaprinters.org/calculator_3416/, which has Steps per millimetre – leadscrew driven systems, calculator

Step 6 – TMC 2209 Drivers

The drivers will support a maximum of 2 Amps with good cooling. The foam cutter doesn’t need powerful stepper motors because it does not drive a cutting bit into hard material like a router. The hot wire doesn’t touch the foam; it cuts my radiance, melting the foam away. So there is little load on the motors. I run at 0.9 Amp NEMA17 with the current set to 0.5 amps. I have made several projects with these settings, and I have never had any missed steps.

Step 7 – Setting the driver current

The current for the stepper motor drivers is set at $140-$143. Press the Enter key each time; otherwise, the setting won’t be applied. The default value is 0.5 amp. Make sure you don’t leave these values at 0.00 amps. Or full current is sent to the steppers, and they get very hot. I had this happen during testing. Set the current to match your stepper motors.

Step 8 – Stepper Motors

Power off the board and connect the stepper motors to the board with the cables/wires from the parts list. The Z stepper motor has two connections on the board; either can be used.

SKR Pico GRBLHAL 4 Axis connections
SKR Pico grblHAL 4 Axes connections

Power on the board and click Connect on GRBL Hotwire. The stepper motors will be difficult to turn by hand. This indicates they are working correctly.  Try using the jog buttons to see if the motors turn.

If the motors don’t turn on or are erratic, the connector wires/cables may be wired incorrectly. This has happened to a few guys. Follow this link on how to check stepper motor wire pairing https://www.youtube.com/watch?v=yzCKXei0pLU&t=445s

This video is quite old now and shows the old stepper driver location, but the method to check the wire pairing is still the same. So follow this to get your motors working if incorrect cables have been supplied

Step 9 – Cooling Fans

The stepper drivers do get warm when sending current to the motors. If you use motors rated at less than 1 amp, you may not need a cooling fan. But I would recommend using one anyway. Connect a 12 or 24-volt fan to the 12/24-volt supply. Do not use the FAN sockets, which are only for 3d printer firmware.

Step 10 – Foam Cutter Build

With the electronics tested and functioning properly, you can now confidently proceed with building the foam cutter. 

4 Axis Hot Wire CNC Foam Cutter

4 Axis Hot Wire CNC Foam Cutter

The ebook and videos explain the mechanical build in detail.  A final test of your build is to make sure you can turn the threaded rods or lead screws easily by hand. If they are hard to turn or bind, you will most likely damage the electronics.  If all is well, carry on with Step 11

Step 11- Foam Cutter Wiring

You will need to extend the stepper motor wires. Ensure you use a wire with the same or bigger gauge as the stepper motors.  If you intend to use Homing, you must use a shielded/screened cable for the switches.  You will have problems if you don’t.

If you’re using homing, connect the micro switch between the Normally Closed (NC) and Common terminals on the switch, and between the ground and signal pins on the relevant connector socket. It doesn’t matter which wire goes to ground or signal. External pull-up resistors aren’t necessary since they are built into the board

Step 12 – Do not enable homing

Make sure $22=0 in the settings tab.  Even if you are using homing, it needs to be disabled for testing the correct axis direction.

Step 13 – Test Axis Direction

Ensure the machine is powered off. Manually turn the threaded rods or lead screws to move each axis away from its starting position. Turn them slowly to avoid generating back EMF that could affect the control board. If possible, disconnect the motor before doing this

When you test the axis direction, if it goes the wrong direction towards a hard mechanical stop, you can ruin your flexible couplers.  I’ve done this a couple of times.

If you have disconnected them, reconnect your stepper motors and switch on the power.

Set the jog distance to 1mm and move each axis with the plus button, e.g. X+. The axis should move forward or up. If any of them are going in reverse, use the check box on the settings page to Invert Axis Direction.  After each change, disconnect and reconnect to make sure the setting has been saved.

Step 14 – Calibration Check

The firmware is pre-configured with a value of 1066 in settings $100-$103 for the steps/mm.  If you use different thread rods or lead screws that don’t have a pitch of 1.25mm. You will need to calculate a new value. A good resource is https://blog.prusaprinters.org/calculator_3416/

You need to ensure that when the g-code sends a command to move a set distance, the foam cutter moves that distance. For example, if the command was G1 X100, then the X carriage moves that distance and not 99 to 101mm  

Check my video https://www.youtube.com/watch?v=CHbdUzbDYh8&t=692s on how to check and adjust the steps/mm.

If you have used the same thread rods as I have, then I have found that the default values need no adjustment.  But check each axis is correct.

Step 15 – Homing (Optional)

The foam cutter works fine without using Homing with Limit Switches.  You can jog each axis to your chosen position and click the zero buttons to set your start position.

SKR Pico GRBLHAL 4 Axis connections
SKR Pico grblHAL 4 Axes connections

You can’t test Homing on the bench; it must be on the machine

The limit switches will prevent the axis from crashing into the end stops or going past the machine limits.  You can use software limits to prevent the machine from exceeding its travel.

The majority of questions people contact me about have issues with homing.  If you follow these guidelines, you shouldn’t

  1. You are using the latest firmware and software
  2.  You have used shielded/screened cables to connect your switches.
  3. The switches are wired NC(Normally closed)
  4. Only connect the Ground and Signal wires on the controller pins. Do not connect the 5-volt
  5. Ground the shield of the limit switch cable at the controller side only
  6. Before you enable homing with $22=9, check each axis moves in the correct direction when $22=0

I have a separate posting for troubleshooting CNC Homing https://rckeith.co.uk/troubleshooting-cnc-homing/

You can now allow homing by setting $22=9 (Note this is specific to the Pico) and $130-$133 to your maximum travel.

Once homing is enabled, check that the limit switch check boxes are not triggered. If one or more are then ensure $5=1 in the settings.

limit switch status

Trigger each switch by hand and ensure you can see the check box with a tick. If you can’t, then you have a wiring fault or wired the switches NO(Normally Open)

The Homing Cycle button will be red until a homing cycle is run. So click this button and watch each axis.  If the axis starts to move in the wrong direction, use the Invert Homing Direction check box to change the direction. Disconnect and reconnect to ensure the settings are applied.

You can stop the homing cycle immediately by pressing the space bar or clicking the reset button.

I only use 4 switches with soft limits for maximum travel ($130-133).  You can use 8 switches, but it adds a lot of extra wiring and points of failure. On my first foam cutter using Mach3 software, I had 8 switches and spent more time chasing broken or loose connections. I never exceeded the travel limits because I was ready to stop the machine if something went wrong.

Step 16 – Dry Run

Before you cut any foam, use the sample g-code on the downloads page to ensure the machine works as expected. If you have followed this guide, then it should.  Address any issues before setting the hot wire.

Step 17 – Hot Wire

The hot wire is connected to the HB plug on the board. I use 0.4mm nichrome wire.  My wire is tensioned by a bow which rests on guides.  I have used a spring, but the bow puts less strain on the machine if you cut tapered wings.

hot wire bow

Set the hot wire slider to 10% and click the Turn Hotwire ON button.  You may just be able to hear a slight buzzing. Keep your fingers away from the wire and try a piece of scrap foam to see if it melts.

To adjust the current to the wire, use the Override Current Setting buttons. Note that the slider will remain fixed while the g-code is running

Getting a good current setting for your wire may take several runs, but I have put together a posting which explains a good method https://rckeith.co.uk/how-to-get-a-good-kerf-setting-for-cnc-foam-cutters/

Step 18 – First Cut

Now you are ready to try the sample g-code to check your machine.  Home the machine or set all axes to zero. 

clarky test
Nice Clark-Y airfoil test

Secure your foam block with double-sided tape or a weight.  Jog the wire to the start of the foam.

Set your hot wire to a value you found in the previous step and click the run button.

Check the hot wire from above to make sure it is straight and not being pulled out of alignment. If the wire is being dragged, increase the current using the Override Current Setting. On the other hand, if the foam is melting much more than the width of the wire, reduce the current.

Step 19 – G-code generation

If you have reached this step, then congratulations, you can now build some exciting projects.

Now that your machine is working, you will want to generate some g-code for your projects.  Please refer to this posting for the options available to you https://rckeith.co.uk/foam-wing-free-cnc-software/

I use DevWing Foam 2 and DevFus Foam 2 for all my projects. Although these are paid software options, I believe they are worth every penny. The free alternatives are sufficient for simple wings, but if you need advanced features like dihedral, washout, and lightning holes, these software packages are the best choice. Since I no longer purchase RC models, I’ve easily recouped the costs many times over

devwing foam 2 cutting page

Similar Posts