2 possibly related issues Communication timeout during homing and eddy current sensor not in range

Basic Information:

Printer Model:BLV cube
MCU / Printerboard: Octopus pro v1.1. H723 version /Eddy (USB)/ EBB42 with E2C
Host / SBC :BTT Pi2
klippy.log

Fill out above information and in all cases attach your klippy.log file (use zip to compress it, if too big). Pasting your printer.cfg is not needed
Be sure to check our “Knowledge Base” Category first. Most relevant items, e.g. error messages, are covered there

Describe your issue:

Hi Guru’s

I keep getting this error, and don’t know how to fix it. Change cables and still the same issue.

Error message Error during homing probe: Communication timeout during homing

The canbus settings are set per the guides to 1000000 the others are connected to the pi2 USB 2 ports

Either after during homing or performing a z-tilt adjust I get this error. This is a newly built printer and I am trying to get it setup and beyond some wiring clean up I am almost at the point of doing a test print once I level the bed properly as I am getting the following error message after running the bed mesh calibrate

probe_eddy_current sensor not in valid range

Settings shown after running the bed mesh command

before the error message

Sample hit distance +/- 0.9984mm, time window +/- ms 8.3200

Beginning rapid surface scan at height 2.50…

BED_MESH_CALIBRATE METHOD=scan SCAN_MODE=rapid

logs-20250828-214708.zip (505.2 KB)

homing_speed = 20.0

You probably want a lower value, something like 5: BTT Eddy variance with home command

About the issue itself:

Stats 3945.5: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000001 mcu_task_stddev=0.000001 bytes_write=45254 bytes_read=63661 bytes_retransmit=9 bytes_invalid=0 send_seq=3421 receive_seq=3421 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=520041399 canstat_EBBCan: bus_state=active rx_error=0 tx_error=0 tx_retries=0 EBBCan: mcu_awake=0.052 mcu_task_avg=0.000011 mcu_task_stddev=0.000009 bytes_write=32314 bytes_read=56093 bytes_retransmit=0 bytes_invalid=0 send_seq=2751 receive_seq=2751 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=64001716 adj=63997654 eddy: mcu_awake=0.000 mcu_task_avg=0.000002 mcu_task_stddev=0.000002 bytes_write=1167 bytes_read=7902 bytes_retransmit=9 bytes_invalid=0 send_seq=155 receive_seq=155 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=12000628 adj=11999936 btt_eddy_mcu: temp=40.9 temperature_probe btt_eddy: temp=37.9 heater_bed: target=0 temp=23.8 pwm=0.000 print_time=30.031 buffer_time=0.000 print_stall=0 extruder: target=0 temp=24.2 pwm=0.000 sysload=1.44 cputime=368.107 memavail=1594760
Stats 3946.5: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000001 mcu_task_stddev=0.000001 bytes_write=47395 bytes_read=66544 bytes_retransmit=9 bytes_invalid=0 send_seq=3583 receive_seq=3582 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=520041885 canstat_EBBCan: bus_state=active rx_error=0 tx_error=0 tx_retries=0 EBBCan: mcu_awake=0.052 mcu_task_avg=0.000011 mcu_task_stddev=0.000009 bytes_write=33922 bytes_read=58730 bytes_retransmit=0 bytes_invalid=0 send_seq=2886 receive_seq=2886 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=64001746 adj=63997247 eddy: mcu_awake=0.000 mcu_task_avg=0.000002 mcu_task_stddev=0.000002 bytes_write=1173 bytes_read=8017 bytes_retransmit=9 bytes_invalid=0 send_seq=156 receive_seq=156 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=12000625 adj=11999850 btt_eddy_mcu: temp=41.0 temperature_probe btt_eddy: temp=37.9 heater_bed: target=0 temp=23.8 pwm=0.000 print_time=31.031 buffer_time=0.000 print_stall=0 extruder: target=0 temp=24.2 pwm=0.000 sysload=1.44 cputime=368.416 memavail=1596016
Error during homing stepper_x: Communication timeout during homing

I think it is related to the SBC CPU load (look at the cputime ~0.3 ~ 30%). Probably RPI2 is just too weak.
Unfortunately, I do not have one to test anything or do profiling.

You can either:

  • Do profiling, or at least run the htop, to get an idea of what is loading your system.
  • You can try to update RPI further. 3.13 Python can work slightly faster. But I did not make Klipper benchmarks for that.
  • Replace SBC with something newer (it is 10 years old).
  • At one’s own risk, you can try to overclock it: Raspberry Pi 2 Overclock - config.txt examples

Hope it helps.

HI getting v late here will try that. the 1st bit. My pi isnt a raspberry Pi2 but the new BTT pi2 which should be more aligned with the pi5. So don’t think its a power issue, especially as designed for 3d printing in mind. Or should have been ;D

1 Like

Well, anyway, the above recommendation does not change; you can still check what is loading your SBC with htop.
There is probably an SBC performance issue, or Klippy is doing something weird.

You can try to do the profiling while the LDC is running:

~/klippy-env/bin/pip install py-spy
# 100 is the sampling frequency. You can try to increase it until it breaks the Klipper process :D
# Larger is better (more precision) 1000 is good enough.
~/klippy-env/bin/py-spy record -r100 -t -f speedscope -p $(systemctl status klipper.service | grep -o "PID:.*" | cut -d' ' -f2)

Should do the trick.

Then I can try to look at the recorded data; maybe it will help.

Thanks.

should be more aligned with the pi5

RPI 5 is a beast and a bad point to compare against :slight_smile:
(I do have it).

Unfortunately, it is closer to RPI3+.

