FormBot Voron 2.4 Unable to read tmc uart 'stepper_z3' register IFCNT

Basic Information:

Printer Model: Voron 2.4 pro+ 2025 formbot kit
MCU / Printerboard: Manta MP8 V2 with can EBB 2209 RP2040
Host / SBC: CB1
klippy (5).log (711.9 KB)

Describe your issue:

Hello, I’m Tony and I’m building a Voron 2.4 from the [formbot kit (2025) with the EBB 2209 (RP2040) with the Tap mod.

Now I am having some trouble, for context I have 2 ender 3s that run klipper and a Voron 0.2r2.
For the most part I have bumbled my way though the klipper software just enough to get it working, Software is not my strong suit by any means, I enjoy the prosses of actual building the printers way more. So I don’t really have a good understanding about what is happening, but im trying to learn.

I have put the latest version of klipper on my CB1 and then l flashed both my Manta and my EBB 2209, with klipper and katapult. I had some trouble and spent about 8 hours trying to get them to work, but I did end up getting both to come up with the right stuff when I was SSH’ed in to them over Putty. My can network is up and I can see both boards, I have UUID’s and everything.

So I moved on to the config files in klipper, I frankensteined together a config from Voron’s Git, BigTreeTech’s Git, and the Voron Tap page. I have been working my way though the errors as they popped up until I got here, I’m getting no MCU serial path, I have gotten them on my enders and other voron using the /dev/serial/by-id, but this will not work on my current setup, it says there is no directory for it. I’ve looked around on forums and guides but either no one is using the same configuration as I am, or they skip over it, or I don’t understand what they are saying.

My UUID’s that came back for my EBBcan network are

MP8 UUIP: 46e3dab1c150
rp240 UUID: abc9f181d49c

when I lsusb I do see my can Bridge device (manta MP8) that I set up and it has an id. but it will not except that on the serial line under MCU. it will instantly flash an error.

biqu@bigtreetech-cb1:~$ lsusb
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 004: ID 1d50:606f OpenMoko, Inc. Geschwister Schneider CAN adapter
Bus 002 Device 003: ID 04d9:8030 Holtek Semiconductor, Inc. BTT-HDMI5
Bus 002 Device 002: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Now that I have power cycled my Voron, I run
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0

And now I get:

Total 0 uuids found

As to before I would get both UUIDs Displayed. so I’m not sure what went wrong, even when i shut down klipper with the sudo service klipper stop and then run it, still nothing, I tried sudo service klipper start and nothing changed either.

My klipper screen says moonraker is up but not klipper.

Also I have no idea if I set up Tap correctly. I couldn’t find any tutorials for it using my hardware set ups.

and if this seems like a total waist of time then can you point me in the direction of a good umbilical cord setup not using can? any help would be appreciated, This is Day 4 working on this.

I’ll be happy to provide any other information you need to help me. 1000$ for a 3d printer is no small amount of money and I would love for this to Work instead of taking up space on my bedroom floor.

And I have Used these as well as many other gits and YouTube videos.

Voron2_M8P-v2.0_config (1).cfg (15.4 KB)
sample-bigtreetech-ebb-sb-rp2040-canbus-v1.0 (1).cfg (1.8 KB)

printer (1).cfg (427 Bytes)
all 3 of these are my config files, I can only upload 2 files at a time

Hello @Anthony !

[include mainsail.cfg]

[mcu]
canbus_uuid: 46e3dab1c150
canbus_interface: can0

# host MCU service is preinstalled and ready to use with:
[mcu CB1]
serial: /tmp/klipper_host_mcu

[mcu EBBCan]
##serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
canbus_uuid: abc9f181d49c


[include sample-bigtreetech-ebb-sb-rp2040-canbus-v1.0.cfg]
[include Voron2_M8P-v2.0_config.cfg]



##[include generic-bigtreetech-xxx.cfg]

You just have 3 definitions in the printer.cfg.
At least the last one (line 17) should be completely in the printer cfg and not included.

Hello @EddyMI3D

NEWprinter.cfg (12.9 KB)
This is my new printer config, I’ve cleaned it up and added everything into 1 file except the [include mainsail.cfg] that is still there.

However with this new config, I no longer get an error that MCU wont connect. but now I get this error;

mcu 'CB1': Unable to connect
Once the underlying issue is corrected, use the
"FIRMWARE_RESTART" command to reset the firmware, reload the
config, and restart the host software.
Error configuring printer

I think that is strange from what I think I know, isn’t The klipper interface run on the CB1, so if it wasn’t working then would the Web UI still work?

I was doing some more research, I found that they CB1 is not configured over USB on the manta MP8. So I found that it might be on /dev/tty0 instead of serial: /tmp/klipper_host_mcu

So I added serial: /dev/ttyS0 to my config file under the CM1 MCU
and still get this error, note that it takes about 2 minuets to register an error.

mcu 'CB1': Unable to connect
Once the underlying issue is corrected, use the
"FIRMWARE_RESTART" command to reset the firmware, reload the
config, and restart the host software.
Error configuring printer

??? Where did you get this information?

Maybe I need to understand by what you are referring to with “configured over USB”.

The CB1 communicates with the Manta M8P’s MCU via USB (through a USB hub built into the Manta M8P). There is an ongoing discussion in regards to the Manta M8P V2 which a serial configuration is claimed possible but I haven’t seen the actual wiring/configuration to confirm it.

Your [mcu] statement should look something like:

[mcu]
serial: /dev/serial/by-id/usb-Klipper_stm32g0b1xx_190048001050505933383420-if00

If you have a CAN Bus device, I suggest that you follow Esoterical’s guide here:

It really is very good, continually updated and will have all the information that you need to set up your Voron.

I was referring to the serial connection underneath the CB1 MCU section not the Manta mp8 section, it was an obscure forum post. It didn’t work. So I changed it back.

And I have looked at that guide. The issue is for some reason the /dev/serial/by-id or anything similar will give me nothing at all.

Just a command not recognized. Which is strange because I have the same software version of clipper installed on my CB1 in my voron v0.2 and that command works just fine.

On the manta the CB1 presses into the board instead of using a USB port. So when I ping USB connections it doesn’t show up but when I look at all of the tty connections it shows up on tty0.

And the /dev/serial/by-id won’t work for the tool head due to the can setup using UUID.

From what I’ve read on the link you provided, couple days ago. The MCU (Manta mp8) will also use a UUID instead of the typical USB ID like ABCD:0001.
But it’s strange that my error is CB1 won’t connect.

But that’s what I understood from these articles. I may be completely not getting that right at all.

Could I suggest that you explain:

  1. How your are setting up your CB1 and communicating with it
  2. Go through the Esoterical page and document what you are doing and what responses you get.

What I like about the Esoterical guide is that it has test points that you can make sure that you’re on the right path. When you hit a problem, let us know and we’ll help you figure out what the problem is.

Ok,
So I have starting from the beginning do exactly what the ESOTERICAL guide every step. using the correct board configs from BTT wiki for both my tool head and my MP8, now even after a power cycle I now get both UUIDs

Resetting all bootloader node IDs...
Checking for Katapult nodes...
Detected UUID: 46e3dab1c150, Application: Klipper
Detected UUID: abc9f181d49c, Application: Klipper
CANBus UUID Query Complete

So this is good news, I passed every double check on the guide.

this is my config file in the klipper UI

#Manta MP8 v2
[mcu]
canbus_uuid: 46e3dab1c150
##canbus_interface: can0

#Host 
[mcu CB1]
serial: /tmp/klipper_host_mcu

#BTT EBB 2209 (RP2040)
[mcu EBBCan]
canbus_uuid: abc9f181d49c

However I still get the same error I was getting previously,
mcu ‘CB1’: Unable to connect
Once the underlying issue is corrected, use the
“FIRMWARE_RESTART” command to reset the firmware, reload the
config, and restart the host software.
Error configuring printer

So, I did reinstall the OS on the CB1 with the suggested new V3.0 os for the CB1 from the BTT Github. Just in case the pervious install of the BTT CB1 v3.0 was corrupted.

I have looked though the debug script https://termbin.com/gsos
and found;

mcu 'mcu': Starting CAN connect
Created a socket
webhooks client 281473409828560: New connection
webhooks client 281473409828560: Client info {'program': 'Moonraker', 'version': 'v0.9.3-3-gccfe32f'}
mcu 'CB1': Starting connect
mcu 'CB1': Unable to open port: [Errno 2] No such file or directory: '/tmp/klipper_host_mcu'
mcu 'CB1': Unable to open port: [Errno 2] No such file or directory: '/tmp/klipper_host_mcu'
mcu 'CB1': Unable to open port: [Errno 2] No such file or directory: '/tmp/klipper_host_mcu'
mcu 'CB1': Unable to open port: [Errno 2] No such file or directory: '/tmp/klipper_host_mcu'
mcu 'CB1': Unable to open port: [Errno 2] No such file or directory: '/tmp/klipper_host_mcu'
mcu 'CB1': Unable to open port: [Errno 2] No such file or directory: '/tmp/klipper_host_mcu'
mcu 'CB1': Unable to open port: [Errno 2] No such file or directory: '/tmp/klipper_host_mcu'
mcu 'CB1': Unable to open port: [Errno 2] No such file or directory: '/tmp/klipper_host_mcu'
mcu 'CB1': Unable to open port: [Errno 2] No such file or directory: '/tmp/klipper_host_mcu'
mcu 'CB1': Unable to open port: [Errno 2] No such file or directory: '/tmp/klipper_host_mcu'
mcu 'CB1': Unable to open port: [Errno 2] No such file or directory: '/tmp/klipper_host_mcu'
mcu 'CB1': Unable to open port: [Errno 2] No such file or directory: '/tmp/klipper_host_mcu'
mcu 'CB1': Unable to open port: [Errno 2] No such file or directory: '/tmp/klipper_host_mcu'
mcu 'CB1': Unable to open port: [Errno 2] No such file or directory: '/tmp/klipper_host_mcu'
mcu 'CB1': Unable to open port: [Errno 2] No such file or directory: '/tmp/klipper_host_mcu'
mcu 'CB1': Unable to open port: [Errno 2] No such file or directory: '/tmp/klipper_host_mcu'
mcu 'CB1': Unable to open port: [Errno 2] No such file or directory: '/tmp/klipper_host_mcu'
mcu 'CB1': Unable to open port: [Errno 2] No such file or directory: '/tmp/klipper_host_mcu'
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/mcu.py", line 795, in _mcu_identify
    self._serial.connect_pipe(self._serialport)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 165, in connect_pipe
    self._error("Unable to connect")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'CB1': Unable to connect

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/klippy.py", line 131, in _connect
    self.send_event("klippy:mcu_identify")
  File "/home/biqu/klipper/klippy/klippy.py", line 223, in send_event
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/biqu/klipper/klippy/klippy.py", line 223, in <listcomp>
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
            ^^^^^^^^^^^
  File "/home/biqu/klipper/klippy/mcu.py", line 798, in _mcu_identify
    raise error(str(e))
mcu.error: mcu 'CB1': Unable to connect
mcu 'CB1': Unable to connect
Once the underlying issue is corrected, use the
"FIRMWARE_RESTART" command to reset the firmware, reload the
config, and restart the host software.
Error configuring printer

So from what I have seen on other printer configs setups /tmp/klipper_host_mcu should be correct?

Yes, it’s good news - things should be set up correctly.

So, what are you planning on using the Raspberry Pi for?

Normally, you include the lines:

[mcu CB1]
serial: /tmp/klipper_host_mcu

When you need extra pins/buses (I2C, UART or SPI) that aren’t available from the board that you’re working with and look to using the ones built into the host computer.

If you don’t need any extra pins through the CB1 then just delete these lines.

If you do need them, then you’ll have to set up the CB1 as a secondary MCU then you’ll have to follow:

So I don’t believe I have any need to assign pins to the CB1 yet. the only other mods I plan on doping is the nevermore air filter, but I have open fan spots on my MP8.

I’ve removed it from my config and it booted right up. however now my hot end thermistor is -40, I’ve read that that means either the wiring is wrong or my thermistor went bad, but I double checked the wiring and it seems fine, and its new so I wouldn’t think it went bad. I just want to make sure its not a software problem before I tear my tool head apart again.

My print also will not home due to this error

Unable to read tmc uart 'stepper_z3' register IFCNT
Once the underlying issue is corrected, use the
"FIRMWARE_RESTART" command to reset the firmware, reload the
config, and restart the host software.
Printer is shutdown

I’ve also looked at the connections and they all seem right.

It’s probably not a software problem but in light of this, and the other problems you’re having, in your reply to this post could you include your latest klippy.log and printer.cfg?

Let’s see how you’ve defined things.

Ok, ill break out the DMM and make sure no wires where damaged too.
printer (2).cfg (12.9 KB)
klippy (6).log (116.3 KB)

I’ve found why the temp was reading -40,

# sensor_type: MAX31865
# sensor_pin: EBBCan:gpio9
# spi_software_sclk_pin: EBBCan:gpio10
# spi_software_mosi_pin: EBBCan:gpio8
# spi_software_miso_pin: EBBCan:gpio11

This was commented out instead I was using this from the original EBB2209 default sample config.

#sensor_type: EPCOS 100K B57560G104F #sensor_pin: EBBCan:gpio27

I’ve double checked the wiring with a DMM and it all looks good.

I have matched my wiring to how some build guides have run them. and matched the pin outs on the board to klipper.

RED is the motor connections

YELLOW is where my drivers are, I do have the correct jumpers according to the BTT owners manual.

They are left to right as fallows
A - B - Z0 - empty - Z1 - Z2 - Z3 - empty - empty

Okay, so you’ve:

  1. Got your MCU and Toolhead connections set up correctly
  2. Removed the [mcu CB1] statement
  3. Uncommented out the MAX31865 statement and you’re now getting a correct temperature (I assume, because you don’t seem to flag it as an error - if I’m wrong, please correct me)

Now, what is the problem you’re having with the motors? That wasn’t discussed above.

That is correct, and I really appreciate your help so far.

So when I turn the printer on and open the clipper UI on my computer, everything looks fine and it initializes properly. Then when I click on the home printer button. I get the motor error for z3.

Unable to read tmc uart ‘stepper_z3’ register IFCNT
Once the underlying issue is corrected, use the
“FIRMWARE_RESTART” command to reset the >firmware, reload the
config, and restart the host software.
Printer is shutdown

And that should be the error that’s reflected in that klipper log I believe, if not I can redownload it.

You have made a mistake with your motor definitions from Z1 to Z3.

According to:

When I looked at your printer.cfg, you labeled the pins for the specific motors correctly but they don’t match what I think you have wired (going by your image above).

  • For Z1, which should be Motor 4 from your drawing and where you put your driver is defined using Motor 5’s pins in your printer.cfg
  • For Z2, which should be Motor 5 from your drawing and where you put your driver is defined using Motor 6’s pins in your printer.cfg
  • For Z3, which should be Motor 6 from your drawing and where you put your driver is defined using Motor 7’s pins in your printer.cfg

When I was going through your printer.cfg, I took the time and corrected it as changed stealthchop_threshold to 999999, which is the normally accepted value.

printer-Anthony.cfg (13.2 KB)

Give it a try and see how things work for you.

printer (4).cfg (14.2 KB)
Thank you for that! it seemed to work,
I have been working my way through a couple errors until I was able to start a print.
I have Crazy layer shifting. I have my max acceleration at 4K and everything else less than that.
so I’m unsure if that is software related or not. Visually everything looks fine, belts are tight.
I feel like going any lower than 4K on a Voron might be underutilizing the machine.

but I will make a post in the Voron forum about it as that is probably more appropriate there instead of the Klipper one. But I can see my belts are correctly routed and also still on the pulleys. and its in both X and Y so I don’t think it would be 2 bad motors, and I used lock tight on all setscrews.