Support for HDSC chips (HC32F460)

@Jookia
my Trigorilla_Pro_A_V1.0.4:
The E0 uses a TMC2208 clone: MS35775 which does not use addressing pins like the TMC2209 and is default 0

From the datasheet: The slave address of MS35775 is always 0.

Oh wow. So does this mean that the actual PCB is correct but due to a component swap the extruder breaks things?

Does the pcb you have use a tmc2209 (or clone) for the E0 on the V1.0.4 board?

That’s a good question. I’d have to remove the heat sink to test that wouldn’t I? Or just flash Klipper with X as 0 and see if it works.

Just test with X as is, yes. Easy things first :wink:

Just as a quick question, how do you revert firmwares after flashing?

There is no revert. Each firmware overwrites the previous. To go back to a version you will need that file.

Is it the same method? One file on SD card?

Yes. I think the name has to be firmware.bin and the only file on the SD card

Hi. I have an Ender 2 Pro with the HC32F460 chip. I was wondering if this was tested with actual Ender 2 Pro hardware aside from just the board. I don’t mind testing it myself but as I’m very new to Klipper and 3d printing in general, I was wondering if there’s anything I need to look out for. I already have Octoprint and Klipper running on an SFF PC and I believe all I really need to do now to start testing is just flash the firmware.

Turns out the Ender 2 Pro 2022 might be using different UART pins. I was stuck at klippy attempting to connect. The board might be using pins PA2 and PA3 instead: Ender-2-Pro/board_gpio.c at MCU_HDSC Ā· CrealityOfficial/Ender-2-Pro Ā· GitHub

EDIT: Looks like it’s using PA3/PA2 for the LCD and PA7/PA8 for USB: Ender-2-Pro/pins_CREALITY_V428.h at MCU_HDSC Ā· CrealityOfficial/Ender-2-Pro Ā· GitHub

I’m currently working out what I need to do to build the firmware, but I should be able to test this soon.

@jaybz
The UART is at PA7/PA8
I rebuilt and named it firmware.bin here: Release per-merge-testing Ā· SteveGotthardt/klipper Ā· GitHub

@SteveGotthardt Klippy is connected now! I was having trouble building the firmware myself. All my builds was about ~5kb smaller even if I tried building your pre-merge code without modifications. I’ll go ahead and test stuff and check back in later.

1 Like

I’ve went through as much as I can. X, Z, and extruder axes appear to work 100%. Thermistors and heaters appear to be working.

I can’t turn off the extruder fan but it seems I couldn’t with stock firmware anyway. There could be a 2nd fan not visible through the enclosure as I’ve heard inconsistent reports as to how many extruder fans the Ender 2 Pro has, but I’m not currently able to open it up. I will report on this later.

The other issue I encountered is with the Y axis. It seems the motor isn’t getting enabled. The endstop pin works though. I manually pushed the bed while ā€œhomingā€ Y and the switch was detected. I also tried changing the printer.cfg to reverse the Y enable pin but that did not work either.

1 Like

So I tested the board with the Klipper config and as expected I need to re-solder the X resistor. Oh well.

I have been looking more at this board and I do wonder a bit about some of the wiring. While heating the extruder and the bed I saw it pulling 500W off the wall power, which is kind of 400W at 75% efficiency.

The bed is 192W, the hot end is 40W, the motors all at once would be around 144W (assuming 2A each), which adds up to 400W. But I didn’t have the motors running? So if anyone has any ideas as to why I was drawing 400W when I should’ve been drawing 232W or so, I’d be interested to know.

One interesting thing I noticed is that the cables for the 24V in on the board are soldered at the end (not good) and possibly undersized. Great.

@jaybz
I think the problem is that the Y enable port is H2 and the code uses H-A to get 8-1 = 7 as offset for GPIO memory address but the IO space is at ā€˜5’ so I need to fix that. I checked that the pins to Y were correct.

typedef enum en_port
{
    PortA = 0,                          ///< port group A
    PortB = 1,                          ///< port group B
    PortC = 2,                          ///< port group C
    PortD = 3,                          ///< port group D
    PortE = 4,                          ///< port group E
    PortH = 5,                          ///< port group H
}en_port_t;

I think I fixed it - try here: https://github.com/SteveGotthardt/klipper/releases/download/pre-merge/klipper_pro2.bin

rename to firmware.bin and put in folder /user/

1 Like

Resistor hack done, Klipper is installed. Kind of. Homing causes the X axis to move to the left and not stop.

Edit: Getting this error: ā€œ!! No trigger on x after full movementā€

That works! Ran a quick test print and it finished without any unexpected issues.

1 Like

@Jookia
If the homing speed is too slow the sensor circuit may not trigger.
Try going faster

Setting the X homing speed on the Kobra to 20 fixes it. The Y still needs to be 40 and I assume Z being 5 is fine.