Lol well that sucks! But you would have thought something which comes from the same company which is aimed at their core business 3d printing would work really well together especially when everything I am using is BTT.

Thanks for the help with this appreciate the time and effort. Once off work I will run what you sent over and post the output after doing soem level checks to generate the issue and I will slow down the homing speeds

Did you want me to send the cfg for eddy and printer?

A Single Board Computer (SBC), or a similar device, isn’t inherently related to 3D printing - its relevance comes solely from running Klipper, the firmware that controls the printer. Essentially, it’s just the hardware executing the code.

BTT or not is pretty much irrelevant. On the contrary, well-known and reputable SBC manufacturers like RPi offer better overall packages. The more important point is, however, the Linux integration, and here BTT is far from brilliant.

Thanks, yeah I get that, HW vs software. The logic was that HW from a company which makes a SBC which lets face it, will 99% of the time will be used for 3d printing would also be optimised to run in this case Klipper well.

I have a pi4 which runs well. My bad got the BTT pi2 thinking it would work better, and be more compatible with my other components. Lesson learned. Thanks guys

They probably do.

The value of the log file is that it does have the resulting cfg :slight_smile:
So, I already had one.

Thanks.

Ok here is the result of running the speedscope. broke with 100 samples didnt even get to start a homing the file is a json just had to change the extension. I also edited the printer.cfg as there was a duplicate entry in the bed mesh section between it and the eddy.cfg.

I did increase the x and y homing (my ender uses these settings fine (raspberry pi4)). Initially when i tested this it worked fine Did @6 homings and tilts with no error. then retested and the error is back.

I also levelled the bed with the screw adjust and its pretty damn level ;D. but I still get the probe_eddy_current sensor not in valid range. Added my eddy.cfg file

The speed which eddy runs. if it actually created a mesh it would be great but may just go back to the old klicky

Also image of the htop processes running

eddy.zip (2.9 KB)

logs-20250829-210257.zip (231.6 KB)

1357-2025-08-29T19%3A56%3A01Z.txt (30.1 KB)

hmm interesting ran up htop on my pi and compared the 2

And something weird is definitely going on as the btt pi2 is constantly hitting high cpu rates on obico klipperscreen and xorg.

I’m not using obico so that can go if i knew how to remove it. and xorg shouldn’t be using that much cpu compared to the pi.

Only difference beyond the pi boards is the fact that i’m also using eddy

Unfortunately, the profile is almost empty.
I generally expect it to be taken while meshing, so when we see the high CPU load from Klippy.

About other services, there is not enough information, but I can guess that on RPI, they probably can use the HW acceleration which may not be supported on the PI2.

Probably, you can update Klippy with the Moonraker, instead of the custom script, or run the:

$ ~/klippy-env/bin/pip install -r ~/klipper/scripts/klippy-requirements.txt
...
# Already installed, so it is already used
Requirement already satisfied: msgspec==0.19.0 in ./klippy-env/lib/python3.13/site-packages (from -r /home/user/klipper/scripts/klippy-requirements.txt (line 21)) (0.19.0)
...
# Installed in the venv
Collecting msgspec==0.19.0 (from -r /home/user/klipper/scripts/klippy-requirements.txt (line 21))
  Using cached msgspec-0.19.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (6.9 kB)
...
$ sudo systemctl restart klipper

I would guess that the obico or klipper screen adds load to the klippy process by actively communicating with it. The recent addition of the msgspec was made to make it cheaper (by CPU).
If it is added after those commands, you have to restart the Klipper process to make it utilize the new library.

Hope that helps.

Thanks so run the above and see if that helps?

What I will do tomorrow is do a fresh install and make sure to not install obico. Maybe do a minimal install and do a pure 3d print config. Will update once I do this. I have some spare card so can do this.

again thanks for the help

Hi There,

Just wanted to update. So with a klipper/pi rebuild and running your above script. CPU load is now in the sub10% range even when homing.

So there was definitely something going on with that original install somewhere.

Now just to figure out whats going on with eddy!

I don't read anywhere which Linux version is used, but if you use Can bus, you should at least use a 32-bit version.

I don’t read anywhere which Linux version is used, but if you use Can bus, you should at least use a 32-bit version.

Not true. CAN Bus works fine with 64 bit operating systems.

The best way to get CAN Bus working is to follow the Esoterical guidelines when setting up your host:

I found this there: Getting Started | Esoterical’s CANBus Guide

I had this problem myself, after switching back to 32-bit the problem went away, I've noticed it again on my other printers as well.
It's a known problem, I think Kevin O'Connor has already advised it somewhere.

Where is that in the Esoterical guide? I just looked through it and couldn’t find it.

Regardless, I’m running 64bit on Raspberry Pi, CB1, CB2 and OrangePi.

It was an issue over a year ago (two years?) but I’m running without any issues at all on multiple architectures.

Why do you upload regular text as Preformatted?

1 Like

I would suggest that if you still have issues after reinstall, it would be helpful if you provide detailed info on the new ones. I expect that, as you fixed the CPU usage, there will be no more timeouts.


@hardy8 I see, you are trying to be helpful, and this is really kind of you. But as far as I can tell, there were no indicators of CAN-related issues.
Even more, Eddy connected via the USB Serial emulation.

About 32bits, this is not directly related. General recommendation:

  • kernel 6.6+ if there is a lot of “byte_invalid” for usb2can. 6.1+ if there is CAN HAT.

There are similar reordering bugs in both CAN adapter types, which are probably less reproducible on the 32-bit. Not because 32-bit is superior or something, but simply because it is a coincidence. Both are fixed in the kernels 6.6+.

Hope that helps.