FYSETC / FYSETC-SPIDER

FYSETC Board - 3d printer motherboard for VORON and other open source project.
315 stars 149 forks source link

1. Product Introduction

2. Features

3. Hardware Guide

4. Firmware Guide

5. Issue shot

6. How to buy

7. Tech Support

8. Related Articles

1. Product Introduction

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.

1.1 Change log

V1.1

  1. Add 5pin connector for BL-Touch

  2. Switch EXP1 & EXP2 mark(Only mark, not socket)

  3. Add +/- mark

  4. Add room for RaspberryPI USB-A power supply port

  5. 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

  1. Add 48V stepstick support x3
  2. Add TVS and Bleeding resistance to every stepstick socket
  3. Change 12V/5A to SY8205
  4. Change the Raspberry Pi 5V and system 5V to separate DC-DC circuits (3A per channel)
  5. Add separate 3.3V to stepsticks
  6. Change PCB to 6 layers
  7. Optimize some wiring.
  8. Change the series diode of the driver circuit to a 15A fuse(1808)

V2.1

  1. Change 48V stepstick support to 2
  2. Change 12V/5A to 12V/3A
  3. Change the Raspberry Pi 5V (3A to 5A) and system 5V(5A to 3A )
  4. Add RESET 1x2 Pin header

V2.2

  1. Add two thermistor sockets, a total of 6.
  2. Change FAN0 to PA13,FAN1 to PA14
  3. Add pin definition silkscreen on the bottom.

V2.3

  1. Change 12v-24v RGB port layout to 3 fan ports, which can be used as a fan port more conveniently and still maintain RGB output support
  2. Optimize the fan control circuit, upgrade the buffer chip to independent triode control, enhance stability and greatly improve safety performance
  3. All motor drive module interface communication networks add high voltage buffering and voltage clamping processing, adding a shield to the MCU
  4. Re-layout the PCB, connectors position changed

V3.0

  1. Added 74HCT365 buffers for all stepper motor drive signals. All the motor drive IO signal voltages are changed from 3.3V to 5V, the driving ability is enhanced, and the external driver connettion is simpler.
  2. An onboard CAN transceiver is added to enable the mainboard to communicate directly with CAN devices, no need for expansion boards.
  3. A 3.3V power supply indicator is added, and different power supplies are indicated by LEDs of different colors, so that the working status of each power supply on the motherboard can be seen at a glance.
  4. The main board has been re-layouted, and all the marks are placed on the top layer, which makes it easier for users to view the marks of the pins and easier for firmware configuration.
  5. Connect the BOOT0 and RESET pins of the STM32 to the Pi's IO through the switch (disconnected by default), which provides the basis for directly entering the programming mode through the Pi.

2. Features

3. Hardware Guide

3.1 Spider wiring

3.1.1 Spider v1.0 wiring

3.1.2 Spider v1.1 wiring

3.1.3 Spider v2.2 wiring

48v and 24v connector

Spider v2.2 wiring for VORON 2.4

Spider v2.2 wiring for VORON Trident

Spider v2.2 Afterburner Toolhead wiring

3.1.4 Spider v2.3 wiring

Spider v2.3 wiring for VORON 2.4

Spider v2.3 wiring for VORON Trident

Spider v2.3 Afterburner Toolhead wiring

3.2 Wiring : FYSETC mini 12864 v2.1

注意/NOTICE:

为了兼容某些主板,如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.

Wiring

3.3 Wiring : TMC2209

3.4 Wiring : RaspberryPi

Spider 1.x, Spider 2.2

Spider 2.3

CAN BUS

If you want to enable Spider CANBUS network in Klipper, please check 4.2.1 chapter Communication interface section.

3.5 Pin Out

3.5.1 Spider v1.x

3.5.2 Spider v2.2

3.5.3 Spider v2.3

3.6 Pin Definition

3.6.1 Spider v1.x

