FYSETC / FYSETC-S6

FYSETC Board - 32bit 3d printer motherboard
https://www.aliexpress.com/item/4000345369228.html
49 stars 25 forks source link

IMG_0389

The S6 is based on the STM32F446 32bit mcu, like the F6, has six drive sockets and supports the full range of TMC drives. We have fully extended the resources of the MCU so that you can maximize its power. We considered the possible use scenarios of 3D printers and designed a series of extended applications, such as anti-reverse circuit, 12V power supply, thermocouple support, 24V sensor support and so on.

1. Features

2. Application


3. Hardware

3.1 Reasources

1574476641063

1574476619462

Board Name S6 F6
License GPL V2.0 GPL V2.0
Latest Version V1.2 V1.4
Extruders 3 Max 3 Max
Fixed Fans 5 Max 5 Max
Controlled Fans 3 Max 3 Max
Heaters 3 Max 3 Max
Endstops 6 Max 6 Max
Temp sens 4 Max 4 Max
SPI 2 Max 1
I2C 3 Max 1
ISP -- 1
Serial port chip -- CH340
CPU STM32F446VET6 Atmega2560
CPU Speed ( MHz ) 180Mhz 16 Mhz
Stepper driver 6 Max 6 Max
Stepper driver Type All StepStick compatible modules All StepStick compatible modules
Input Main PWR:12-24V 15A Max;BED IN:12-24V 20A Max Main PWR:12-24V 10A Max;BED IN:12-24V 15A Max
Output BED OUT:20A Max ;Heater Out:5A Max BED OUT:15A Max ;Heater Out:5A Max

3.2 Jumpers


Just like the F6 V1.4, the two Z-motor sockets are changed from parallel to series. If you only use one of the sockets, the other must be connected with a jumper cap, otherwise a Z-axis motor will not work.

1574491030269

3.2.1 Stepper drivers

In order to support as many different drivers as possible, S6 sets a lot of jumper positions. Different drive modules require different jumpers. As shown in the schematic diagram, there are 2 sets of jumpers in the drive section: JP1 and JP6.

1574475839586

In order to give you a better understanding of how to use jumpers for different drivers, I have further illustrated the driver socket. The basic definition of the driver pins is the same, the difference lies in the four places of JP6-1, JP6-2, JP6-3 and JP6-4. You can see their role from the schematic.

1574476699891

A4988 jumper config

1574477723736

UART mode config

1574477819491

TMC2209 wiring

SPI mode config

1574477946366

3.2.2 12V/24V jumpers

1574476322618

3.2.3 DIAG jumpers

1574476382401

3.2.4 Bottom jumpers

1574476497110

3.2.5 Jumper for 5V

S6 V2.0 version adds 5V selection jumper. You can choose 5V from USB or DC circuit.

Know issue: With 5V USB jumper selected, 24V applied, USB cable disconnected, the heater FETs will turn on. So we recommend you to choose 5v from DC5V.

S6跳线-5V

3.2.6 Jumper for Boot0

In S6 V2.0, the BOOT0 button is replaced by a jumper.

S6V2.0BOOT0

3.3 Pin Definition

All the pins we have marked on the back of the board, if you need to, you can confirm the board in reverse or check the sch.

Thanks to the power of the STM32, each pin has multiple functions, I will identify it for your reference as much as possible. For further information, please refer to the STM32F446 datasheet, which I have placed on our S6 GitHub

3.3.1 EXP1&EXP2

1574483263718

3.3.2 Eedstops and UART1 Pins

The UART socket next to the limit switch can be used to connect serial devices such as the wifi module, or to update the firmware through the serial port.

1574482734041

3.3.3 BL-touch Wiring Example

img

3.3.4 Reuse RGB ports for FAN

4. Firmware


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. More details of Marlin build, check here.

4.1.2 Download firmware

S6 v1.2

The firmware is in the firmware folder in this repository, and if you want to know what we have changed , we recommend to use git to get the code .

If you want to have latest feature of Marlin , we recommend to use latest Marlin bugfix-2.0.x branch , after downloading ,you need to enable following define in configuration.h file

#define MOTHERBOARD BOARD_FYSETC_S6

then change the default_envs variant in platformio.ini file

default_envs = FYSETC_S6_8000 (Recommended. boot address is 0x8000. You need to flash the bootloader(github gitee) first, check the README on the link)

default_envs = FYSETC_S6 (For old bootloader,boot address is 0x10000, you need to flash this bootloader(github gitee) first , check the README on the link)

