Welcome! Log In Create A New Profile

Advanced

CR-200B Marlin

Posted by jpff 
CR-200B Marlin
December 14, 2025 11:33PM
Hi

I have a CR-200B printer for which I'm trying to get Marlin correctly compiled for. This printer has a Creality 4.2.5 board.

With my current configuration file the X and Y axis work, but the Z axis is inverted, need to invert it in the configuration file.

The following happens:
1) extruder doesn't work
2) if i home z axis, z axis goes down a bit then moves up
3) if i use arrows in octoprint the down arrow moves axis up and the up arrow moves it down (conflict with 2)? )
4) bltouch doesn't trigger z stop
5) bltouch needle correcly moves up and down when homing Z axis
6) both hotend and bed heater work
7) case fans don't work

I've attached the configuration file, if you need any other file let me know. Thank you in advance for any help smiling smiley
Attachments:
open | download - pins_CREALITY_V425.h (2 KB)
open | download - Configuration.h (126.5 KB)
open | download - Configuration_adv.h (173.3 KB)
Re: CR-200B Marlin
December 15, 2025 03:56AM
"1) extruder doesn't work" is it not moving or moving backwards?


Regarding Z
Part of the issue is a common misconception with printers with beds that move up and down

Z- should decease distance from hotend to the bed. Ie the bed must move up
Z+ should increase distance from hotend to the bed. Ie the bed must move down

With this in mind "3) if i use arrows in octoprint the down arrow moves axis up and the up arrow moves it down (conflict with 2)? )" is correct


"4) bltouch doesn't trigger z stop"
you have //#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
So it is looking at Z_MIN_PROBE_PIN PB0 not the z-stop pin
This depends on where the bltouch is plugged in. If its using the z-min plug or the 5 pin probe port for the trigger signal.


7...
Re fans you only have the part cooling fan defined

The Internet tells me you should add
#define FAN1_PIN PC1 // E0_AUTO_FAN_PIN
#define FAN2_PIN PC0 // CONTROLLER_FAN_PIN

then In Configuration_adv.h you need
#define E0_AUTO_FAN_PIN FAN1_PIN
#define USE_CONTROLLER_FAN
#define CONTROLLER_FAN_PIN FAN2_PIN
Re: CR-200B Marlin
December 15, 2025 09:08PM
Hi Dust!

Quote
Dust
"1) extruder doesn't work" is it not moving or moving backwards?

It doesn't move.

Quote
Dust
This depends on where the bltouch is plugged in. If its using the z-min plug or the 5 pin probe port for the trigger signal.

I'm using the 5 pin probe port.

Quote
Dust
The Internet tells me you should add
#define FAN1_PIN PC1 // E0_AUTO_FAN_PIN
#define FAN2_PIN PC0 // CONTROLLER_FAN_PIN

then In Configuration_adv.h you need
#define E0_AUTO_FAN_PIN FAN1_PIN
#define USE_CONTROLLER_FAN
#define CONTROLLER_FAN_PIN FAN2_PIN

I'll reflash the MCU with these changes and I'll post afterwards if they worked out!
Re: CR-200B Marlin
December 15, 2025 10:39PM
I reflashed the board and it seems the case fans are now working, as well as the BLTouch sensor!

For some reason I felt the Z axis was inverted so I inverted it the firmware, seems it's not!

The only thing that doesn't work is the extruder motor. I forgot to test the filament runout sensor.

Edited 2 time(s). Last edit at 12/15/2025 10:53PM by jpff.
Re: CR-200B Marlin
December 15, 2025 11:38PM
These are all the IO pin on a STM32F103RE as we understand them for the CR-200B board
I've marked the things you say work


STM32F103RE Pinout for Creality V4.2.5 Board (Marlin)
=====================================================

Pin   | Confirmed   | Function / Usage
------|-------------|---------------------------------------------------
PA0   | YES         | HEATER_0_PIN
PA1   | YES         | HEATER_BED_PIN
PA2   | YES         | FAN0_PIN
PA3   | YES         | X_STOP_PIN
PA4   | YES         | Y_STOP_PIN
PA5   |             | Z_STOP_PIN
PA6   |             | FIL_RUNOUT_PIN
PA7   |             | (unallocated)
PA8   |             | UART1_DTR
PA9   | YES         | UART1_TX_PIN
PA10  | YES         | UART1_RX_PIN
PA11  |             | IIC_EEPROM_SDA
PA12  |             | IIC_EEPROM_SCL
PA13  |             | SWDIO
PA14  |             | SWCLK
PA15  |             | (unallocated)
PB0   | YES         | Z_MIN_PROBE_PIN
PB1   | YES         | SERVO0_PIN
PB2   |             | EXP3_02_PIN
PB3   | YES         | E0_DIR_PIN
PB4   | YES         | E0_STEP_PIN
PB5   | YES         | Z_DIR_PIN
PB6   | YES         | Z_STEP_PIN
PB7   | YES         | Y_DIR_PIN
PB8   | YES         | Y_STEP_PIN
PB9   | YES         | X_DIR_PIN
PB10  |             | EXP3_03_PIN, UART3_TX_PIN
PB11  |             | EXP3_04_PIN, UART3_RX_PIN
PB12  |             | EXP3_07_PIN
PB13  |             | EXP3_06_PIN
PB14  |             | EXP3_05_PIN
PB15  |             | EXP3_08_PIN
PC0   | YES         | FAN2_PIN (CONTROLLER_FAN_PIN)
PC1   |             | FAN1_PIN (E0_AUTO_FAN_PIN)
PC2   | YES         | X_STEP_PIN
PC3   | YES         | Shared X|Y|Z|E_ENABLE_PIN
PC4   | YES         | TEMP_BED_PIN
PC5   | YES         | TEMP_0_PIN
PC6   |             | EXP3_01_PIN
PC7   |             | SD_DETECT_PIN
PC8   |             | SDIO_D0
PC9   |             | SDIO_D1
PC10  |             | SDIO_D2
PC11  |             | SDIO_D3
PC12  |             | SDIO_CK
PC13  |             | (unallocated)
PC14  | YES         | LED_PIN
PC15  |             | (unallocated)
PD0   | Reserved    | OSC_IN
PD1   | Reserved    | OSC_OUT
PD2   |             | SDIO_CMD

