Code Monkey home page Code Monkey logo

fysetc-s6's Introduction

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

  • Compact size: 117mm x 87mm,Same as F6

  • Based on STM32F446 180Mhz,all IOs can withstand 5V voltage

  • 6 TMC stepper drivers support, no need wire Uart/SPI

  • Improved TMC jumper settings ,simpler and easier to understand

  • Main power reverse protection circuit,safer

  • 28V input max,12V@5A,5V@2ADC-DC circuit,[email protected] LDO

  • 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

  • XH connector and MX connector are optional

  • 10x PWM capable power mosfet outputs (1 for HotBed, 3 for Heat-End, 3 for fans, 3 for RGB LED strip)

  • 3pin temperature header, you can use thermistor or thermocouple (requires AD597 module)

  • 3 ways PWM fans ,2 ways RGB led ,12V & 24V optional

  • Easy DISPLAY + SD-CARD connector:

    • RepRapDiscount SmartController compatible pin header on board
    • 10P FPC for Serial Touch display
    • 2X4 PinHeader Out for SD Card moudle
    • EXP1 & EXP2 have more multiplexing functions, such as USART, I2C, CAN
  • SD card & USB upload support

  • S6 v2.1: Add more protection (current limit resistor, VMOT fuse)

2. Application


  • 3D printer

  • CNC Device

  • Other similar machines

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

  • For A4988, A4988 similar, TMC2100 and TMC standalone Mode, You need jumper JP6 (1234-5678) to config the micro-steps, and some TMC features.
  • When you connect the jumper cap, this pin is high. When you are not connected, it is the level state of the module itself. This is different from F6, which can be either high or low.
  • For details, please refer to the corresponding driver description.
UART mode config

1574477819491

  • For TMC2208/2225/2209. You just need one jumper to close the JP1, Then the UART mode will enabled.
  • You can config all the feature of the TMC chip via UART, so you can leave all the other jumpers empty.
  • Even for 2209, We give 2 lines UART interface to every driver, so no need config the address by MS1/MS2.
TMC2209 wiring

SPI mode config

1574477946366

  • For TMC2130/5160/5161. You need 4 jumpers to close the JP6, Then the SPI mode will enabled.

3.2.2 12V/24V jumpers

1574476322618

  • S6 have 12V onboard, Fan and RGB jumpers can refer to this picture and the silk screen at the bottom of the board.
  • The input power supply voltage should EXCEED 15v ,if not, the output voltage of 12V DCDC circuit will lower than 12v
  • Never let the 12V current exceed 5A, otherwise it will burn out the 12V DCDC circuit.
  • If you use an input above 18V, you will get a satisfactory 12V output, otherwise the output may be less than 12V.

3.2.3 DIAG jumpers

1574476382401

  • If you use a TMC driver with sensor-less homing(2130/2209/5160/5161), you can connect these jumpers so that the MCU can get the DIAG signal through the corresponding end-stop pin to achieve sensor-less.
  • After connect the jumper, remember define the DIAG pins in the firmware and enable the feature.

3.2.4 Bottom jumpers

1574476497110

  • X+ / Y+ / Z+ , You can choose 5V or 3.3V, For X+ & Y+, the default is 3.3V. For Z+, The default is 5V, You can connect BLtouch here.

  • X- / Y- / Z- , You can choose 24V or 3.3V, the default is 3.3V. You can switch to 24V, if you want to use some inductive or capacitive sensors.

    1574476533464

  • I2C pins, You can choose 5V or 3.3V, the default is 3.3V.

  • For TE0-TE2, You can cut the jumper if you want use a thermocouple temperature measurement through AD597.

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

  • Enable extra low-level configuration options

  • Micro-controller Architecture

Select STMicroelectronics STM32

  • Processor model

Select STM32F446

  • Clock reference

Select 12 MHz crystal

  • Bootloader offset

  • 1. Boot address no

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

  • 2. Boot address 32k

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

  • 3. Boot address 64k

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

fysetc-s6's People

Contributors

eliwong avatar gerogefu avatar mak0t0san avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fysetc-s6's Issues

SPI port AUX-3

