3DPrintscape
ToolsCMulticolor Planner$Filament Cost Calc°Filament Temp ChartMMaterial AdvisorRRetraction GuideFFlow Rate CalcDDrying Guide!Fix My PrintAll Tools
Guides

CR Touch Marlin Firmware for Creality 32-Bit Boards

Build a CR Touch-ready Marlin firmware baseline for a compatible Creality 32-bit board—starting from the correct config example, enabling the right probe workflow, and validating the result safely.

Rob··17 min read
CR Touch Marlin Firmware for Creality 32-Bit Boards

If you have already installed a CR Touch on a compatible Creality printer and want to use a custom Marlin build instead of stock firmware, the safe path is to start from the configuration example for your exact printer and board, prove the unmodified build works, then make a small set of probe-specific changes. In the source video, I used an Ender 3 Pro with a Creality 4.2.2 board as the example.

⚠️ Warning

This is a custom-firmware workflow, not a universal CR Touch install. The original video was recorded with Marlin 2.0.x-era files. Current file names, configuration options, board environments, and vendor flashing instructions can change—confirm every choice against your exact board and current Marlin documentation before flashing.

Quick answer: when a custom Marlin build makes sense

A custom build makes sense when you have a supported board, understand how to recover from a bad flash, and need a configuration that stock firmware does not provide. It is not the first thing to try when a new probe fails to home or a first layer looks wrong. In the video, the physical installation was already complete; this process only replaces the stock firmware with a build configured for the probe.

If the probe has not been installed and tested with the physical wiring first, start with the CR Touch installation guide for Creality 32-bit boards. Keep the hardware install and custom firmware work as separate troubleshooting steps.

What the original build covered

The source workflow installed VS Code, PlatformIO, and Auto Build Marlin; downloaded the Marlin firmware source and configuration examples; selected the matching Ender 3 Pro / 4.2.2 configuration; and made a focused group of CR Touch changes. The build was then compiled, copied to an SD card, and flashed to the printer before moving on to Z offset and a first-layer test.

The important boundary is the hardware assumption. The video assumes all five probe wires are connected to the board’s BLTouch-style port without a custom wiring change. If your board, connector, or wiring differs, do not copy the configuration choices below without tracing that difference first.

Before you edit anything: identify the exact board

The printer name alone is not enough. Creality printer families can ship with different boards, and a configuration example or build target only applies when it matches the board actually installed. In the video, the example uses an Ender 3 Pro and a Creality 4.2.2 board; that is a reference point, not proof that the same files fit every Ender 3 Pro.

Before opening the electronics cover or downloading firmware, record the board label, printer model, probe mount, and wiring route. If you cannot verify a matching current configuration example and a recovery method for the board, stop there instead of treating a compiled file as a safe firmware update.

Set up a clean Marlin workspace

The video uses VS Code with PlatformIO and the Auto Build Marlin extension. PlatformIO is installed as part of that setup; Auto Build Marlin is optional but made it easier to select and run a build in the original workflow.

After downloading the firmware source and configuration examples, keep the project in a short, simple folder path. The original Windows workflow moved the firmware close to the drive root because deeply nested paths could cause build-time file-length problems. Open the top-level Marlin project folder—the one containing platformio.ini—not only the inner Marlin folder.

Windows File Explorer showing the extracted Marlin configuration examples folder
The video starts from the configuration example that matches the printer and exact board. Source video timestamp: 03:54.

💡 Rob's Tip

Build the untouched configuration example once before changing the probe settings. A successful baseline build makes it much easier to tell whether a later failure came from the source/setup or from one of your edits.

Start from the matching configuration example

In the video, I copied the four configuration files for the Ender 3 Pro 4.2.2 example into the Marlin source folder and overwrote the defaults. This creates a known board-and-machine starting point before any CR Touch settings are enabled.

That workflow only works when the example and source release belong together. Do not mix a configuration folder from one Marlin release with unrelated source from another, and do not keep several unpacked copies of the same project open. The video specifically calls out duplicate project copies and an incorrect root folder as build blockers.

The CR Touch settings shown in Configuration.h

The video used the BLTOUCH configuration option for the CR Touch because the two use the same probe-sensor configuration in that Marlin setup. It also switched from nozzle-based probing to probe-based Z homing. That choice was tied to the full five-wire connection at the board’s BLTouch port; modified wiring needs a configuration that matches the actual wiring.

For the X and Y probe offsets, the video used -44 and -7 as a close starting point from the existing BLTouch setup. Those numbers are mount-specific. Measure your own nozzle-to-probe relationship rather than treating them as a universal CR Touch offset. The Z offset was intentionally left at zero in the firmware because it was set later at the printer with the calibration workflow.

