Shipping Lead time: 4-7 weeks


Your Cart is Empty

Frequently Asked Questions

There is essentially no difference between the two if you are good with codes. What we do is we add in some custom functions, reorganized some important codes and placed them in easy to follow steps. We also try to keep ourselves up to date with Marlin's latest releases. You don't have to control+F for codes because we placed them step by step, one after the other including all instructions for BLtouch & the capacitive sensors. We do not and cannot take credit for Marlins' Devs team work. 

It takes 30 minutes to watch the video tutorial found here:

Once you are familiar with the cheetah configurations, updates and changes should take you minutes.

Cheetah 5.0 appears to be easier because we rearranged some of Marlin's menu and gave it some 'brains'. 

Rearranging them means you don't have to scroll up and down Marlin to find what you need. Instead; you can find most of what you need within our native 15 sections.

The brains we added allows cheetah to push a few buttons for you without you doing it. These are hardcoded into our version of Marlin. Less work for you means less chance you'll make a mistake. This increases the chance of a successful compilation and translates to you getting your printer up and running as soon as possible. 

Coupled with our group of people who actively help each other out, people tend to say cheetah 5.0 version of Marlin is easier. 

P.S. Cheetah 5.0 technically only has 15 sections that require user input. This makes everyone who uses our version of Marlin knowledgeable enough to compile for any supported board, hotend, extruder and printer.

Did you go through the entire FAQ and is certain you can't find the answer you need?

Join the groups for support! Help is available on both our Facebook group and discord channel:

Facebook Group:

Discord Channel:

Email support is only available for KAY3D CoreXY printers

There is currently no service offering to build a firmware for you. But there may be one in the near future. 

Instead, we'll encourage you to build your own. Just try it! You can do it! The community we have will be with you every step of the way. 

#define INVERT_E0_DIR true // true for KAY3D CoreXY Conversion Kits.

This is for your Extruder's direction. Change value to false if you need your extruder motor to rotate the other way. ** it's false* *. Not False. Not FALSE. It's case sensitive.

Did you press Auto home and both motors X & Y move together? You probably downloaded the wrong firmware. Those are for our CoreXY machines. Please download the latest cheetah version of Marlin at

If you need a visual guide, you can find one on youtube here:

Look for the following lines of code in platformio.ini


platform = ststm32

Change it to: 


board_build.core = maple

platform = ststm32

Why does this happen? This happens when certain updates are done in VScode.

This assumes your auto bed levelling sensor is working.

Assuming your ABL (short for auto bed levelling sensor) is working, it sends a signal to your main board asking the nozzle to stop going downwards (or upwards if you have a CoreXY machine like the ones we sell) when it's near the heated bed. What happens when it tries to send such a signal but the mainboard doesn't get it? 

It dives like a champ. Seriously.

It will not annihilate your heated bed but it will give it a battle scar. You really don't want that. 

To fix that, ensure your mainboard gets the signal by ensuring your wires are correct. The importance of wiring is emphasised here. Wire wrong = diving champion

The link's for a bltouch BUT capacitive sensors with black and white wires have the same type of connections to the mainboard.

Forget capacitive sensors if you want unparalleled deviations in first layer performance. They work 'O.K. but Inductive sensors are the way forward. Inductive sensors with thermistors (that you have to tune) are even better. 

P.S.: Read up on capacitive sensors and how temperature drifts affect them. 

You probably forgot to set change_value in platformio.ini

If you have a BLTOUCH v3.1 enabled, you forget to enable BLTOUCH. 

Both of them are required to have BLTOUCH work

Manually include a folder called #include in the missing path. This folder can be empty. Just create it and try to compile again.

Move you folder into the root of your C:drive. 

Windows really don't like insanely long file names. Remember to run VScode as an administrator if you still have issues with squiggles!

Look at custom codes in configuration.h. You will find them at the end of the codes if you scroll all the way down.

If you have an external SD card reader like the BTT TFTs. Enable it accordingly. If you are using the mainboard one; enable the one for the mainboard

(If you have an Ender 5, try Ender5_2 configuration instead to see if it helps correct your XY probe offset issues )

Ensure your XY probe offsets are correct. 

1) Ensure they are written in the firmware

2) Ensure you clear your EEPROM by using M502 via pronterface or reset eeprom under KAY3D commands via the LCD in marlin mode

Now auto home again to see if your nozzle is centre. If yes, you're all good. If not, check your M851 values. 