Hello,
I wanna add a MAX7219 led matrix to the SPI port close to RGB pins.
Can´t find in definition or scheme what are the corresponding pins in mcu or if those pins are share with other devices.
Can you clarify it?
I´m not gonna use SPI steppers, but I´m using sd reader at exp2.
Thanks

FAN0, FAN1, HotBed, HotEnd pins issue

Klipper v0.11.0
Fysetc S6 v2.1

FAN0, FAN1, HotBed, HotEnd pins doesn't work. Stepper, endstop, termistor, fan2 works well.

[heater_bed]
heater_pin: PC8
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC3
control: watermark
min_temp: 0
max_temp: 100

[extruder]
step_pin: PD5
dir_pin: !PD6
enable_pin: !PD4
microsteps: 16
rotation_distance: 33.500
nozzle_diameter: 0.400
filament_diameter: 1.750

heater_pin: PB15
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC0
control: pid
# tuned for stock hardware with 200 degree Celsius target
pid_Kp: 21.527
pid_Ki: 1.063
pid_Kd: 108.982
min_temp: 0
max_temp: 250

# fan for printed model FAN0
[fan]
pin: PB0

# fan for hotend FAN1
[heater_fan my_nozzle_fan]
pin: PB1
shutdown_speed: 1

# fan for control board FAN2
[heater_fan my_control_fan]
pin: PB2

A problem in the software or a marriage of the board?

I2C devices not working ...

I am using the S6 board for a telescope project (OnStep).
It works, and controls the scope as expected.

The issue is that connecting I2C devices (e.g. BME280 for ambient temperature, pressure and humidity) does not work at all.

flashing from SD card

  • connect SD card module and see content (m20 g-code)
  • place firmware.bin to SD card, power on and nothing. I see previous firmware

Ender 5 upgrade

Dear Fysetc guys,

Can you please assists me. I've ordered your motherboard S6 V2.0 in order to upgrade my Ender 5, and want to know if i connected all the jumpers correctly. Please see the picture.

Also I've ordered TMC 2226 drivers, are they compatible with that motherboard?

Which parts of the software i need to adjust for Ender 5?

With best regards,

Jevgeni
IMG_20210227_201312

Error message while trying to flash the FYSETEC S6 V2.1 with STM32CuveProgrammer

Hi to all.
Help will be advance appreciated.
My project is a OnStep conversion for my telescope to replace DC motors with Step motors.
Trying to flash my board I get the following meesage,
14:39:33 : RTS low
14:39:33 : DTR low
14:39:33 : Serial Port COM6 is successfully opened.
14:39:33 : Port configuration: parity = none, baudrate = 9600, data-bit = 8, stop-bit = 1.0, flow-control = off
14:39:35 : Timeout error occured while waiting for acknowledgement.
14:39:35 : Timeout error occured while waiting for acknowledgement.
14:39:35 : Error: Activating device: KO. Please, verify the boot mode configuration and check the serial port configuration. Reset your device then try again...
As it says port is oppen, but do not know what to do! I looked to assure the jumper in BOOT0 was porperly done, also have 5v thrugh USB, verified cable connection, Also I had reinstalled SMT32CubeProgrammer, all my thoughts to define the problem had exausted.
As you can see, I'm very limited and would like to flash the board and get to next step, to be able to do bench test.
All recomendations and help will be appreciated.
Miguel.

Pwm Fan issue

So, today I have installed a S6 board on my ender 3. Drivers, endstops, stepper motors, bed and hotend work find, but I have a strange behavior when I power on pwm layer fan. Infact in FAN0 connector it run always at 100% of speed. If I connect the fan on FAN1, it is always off. At last, if I connect the fan FAN2, finally it works as aspect ( pwm mode).
I want to specify that the hotend is connect to E0 24V connector, and the thermistor is connected on TE0 connector.
Could anyone explain me this behavior, or help me to resolve this?
Thanks

Cannot force DFU mode with GPS powered up

I am using the S6 board for a telescope project (OnStep).
It works normally for most functions.

However, when having the GPS connected, the board would not enter DFU mode when the BOOT0 button is pressed, then USB cable is inserted.

