Klipper looses MCU (Creality 4.2.7) connection when Ender 5 (2019) Heated bed is tuned on

Basic Information:

Printer Model: Ender 5 (2019) (Factory bed heater)
MCU / Printerboard: Creality V4.2.7
klippy.log (4.4 MB)
printer.cfg (3.9 KB)

Hello everyone! First, to everyone who responds or reads, thank you for your time. I am only at this point in the process because of the awesome community supporting Klipper. My apologies for the messy log. This all took some trial and error. I ran the following voltage tests today, so it should be at the end of the log as it was the last thing I did.

Over the last few days, I have been converting my 2019 Ender 5 from a perfectly functional V1.1.3 mainboard OctoPrint setup to a V4.2.7 Pi5 4G Klipper setup. I have also added a CR Touch, a runout sensor, a spider hot end, and a 400mm T8 2,1,2 lead screw. Despite the learning curve, I feel all has gone well until now. I am fully aware this could be a bad board and have a new one on the way, along with a 1.5ft USB cable with magnet.

Everything functions as it should, including the hot end, but when I try to bring the heated bed up to temperature, I lose connection to the MCU and have to restart the printer. Here is what I have tried and noted so far:

-The issue has gotten progressively worse.
-PID tuning ran for quite a bit at first before failing. Now I lose connection within 1–10 seconds, even when requesting a few degrees over the current temperature.
-USB cable 4ft from my Tamron tap console (lens firmware update device) with magnet with 5v pin taped off
-Proper Pi5 PD power supply
-APC UPS 2U 3000VA supplies printer and stable household power.
-MW Power Supply LRS-350-24

Tested with Woods DMMW3 multimeter (my true RMS is with a buddy)
-PSU AC input printer switch off 120.40v
-PSU AC input printer switch on 120.10v
-PSU DC out at PSU 24.20v
-MCU input at terminal screws 24.20v no USB
-Same input v with USB (5v taped off at Pi5)
-Klipper connects to MCU (fresh firmware flash today)
-Hotend at 100% 24.19v input at MCU
-Hotend off
-MCU input with Bed Heater 100% on 24.21v
-At heater terminal with bed at 100% 23.91v
After losing MCU
-Board is still on and has an input of 24.20v
-Bed terminal 0.0v

Feel free to let me know your honest thoughts. Did I mess something up? Are there any tests you would like me to do? Thank you once more. Especially if you have made it this far…

Nice clean installation. you did a good job there.

Question: what are you using as your host (ie running Klipper on)? I’m asking because I see a few things that I haven’t seen before like:

Reactor garbage collection: (62615.588481937, 0.0, 0.0)

and

b'Got EOF when reading from device'

When I look at your klippy.log, I see:

Sending MCU 'mcu' printer configuration...
Configured MCU 'mcu' (1024 moves)
Starting heater checks for heater_bed
Failed to verify BLTouch probe is raised; retrying.

pretty consistently with the last few tries but wasn’t an issue earlier. I haven’t done kdiffs on your various printer.cfg versions in the klippy.log but I’m thinking you changed something with its definition.

Has the printer ever worked with Klipper?

Hello, and thank you for your response. I try to keep it as clean as possible.

Hopefully, I can answer your questions. I loaded my Pi5 4GB with Raspberry Pi OS, then using Kiauh, I installed Klipper following the guide.

The printer has never printed with Klipper. After getting everything set up and tested, I did a bed mesh with the CR Touch, then went to do a test print. That is when I first lost connection while the bed was almost at 60 °C.

The printer has been working fine for a few years with Marlin and Octoprint.

Okay, the hardware sounds good, I do have a couple of questions about how it operates.

  1. How did you set the driver current and what values did you set them for? If you haven’t set them yet, then you should get the TMC2225 datasheet and use the trim pots for something like 0.8A and see what happens there.
  2. Could you monitor your MCU temperature? You can do it by adding something like:
[temperature_sensor mcu_temp]
sensor_type: temperature_mcu
  1. It looks like your board as an STM32F103 from the photographs. Did you build Klipper for it? (In make menuconfig).

  2. Do you still have the Creality display connected? What happens if you disconnect it.

That’s all the ideas I have for tonight.

  1. I was not aware I could set the driver current so I will certainly work on that.

  2. I will add that line and keep an eye on the MCU temperature.

  3. Yes, unless I made a mistake. I used the Kiauh build function to select the board based on the instructions listed at the top of the 4.2.7 sample config file. I installed the 8gb SD card with only the bin file on it formatted as fat32, powered on the printer and waited a minute. Other then that I had no indication it was working other then Klipper connecting to it and getting a ID to add to my config file.

  4. I do and it is working properly. I will run the test with it disconnected and report back.

Besides the main topic here, please check the following cable:


It looks like it has a soldered end. That is not a good option for screw terminals.
If possible cut the end and just insert the blank wire.

I agree. Inserting the blank wire is better but not correct. I always use Electric wire ferrule - Wikipedia

3 Likes

Ferrules would be the best although the screws of those screw terminals do not penetrate the wires directly.

2 Likes

Nice looking setup.
Visually I didn’t notice any issues on your hardware setup, but your logs do show that somethin is not good, it can be Software | Hardware | EMP issue.

As a first thing I would look what is happening at RPi when you are losing connection, I have suspicion that you are getting USB Disconnect.
To check that - connect to RPi with ssh and execute following command dmesg -Hw this will be working in monitor mode, when that is ready just try mangle with your USB cable - if you will see Disconnect message - replace your USB cable and do test again.
If your first initial check of USB connection will be good, then go to Klipper and try to reproduce you issue and keep an eye on dmesg output.

Send what did you see and findout.

Next topic - hardware checks.
As a first option temporary modify your klipper config and add this:

[verify_heater heater_bed]
check_gain_time: 300

this should override temperature runout control to 5 mins.
Then just disconnect heater bed (both wires) from mainboard and enable heating.
As an option you can connect your multimeter there to monitor voltage.
There are 2 possible outcomes:
Everything is good and Klipper successfully trying to heat your bed.
It will lose MCU connection - this means something still is not good but this way you will exclude heater bed itself from possible issues.

If you still see issues then next action is to unscrew the board and suspend it in air and try to reproduce issue (to exclude any short on case) this way you will isolate issue directly to board itself.
If issue is still present - try to inspect your board for loose piece of wire, component burnout, etc …

1 Like

Thank you for brining that to my attention. I will get this corrected asap.

Thank you for responding with some great information. I will test later tonight. I will also have the new 1.5ft USB tonight as well.

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.