4) Send M851 values in pronterface to see if the value that appear on a host appears the same as what you set in firmware. If not, send M851 Xchagne_value Ychagne_value to overwrite and use M500 to save the new values. 

change_value in this case represents your offset values.

1) Ensure your probe offsets are correctly set (see above)

2) Ensure your X MIN/ MAX Y MIN/ MAX pos are set correctly. Setting them wrongly tells your printer to go weird places. In this case, sends them out of the print area. 

If you ever get this definition; check if your pin files have been tampered. Download a fresh copy of the firmware and try again. 

If a fresh download produces the same error, please write to us at

P.S. pin files cannot be corrupt but if they are; we'll like to know and we'll thereafter help you with your firmware.

Serial Ports are automatically defined for you. Same as motherboard values. These are automatically declared as soon as you choose a motherboard from the early sections of the setup guide.

However, if you want to change them, you can change them in this file: boards_def.h

We know that sometimes, we have more than a little modification on our printer. For example, we have gone CoreXY for our ender 3/5/5 Plus and sometimes, certain things have expanded. 

You may have an increased height, bed size etc on your original printer and now you want to make edits. 

Head to printer_def.h file and open it. Now head to #define custom_printer in configuration.h 

With reference to your printer_def.h files and your own printer's configuration, set them up in custom_printer section. Hit compile and you should be ready to go!

I have a custom printer which is not supported. What is the best way to do it? 

Look at the support printers that cheetah has. You can find the information at

Now head to printer_def.h and find out the codes that belongs to a printer closest to yours.

Now head to #define custom_printer section in configuration.h and make the edits relevant to your machine. 

If you run into this issue; you probably have one of the following. An 8 bit board, a '32' bit board from BigTreeTech that is a 'mini' board.

Rom overflow in visual studio code is an indication that the 'ROM', in this case better referred to as the Marlin program you're trying to fit into the board is too big to fit onto your controller board.

So why does this happen? We're going to use analogies that are hopefully simple to understand and grasp.

Every board, especially 8 bit boards have limited space. Think of your controller board like a basket for apples. Let's say, an 8 bit board has space for 100 apples and you have 200 apples on hand. Would it fit? No, because you have an excess of 100 apples. And you will know that as well when visual studio code reports that there's a "rom overflow" for 100 apples.

Now, let's say you have a '32' bit board; You should have more space right? Yes, technically that's true. But it appears that some 32 bit boards out there have chips (think of it as a core component on your controller bard) has less than ideal specifications on them. Some of these mini boards come with chipsets labeled: STM32F103RC

To complicate things, this chipset has environments in Marlin that can let you get a "bigger basket". A mini board with the above chip, when flashed with STM32F103RC_btt gets you the default basket size while STM32F103RC_btt_512K gets you a BIGGER basket size.

Bigger basket size sounds good right? Except the chipset STM32F103RC_btt is not designed to be flashed with a bigger basket. The problem with getting a bigger basket than you should is, this chipset now runs a risk of being "locked-up". In layman terms; a "locked-up" controller cannot respond to Marlin commands. It cannot cut your thermal heaters i.e nozzle/ hotend/ bed heater when commanded to do so. (think thermal runaway failure) because it's been "locked-up". An easier phrase to understand is "your board becomes unresponsive"

When such lock-ups happen, the only way is to switch off the power, assuming you witness something wrong with your printer in the first place.

Want to know what happens in a locked up state? Your heater elements start rising with no limitations. So yes, your hotend will melt, heated bed will melt as soon as it gets hot enough and it will not stop until the power is cut.

Would it cause a fire? Yes. Absolutely. The real question is, do you, want to take the risk? Or, can you afford to take the risk?

So what if you really have 200 apples and want to play by the book? Enable STM32F103RC_btt if you have one of the selected mini boards.

Have ROM overflow? Enable compress_space found in configuration.h. This cheetah native function removes some common items that are not that important in Marlin and tries to free up some space. You can think of it as having a personal assistant throwing off some rotten apples; so you can have more space to get new ones.

Basket still too small? You can take it further by enabling super_compress but this disables your SD card functionality

What if you really want to keep your SD card, play by the books and at the same time want a bigger basket? Get another controller board. No, we're not joking.

A new board with drivers can cost you $40-60. A house renovation of a fire hazard can cause several more zeroes to the above sum.

A good board that we support equally is the SKR 1.3/1.4/1.4T series.

Your last question may be, why does BigTreeTech have boards that use these chipsets that cannot use a 512k environment reliably? We don't know. We think it's a question that they can better answer.