In preparation for my Voron 2.4 build, I am testing the can-bus setup.
I have made a test setup in order to flash the BIGTREETECH EBB36 v1.2. On the pi I have the waveshare CAN HAT.
At first, I set the can bus speed to 500k, in the way the more the better. This resulted in timeout and failure to flash klipper on the device.
Reducing the speed to 250k the flashing of klipper was successful, still seeing retries during flash verification.
My basic question is how far down the speed I can go and be sure that it is fast enough to do the job as intended.
Any experiences?
Those dupont jumpers are usually very small gauge wire and are definitely not sufficient for powering a board. Even for testing you might see significant voltage drop. You also should use twisted pair for the data, and make sure both ends have 120ohm resistors.
As @jakep_82 indicated, the wiring you’ve selected for power won’t be sufficient for the EBB36 - you should be looking at 18 or 20 AWG (stranded). Along with that, the data wires really aren’t appropriate - you should be looking at using either prepackaged twisted pair or something like this (which is what I plug into my Octopi):
As I have mentioned elsewhere, I did a back of the envelope calculation of the characteristic impedance of adjacent wires in this cable and it came out to 112 Ohms. Note that you should only use the middle two lines for data - for power, again look at separate 18 or 20 gauge AWG stranded wires.
Along with this, you might want to try a U2C board, like BTT’s:
Isn’t the USB to CAN bus bridge mode (e.g. BTT Octopus 1.1) the better solution?
I’ve seen statements that this puts a burden on the raspberry pi, though looking at the Klipper documentation that should not be the case:
Personally, I think it’s the optimal solution as it is the simplest approach from the system (and wiring) perspective and I haven’t had any issues to suggest otherwise. However, other people don’t agree with me and have had problems in their printers.
Having said that, it is somewhat tricky to get the CAN Adapter working in the Octopus with Klipper for the first time and I used the CanHat and U2C solutions before going on to implementing it on my Octopus boards.
I would recommend that if you are starting out with the CanHat solution, keep with it and get your wiring fixed up (which should basically eliminate all dropped frames) and then migrate to running the CAN bus from your Octopus (and then deciding whether or not to run CanBoot).
As I said above, work at getting CAN working reliably first with more appropriate wiring your CanHat and then move onto the Octopus.
We had something of a spirited conversation on the topic that you can read through here:
You can setup Klipper on the Octopus to act as a CAN Bridge using a Klipper build like:
CanBoot is installed before it and acts as a CAN bus bootloader with the purpose of providing a way of updating the firmware from the comfort of an SSH terminal but it isn’t necessary to run the CAN interface from the Octopus.
However, I again highly recommend getting the wiring and a CanHat or U2C board interface working first.
I totally see the point. You are right.
I ordered a Formbot Voron 2.4 and intended from the start to implement can bus and tap.
I think I will revert the idea and start with a plain basic functioning version (drag chain + magnetic sensor) and step up with mod-by-mod.
Just an additional question: what is the best solution for the umbilical? Using a PTFE tube and feed in wires or by a special drag chain cable?
That’s the way I did my 2.4. I started with the base configuration but changed to the Stealthburner when I was finalizing the gantry and didn’t like the way the Afterburner went together. I initially used the the Hartk board with the Stealthburner. Next, I went to the EBB SB2040 toolhead (with the CanHat on the rPi) board while simultaneously working with the FLY SHT42 (using a USB2CAN board) on a CoreXY I designed myself. I’m still running with the CanHat on the 2.4 and moved CAN to the Octopus on my CoreXY with CanBoot.
I tried implementing a Klicky on the 2.4 but was never happy with it - I’m quite happy using the Omron inductive sensor (I just finished adding it to my CoreXY after ditching a BL Touch on it). Maybe one day I’ll try the Klicky PCB, but the Voron is running very well and I don’t see any reason to tear it apart yet again as well as figuring out the best way to connect the RJ-11 connector to the SB2040 wiring harness.
I used the drag chains for the 13 or so wires of the Hartk board without any problems for 100+ hours of printing and am now running two 20 AWG power lines and the cable with the RJ-11 connector I linked above on both printers with drag chains and I’ve probably logged 1,000+ hours on the two of them without any issues. If you got the drag chains with the your 2.4 kit, I don’t see any reason to replace them.
Last week I had a very similar problem but my hardware is a U2C adapter and an EBB42, drove myself nuts when the final flash of klipper didn’t work with a timeout. I got on Discord and was told that the firmware that came flashed on my U2C had a bug and I still needed to flash an updated Candle_FW to it and retry. It worked after that. So I don’t know if you already flashed Candle to your CAN hat or stuck with whatever came on it, but I’d give that a try.
My board is waveshare rs485 can bus hat. I did not find any info what „candle“ is and how to flash FW on that board. Can you please point into the right direction.