Note: The bootloader boot address have been change to 0x8000 since 2021/06/23, you can check bootloader details here, and you can check the Marlin PR here.

S6 v2.x

The firmware is in the firmware 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_S6_V2_0

then change the default_envs variant in platformio.ini file

default_envs = FYSETC_S6_8000 (Recommended. boot address is 0x8000. You need to flash the bootloader(github gitee) first, check the README on the link)

default_envs = FYSETC_S6 (For old bootloader,boot address is 0x10000, you need to flash this bootloader(github gitee) first , check the README on the link)

Note: The bootloader boot address have been change to 0x8000 since 2021/06/23, you can check bootloader details here, and you can check the Marlin PR here.

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.

If you generate the hex file fail you may need to open vscode using Administrator Account .

4.2 Klipper

You need to follow the Klipper installation guide to install Klipper.

When calling make menuconfig, please select below options

4.2.1 menuconfig

Select STMicroelectronics STM32

Select STM32F446

Select 12 MHz crystal

If you choose No bootloader bootloader offset in Klipper make menuconfig, then you use DFU(method1 method2) to upload the firmware to S6 board. But you need to set the 'Start address' to 0x08000000.

image-20210705151440643

If you choose 32k bootloader offset in Klipper make menuconfig. Then you need to flash the S6 board bootloader named Bootloader_FYSETC_S6 first (If you get your S6 board after 2021/06/23, no worries, the bootloader is on the board when it leave the factory). 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 S6. Or you can use DFU(method1 method2) to upload your firmware, but remember to change flash address to 0x08008000 with these two methods.

image-20210705151337765

If you choose 64k bootloader offset in Klipper make menuconfig. Then you need to flash the S6 board bootloader named Bootloader_FYSETC_S6_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 S6. Or you can use DFU(method1 method2) to upload your firmware, but remember to change flash address to 0x08010000 with these two methods.

image-20210705151951142

4.2.2 Compile firmware

make

4.2.3 Upload firmware

Follow Firmware Update guide here.

4.3 Upload firmware

4.3.1 Upload the firmware(SDCARD)

We provide several ways to upload the firmware .Uploading with SD card is our default way to update the firmware as the board already has the sdcard bootloader in it when it leave the factory. If you choose to upload the firmware with a sdcard. First you need to connect a sdcard module to the S6 EXP2 port. Basically , you can use any kind of LCD screen(like our mini12864) that contain sdcard module. But if you can't make it work , check if your sdcard module's SPI CS pin connected to PA4 pin in S6 board.

Then,copy your compiled firmware file firmware.bin file to the SD card , and insert it to the SD card module , and then power on the board. You may need to wait for about 30s to finish uploading.

Note: The bootloader is in the folder named bootloader, please follow the README in bootloader folder.

4.3.2 Upload the firmware(dfu-util)

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

  1. Enter DFU mode first

    • 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
  2. 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
  3. Then use the command below to upload the firmware. You should replace firmware.bin below with your built firmware bin file location like out/klipper.bin if you use klipper firmware. Change flash address 0x08008000 to bootloader you choosed. (If you use Marlin and your platformio env is default_envs = FYSETC_S6, then you need to set it to 0x08010000 and you need bootloader , if you use klipper firmware and you choose boot address 32kiB bootloader when compiling klipper then set it 0x08008000, if 64kiB bootloader , set it 0x08010000. if no bootloader set it to 0x08000000)

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

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

https://www.st.com/zh/development-tools/stm32cubeprog.html

Open the STM32CubeProgrammer software.

1574332767079

Step 2. Enter DFU mode

S6 v1.2

First power off the board , then push the Boot0 button and hold it , then connect the USB to the board and your computer , it will enter DFU mode . Now you can loose you hand from Boot0 button.

S6 v2.x

First power off the board , then jumper the Boot0 to 3.3V , then connect the USB to the board and your computer , it will enter DFU mode .

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

Step 3. Upload the firmware

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

1574386395071

Do as the red number shows in the screen shot.

  1. Click the button to flesh the DFU port.

  2. Connect the DFU

  3. Choose the "firmware.bin" file.

  4. fill in the 'Start address' with 0x8008000 (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 32kiB bootloader when compiling klipper then set it 0x08008000, if 64kiB bootloader , set it 0x08010000. if no bootloader set it to 0x08000000)

  5. Start Programming

We will continue to update, please look forward to it!

5. Tech Support

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

6. Related Articles

English

Español