How to connect to a GTR via an SBC


The GTR is an STM32F407ZGT6 based board.

Firmware File

Choose the correct corresponding firmware (firmware-stm32f4-sbc.bin) from here. Remember to rename it to firmware.bin. Put it in the root of a FAT32 formatted SD card.


Connecting a Single Board Computer, such as a raspberry pi 3B/3B+/4

Prepare the Raspberry Pi

Follow the instructions detailed here.


  • 5 x 100R resistor
  • jumpers or other ways of connecting to the GTR

Connecting the SBC to the SKR GTR v1.0

The pinout for the SKR can be found here and the schematic for the Duet 3 for reference can be found here. The raspberry pi GPIO pinout can be found here.

The table below shows the pins required on the SBC and what they are connected to on the GTR. Please ensure that your cables are no longer than 30cm although they should ideally be as short as possible.

SBC Pin GTR Pin Resistor Value
23/BCM11/SPI0 Clk PB13 on EXP2 100R
21/BCM9/SPI0 Miso PB14 on EXP2 100R
19/BCM10/SPI0 Mosi PB15 on EXP2 100R
24/BCM8/SPIO CE0 PB12 on EXP2 100R
22/BCM25 PB10 on EXP2 100R
20/GND GND on EXP2 None

Don’t power the raspberry pi from the GTR. Either us a 12/24v to 5v step down transformer or power the pi from the micro usb or usb-c port.

Prepare the SD Card

All the SD card on the SKR GTR needs is the board.txt file with the following contents.

//Config for SKR GTR v1.0
board = biqugtr_1.0
sbc.TfrReadyPin = B.10
heat.tempSensePins = { C.0, C.1, C.2, C.3, A.3, F.9, F.10, F.7, F.5 }

Smart Drivers

If using TMC5160 or TMC22XX drivers (where 22XX is either the TMC2208, TMC2209, TMC2225 or TMC2226), the following line must also be added to the board.txt file

stepper.numSmartDrivers = X

Where X is the number of drivers fitted in total.

TMC22XX UART Drivers

The drivers must be continuous and start at unit 0 (unless TMC5160 are also used, which case they must be installed after them). So, for the SKR board, if you have say 3 TMC2208s and 1 other driver, the 2208s must be in slots 0, 1, 2 and the remainiong driver in slot 3 or 4. You can use RRF to assign any of those slots to an axis/extruder.

TMC5160 SPI Drivers

TMC5160 drivers are supported from 3.3 beta 1 onwards. If using TMC5160 drivers, the following lines must also be added to the board.txt file.

stepper.num5160Drivers = X
stepper.spiChannel = 5
SPI5.pins={B.3, B.6, G.15}

Where X is the number of 5160 drivers fitted. The drivers must be continuous and start at unit 0. So, if you have say 3 TMC5160s and 1 TMC22XX and 1 other driver, the 5160s must be in slots 0, 1, and 2, the TMC22XX in slot 3 and the remainiong driver in 4. You can use RRF to assign any of those slots to an axis/extruder.

Sensorless Homing

Supported by only the TMC2209, TMC2226 and TMC5160 If using sensorless homing/stall detection with TMC2209 or TMC2226 the following line must be added to the board.txt file. It is not needed with TMC5160.

stepper.TmcDiagPins = {F.2, C.13, E.0, G.14, G.9, D.3, I.4, F.4, F.6, I.7, F.12}

Please only include the diag pin numbers where you intend to use sensorless homing on that axis.
For example, if you only intend to use sensorless homing/stall detection on driver 0 and driver 1, only include F.2 and C.13 in your board.txt file. For more information about setting up sensorless homing, please read this.

Driver Diag Pin

Board.txt Location

Place the board.txt file in a directory called “sys” on the SD card and install the SD card in the GTR.


Turn it all on and you should be good to go.

You can either navigate to duet3.local or find the IP address of the rasberry pi using your router. If you don’t have access to that, use something like Fing to scan your network.

Once you’ve connected to the raspberry pi through your router, start to customise your config.g file etc or upload the outputted zip file from the Configurator to the pi using the system tab of DWC.


Please report any disconnects on either the forum or discord.

Changing the SBC hostname

This is an optional step if you only have a single duet3 on your network. It is required if you have more than one SBC configured RRF setup (as each setup on a network needs a unique host name) or you just want to change the name from the default “duet3”.

The name of the printer is its hostname on the network, you will need to connect to the SBC over SSH in order to run the Raspberry Pi configuration utility and change the hostname.

  1. Connect via ssh
  2. At a command prompt type
    sudo raspi-config
  3. Select “System Options” -> Hostname-> “OK”-> and set the new printername/hostname.

  4. Select “Finish” and reboot.

Once up and running

You will need to PID tune your tools and your bed. Please be aware that bed tuning may take up to an hour and tool tuning normally takes around 15 minutes. If it takes longer, that is also fine as up to 30 cycles may be ran.

To tune the bed, run the following command, changing the temperature (the S value) if a different tuning temperature is required.

M303 H0 S60

To tune each tool, run the following command, changing the temperature (the S value) if a different tuning temperature is required. This proceedure will activate the part cooling fans during the final phase of the tuning process so their effect is taken into account. If your printer has more than one tool, make sure each one of them is tuned.

M303 T0 S220

Once the tuning is complete, either copy the M307 command into the heater definitions or send M500, ensuring you have M501 at the end of your config.g.
If the tuning fails at the end, carry on saving the values as in most cases the outputted values still work correctly.
If the values still result in a heater fault, please refer to this wiki page for information about how to adjust the values manually.