FeaturesSpider PinSTM32 PinPin No.Comment
X-MOTOR(1)X-StepPE1142
X-DIRPE1041
X-ENPE940
X-CS/PDNPE738
Y-MOTOR(2)Y-StepPD855
Y-DIRPB1251
Y-ENPD956
Y-CS/PDNPE1546
Z-MOTOR(3)Z-StepPD1461
Z-DIRPD1360
Z-ENPD1562
Z-CS/PDNPD1057
E0-MOTOR(4)E0-StepPD586
E0-DIRPD687
E0-ENPD485
E0-CS/PDNPD788
E1-MOTOR(5)E1-StepPE65
E1-DIRPC137
E1-ENPE54
E1-CS/PDNPC148
E2-MOTOR(6)E2-StepPE21
E2-DIRPE43
E2-ENPE32
E2-CS/PDNPC159
E3-MOTOR(7)E3-StepPD1239
E3-DIRPC433
E3-ENPE859
E3-CS/PDNPA1577
E4-MOTOR(8)E4-StepPE134
E4-DIRPE097
E4-ENPC598
E4-CS/PDNPD1158
TMC Driver SPI (SPI4)MOSIPE1445
MISOPE1344
SCKPE1243
End-stopsX-MINPB1453Share with X-DIAG
X-MAXPA124Share with E0-DIAG
Y-MINPB1352Share with Y-DIAG
Y-MAXPA225Share with E1-DIAG
Z-MINPA023Share with Z-DIAG
Z-MAX(Probe)PA326Share with E2-DIAG
FAN/RGBFAN0PB035
FAN1PB136
FAN2PB2/BOOT137
LED-RPB692Can be used for fan3
LED-GPB591Can be used for fan4
LED-BPB793Can be used for fan5
5V-LED(WS2812)PD384Share with flash indicator(Bootloader)
HeatingE0-HeaterPB1554
E1-HeaterPC865
E2-HeaterPB389
Heated-BedPB490
TemperatureTE0(THERM0)PC015A 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)PC116A 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)PC217A 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)PC318A 4.7kOhm 0.1% temperature sensor pull up resistor is used,PT1000 can be connected directly. For PT100, an amplifier board must be used.
EXP2LCD_D7PD1/CAN-TX182Share with CAN-TX1
LCD_D6PD0/CAN-RX181Share with CAN-RX1
LCD_D5PC12/MOSI3/TX5/SDA280
LCD_D4PC10/SCK3/TX3/478
LCD_ENPC11/MISO3/RX3/479
LCD_RSPD2/RX583
ENC_CPA8/SCL367
BEEPPC9/SDA366
EXP1RESETNRST14
ENC_APC6/TX663
ENC_BPC7/RX664
SD-DETPB10/SCL247
SD-MISOPA6/MISO131
SD-MOSIPA7/MOSI132
SCKPA5/SCK130
CSPA4/CS129
EEPROM(4K) I2C Pin-OutSCLPB8/SCL195Connect to 24LC32(4K EEPROM)
SDAPB9/SDA196Connect to 24LC32(4K EEPROM)
Pi_PWR/UARTTXPA9/TX168
RXPA10/RX169
SWD DebugPA13/SWDIO72only used for debugging now and can be used for other purposes.
PA14/SWCLK76only used for debugging now and can be used for other purposes.

3.6.2 Spider v2.x

FeaturesSpider PinSTM32 PinPin No.Comment
X-MOTOR(1)X-StepPE1142
X-DIRPE1041
X-ENPE940
X-CS/PDNPE738
Y-MOTOR(2)Y-StepPD855
Y-DIRPB1251
Y-ENPD956
Y-CS/PDNPE1546
Z-MOTOR(3)Z-StepPD1461
Z-DIRPD1360
Z-ENPD1562
Z-CS/PDNPD1057
E0-MOTOR(4)E0-StepPD586
E0-DIRPD687
E0-ENPD485
E0-CS/PDNPD788
E1-MOTOR(5)E1-StepPE65
E1-DIRPC137
E1-ENPE54
E1-CS/PDNPC148
E2-MOTOR(6)E2-StepPE21
E2-DIRPE43
E2-ENPE32
E2-CS/PDNPC159
E3-MOTOR(7)E3-StepPD1239
E3-DIRPC433
E3-ENPE859
E3-CS/PDNPA1577
E4-MOTOR(8)E4-StepPE134
E4-DIRPE097
E4-ENPC598
E4-CS/PDNPD1158
TMC Driver SPI (SPI4)MOSIPE1445
MISOPE1344
SCKPE1243
End-stopsX-MINPB1453Share with X-DIAG
X-MAXPA124Share with E0-DIAG
Y-MINPB1352Share with Y-DIAG
Y-MAXPA225Share with E1-DIAG
Z-MINPA023Share with Z-DIAG
Z-MAX(Probe)PA326Share with E2-DIAG
FAN/RGBFAN0PA1372
FAN1PA1476
FAN2PB2/BOOT137
LED-RPB692Can be used for fan3
LED-GPB591Can be used for fan4
LED-BPB793Can be used for fan5
5V-LED(WS2812)PD384Share with flash indicator(Bootloader)
HeatingE0-HeaterPB1554
E1-HeaterPC865
E2-HeaterPB389
Heated-BedPB490
TemperatureTE0(THERM0)PC015A 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)PC116A 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)PC217A 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)PC318A 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)PB136A 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)PB035A 4.7kOhm 0.1% temperature sensor pull up resistor is used,PT1000 can be connected directly. For PT100, an amplifier board must be used.
EXP2LCD_D7PD1/CAN-TX182Share with CAN-TX1
LCD_D6PD0/CAN-RX181Share with CAN-RX1
LCD_D5PC12/MOSI3/TX5/SDA280
LCD_D4PC10/SCK3/TX3/478
LCD_ENPC11/MISO3/RX3/479
LCD_RSPD2/RX583
ENC_CPA8/SCL367
BEEPPC9/SDA366
EXP1RESETNRST14
ENC_APC6/TX663
ENC_BPC7/RX664
SD-DETPB10/SCL247
SD-MISOPA6/MISO131
SD-MOSIPA7/MOSI132
SCKPA5/SCK130
CSPA4/CS129
EEPROM(4K) I2C Pin-OutSCLPB8/SCL195Connect to 24LC32(4K EEPROM)
SDAPB9/SDA196Connect to 24LC32(4K EEPROM)
Pi_PWR/UARTTXPA9/TX168
RXPA10/RX169
SWD DebugPA13/SWDIO72only used for debugging now and can be used for other purposes.
PA14/SWCLK76only used for debugging now and can be used for other purposes.