Marlin Configuration.h open in VS Code with the BLTOUCH configuration line enabled
The CR Touch uses the BLTouch-compatible probe configuration shown in the original build. Source video timestamp: 07:49.

The remaining core changes shown were enabling bilinear auto bed leveling and Z-safe homing. These settings establish the probe behavior the source build expected. If a current Marlin release uses different names, menus, or dependencies, follow the current documentation for that release instead of forcing an old search result to match.

Enable the Z-offset workflow instead of guessing

In Configuration_adv.h, the video enabled the Probe Offset Wizard. That does not magically determine nozzle height; it makes the calibration workflow easier to access after the probe is installed and the firmware is running. The actual offset still needs to be set and verified with a controlled first layer.

Marlin Configuration_adv.h showing the Probe Offset Wizard option in VS Code
The Probe Offset Wizard was enabled to make post-flash Z-offset setup easier. Source video timestamp: 09:28.

After the firmware boots and homes normally, use the Z-Offset Wizard guide to set the nozzle height deliberately. Then use Cura first-layer settings only after the probe, homing routine, and offset all behave as expected.

Build, flash, and validate in that order

Once the configuration edits were complete, the video built the matching Creality environment with Auto Build Marlin. A successful build only shows that the project compiled; it does not prove the binary belongs on every Creality 32-bit board. Confirm the target, output file, SD-card requirements, and flashing process for your exact hardware before turning the printer back on.

Auto Build Marlin screen showing a successful Creality firmware build
A clean build was verified before the firmware output was copied for flashing. Source video timestamp: 11:07.

After flashing, verify the printer name if you changed it, then test homing and probe deployment before adding Cura start-code changes or starting a long print. The original workflow proceeds to add G29 in Cura, set Z offset, and begin a test print, but it does not justify copying a generic start-code block to an unknown printer. Use the start sequence your firmware and printer setup support.

Changes I would leave alone unless the symptom requires them

The video mentions a BLTouch delay option and high-speed probing. Neither was presented as a required CR Touch change. The delay adjustment was discussed for some off-brand probe behavior, while high-speed probing was treated as a time-versus-accuracy trade-off. For a long print, the few seconds saved by faster probing were not worth giving up the more conservative choice in the original workflow.

That principle is more valuable than the individual setting: change the smallest number of variables that answer the problem you actually have. If the normal probe routine works, do not add performance or timing changes simply because they appear near the required settings.

Common build and setup mistakes

Opening the wrong folder

Opening only the inner Marlin folder can hide platformio.ini and keep the build environment from loading correctly. Open the project root and make sure there is only one intended copy of the project in the workspace.

Editing first and compiling later

A baseline compile establishes that the downloaded source, board example, and toolchain can work together. Skipping it makes every later error harder to interpret.

Copying another printer’s offsets

The -44 / -7 values shown in the video were a close starting point for that mount. They are not safe default values for another bracket, carriage, or printer. Measure yours.

Treating the probe as a cure for every first-layer problem

A probe can compensate for measured variation, but it cannot fix a dirty build surface, poor filament flow, loose mechanics, or an incorrectly set nozzle height. If the visible symptom remains unclear after the first layer, use Print Doctor to work through the safest checks first.

Related guides and next steps

For the broader firmware workflow, continue with the Marlin firmware guide for Creality boards. The OctoPrint, Firmware & Upgrades hub keeps the related upgrade paths together. If the print still shows a visible first-layer, adhesion, or extrusion problem after calibration, start a targeted Print Doctor diagnosis before changing more firmware options.

Frequently asked questions

Does a CR Touch use the BLTouch setting in Marlin?

In the Marlin build shown in the original video, yes: the CR Touch used the BLTOUCH configuration option. Verify the equivalent option in the Marlin release and board configuration you are actually using.

Should I use the offsets from this video?

No. The video used -44 and -7 for its own mount as a close starting point. Probe offsets are determined by the physical nozzle-to-probe location on your printer, so measure them for your own setup.

Do I need to remove the Z-stop when using a CR Touch?

The source video states the Z-stop could remain connected or be disconnected for that build. Treat that as a board-and-firmware-specific detail and verify your current configuration rather than changing wiring by assumption.

Is a successful Marlin compile enough to flash the printer?

No. It confirms the selected project compiled. You still need to confirm that the environment, generated binary, board, and flashing method match your exact printer before applying the update.

Before another change

Separate firmware from print-quality problems

Use these checks to make sure the next change addresses the actual cause, not just the symptom.