SMusatov f505bc06ed v1.0 9 months ago
..
Configuration.h f505bc06ed v1.0 9 months ago
Configuration_adv.h f505bc06ed v1.0 9 months ago
README.md f505bc06ed v1.0 9 months ago
chitu-board.jpg 0c138c17af add Configurations 2.1.2.1 10 months ago

README.md

Table of Contents

Save Printer Settings (Optional, but recommended)

You can (OR MUST) dump the current settings of your printer. It may help you to figure out some configs, like steps/mm of your extruder.

  1. Create a file named savesettings.gcode with the following content:

    M6046 ; sdcard access
    M8512 "currentconfig.gcode" ; save settings to file
    
  2. Save it on the printer's SD card

  3. Put the card in the printer and "print" this file

  4. The printer won't do anything. Just wait a few seconds and stop the print.

  5. Your current printer settings are stored in the file: currentconfig.gcode

You can read more about it in this guide.

Thanks to KEITH VARIN.

Configuring Marlin for your Printer

You need to edit Configuration.h to set up your printer.

1. Board Version

For V5 and V8

// For V5 and V8
#define MOTHERBOARD BOARD_CHITU3D_V5

For V6

// For V6
#define MOTHERBOARD BOARD_CHITU3D_V6

2. Bed size

// The size of the printable area
#define X_BED_SIZE 330
#define Y_BED_SIZE 330
...
#define Z_MAX_POS 400

3. Stepper Drivers

Some Pro models have TMC drivers. The non-Pro models have generic A4988 drivers.

Non-Pro (without TMC Drivers):

/**
 * Stepper Drivers
 * ...
 */
#define X_DRIVER_TYPE  A4988
#define Y_DRIVER_TYPE  A4988
#define Z_DRIVER_TYPE  A4988
//#define X2_DRIVER_TYPE A4988
//#define Y2_DRIVER_TYPE A4988
//#define Z2_DRIVER_TYPE A4988
//#define Z3_DRIVER_TYPE A4988
//#define Z4_DRIVER_TYPE A4988
#define E0_DRIVER_TYPE A4988
//#define E1_DRIVER_TYPE A4988
//#define E2_DRIVER_TYPE A4988
//#define E3_DRIVER_TYPE A4988
//#define E4_DRIVER_TYPE A4988
//#define E5_DRIVER_TYPE A4988
//#define E6_DRIVER_TYPE A4988
//#define E7_DRIVER_TYPE A4988

Pro (with TMC Drivers):

/**
 * Stepper Drivers
 * ...
 */
#define X_DRIVER_TYPE TMC2208_STANDALONE
#define Y_DRIVER_TYPE TMC2208_STANDALONE
#define Z_DRIVER_TYPE TMC2208_STANDALONE
//#define X2_DRIVER_TYPE A4988
//#define Y2_DRIVER_TYPE A4988
//#define Z2_DRIVER_TYPE A4988
//#define Z3_DRIVER_TYPE A4988
//#define Z4_DRIVER_TYPE A4988
#define E0_DRIVER_TYPE TMC2208_STANDALONE
//#define E1_DRIVER_TYPE A4988
//#define E2_DRIVER_TYPE A4988
//#define E3_DRIVER_TYPE A4988
//#define E4_DRIVER_TYPE A4988
//#define E5_DRIVER_TYPE A4988
//#define E6_DRIVER_TYPE A4988
//#define E7_DRIVER_TYPE A4988

4. Steps / mm

All machines have the same steps for X, Y and Z, and only extruder steps are different (Titan vs. normal).

! This part can vary from machine to machine !

One way to know the correct values is to read your currentconfig.gcode (saved later):

  • M8009 is the X and Y step/mm.
  • M8010 is the Z step/mm.
  • M8011 is the Extruder step/mm.

Example:

M8009 S0.012500;x,y
M8010 S0.002500;z
M8011 S0.010799;e

Is equal to:

