FYSETC / FYSETC-Cheetah

FYSETC Board - 32bit control board for creality/voron and other 3D printer including Ender3, Ender3 pro, Ender5, voron0, voron0.1.
https://www.aliexpress.com/item/33053875657.html
GNU General Public License v3.0
13 stars 3 forks source link

1. Product Introduction

Designed for a single-head 3D printer, many interfaces are reserved for more features. Such as AC detection, filament detection, leveling with BL-touch or other sensors.

2. Features

3. Application

Check examples folder for more information.

4. Hardware

4.1 Hardware Reasources

Board Name Cheetah
License GPL V2.0
Latest Version V1.0
Extruders 1
Fixed Fans 2 Max
Controlled Fans 1 Max
Heaters 1 Max
Endstops 3 Max
Temp sens 2 Max
I2C 1
SWD 1
Serial port chip CH340
CPU STM32F103
CPU Speed ( MHz ) 72 Mhz
Stepper driver 4X TMC2209 (V1.2 = 2208)
Stepper driver Type Onboard
Input 12v/24v
Output BED OUT:10A Max ;Heater Out:5A Max

4.2 Connectors and jumpers define(V1.1)

Cheetah_connectors Cheetah_jumpers

4.3 Connectors and jumpers define(V1.2)

Not available.

4.4 Pin Definition

4.4.1 Cheetah V1.1

FeaturesCheetah PinSTM32 PinPin No.Comment
X-MOTOR(1)X-StepPB861
X-DIRPB962
X-ENPA841
Y-MOTOR(2)Y-StepPB228
Y-DIRPB355
Y-ENPB127
Z-MOTOR(3)Z-StepPC08
Z-DIRPC19
Z-ENPC210
E0-MOTOR(4)E0-StepPC154
E0-DIRPC143
E0-ENPC132
TMC2209 SERIAL (UART2)TX2PA216
RX2PA317
End-stopsX-MINPA115
Y-MINPB456
Z-MINPA1550
FANFAN0PC839
RGBLED-RPB026Can be used for fan1
LED-GPB759Can be used for fan2
LED-BPB658Can be used for fan3
HeatingE0-HeaterPC637
Heated-BedPC738
TemperatureTE0PC415
TBPC518
EXP1BEEPPC940
BTN_ENCPC1253
BTN_EN2PC1152
MISOPA6/MISO222
BTN_EN1PC1051
SCKPA5/SCK221
CSPA420
MOSIPA7/MOSI223
UARTTXPA9/TX142
RXPA10/RX143
I2CI2C2 SCLPB1029
I2C2 SDAPB1130
SWD DebugSWDIOPA1372only used for debugging now and can be used for other purposes.
SWCLKPA1476only used for debugging now and can be used for other purposes.

4.4.2 Cheetah V1.2

FeaturesCheetah PinSTM32 PinPin No.Comment
X-MOTOR(1)X-StepPB861
X-DIRPB962
X-ENPA841
Y-MOTOR(2)Y-StepPB228
Y-DIRPB355
Y-ENPB127
Z-MOTOR(3)Z-StepPC08
Z-DIRPC19
Z-ENPC210
E0-MOTOR(4)E0-StepPC154
E0-DIRPC143
E0-ENPC132
TMC2208 SERIALX TXPA1144
X RXPA1245
Y TXPB658
Y RXPB759
Z TXPB1029
Z RXPB1130
E TXPA216
E RXPA317
End-stopsX-MINPA115
Y-MINPB456
Z-MINPA1550
FANFAN0PC839
FAN1PB026
HeatingE0-HeaterPC637
Heated-BedPC738
TemperatureTE0PC415
TBPC518
EXP1BEEPPC940
BTN_ENCPC1253
BTN_EN2PC1152
MISOPA6/MISO222
BTN_EN1PC1051
SCKPA5/SCK221
CSPA420
MOSIPA7/MOSI223
UARTTXPA9/TX142
RXPA10/RX143
SWD DebugSWDIOPA1372only used for debugging now and can be used for other purposes.
SWCLKPA1476only used for debugging now and can be used for other purposes.

5. Firmware

5.1 Marlin

The FYSETC CHEETAH firmware is pre-config for ENDER3 machine, if you want to change the firmware or compile the code yourself , follow the steps.

5.1.1 Download Vscode + platformio

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

5.1.2 Firmware code

You have two code source choices :

Source 1

You can get Marlin code is in the firmware/Marlin folder in this repository github or gitee.

And change MOTHERBOARD define according to your cheetah board version in Configuration.h

Cheetah v1.1x

#define MOTHERBOARD BOARD_FYSETC_CHEETAH

Cheetah v1.2x

#define MOTHERBOARD BOARD_FYSETC_CHEETAH_V12
Source 2

Also you can get upstream branch from github or gitee. But remember to change default_envs in platformio.ini file.

default_envs = STM32F103RC_fysetc

And change MOTHERBOARD define according to your cheetah board version in Configuration.h

Cheetah v1.1x

#define MOTHERBOARD BOARD_FYSETC_CHEETAH

Cheetah v1.2x

#define MOTHERBOARD BOARD_FYSETC_CHEETAH_V12

You'd better change your configuration base on the configuration on github cheetah v1.1/cheetah v1.2 or gitee cheetah v1.1/cheetah v1.2.

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

Just click check mark to compile.

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

5.2 Klipper

5.2.1 Requirement

Our Cheetah board have CH341 chip, so you may need to install its driver. There are a lot of CH341 driver if you search on the internet, links below may help.