4. Firmware Guide

Spider support Marlin firmware, Klipper firmware and RRF firmware. Choose one you need.

4.1 Marlin

4.1.1 Download Vscode + platformio

To compile the firmware , you need to install Visual Studio Code and the platformio pulg-in.

4.1.2 Download firmware

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
#define SERIAL_PORT -1

Then we need to change platformio.ini file

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.

4.1.3 Compile the firmware

Open Vscode and open platformio main page and click the "Open Project" button , and direct to the folder where you put your firmware.

1561099422559

If everything goes fine , at the bottom you can see several buttons

1561099546202

The check mark is for compiling , click it to compile. You can find built firmware.bin at .pio\build\FYSETC_S6 or .pio\build\FYSETC_S6_8000 folder.

4.1.4 Upload firmware

Follow Firmware Update guide here.

4.2 Klipper

We put Klipper related files like printer.cfg in firmware/Klipper folder in this repo. Please read the README there.

If you want to use Klipper. You need to follow the Klipper installation guide to install Klipper first. When we try to compile it, we need to call make menuconfig to choose compile options, please select options for Spider as below describe.

4.2.1 menuconfig

Please choose these options for Spider, you need to decide which to choose according to your board and wiring on some options.

Select STMicroelectronics STM32

Select STM32F446

Select 12 MHz crystal

Choose 32kiB bootloader offset in Klipper make menuconfig. You may need to flash the spider board bootloader named Bootloader_FYSETC_SPIDER first(If you get your Spider board after 2021/06/23, no worries, the bootloader is on the board when it leave the factory,if not,flash it first). The bootloader is in the folder named bootloader in this repo, please follow the README in bootloader folder(github or gitee) to flash the bootloader. We provide pre-build firmwares with 32KiB bootloader named klipper-32k-USB.bin and klipper-32k-UART.bin for you,find them here github gitee. These pre-build firmware will be outdated if Klipper update and will not match your new downloaded Klipper and cause annoying issues. We will try to catch up with Klipper, but i recommend to build the firmware yourself.

image-20210705151337765

If you want to connect Spider to RaspberryPI with USB cable. You need to select USB (on PA11/PA12)

image-20210705154413053

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)

image-20210705154625673

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.

3. CAN bus (on PD0/PD1)

You need to follow Klipper CANBUS instruction here CANBUS - Klipper documentation after you compiled and upload the firmware.

4.2.2 Compile firmware

make

4.2.3 Upload firmware

Follow Firmware Update guide here.

4.3 RRF

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.

4.4 Firmware Upload

We provide several ways to upload the firmware including SDCARD, dfu-util, DFU and platformio.

4.4.1 Upload the firmware(SDCARD)

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.

Uploading firmware using SD card: 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.

4.4.2 Upload the firmware(dfu-util)

This method works in linux, that means should work in raspberry pi.

Step 1. Enter DFU mode first

  1. First power off the board

  2. Set jumper on 5V pin and DC5V

  3. Place jumper on BT0 to 3.3V pin

  4. Connect USB cable to the board and your computer (If you use raspberry pi to upload firmware, connect USB cable to your raspberry pi)

  5. Power up the board with 24v

    Now the board is in DFU mode. If not, click the reset button. Also you can power on the board with 5v, but you need to set jumper on 5V and USB5V (Check the silkscreen lable on the back of the board) but not on 5V and DC5V.

    REMEMBER to remove BT0 jumper if you finish uploading firmware or it will enter DFU mode again.