so please confirm the sdcard works (ie you can do a directory and we can confirm the following and not have to think about these pin any more

PC7 | | SD_DETECT_PIN
PC8 | | SDIO_D0
PC9 | | SDIO_D1
PC10 | | SDIO_D2
PC11 | | SDIO_D3
PC12 | | SDIO_CK
PD2 | | SDIO_CMD

Edited 2 time(s). Last edit at 12/17/2025 05:44AM by Dust.
Re: CR-200B Marlin
December 16, 2025 01:31AM
regarding e

check if the stepper is energized. When the enable pin is set power is applied to the stepper motor and you can't rotate it by hand, This is what we call energized

This might tell us is if the step or the enable pin we need to look at

And you are testing with hotend hot? as there are safety interlocks that prevent e moving when the hotend is cold

Edited 2 time(s). Last edit at 12/16/2025 01:40AM by Dust.
Re: CR-200B Marlin
December 16, 2025 01:51AM
also that LED_PIN I found in a klipper config, I don't know if there is actually a led on the board or its something they added for testing.

But you can try it add the following to your pins file

#define LED_PIN PC14

If its there marlin will blink it to indicate code is running (as long as PINS_DEBUGGING is disabled in Configuration_adv.h)

Edited 2 time(s). Last edit at 12/16/2025 01:54AM by Dust.
Re: CR-200B Marlin
December 17, 2025 02:25AM
Quote
Dust
so please confirm the sdcard works

I reflashed the board with the bootloader and marlinfw with the suggested changes with an STLINK ISOL.

I'm using octoprint, even though the original printer had a display, I don't have a display on my printer.

I saved 3Dbenchy gcode to a 8GB SD card formatted as FAT32 and plugged it into the printer. In octoprint in the files manager no files are listed, I click initialize SD card and still nothing.

Quote
Dust
check if the stepper is energized. When the enable pin is set power is applied to the stepper motor and you can't rotate it by hand, This is what we call energized

The stepper was not energized, I could rotate it by hand. I did so while the hotend was cold.
I set the hotend's temperature to 180 (for PLA) in octoprint and allowed it to heat up, still could rotate E by hand.
I homed X and Y axis, now I cannot rotate E by hand.

I set extrude length to 100mm, and clicked extrude, E now rotates, but rotates really fast.

Quote
Dust
#define LED_PIN PC14

This pin is the chamber's lighting LED strip.

I attached a screenshot of the hotend's temp as it rises towards set target temperature, I'm not sure if the PID is about right, but I guess it sorta still works as it is.

Edited 2 time(s). Last edit at 12/17/2025 02:26AM by jpff.
Attachments:
open | download - PID2.png (14.2 KB)
Re: CR-200B Marlin
December 17, 2025 04:48AM
provided config has #define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 500 } but correct values are #define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 100 } According to what I can find on the internet

Note this value is stored in eeprom so updating it in config will not take effect until eerprom is also reset
Re: CR-200B Marlin
December 17, 2025 01:06PM
I'll do a full chip erasure before programming.

Is there any specific section in Marlin dedicated to 'user' code?

I want to set PC14 output as either high (or low), to keep the chamber LED lighting strip on at all times.

I will try and test the filament runout sensor.
Re: CR-200B Marlin
December 18, 2025 01:33AM
I added

// Enable chamber's LED lighting strip always on
pinMode(PC14, OUTPUT);
digitalWrite(PC14, HIGH);

Before TERN_(MARLIN_TEST_BUILD, runStartupTests()); in MarlinCore.cpp, and the chamber lighting is now always on.

Extruder seems to now rotate at the speed I believe it used to as well.

There's just one thing that happens I think shouldn't, which is when I'm homing Z, after X and Y axis home and extruder is positioned at the middle of the bed with BLTouch sensor needle down, the Z axis moves opposite for a short moment to where it should move towards to home Z (towards the extruder) which results in the Z axis stepper missing steps, since it has no endstop at the bottom...

Edited 2 time(s). Last edit at 12/19/2025 01:00AM by jpff.
Sorry, only registered users may post in this forum.

Click here to login