Ch34x

5.2.2 Compile firmware

image-20210707105817241

If you want to use sdcard bootloader, you can follow the instructions github or gitee.

After you upload the firmware, please power down Cheetah first, then power on again. And use the following octoprint parameter.

image-20210707110514671

5.2.3 printer.cfg

You can change your config according to you machine base on the generic printer.cfg from Klipper here(Cheetah_v1.1) and here(Cheetah_v.12). Or our example config in Firmware\Klipper\Cheetah** folder here.

5.3 Upload the firmware

We provide several methods for you to upload the firmware . But first, you need to install CH340x driver, please check here: CH340 driver.

Method 1: Upload the firmware with sdcard

You need to upload bootloader first, please follow the README in bootloader folder in this repository. Well, link is github or gitee.

Method 2: Upload the firmware(windows,linux,Mac) - for Marlin

This method only works for Marlin. You can just click the upload button in platformio to upload the firmware.

1561099546202

Method 3: Upload the firmware(windows)

This method only works in windows system.

After compiling , you should see the firmware file firmware.hex in the folder FIRMWARE_LOCATE\Marlin\Marlin\.pio\build\STM32F103RC_fysetc\

You can follow the following steps to upload the firmware.

image-20210706170320150

Method 4: Upload the firmware(Klipper)

This method is only for Klipper firmware. According to the method from Klipper config file for Cheetah here and here. You can run the command

stm32flash -w out/klipper.bin -v -i rts,-dtr,dtr /dev/ttyUSB0

Method 5: Upload the firmware(linux)

This method only works in Linux system.

Delete the old version driver /lib/modules/$(uname -r)/kernel/drivers/usb/serial/ch341.ko

rm /lib/modules/$(uname -r)/kernel/drivers/usb/serial/ch341.ko

Download the CH34x driver(linux version) from our github or gitee.

Follow the readme.txt to make and load the driver.

If you want the driver load automatically every time your PC power up. You can copy the ch34x.ko file to

directory /lib/modules/$(uname -r)/kernel/drivers/usb/serial/ , and do

depmod 

First get the code

git clone https://git.code.sf.net/p/stm32flash/code stm32flash-code

Then follow the INSTALL file to install the software

Connect the motherboard with USB cable and your PC. And do

dmesg

And you will get message like

1562654867797

the ttyUSB0 is the port to communicate with the motherboard.

And then go the firmware.hex file location directory and do the follow command to upload the firmware

 stm32flash -w firmware.hex -v -i rts,-dtr /dev/ttyUSB0

6. Version


V1.1:

  1. Initial version

V1.2a:

  1. Change 2209 to 2208 and support 2208 UART mode
  2. Add a controlled fan for hotend
  3. And a 24 to 12V/2A Circuit for fans and mosfets
  4. Add mosfet driver chip
  5. Remove the RGB circuit and I2C pins
  6. Change the 4P pin header(1.1 is USB pinout) to UART1
  7. Fixed USB voltage reflow to PSU issue

V1.2b:

  1. Fix some silks mark
  2. Update MOSFET drive circuit

7. FAQ:


1. Why use USB-TO-UART chip for USB?

We just want to give you a convenient way to update the firmware without having to think about which bootloader to use and how to jumper BOOT0&BOOT1. Also, if your board is already installed in the machine, the jumper setting is more inconvenient for you. So, by adding a chip that can solve the problem, why not do it?

2. Why does the USB power flow back to the PSU?

At the time of design, we thought that plugging in the USB is just to update the firmware, and at other times you will use the SD card for printing. Even if you use USB printing, it should be a short-time debugging. Even, we found that most of the 2560 boards did the same, and nothing went wrong. This should be a way of testing over time. Until TH3D promotes this problem in the whole world, I think this will cause confusion for many people, so I will solve this problem whether or not it will cause problems, and it was already solved on the 1.2a version.

3. The direction of the encoder is wrong?

First of all, this is not a hardware problem, we can adjust it through software, and it is very easy. Secondly, there is no fixed standard in this direction, and different people may not like the same. Finally, we have changed to the most favorite way, if you want to reverse, you can also set the firmware yourself. Note: In fact, our price is only the price of a hardware platform, we have never calculated the value of software, we think that as one of the contributors and users of marlin, we should follow the spirit of open source, make more people easier Get the convenience of open source. Instead of selling it with open source resources.

4. The screen displays garbled characters?

First of all, we should know that low-voltage signals are easily interfered, so we should try to avoid the screen line and the high-voltage and high-current lines being too close. In addition, our people usually have static electricity on their hands, and directly touch some electronic components, which may also affect normal signal transmission. So if it is just an accidental phenomenon and it will disappear after re-power, then don't worry. If it has been there, please contact us and we will deal with it according to the specific situation!

5. Y-motor got very hot

Actually there is an inappropriate firmware configuration. You need to change

 #define CHOPPER_TIMING CHOPPER_DEFAULT_12V

to 

 #define CHOPPER_TIMING CHOPPER_DEFAULT_24V

6. Can't save config to eeprom

This is a firmware issue that has been fixed so far, you can fix it by upgrading the firmware. For new firmware,the default config is not for cheetah board anymore as we have other boards to release and the need to build the firmware, you need to change default_envs to fysetc_STM32F1 in platformio.ini file and replace the configuration.h and configuration_adv.h file with FYSETC example config.

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

8. Tech Support


Please submit any technical issue into our forum