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.
Compact size: 101.5mm x 72mm,Compatible with the Creatlity ender 3 motherboard size
fully integrated all in one solution:
UNIVERSAL POWER:
Onboard TF card socket
EXP1 for 12864 display panel (Creality 12864 panel or FYSETC Generic12864)
Onboard RGB control (V1.2 have no RGB control)
RGB control and fan control 12V/24V optional (Requires 24V to 12V module)
PCB:
Check examples
folder for more information.
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 |
Not available.
Features | Cheetah Pin | STM32 Pin | Pin No. | Comment |
X-MOTOR(1) | X-Step | PB8 | 61 | |
X-DIR | PB9 | 62 | ||
X-EN | PA8 | 41 | ||
Y-MOTOR(2) | Y-Step | PB2 | 28 | |
Y-DIR | PB3 | 55 | ||
Y-EN | PB1 | 27 | ||
Z-MOTOR(3) | Z-Step | PC0 | 8 | |
Z-DIR | PC1 | 9 | ||
Z-EN | PC2 | 10 | ||
E0-MOTOR(4) | E0-Step | PC15 | 4 | |
E0-DIR | PC14 | 3 | ||
E0-EN | PC13 | 2 | ||
TMC2209 SERIAL (UART2) | TX2 | PA2 | 16 | |
RX2 | PA3 | 17 | ||
End-stops | X-MIN | PA1 | 15 | |
Y-MIN | PB4 | 56 | ||
Z-MIN | PA15 | 50 | ||
FAN | FAN0 | PC8 | 39 | |
RGB | LED-R | PB0 | 26 | Can be used for fan1 |
LED-G | PB7 | 59 | Can be used for fan2 | |
LED-B | PB6 | 58 | Can be used for fan3 | |
Heating | E0-Heater | PC6 | 37 | |
Heated-Bed | PC7 | 38 | ||
Temperature | TE0 | PC4 | 15 | |
TB | PC5 | 18 | ||
EXP1 | BEEP | PC9 | 40 | |
BTN_ENC | PC12 | 53 | ||
BTN_EN2 | PC11 | 52 | ||
MISO | PA6/MISO2 | 22 | ||
BTN_EN1 | PC10 | 51 | ||
SCK | PA5/SCK2 | 21 | ||
CS | PA4 | 20 | ||
MOSI | PA7/MOSI2 | 23 | ||
UART | TX | PA9/TX1 | 42 | |
RX | PA10/RX1 | 43 | ||
I2C | I2C2 SCL | PB10 | 29 | |
I2C2 SDA | PB11 | 30 | ||
SWD Debug | SWDIO | PA13 | 72 | only used for debugging now and can be used for other purposes. |
SWCLK | PA14 | 76 | only used for debugging now and can be used for other purposes. |
Features | Cheetah Pin | STM32 Pin | Pin No. | Comment |
X-MOTOR(1) | X-Step | PB8 | 61 | |
X-DIR | PB9 | 62 | ||
X-EN | PA8 | 41 | ||
Y-MOTOR(2) | Y-Step | PB2 | 28 | |
Y-DIR | PB3 | 55 | ||
Y-EN | PB1 | 27 | ||
Z-MOTOR(3) | Z-Step | PC0 | 8 | |
Z-DIR | PC1 | 9 | ||
Z-EN | PC2 | 10 | ||
E0-MOTOR(4) | E0-Step | PC15 | 4 | |
E0-DIR | PC14 | 3 | ||
E0-EN | PC13 | 2 | ||
TMC2208 SERIAL | X TX | PA11 | 44 | |
X RX | PA12 | 45 | ||
Y TX | PB6 | 58 | ||
Y RX | PB7 | 59 | ||
Z TX | PB10 | 29 | ||
Z RX | PB11 | 30 | ||
E TX | PA2 | 16 | ||
E RX | PA3 | 17 | ||
End-stops | X-MIN | PA1 | 15 | |
Y-MIN | PB4 | 56 | ||
Z-MIN | PA15 | 50 | ||
FAN | FAN0 | PC8 | 39 | |
FAN1 | PB0 | 26 | ||
Heating | E0-Heater | PC6 | 37 | |
Heated-Bed | PC7 | 38 | ||
Temperature | TE0 | PC4 | 15 | |
TB | PC5 | 18 | ||
EXP1 | BEEP | PC9 | 40 | |
BTN_ENC | PC12 | 53 | ||
BTN_EN2 | PC11 | 52 | ||
MISO | PA6/MISO2 | 22 | ||
BTN_EN1 | PC10 | 51 | ||
SCK | PA5/SCK2 | 21 | ||
CS | PA4 | 20 | ||
MOSI | PA7/MOSI2 | 23 | ||
UART | TX | PA9/TX1 | 42 | |
RX | PA10/RX1 | 43 | ||
SWD Debug | SWDIO | PA13 | 72 | only used for debugging now and can be used for other purposes. |
SWCLK | PA14 | 76 | only used for debugging now and can be used for other purposes. |
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.
To compile the firmware , you need to install Visual Studio Code and the platformio pulg-in.
You have two code source choices :
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
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.
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
Just click check mark to compile.
Note: If you generate the hex file fail you may need to open vscode using Administrator Account .
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.
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.
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.
We provide several methods for you to upload the firmware . But first, you need to install CH340x driver, please check here: CH340 driver.
You need to upload bootloader
first, please follow the README
in bootloader
folder in this repository. Well, link is github or gitee.
This method only works for Marlin. You can just click the upload button in platformio to upload the firmware.
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.
Power the board with power supply and connect the board to your PC with USB cable
Double the click "FlyMcu.exe" software
Select Reset@DTR low(<-3v),ISP @RTS High
Click "Port" to select the port of your USB
Select firmware.hex
in the Code File For Online ISP:
edit box. This the firmware you built. There is pre-build firmware file named klipper.hex
on github or gitee. If you use marlin, pre-build firmware is on github or gitee.
At last, click Start ISP(p)
button to upload the firmware.
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
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
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
V1.1:
V1.2a:
V1.2b:
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?
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.
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.
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!
Actually there is an inappropriate firmware configuration. You need to change
#define CHOPPER_TIMING CHOPPER_DEFAULT_12V
to
#define CHOPPER_TIMING CHOPPER_DEFAULT_24V
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!***
Please submit any technical issue into our forum