Step 2. Install dfu-util

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

Step 3. Use command to upload firmware

Then use the command below to upload the firmware. You should replace firmware.bin below with your built firmware bin(or hex) file location like out/klipper.bin. Change flash address 0x08008000 to bootloader you choosed. (If you use Marlin firmware and your platformio env is default_envs = FYSETC_S6, then you need to set it to 0x08010000, if env is default_envs = FYSETC_S6_8000, then you need to set it to 0x08008000 . If you use klipper firmware and you choose boot address No bootloader when compiling then set it 0x08000000, if 32kiB bootloader , set it 0x08008000. if 64KiB bootloader set it to 0x08010000.If yours is hex file, set it 0x08000000).

dfu-util -R -a 0 -s 0x08008000:leave -D firmware.bin

Step 4. Reset MCU

Remove BT0 jumper and click the Spider RESET button.

4.4.3 Upload the firmware(DFU)

The other way to upload the firmware is using DFU.

Step 1. Download stm32cubeprogrammer

You can download it from ST website.

Chinese: STM32CubeProg

English: STM32CubeProg

Open the STM32CubeProgrammer software.

1574332767079

Step 2. Enter DFU mode

  1. First power off the board
  2. Set jumper on 5V pin and DC5V
  3. Place jumper on BT0 to 3.3V pin
  4. Connect USB cable to the board and your computer
  5. Power up the board with 24v

Now the board is in DFU mode. If not, click the reset button. Also you can power on the board with 5v, but you need to set jumper on 5V and USB5V (Check the silkscreen lable on the back of the board) but not on 5V and DC5V.

REMEMBER to remove BT0 jumper if you finish uploading firmware or it will enter DFU mode again.

Step 3. Upload the firmware

Now you can connect and flash the Spider board with stm32cubeprogrammer with the following operation.

1574386395071

Do as the red number shows in the screen shot.

  1. Change to USB
  2. Click the button to find the DFU port.
  3. Connect the DFU
  4. Change to "Erase and Programming"
  5. Choose the "firmware.bin" file. (or .hex file).
  6. Fill in the 'Start address' (If you use Marlin firmware and your platformio env is default_envs = FYSETC_S6, then you need to set it to 0x08010000, if env is default_envs = FYSETC_S6_8000, then you need to set it to 0x08008000 . If you use klipper firmware and you choose boot address no bootloader when compiling then set it 0x08000000, if 32kiB bootloader , set it 0x08008000. if 64KiB bootloader set it to 0x08010000. If yours is hex file, don't need to set anything).
  7. Start Programming

Step 4. Reset MCU

Remove BT0 jumper and click the Spider RESET button.

4.4.4 Upload the firmware(platformio)

If you compile Marlin yourself with platformio,you can follow the instructions below to upload the firmware.

Step 1. Enter DFU mode first

Step 2. Click the upload button to upload firmware

4.5 Test firmware

If you suspect there is something wrong with your board, you can use our test firmware to have a test. Follow the README here (github gitee).

5. Issue shot

5.1 Spider 3.3v issue

Please check here(github gitee).

5.2 TMC2209 connection issue

Fix 1 : Please add a jumper on each TMC2209 on your Spider board. And restart the machine again.

image-20220115115634509

Fix 2: Try to shoot Klipper command

INIT_TMC STEPPER=<name>

name can be stepper_x,stepper_yand other stepper in your printer.cfg.

5.3 firmware.bin not changed to old.bin/bootloader not working

Fix 1: Reflash the bootloader, follow the instruction here ( github gitee ).

Fix 2: Format your SD card with SD Card Formatter.

Fix 3: If you use Klipper firmware, choose No bootloader option when compiling, and upload the firmware to 0x08000000 flash address. Refer to Upload the firmware(dfu-util) or Upload the firmware(DFU) chapter.

5.4 Not boot to klipper/No id found

Try to set No bootloader bootloader offset in Klipper make menuconfig.This option means you don't have any bootloader flashed or don't want any bootloader, 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.

image-20210705151440643

6. How to buy

7. Tech Support

You can submit issue in our github https://github.com/FYSETC/FYSETC-SPIDER/issues Or submit any technical issue into our forum

8. Related Articles

English

Español

9. Application examples

Check the README in example folder (github gitee).