Raw files


Would i be able to locate / be given access to the raw files for the Balco branded printer?
This one: Mainboard 5.2C HE180021

I would like to try and get a Bug fixed that I am having. I have a TMC driver add on board that silences the X & Y Axis. It uses the 10pin connector.

Can you supply your raw files for this printer? (the marlin code that can be edited)

Your help is much appreciated.


It is on GitHub. Everything is explained here:

Forgive my noobish ways.

How can I differentiate between files for the Balco printer and other printers files?

PlatformIO environments for this board are: i3plus-he180021, i3plus-he180021-bltouch, i3plus-he180021-bltouch3.
Use the first one if you have no BLTouch.


I’m hoping you can help a little.

I’ve added some code to redirect the X and Y to different pins.

-------------------------- In pins_i3_plus_HE180021.h
#define X_STEP_PIN         37     //new
#define X_DIR_PIN          35     //new
#define X_ENABLE_PIN       56     //new
#define Y_STEP_PIN         36     //new
#define Y_DIR_PIN          34     //new
#define Y_ENABLE_PIN       40     //new
#define Z_STEP_PIN         67   // PK5 / A13
#define Z_DIR_PIN          69   // PK7 / A15
#define Z_ENABLE_PIN       66   // PK4 / A12
#define E0_STEP_PIN        58   // PF4 / A4
#define E0_DIR_PIN         59   // PF5 / A5
#define E0_ENABLE_PIN      57   // PF3 / A3
#define Y_CS_PIN           32   // new
#define X_CS_PIN           33    //new

Next I redefined the steppers to the TMC ones:

#define X_DRIVER_TYPE  TMC2130 // New
#define Y_DRIVER_TYPE  TMC2130 // new
//#define X_DRIVER_TYPE  A4988 //Commented out as redefined
//#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 E0_DRIVER_TYPE A4988
#define E1_DRIVER_TYPE A4988
#define E2_DRIVER_TYPE A4988
#define E3_DRIVER_TYPE A4988
#define E4_DRIVER_TYPE A4988

After this, the build failed as it was complaining i didn’t define the Y_CS_Pin or X_CS_Pin in configuration_adv.h… So i added it to the if statement starting on line 1115 within that file.

Then it moaned that i needed to include the TMC libraries, so i imported them.

It built fine, I installed it fine.

When i try to move the print head on the x axis, It will move left for a short time, then only go right. Also moving the X axis left will instead make it go right…

I am at a total loss, to why its going right after I tell it not to…

Is this a code issue or a hardware issue?


can someone upload modified code for i3plus-he180021 that can be open in Arduino IDE?

The code on GitHub is for this printer. It is the same sources for all printers. Look in advi3pp_defines.h, there is a comment about he180021 with instructions.

I have the correct software loaded Into visual studio code.

I can’t understand or find what is telling my X axis pin to change from telling the stepper to go left to instead go right.

Is there any code that would change the signal on one of my X axis pins?

INVERT_X_DIR in Configuration.h

Thanks. I’ll take a look


Unfortunately that didn’t fix the issue.

My problem is that the stepper seems to work for a few moments (going left), but they suddenly decides to go right instead or compleatly lock up.


Do someone knows that something else in program use pin 6 on 10 pin connector (55 / PC2 (A10)) on he180021? I made I system with TMC2130 drivers which are connected to 10 pin ext connector. In my printer (Wanhao i3 plus) everything works: Even firmware for he180021. James have he180021 and pin 6 which is used for direction on X driver do not work properly. If he uploads simple code just to move x motor left end right everything work. But if he uploads firmware for he180021 sometimes x motor works, but in most cases, it only goes right, like something overwrite direction pin 6.

Do you have any idea how to solve this?

I fixed my problem.

Used Pin 2 on J3 for X Pin Direction.

Once I did that, works perfectly… So something is causing PIN6 to not work correctly.