- 3.1 Spider wiring
- 3.2 Wiring : FYSETC mini 12864 v2.1
- 3.3 Wiring : TMC2209
- 3.4 Wiring : RaspberryPi
- 3.5 Pin Out
- 3.6 Pin Definition
SPIDER is a small but powerful 3D printer control board. In a limited space, it integrates 8 stepper motor drives, 5A 12V power supply, 8A 5V power supply, which provides powerful energy for fans of various voltages, various RGB light strips and Raspberry Pi. You can build a 3D printer with rich functions through SPIDER. Especially for VORON V2.4, we cooperated with the VORON team in the early stage of design, and many features have been recognized by the VORON team. If you are building VORON, this will be your best choice.
- Add 5pin connector for BL-Touch
- Switch EXP1 & EXP2 mark(Only mark, not socket)
- Add +/- mark
-
Add room for RaspberryPI USB-A power supply port
You can solder the below USB port, then you can power-up RPI with a USB-A cable. It is USB power-supply port without USB signal.
V2.0
- Add 48V stepstick support x3
- Add TVS and Bleeding resistance to every stepstick socket
- Change 12V/5A to SY8205
- Change the Raspberry Pi 5V and system 5V to separate DC-DC circuits (3A per channel)
- Add separate 3.3V to stepsticks
- Change PCB to 6 layers
- Optimize some wiring.
- Change the series diode of the driver circuit to a 15A fuse(1808)
V2.1
- Change 48V stepstick support to 2
- Change 12V/5A to 12V/3A
- Change the Raspberry Pi 5V (3A to 5A) and system 5V(5A to 3A )
- Add RESET 1x2 Pin header
V2.2
- Add two thermistor sockets, a total of 6.
- Change FAN0 to PA13,FAN1 to PA14
- Add pin definition silkscreen on the bottom.
- Compact size: 155.3mm x 76.5mm
- Based on STM32F446 180Mhz,all IOs can withstand 5V voltage
- 8 TMC stepper drivers support, with Uart&SPI support
- V2.2:Add Two 60V-Max stepper driver slot
- Improved TMC jumper settings again,simpler and easier
- V1.0&V1.1: 28V input max,12V@5A DC-DC,5V@8A DC-DC (Especially for Raspberry Pi),3.3V@0.8A LDO
- V2.2: 28V input max,12V@3A DC-DC,5V@5A DC-DC for Raspberry,5V@3A DC-DC for mcu and RGB, Two 3.3V@0.8A LDO for MCU and motors
- Two car fuses for hot bed input and main power input
- Limit switch socket 24V/5V/3.3V optional, ready for more other equipment, such as -inductive sensor, BL-Touch
- XH2.54 connectors
- 10x PWM capable power mosfet outputs (1 for HotBed, 3 for Heat-End, 3 for fans, 3 for RGB LED strip)
- V1.0&V1.1: 3pin temperature header, you can use thermistor or thermocouple (requires AD597 module)
- V2.2: Up to 6 temperature sensors support
- Up to 8 ways PWM fans (only use 1 extrueder and no 12V/24V RGB used ),2 ways RGB led(12V & 24V optional) ,1 way 5V-RGB led (NEO-PIXEL/WS2812)
- RepRapDiscount SmartController compatible pin header on board
- UART1-Raspberry Pi pin header (including 5V@8A power supply)
- 2X4 PinHeader Out for SD Card moudle
- Onboard micro-SD card
- Type-C and Type-B USB connector optional
- EXP1 & EXP2 have more multiplexing functions, such as USART, I2C, CAN
- SD card & USB upload support
- A 4.7kOhm 0.1% temperature sensor pull up resistor is used, PT1000 can be connected directly. For PT100, an amplifier board must be used.
- V2.2: Add more protection (TVS for each motor divers, current limit resistor, VMOT fuse)
48v and 24v connector
为了兼容某些主板,如RAMPS1.4,FYSETC mini12864 设置了 RST(R3) 和 KILL(R4) 的可选择电阻。目前,有些主板(S6/Spider)将 KILL 换成 5V,此时,请确认FYSETC mini12864 上 R4处于空贴状态,否则按下屏幕上的按钮会致使 5V 与 GND 短路,长时间操作会导致主板损坏。
In order to be compatible with some motherboards, such as RAMPS1.4, mini12864 is equipped with RST (R3) and KILL (R4) optional resistors. At present, some motherboards (S6/Spider) change the KILL to 5V. At this time, please make sure that R4 is not on the mini12864 (please remove it if it is on the board), otherwise pressing the button on the screen will cause a short circuit between 5V and GND, and long-term operation will cause the motherboard to be damaged.
目前发现有些主板在接上 mini12864,并采用 USB 进行烧录时会导致无法烧录的情况,请去除 R1 10K 电阻。
At the moment , some Spider can't upload the firmware using USB if mini12864 is connected to the board, if you run into this issue, please remove R1 resistor.
Features | Spider Pin | STM32 Pin | Pin No. | Comment |
X-MOTOR(1) | X-Step | PE11 | 42 | |
X-DIR | PE10 | 41 | ||
X-EN | PE9 | 40 | ||
X-CS/PDN | PE7 | 38 | ||
Y-MOTOR(2) | Y-Step | PD8 | 55 | |
Y-DIR | PB12 | 51 | ||
Y-EN | PD9 | 56 | ||
Y-CS/PDN | PE15 | 46 | ||
Z-MOTOR(3) | Z-Step | PD14 | 61 | |
Z-DIR | PD13 | 60 | ||
Z-EN | PD15 | 62 | ||
Z-CS/PDN | PD10 | 57 | ||
E0-MOTOR(4) | E0-Step | PD5 | 86 | |
E0-DIR | PD6 | 87 | ||
E0-EN | PD4 | 85 | ||
E0-CS/PDN | PD7 | 88 | ||
E1-MOTOR(5) | E1-Step | PE6 | 5 | |
E1-DIR | PC13 | 7 | ||
E1-EN | PE5 | 4 | ||
E1-CS/PDN | PC14 | 8 | ||
E2-MOTOR(6) | E2-Step | PE2 | 1 | |
E2-DIR | PE4 | 3 | ||
E2-EN | PE3 | 2 | ||
E2-CS/PDN | PC15 | 9 | ||
E3-MOTOR(7) | E3-Step | PD12 | 39 | |
E3-DIR | PC4 | 33 | ||
E3-EN | PE8 | 59 | ||
E3-CS/PDN | PA15 | 77 | ||
E4-MOTOR(8) | E4-Step | PE1 | 34 | |
E4-DIR | PE0 | 97 | ||
E4-EN | PC5 | 98 | ||
E4-CS/PDN | PD11 | 58 | ||
TMC Driver SPI (SPI4) | MOSI | PE14 | 45 | |
MISO | PE13 | 44 | ||
SCK | PE12 | 43 | ||
End-stops | X-MIN | PB14 | 53 | Share with X-DIAG |
X-MAX | PA1 | 24 | Share with E0-DIAG | |
Y-MIN | PB13 | 52 | Share with Y-DIAG | |
Y-MAX | PA2 | 25 | Share with E1-DIAG | |
Z-MIN | PA0 | 23 | Share with Z-DIAG | |
Z-MAX(Probe) | PA3 | 26 | Share with E2-DIAG | |
FAN/RGB | FAN0 | PB0 | 35 | |
FAN1 | PB1 | 36 | ||
FAN2 | PB2/BOOT1 | 37 | ||
LED-R | PB6 | 92 | Can be used for fan3 | |
LED-G | PB5 | 91 | Can be used for fan4 | |
LED-B | PB7 | 93 | Can be used for fan5 | |
5V-LED(WS2812) | PD3 | 84 | Share with flash indicator(Bootloader) | |
Heating | E0-Heater | PB15 | 54 | |
E1-Heater | PC8 | 65 | ||
E2-Heater | PB3 | 89 | ||
Heated-Bed | PB4 | 90 | ||
Temperature | TE0(THERM0) | PC0 | 15 | A 4.7kOhm 0.1% temperature sensor pull up resistor is used,PT1000 can be connected directly. For PT100, an amplifier board must be used. |
TE1(THERM1) | PC1 | 16 | A 4.7kOhm 0.1% temperature sensor pull up resistor is used,PT1000 can be connected directly. For PT100, an amplifier board must be used. | |
TE2(THERM2) | PC2 | 17 | A 4.7kOhm 0.1% temperature sensor pull up resistor is used,PT1000 can be connected directly. For PT100, an amplifier board must be used. | |
TB(THERM3) | PC3 | 18 | A 4.7kOhm 0.1% temperature sensor pull up resistor is used,PT1000 can be connected directly. For PT100, an amplifier board must be used. | |
EXP2 | LCD_D7 | PD1/CAN-TX1 | 82 | Share with CAN-TX1 |
LCD_D6 | PD0/CAN-RX1 | 81 | Share with CAN-RX1 | |
LCD_D5 | PC12/MOSI3/TX5/SDA2 | 80 | ||
LCD_D4 | PC10/SCK3/TX3/4 | 78 | ||
LCD_EN | PC11/MISO3/RX3/4 | 79 | ||
LCD_RS | PD2/RX5 | 83 | ||
ENC_C | PA8/SCL3 | 67 | ||
BEEP | PC9/SDA3 | 66 | ||
EXP1 | RESET | NRST | 14 | |
ENC_A | PC6/TX6 | 63 | ||
ENC_B | PC7/RX6 | 64 | ||
SD-DET | PB10/SCL2 | 47 | ||
SD-MISO | PA6/MISO1 | 31 | ||
SD-MOSI | PA7/MOSI1 | 32 | ||
SCK | PA5/SCK1 | 30 | ||
CS | PA4/CS1 | 29 | ||
EEPROM(4K) I2C Pin-Out | SCL | PB8/SCL1 | 95 | Connect to 24LC32(4K EEPROM) |
SDA | PB9/SDA1 | 96 | Connect to 24LC32(4K EEPROM) | |
Pi_PWR/UART | TX | PA9/TX1 | 68 | |
RX | PA10/RX1 | 69 | ||
SWD Debug | PA13/SWDIO | 72 | only used for debugging now and can be used for other purposes. | |
PA14/SWCLK | 76 | only used for debugging now and can be used for other purposes. |
Features | Spider Pin | STM32 Pin | Pin No. | Comment |
X-MOTOR(1) | X-Step | PE11 | 42 | |
X-DIR | PE10 | 41 | ||
X-EN | PE9 | 40 | ||
X-CS/PDN | PE7 | 38 | ||
Y-MOTOR(2) | Y-Step | PD8 | 55 | |
Y-DIR | PB12 | 51 | ||
Y-EN | PD9 | 56 | ||
Y-CS/PDN | PE15 | 46 | ||
Z-MOTOR(3) | Z-Step | PD14 | 61 | |
Z-DIR | PD13 | 60 | ||
Z-EN | PD15 | 62 | ||
Z-CS/PDN | PD10 | 57 | ||
E0-MOTOR(4) | E0-Step | PD5 | 86 | |
E0-DIR | PD6 | 87 | ||
E0-EN | PD4 | 85 | ||
E0-CS/PDN | PD7 | 88 | ||
E1-MOTOR(5) | E1-Step | PE6 | 5 | |
E1-DIR | PC13 | 7 | ||
E1-EN | PE5 | 4 | ||
E1-CS/PDN | PC14 | 8 | ||
E2-MOTOR(6) | E2-Step | PE2 | 1 | |
E2-DIR | PE4 | 3 | ||
E2-EN | PE3 | 2 | ||
E2-CS/PDN | PC15 | 9 | ||
E3-MOTOR(7) | E3-Step | PD12 | 39 | |
E3-DIR | PC4 | 33 | ||
E3-EN | PE8 | 59 | ||
E3-CS/PDN | PA15 | 77 | ||
E4-MOTOR(8) | E4-Step | PE1 | 34 | |
E4-DIR | PE0 | 97 | ||
E4-EN | PC5 | 98 | ||
E4-CS/PDN | PD11 | 58 | ||
TMC Driver SPI (SPI4) | MOSI | PE14 | 45 | |
MISO | PE13 | 44 | ||
SCK | PE12 | 43 | ||
End-stops | X-MIN | PB14 | 53 | Share with X-DIAG |
X-MAX | PA1 | 24 | Share with E0-DIAG | |
Y-MIN | PB13 | 52 | Share with Y-DIAG | |
Y-MAX | PA2 | 25 | Share with E1-DIAG | |
Z-MIN | PA0 | 23 | Share with Z-DIAG | |
Z-MAX(Probe) | PA3 | 26 | Share with E2-DIAG | |
FAN/RGB | FAN0 | PA13 | 72 | |
FAN1 | PA14 | 76 | ||
FAN2 | PB2/BOOT1 | 37 | ||
LED-R | PB6 | 92 | Can be used for fan3 | |
LED-G | PB5 | 91 | Can be used for fan4 | |
LED-B | PB7 | 93 | Can be used for fan5 | |
5V-LED(WS2812) | PD3 | 84 | Share with flash indicator(Bootloader) | |
Heating | E0-Heater | PB15 | 54 | |
E1-Heater | PC8 | 65 | ||
E2-Heater | PB3 | 89 | ||
Heated-Bed | PB4 | 90 | ||
Temperature | TE0(THERM0) | PC0 | 15 | A 4.7kOhm 0.1% temperature sensor pull up resistor is used,PT1000 can be connected directly. For PT100, an amplifier board must be used. |
TE1(THERM1) | PC1 | 16 | A 4.7kOhm 0.1% temperature sensor pull up resistor is used,PT1000 can be connected directly. For PT100, an amplifier board must be used. | |
TE2(THERM2) | PC2 | 17 | A 4.7kOhm 0.1% temperature sensor pull up resistor is used,PT1000 can be connected directly. For PT100, an amplifier board must be used. | |
TE3(THERM3) | PC3 | 18 | A 4.7kOhm 0.1% temperature sensor pull up resistor is used,PT1000 can be connected directly. For PT100, an amplifier board must be used. | |
TE4(THERM4) | PB1 | 36 | A 4.7kOhm 0.1% temperature sensor pull up resistor is used,PT1000 can be connected directly. For PT100, an amplifier board must be used. | |
TB(THERM3) | PB0 | 35 | A 4.7kOhm 0.1% temperature sensor pull up resistor is used,PT1000 can be connected directly. For PT100, an amplifier board must be used. | |
EXP2 | LCD_D7 | PD1/CAN-TX1 | 82 | Share with CAN-TX1 |
LCD_D6 | PD0/CAN-RX1 | 81 | Share with CAN-RX1 | |
LCD_D5 | PC12/MOSI3/TX5/SDA2 | 80 | ||
LCD_D4 | PC10/SCK3/TX3/4 | 78 | ||
LCD_EN | PC11/MISO3/RX3/4 | 79 | ||
LCD_RS | PD2/RX5 | 83 | ||
ENC_C | PA8/SCL3 | 67 | ||
BEEP | PC9/SDA3 | 66 | ||
EXP1 | RESET | NRST | 14 | |
ENC_A | PC6/TX6 | 63 | ||
ENC_B | PC7/RX6 | 64 | ||
SD-DET | PB10/SCL2 | 47 | ||
SD-MISO | PA6/MISO1 | 31 | ||
SD-MOSI | PA7/MOSI1 | 32 | ||
SCK | PA5/SCK1 | 30 | ||
CS | PA4/CS1 | 29 | ||
EEPROM(4K) I2C Pin-Out | SCL | PB8/SCL1 | 95 | Connect to 24LC32(4K EEPROM) |
SDA | PB9/SDA1 | 96 | Connect to 24LC32(4K EEPROM) | |
Pi_PWR/UART | TX | PA9/TX1 | 68 | |
RX | PA10/RX1 | 69 | ||
SWD Debug | PA13/SWDIO | 72 | only used for debugging now and can be used for other purposes. | |
PA14/SWCLK | 76 | only used for debugging now and can be used for other purposes. |
To compile the firmware , you need to install Visual Studio Code and the platformio pulg-in.
The Marlin firmware is in the firmware/Marlin
folder in this repository , you can also get the firmware from latest Marlin bugfix-2.0.x branch. You need to enable following define in configuration.h
file
#define MOTHERBOARD BOARD_FYSETC_SPIDER
default_envs = FYSETC_S6
(For old bootloader,boot address is 0x10000
, see below)
default_envs = FYSETC_S6_8000
(For new bootloader,boot address is 0x8000
, see below)
Note: The bootloader boot address have been change to 0x08008000
since 2021/06/23, you can check bootloader details github or gitee, and you can check the Marlin PR here.
Open Vscode and open platformio main page and click the "Open Project" button , and direct to the folder where you put your firmware.
If everything goes fine , at the bottom you can see several buttons
The check mark is for compiling , click it to compile.
If you generate the hex file fail you may need to open vscode using Administrator Account .
Follow Firmware Update guide here.
You need to follow the Klipper installation guide to install Klipper.
When calling make menuconfig
, please select below options
Select STMicroelectronics STM32
Select STM32F446
Select 12 MHz crystal
If you choose No bootloader
bootloader offset in Klipper make menuconfig
, then you can follow Upload the firmware(DFU) to upload the firmware to Spider board. But you need to set the 'Start address' to 0x08000000. So the sequence be
- Click the button to find the DFU port.
- Connect the DFU
- Choose the "klipper.bin" file.
- fill in the 'Start address' with 0x08000000
- Start Programming
We have two pre-build firmwares for you klipper-USB.bin
( github gitee) and klipper-UART.bin
(github gitee). But these pre-build firmware will be outdated as time pass. We will try to catch up with Klipper, but i recommend to build the firmware yourself.
If you choose 32k
bootloader offset in Klipper make menuconfig
. Then you need to flash the spider board bootloader named Bootloader_FYSETC_SPIDER
first, we recommend you to use this bootloader as we already change default bootloader offset from 64k
to 32k
since 2021/06/23
. If you are not clear about it, you'd better flash the bootloader first. The bootloader is in the folder named bootloader
in this repo, please follow the README in bootloader folder(github or gitee). Then you can follow Upload the firmware(SDCARD) to flash your built Klipper firmware to Spider. We provide pre-build firmwares named klipper-32k-USB.bin
and klipper-32k-UART.bin
for you github gitee.
If you choose 64k
bootloader offset in Klipper make menuconfig
. Then you need to flash the spider board bootloader named Bootloader_FYSETC_SPIDER_10000
first. The bootloader is in the folder named bootloader
in this repo, please follow the README in bootloader folder(github or gitee). Then you can follow Upload the firmware(SDCARD) to flash your built Klipper firmware to Spider. We provide pre-build firmwares named klipper-64k-USB.bin
and klipper-64k-UART.bin
for you github gitee.
If you want to connect Spider to RaspberryPI with USB cable. You need to select USB (on PA11/PA12)
And in printer.cfg
you need to set the serial as below. We provide an example cfg file printer.cfg
for VORON 2 machine here.
Obtain definition by "ls -l /dev/serial/by-id/" then unplug to verify
##--------------------------------------------------------------------
serial: /dev/serial/by-id/usb-Klipper_stm32f446xx_230032000851363131363530-if00
If you want to connect Spider UART1(RX1:PA10, TX1:PA9) port to RPI uart0(TX:GPIO14,RX:GPIO15) port, you need to select Serial (on USART1 PA10/PA9)
In printer.cfg
you need to uncomment the following line as our example printer.cfg
file here (github gitee)do, if your cfg file don't have this line, please add it.
serial: /dev/ttyAMA0
Besides this make option, you still need to follow the instructions that Connect RPI uart.md
file says, you can find the file github or gitee.
make
Follow Firmware Update guide here.
As RRF firmware requires more than 512KB of Flash space, the Spider equipped with 446 cannot meet its requirements. So it needs to disable some features to make it work, please check the README in firmware/RRF folder github gitee.
We provide several ways to upload the firmware .Uploading firmware using SD card is our default way to update the firmware as Spider already has the bootloader in it when it leave the factory. But if you once upload the firmware to Spider flash address 0x08000000
, then the bootloader in Spider will be gone, then you need to upload the bootloader to Spider yourself, please follow the README in bootloader folder (github or gitee) to upload the bootloader.
Copy your compiled firmware file firmware.bin
(If you use klipper firmware, you need to rename klipper.bin
to firmware.bin
) file to the SD card , and insert it to the SD card slot which is at the right side of the board, and then power up the board. You may need to wait for about 30s to finish uploading, there is LED beside the sdcard slot blinking when it is uploading.
This method works in linux, that means should work in raspberry pi.
-
Enter DFU mode first
-
Make sure dfu-util is installed, shoot
dfu-util --version
command to check.Sample output:
dfu-util 0.9 Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. Copyright 2010-2016 Tormod Volden and Stefan Schmidt This program is Free Software and has ABSOLUTELY NO WARRANTY Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
If not , you should install it first, use the package manager of your distribution to get the latest version, like
sudo apt-get install dfu-util
-
Power off board, remove SD Card, place jumper on BT0 and 3.3V. (Between Z- endstop and E0 driver) Connect Spider to PC/RaspberryPi with USB cable with jumper in place. Set U5V jumper closest to stepper driver modules to power Spider from the Pi USB, or power up with 24V. Verify 3.3V LED is lit and board is detected with
dfu-util --list
, should look something like<snip> Found DFU: [0483:df11] ver=2200, devnum=13, cfg=1, intf=0, path="1-1.3", alt=3, name="@Device Feature/0xFFFF0000/01*004 e", serial="STM32FxSTM32" Found DFU:<snip>
-
You should replace
firmware.bin
below with your built firmware bin file location likeout/klipper.bin
.dfu-util -R -a 0 -s 0x08008000:leave -D firmware.bin
The other way to upload the firmware is using DFU.
You can download it from ST website.
https://www.st.com/zh/development-tools/stm32cubeprog.html
Open the STM32CubeProgrammer software.
- First power off the board
- Set jumper on 5v pin and DC5V
- Place jumper on BT0 to 3.3V pin
- Connect USB cable to the board and your computer
- Power up the board with 24v
Now the board is in DFU mode.
REMEMBER to remove the jumper if you finish uploading firmware or it will enter DFU mode again.
Now you can connect and flash the Spider board with stm32cubeprogrammer with the following operation.
Do as the red number shows in the screen shot.
- Click the button to find the DFU port.
- Connect the DFU
- Choose the "firmware.bin" file.
- Fill in the 'Start address' with 0x08008000 (If you use Marlin and your platformio env is
default_envs = FYSETC_S6
, then you need to set it to0x08010000
, if you use klipper and you choose boot address32k
on menuconfig then set it0x08008000
, if64k
, set it0x08010000
, and you need different bootloader here (github or gitee) - Start Programming
Please check here(github gitee).
You can submit issue in our github https://github.com/FYSETC/FYSETC-SPIDER/issues Or submit any technical issue into our forum