If I disconnect the 5V going to the GPS, then DFU mode works normally.

Any idea how to solve this?

Firmware not loading

Hello all I have a Fysetc S6 V2.0 board. The eeprom will not retain the program after reboot. I think I have everything enabled it's just not persistent

Fysetc s6 v1.2 and tft81050

Hello, I ask for your help, fysetc s6 v1.2 and tft81050 when connecting bltouch before parking the printer does not raise the z axis when AUTO_BED_LEVELING_BILINEAR the z axis also does not rise after the first touch.

Info about power supply

hello I bought a S6 V2.0 board and i have a question about power supply.
Can i use a 24V power supply for power input and a 12V power supply for bed only (using bed in)?
In this configuration the GND must to be common or not? And the hotend’s heater in this configuration (24V in) goes at 24 or 12V?

I2C data corruption.

If you use the NVram at location 0x50, data to all other devices are corrupt. Meaning I2C is unusable.

To reproduce problem. Access NVram, then access another device on I2C. Such as BME280 or DS3231.

Fysetc S6 and BL Touch

I'm having a problem.
I installed the cables as shown in the figure below:
image

BL Touch is working.
I can test it out.
But when the BL TOUCH touches the table, the Z Axis keeps descending without stopping.
I have to turn off the printer quickly.

Estou usando o TMC 2209 V3.1.

Klipper and new bootloader

Hi,
i've got error with new bootloader and klipper firmware with S6 board.
Firmware uploaded using STM32cube and DFU.
Sequence:

  1. Enter DFU Mode
  2. Upload Latest bootloader
  3. Restart Board
  4. Upload latest klipper compiled firmware. Start address set to 0x08010000
  5. Flashing successfull
  6. Attach S6 to RPI
  7. Starting Klipper, Firmware working OK, I can print
  8. When I reboot board with BOOT jumper set to DFU - it goes to DFU mode (expected)
  9. Whet I remove DFU Jumper and reboot board - USB cannot detect board anymore. It becomes brick.

I can repeat steps 1-7 to make it work again, but it is not expected scenario.

Please, advice what to do with that, thank you in advance.

Print FAN PWM control issue

Hello all,

I migrated from a F6 board to the S6 board and was testing my functionalities. I encountered an issue in which my print fan is not controlled properly. When controlling the fan via repetier or the LCD, it does not start until I reach 95% of the PWM. In the region from 95-100% the fan just turns on with maximum speed. No PWM change is observed. I did not change any settings (except the correct pin assignment within the S6 fan connections) between the firmware for the F6 board and the S6 board. What can cause this issue?

Below are some specs of my setup:

  • Firmware: Marlin 2.1.2.1
  • Board supply: 24VDC
  • Fan supply/type: 12VDC (also connected the jumpers on the board to 12V)
  • Normal PWM mode (i.e. No fast PWM defined)

Please let me know if you need any extra info.

Thanks in advance!

Limit switch protection?