x,y = 1 / 0.012500 = 80
z = 1 / 0.002500 = 400
e = 1 / 0.010799 = 92.60

So in Marlin:

#define DEFAULT_AXIS_STEPS_PER_UNIT   { 80, 80, 400, 92.6 }

Check your values!

Normal non-TMC:

/**
 * Default Axis Steps Per Unit (steps/mm)
 * Override with M92
 *                                      X, Y, Z, E0 [, E1[, E2...]]
 */
#define DEFAULT_AXIS_STEPS_PER_UNIT   { 80, 80, 400, 92.6 }

Titan Non-PRO:

/**
 * Default Axis Steps Per Unit (steps/mm)
 * Override with M92
 *                                      X, Y, Z, E0 [, E1[, E2...]]
 */
#define DEFAULT_AXIS_STEPS_PER_UNIT   { 80, 80, 400, 420 }

// Extruder seems inverted on titan!
#define INVERT_E0_DIR true

Titan PRO (tmc):

/**
 * Default Axis Steps Per Unit (steps/mm)
 * Override with M92
 *                                      X, Y, Z, E0 [, E1[, E2...]]
 */
#define DEFAULT_AXIS_STEPS_PER_UNIT   { 160, 160, 800, 764 }

// Extruder seems inverted on titan!
#define INVERT_E0_DIR true

5. Other Marlin Config

You can customize for your own setup. TFT, Baby Steps and a lot of cool stuff are already configured for you.

Backup your Chitu Firmare (Optional, but strongly recommended)

  1. Turn off your printer
  2. Open your board case
  3. Remove the "boot" jumper (1) as the image.
  4. Change the "v source" jumper (2) from 5V to USB.
  5. Open STM Cube Programmer (linux, mac, windows) or FLASHER-STM32 (only windows)
  6. The size must be 512kb -> 0x80000
  7. Save the file. It must have exactly 524288 bytes (512kb)
  8. Disconnect
  9. Unplug USB cable
  10. Put back the "boot" jumper (1).
  11. Put back the "v source" jumper to 5V.

Flashing Marlin JUST USING SD

Thanks to the amazing work of J.C. Nelson, now we can just use Marlin updating directly from SD!!

  1. After you compile Marlin with the above instructions, it will generate a file: YOUR-MARLIN-DIR/.pio/build/chitu_f103/update.cbd
  2. Turn off your printer
  3. Copy the update.cbd file to SD card.
  4. Put the SD card in your printer.
  5. Power it on.
  6. It will give some bips. After that, Marlin will start!

SIMPLE AS THAT!

Again, thanks to J.C. Nelson @xC000000

If you already flashed Marlin the old way then you need restore your Chitu backup to use this method. This will make all your future installs easier.

Flashing Marlin Firmware MANUALLY (OBSOLETE!)

OBSOLETE! JUST USE THE FIRST METHOD.

  1. Turn off the printer
  2. Open the board case
  3. Remove the "boot" jumper (1) as the image.
  4. Change the V source jumper (2) from 5V to USB.
  5. Open STM Cube Programmer (linux, mac, windows) or FLASHER-STM32 (only windows)
  6. Flash the YOUR-MARLIN-DIR/.pio/build/chitu_f103/firmware.bin at 0x08000000
  7. After the Flash is done, put the back the boot jumper (1) and the V source jumper to 5V.
  8. Turn on the printer

alt text

Known Issues

Some random V5 boards have a problem with the PIN that the Z-MIN Probe is connected to, causing the probe to appear triggered all the time. Due to this issue the probe always fails.

If you have this issue, edit the file: Marlin/buildroot/share/PlatformIO/variants/CHITU_F103/wirish/boards_setup.cpp

Change these lines:

__weak void board_setup_gpio(void) {
    gpio_init_all();
}

To:

__weak void board_setup_gpio(void) {
    GPIOA->regs->BSRR = (1U << PA14);
    gpio_init_all();
}

A patch may already have been applied to Marlin by the time you read this.