What's new
VORON Design

Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members!

Could someone explain Klipper distributed Architecture to me?

DanPin

Active member
I can understand a printer.cfg file describing port assignments on the Octopus board (which also runs Klipper).
What I don't understand is when additional MCU's running Klipper are brought into the mix,, how the final port gets controlled (shouldn't something change in the printer.cfg that points to a different MCU/port)

For example, it "looks" like there is no change to the Extruder motor section between a configuration with and without a CAN bus board.

How does Klipper in the Pi know that the extruder was moved from the Octopus board driver to the EBB 2209 board?

Please hlpe the light bulb turn on....
 
I can understand a printer.cfg file describing port assignments on the Octopus board (which also runs Klipper).
What I don't understand is when additional MCU's running Klipper are brought into the mix,, how the final port gets controlled (shouldn't something change in the printer.cfg that points to a different MCU/port)

For example, it "looks" like there is no change to the Extruder motor section between a configuration with and without a CAN bus board.

How does Klipper in the Pi know that the extruder was moved from the Octopus board driver to the EBB 2209 board?

Please hlpe the light bulb turn on....
If you have only one microcontroller (MCU) then you have a config section called "[mcu]".

If you have a second MCU then you have a section for it that is like this: "[mcu EBBCan]"

The first MCU has no name, the second, third and so on do have names

Then the pin names are for example
Code:
[EBBCan:PA0]
Pins on the first MCU don't need names but on any other MCU they do need the MCU name colon prefix
 
Last edited:
If you have only one microcontroller (MCU) then you have a config section called "[mcu]".

If you have a second MCU then you have a section for it that is like this: "[mcu EBBCan]"

The first MCU has no name, the second, third and so on do have names

Then the pin names are for example
Code:
[EBBCan:PA0]
Pins on the first MCU don't need names but on any other MCU they do need the MCU name colon prefix
OK...now that makes sense.
I am struggling with install my EBB2209 CAN board. In all the web pages I saw, I don't recall seeing where it shows these mcu name changes in the printer.cfg file.
Did I miss them?
From what you explained, I expect that I need to edit my printer.cfg file to add the correct MCU to the ports that will now be on the CAN. Is this correct?

Thanks for the enlightenment.
 
Generally the ebb is installed by downloading the entire config file for it from the btt github, and [include]ing that file into your main config. (and deleting stuff in the main config that's now redundant)
If you look inside that second file...surprise! lots of stuff in the format ChrisA mentioned.
 
Thank You So much. The two of you have shown me the way.
If this info was in any of the videos I watched, I sure did miss it. But now this all makes sense.

Thanks Again....issue closed✅✅✅...had to find the right emoji....

Oh...wait, one more missing piece that I need you to confirm.

When I flash Klipper to the Octopus board, I specify USB communication, since that is how the Pi talks to it.
Then for Klipper on the tool head I specify CAN bus. So the printer.cfg contains a MCU definition for each.
 
Last edited:
Top