Hello.
A defective endstop and/or a probe can feed voltage (let's say 24V) directly into the STM32, burning it. There is no diode or current limiting device on the endstops.
Any idea why?

FYSETC S6 2.0 and TMC2209V3.1 - TMC CONNECTION ERROR

I have the FYSETC S6 2.0 card and I'm trying to use the TMC2209 V3.1 driver
I'm using the FYSETC MINI 12864 V2.1 panel with SDCARD.
The TMC CONNECTION ERROR message appears on the panel when I turn on the card.

I'm trying to test the engines with Marlin BUGFIX 2.0 and 2.1.
It is returning the same error.

I always get the message 'TMC CONNECTION ERROR'.
Even if I put it in the 24v source with the pins in DC5V or in the USB.
Even if I put the pin on 5V and DC5V.

I'm trying to run TMC2209 V3.1 in UART.
image

5V Voltage Issue

Hello,

I have FYSETC S6 powered by 24V DC Power Supply. Measuring +5V and GND from UART Pin, it reads 4.95-5.0V as expected. However, when I connect Raspberry Pi to USB plug, +5V changes to 4.3-4.4V. This makes my PT100 amplifier inaccurate as it needs 0V and 5V inputs, not 0V and 4.3V input.

If the control board could use internal 5V2A supply even when USB device is connected, it would work better.

Platformio INI settings help - program runs when flashed from Arduino but not PlatformIO

After a bit work I was able to get a generic "blink.ino" sketch uploaded and running when using the Arudino IDE and the settings found here: https://onstep.groups.io/g/main/message/43912 and changing the upload address to 0x08010000 in the "stm32CubeProg.sh" script. ( 0x08008000 doesn't work even when I use the newer bootloader, not sure why)

However when I upload the same code using platformio the program doesn't run after uploading. Here is my current is .ini file for platformio:

[env:fysetc_s6]
platform = ststm32
board = fysetc_s6
framework = arduino
upload_protocol = dfu
board_upload.offset_address = 0x8010000
build_flags = -D PIO_FRAMEWORK_ARDUINO_ENABLE_CDC -Os

Does anyone have any tips to get the DFU upload working in plaformio for the S6? I assume I could use the same .ini which is used for the marlin build but I can't seem to figure out all the settings since many of the settings are found in separate scripts called by the ini file.

The output from the terminal during the upload:

CONFIGURATION: https://docs.platformio.org/page/boards/ststm32/fysetc_s6.html
HARDWARE: STM32F446VET6 168MHz, 128KB RAM, 512KB Flash
DEBUG: Current (blackmagic) External (blackmagic, cmsis-dap, jlink, stlink)
PACKAGES:

  • framework-arduinoststm32 @ 4.20200.221104 (2.2.0)
  • framework-cmsis @ 2.50700.210515 (5.7.0)
  • tool-dfuutil @ 1.11.0
  • tool-openocd @ 2.1100.211028 (11.0)
  • tool-stm32duino @ 1.0.2
  • toolchain-gccarmnoneeabi @ 1.90201.191206 (9.2.1)
    LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
    LDF Modes: Finder ~ chain, Compatibility ~ soft
    Found 11 compatible libraries
    Scanning dependencies...
    No dependencies
    Building in release mode
    MethodWrapper(["checkprogsize"], [".pio\build\fysetc_s6\firmware.elf"])
    Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
    RAM: [ ] 3.2% (used 4184 bytes from 131072 bytes)
    Flash: [ ] 5.0% (used 26164 bytes from 524288 bytes)
    .pio\build\fysetc_s6\firmware.elf :

section size addr

.isr_vector 452 134217728

.text 23744 134218180

.rodata 1880 134241924

.ARM.extab 0 134243804

.ARM 8 134243804

.preinit_array 0 134243812

.init_array 20 134243812

.fini_array 8 134243832

.data 540 536870912

.bss 3644 536871452

.noinit 0 536875096

._user_heap_stack 1536 536875096

.ARM.attributes 48 0

.comment 102 0

.debug_frame 1360 0

Total 33342
(["upload"], [".pio\build\fysetc_s6\firmware.bin"])
AVAILABLE: blackmagic, cmsis-dap, dfu, jlink, serial, stlink
CURRENT: upload_protocol = dfu
"C:\Users\User.platformio\packages\tool-dfuutil\bin\dfu-util" -d 0x0483:0xDF11 -a 0 -s 0x8010000:leave -D "D:\onedrive\OneDrive - UBC\Documents\PlatformIO\Projects\s6_test_3.pio\build\fysetc_s6\firmware.bin"
dfu-util 0.11

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2021 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/

Opening DFU capable USB device...
Device ID 0483:df11
Device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Interface #0 ...
Determining device status...
DFU state(10) = dfuERROR, status(10) = Device's firmware is corrupt. It cannot return to run-time (non-DFU) operations
Clearing status
Determining device status...
DFU state(2) = dfuIDLE, status(0) = No error condition is present
DFU mode device DFU version 011a
Device returned transfer size 2048
DfuSe interface name: "Internal Flash "
Downloading element to address = 0x08010000, size = 26652

Erase [ ] 0% 0 bytes
Erase [ ] 0% 0 bytes
Erase [= ] 7% 2048 bytes
Erase [=== ] 15% 4096 bytes
Erase [===== ] 23% 6144 bytes
Erase [======= ] 30% 8192 bytes
Erase [========= ] 38% 10240 bytes
Erase [=========== ] 46% 12288 bytes
Erase [============= ] 53% 14336 bytes
Erase [=============== ] 61% 16384 bytes
Erase [================= ] 69% 18432 bytes
Erase [=================== ] 76% 20480 bytes
Erase [===================== ] 84% 22528 bytes
Erase [======================= ] 92% 24576 bytes
Erase [======================== ] 99% 26624 bytes
Erase [=========================] 100% 26652 bytes
Erase done.

Download [ ] 0% 0 bytes
Download [= ] 7% 2048 bytes
Download [=== ] 15% 4096 bytes
Download [===== ] 23% 6144 bytes
Download [======= ] 30% 8192 bytes
Download [========= ] 38% 10240 bytes
Download [=========== ] 46% 12288 bytes
Download [============= ] 53% 14336 bytes
Download [=============== ] 61% 16384 bytes
Download [================= ] 69% 18432 bytes
Download [=================== ] 76% 20480 bytes
Download [===================== ] 84% 22528 bytes
Download [======================= ] 92% 24576 bytes
Download [======================== ] 99% 26624 bytes
Download [=========================] 100% 26652 bytes
Download done.
File downloaded successfully
Submitting leave request...
Transitioning to dfuMANIFEST state
====================================================================================== [SUCCESS] Took 12.91 seconds ======================================================================================

  • Terminal will be reused by tasks, press any key to close it.

And the blink script I am trying to upload that works using the Arduino IDE
#include <Arduino.h>
/*
Blink
This example code is in the public domain.

https://www.arduino.cc/en/Tutorial/BuiltInExamples/Blink
*/

// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(PB3, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
digitalWrite(PB3, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(PB3, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
Thanks for your help!

S6 Missing klipper bootloader firmware for flashing MCU over Uart

FYSETC S6 is proving a great board for klipper. and in conjunction with a RPI Z2 and Fluid/Mainsail is almost a perfect setup for most people to use or upgrade to.

the only issue thing that stops me recommending this as 100% perfect is that its not currently easy to upgrade the MCU firmware when klipper is updated without disconnecting the board from UART and rejumpering to setup for USB.

Section 3.3.2 of FYSETC's own wiki states this should be possible
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.

Recently FYSETC released a bootloader compiled for the similar Spider board which uses the same MCU as the S6.

therefore quick questions :-

  1. Can anyone tell me if a suitable equivalent is available for the S6 that i'm missing or havnt found
  2. could I load the Spiders bootloader firmware (klipper-32k-Uart.bin) on the S6
  3. How involved would it be to compile a suitable bootloader for the S6 that enables serial uart flashing
    and finally is there any other way to flash over the RPI serial UART that would work without needing a special bootloader ?

New bootloader

Hi, not sure this is the right place.
I tryed to upload new bootloader 0x8000 with stcube.
Once loaded, always with dfu and VScode I uploaded Marlin S6_8000 env but once I reboot (boot jumper and power off/on) no usb port happears.

Since it doesn't work I re uploaded boot_10000 and marlin s6 env and it works.

What's wrong?

Silkscreen wrong?

Hi,

I received my Fysetc S6 1.2 today and noticed that the silkscreen designators do not match the schematic. For example, on my board Z+ is labeled with PB12 but the schematic says Z+ is PA3. Is this an error on the silkscreen or does my board have a different pinout?

Thanks
Felicia

Missing pinout drawing file

I like a lot this board, but a thing I miss a lot to use it is a drawing with the correspondent pinout in place, so I wold like to know if you could provide some good stuff in this way.
some like this:
https://github.com/FYSETC/FYSETC-F6/blob/master/images/F6V1.3-PIN.svg
or this:
https://github.com/makerbase-mks/MKS-Robin-E3-E3D/raw/master/hardware/MKS%20Robin%20E3%20V1.0_003/MKS%20Robin%20E3%20V1.0_003%20PIN.pdf
or this:
https://user-images.githubusercontent.com/12979070/68524259-9e103600-02ff-11ea-8348-4f895cb3e100.png

Thanks a lot.

S6 2.0 not found after Klipper update

Hi,

I've got the S6 2.0, running Klipper with an RPi3B.

A couple of weeks ago Klipper was updated and I needed to update the firmware. It's a procedure I've done previously but since I don't do it often, I can't say I'm able to do it in my sleep. Now, for some reason after updating the firmware, the card's not found in fluidd. I figured that I must've done something wrong and at this point I feel like I've tried everything at least three times and that I have a feeling the card is borked.

The last thing I've done is that I flashed it with the STM32 CubeProgrammer software, and reflashed the bootloader (64k version) starting from 0x08000000 and then flashed my klipper.bin starting from 0x08010000. The klipper.bin I compiled with low-level extras enabled, STM32F446, 64k bootloader offset, 12 MHz crystal, USB (PA11/PA12) as comms interface. Didn't touch USB ids nor GPIO-pins.

After flashing, I powered off the board, removed the DFU-jumper, reconnected it to the Pi (USB) and run "ls /dev/serial/by-id/*" which gives me "No such file or directory".

I also reinstalled my fluidd so there's a possibility that I've messed up something with the configs as I used to have the controller connected to the Pi with UART and not USB.

I'm not sure what more information you need, but I'm happy to provide any logs or whatever could help anyone to figure out the problem.

Thanks!

S6_v1.2_Pinout

Is there a difference between the pinout of version 1.2 and ver. 2.1?

Onstep ST4 connection

HI,
I read on the onStep wiki that it is possible to connect the ST4 to the board.
The connection requires the use of "2.2K Ohm bussed resistor network 5-pin".
I wanted to know:

1 - Is it necessary even if SHC is not used?
2 - How do you connect the cables of the ST4 cable with the bussed resistor and then everything on the exp1?

Thanks in advance
Alessandro

add Step-3D-File for v2.0

Please add the .step-file for the v2.0.
I want to make some closures but no CAD-programm can read PDF3D-file.

trouble with bootloader

Hi. i trying to flash bootloader and STM32cubeProgrammer sent me an error https://ibb.co/F38f9KY.
Opening and parsing file: Bootloader-FYSETC_S6_10000.hex
17:21:46 : Error: Parsing fail
17:21:47 : Error: In line 6434 :
17:21:47 : Error: parsing count, expecting hex digit, found '_'
what i am doing wrong?

after that my board does not boot anymore but i was reflash it firmware but it doing nothing.
Can anyone save in stm32cubeprogrammer 0-7 INDEX of memories stm(0x08000000, 0x08004000, 0x08008000, 0x0800c000, and other sectors)? Please. help

Cannot compile a working firmware with TMC_DEBUG enabled

I am running the S6 board with the Fysetc TMC2209 drivers and every time I enable TMC_DEBUG in configuration_adv.h and upload the firmware to the board, I do not get serial communication from the USB port after rebooting from a firmware upload. With this disabled I don't get the full diagnostic information when sending an M122 command. I have posted this problem in multiple places (Fysetc forum, contact form on their website and tried to join their facebook group) and have not received any response from Fysetc tech support from ANY of my posts. SO now I will try here.

BLtouch alternative pin(s)

Hello all,

I purchased a S6 board (to replace my F6 board) and I would like to connect my BLtouch to the board. I unfortunately saw that the BLTtouch PWM connector should be connected to the Z-max pin. In normal operation, I use the Z-max endstop for homing. Therefore, I want to utilise both Z endstops (Z-min for BLtouch, Z-max for homing). Are there any alternative pins to connect my BLtouch PWM connector? If so, which pin do I need to assign to Servo0. In extend, if possible I would like to keep the 3 pin connector assembly (i.e. not connecting single BLtouch wires throughout the board).

The S6 V2.x board runs on Marlin 2.1.2.1 firmware.

Please let me know if you need any extra info.

Thanks in advance!

Arduino port issue

Hi

added the STMduino library to the Arduino, and can now select the S6 board in the menu
but the arduino IDE does not show any port available

do I still need to flash the firmware?

tried the ST cuberogrammer route- but no connection possible (after boot button procedure)

thx

[HINT] Problem with TMC and missing vmot

I know that 2.0 board is on development and I know that some TMC drivers have a lot of issues (they die) when vmot is missing but vin is present. To solve this issue it's a common way to use vin with a diode to power vmot.

I don't know if 2.0 may be powered (via usb?) with no 12/24V. In such case TMC lose their cnf and requires a reset + reprogram when 12v/24v is given (I noticed this acting at reverse, tmc fully programmed and removed 24V, once 24V comes back tmc 2209 registers are wrong).

There are some issues reported in Marlin about this weird behavior. On a different test board (ramps) I solved this powering TMC vmot with 5V + diode. It seems that 5v instead of 3.3 solve the issue.

Since I'm looking for 2.0 board it would be a good thing if it may solve such issue

Thanks for your attention

"Cut Jumpers" for 5V AD597K

Can someone explain in very simple terms how to "cut the jumper" so I can run a PT100 through an AD597K board?

Endstop

Hi, how do I connect the endstop from ender 3 to fysetc s6 v2.1?

R24 10 K pullup resistors

The 10K R24 pullup resistors are not populated on board Version 2.0.
This should be reflected in schematics

Flash marlin hangs bootloader

I'm facing a very weird issue with bootloader. I'm using an old 60x sd card, 256MB, FAT32, with firmware.bin file in it.
When I turn off and on it seems to hang (SD is on LCD).
During boot lcd is clean and stay clean
Very often it hangs, some time boot without updating firmware (rare) and some time it works correctly.

Anyone else had this issue?

Is boot source available that may let me fix it by myself?

Usb disk g-code

Hello. Can i upload g-code from usb disk (like on skr2 or robin nano v3), or only sd card? If not what needs to be done for this?

SPI3 pins don't work as SPI

Hi, I have a SPI TFT with touch and SD card (http://www.lcdwiki.com/2.4inch_SPI_Module_ILI9341_SKU:MSP2402), all using SPI for communication. When I use the TFT and touch in SPI1 both works fine, but when I use the SD in the same MISO and MOSI, the TFT and Touch became unstable, so I decided to use the SPI3 (PC10 for SCK, PC11 for MISO and PC12 for MOSI) for SD and SPI 1 for TFT and touch, so I see that the SPI3 didn't work. I tried to invert and use just TFT in SPI3 without sucess.
There are any way to make the SPI3 to work?
I don't use SPI step drives, so, if there are no way to use SPI3, is there are any way to use SPI2?

Klipper gives "Unable to write tmc spi 'stepper_x' register GLOBALSCALER" error for TMC 5160 driver

I am using Klipper firmware for Fysetc S6(version 2.1) board. I installed Fysetc S5160(version 1.2) driver to X and Y driver sockets. I am getting "Unable to write tmc spi 'stepper_x' register GLOBALSCALER" error in both slots. 4 jumpers are installed on bottom positions as described in the README. TMC 2209 drivers work in these sockets with UART configuration. I tried 4 different 5160 drivers so this shouldn't be a faulty driver issue.

Klipper docs say that this error might be the result of shared SPI bus:

Note that if the driver is on a shared SPI bus with multiple devices then be sure to fully configure every device on that shared SPI bus in Klipper. If a device on a shared SPI bus is not configured, then it may incorrectly respond to commands not intended for it and corrupt the communication to the intended device. If there is a device on a shared SPI bus that can not be configured in Klipper, then use a static_digital_output config section to set the CS pin of the unused device high (so that it will not attempt to use the SPI bus). The board's schematic is often a useful reference for finding which devices are on an SPI bus and their associated pins.

I looked at the schematic but I couldn't find out if the SPI bus is shared. Sample config file for F6 has a static_digital_output section but sample config file for S6 doesn't have it so I am not sure.

My printer config file:

[mcu]
serial: /dev/serial/by-id/usb-Klipper_stm32f446xx_32005B000F51303530323539-if00
restart_method: command

#[mcu]
#serial: /dev/ttyAMA0
#restart_method: command

[force_move]
enable_force_move: True

[printer]
kinematics: corexy
max_velocity: 300
max_accel: 3000
max_z_velocity: 25
max_z_accel: 30

[stepper_x]
step_pin: PE11
dir_pin: PE10
enable_pin: !PE9
microsteps: 16
rotation_distance: 40
endstop_pin: ^PA2
position_endstop: 0
position_max: 200
#homing_speed: 50

[tmc5160 stepper_x]
spi_bus: spi1
cs_pin: PE7
run_current: 0.8

[stepper_y]
step_pin: PD8
dir_pin: PB12
enable_pin: !PD9
microsteps: 16
rotation_distance: 40
endstop_pin: ^PA3
position_endstop: 0
position_max: 200
homing_speed: 50

[tmc5160 stepper_y]
spi_bus: spi1
cs_pin: PE15
run_current: 0.8

[stepper_z]
step_pin: PD14
dir_pin: PD13
enable_pin: !PD15
microsteps: 16
rotation_distance: 8
endstop_pin: ^PA0
position_endstop: 0.5
position_max: 200

[tmc2209 stepper_z]
uart_pin: PD12
run_current: 0.8
interpolate: False

[manual_stepper ex0]
step_pin: PD5
dir_pin: PD6
enable_pin: !PD4
rotation_distance: 5
microsteps: 8

[tmc2209 manual_stepper ex0]
uart_pin: PA15
run_current: 0.8
interpolate: False

[manual_stepper ex1]
step_pin: PE6
dir_pin: PC13
enable_pin: !PE5
rotation_distance: 5
microsteps: 8

[tmc2209 manual_stepper ex1]
uart_pin: PC5
run_current: 0.8
interpolate: False

[manual_stepper tool_lock_stepper]
step_pin: PE2
dir_pin: PE4
enable_pin: !PE3
endstop_pin: ^PA1
rotation_distance: 5
microsteps: 8

[tmc2209 manual_stepper tool_lock_stepper]
uart_pin: PE0
run_current: 0.8
interpolate: False

#[tmc2209 stepper_z]
#uart_pin: PD10
#run_current: 0.8
#interpolate: False

#[extruder]
#step_pin: PE2
#dir_pin: PE4
#enable_pin: !PE3
#microsteps: 16
#rotation_distance: 33.500
#nozzle_diameter: 0.400
#filament_diameter: 1.750
#heater_pin: PB15
#sensor_type: PT1000
#sensor_pin: PC0
#pullup_resistor: 4700
#control: pid
#pid_Kp: 22.2
#pid_Ki: 1.08
#pid_Kd: 114
#min_temp: 0
#max_temp: 500

#[heater_bed]
#heater_pin: PC8
#sensor_type: EPCOS 100K B57560G104F
#sensor_pin: PC3
#control: watermark
#min_temp: 0
#max_temp: 130

#[fan]
#pin: PB0
#hardware_pwm: True
#cycle_time: 0.00004

#[force_move]
#enable_force_move: True

[virtual_sdcard]
path: ~/gcode_files

[display_status]
[pause_resume]

[gcode_macro CANCEL_PRINT]
description: Cancel the actual running print
rename_existing: CANCEL_PRINT_BASE
gcode:
  TURN_OFF_HEATERS
  CANCEL_PRINT_BASE


My log file:
klippy.log

Connecting a 24V inductive probe to the S6 2.0

Yo!

So I'm slightly confused about the documentation regarding this feature:

"Limit switch socket 24V/5V/3.3V optional, ready for more other equipment, such as -inductive sensor, BL-Touch"

I've got a couple LJ12A3-4-Z/BY lying around and the only problem I see in using it, is that the signal going to the MCU would be 24V. I've been looking at the schematic for the board and I can't see there being any components to pull that voltage down.

Am I missing something or is there an undocumented way to connect it without extra components or do I need to solve the 24V to 5V signal some way with extra components?

( The printer is an Ender 3 with the Fysetc S6 2.0 running Klipper. )

S6 v2.1 - cant get in DFU Mode

Hello,

ive been following

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

I tried 2 different cables but i cant get it in dfu mode. is there anything different on 2.1?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.