The phrase “Without further ado “ means “let’s get right to it”, you saying it before you do your intro logo and an advert for PCB way is the opposite of “without further ado”.
When it comes to the choice of cables there are a few things to remember: 1) Highly flexible cables should be used if at all possible. The reason for this is that *all* cables that flex *will* eventually break. In a factory we would schedule a pre-emptive cable replacement at a calculated interval. When is your cable going to break? You will know that right after it shuts down your factory. A highly flexible cable will delay this from happening for a very long time. 2) The terminating resistance is determined by what is called the "Characteristic Impedance" of the cable. The idea is to match the impedance of the cable. Basically 120 ohm resistors at each end are going to be just fine. 3) Ideally what you want is a "DeviceNet" type of cable that contains two pairs of conductors, one pair made up of bigger wires (lower AWG number is bigger. i.e. #18 AWG is bigger than #22 AWG). The problem is that DeviceNet is an obsolete media, so your cabling choices are limited. But Belden's "3084A Multi-Conductor" is basically what you are after. The Red/Black pair is for power, the Blue/White pair is for signal. Note that the R/B pair has larger conductors, while the B/W pair has the thicker insulation. Also note that the Belden cable is rated for 75C, and may not be particularly flexible. 3a) If you can't find what you want in a premade cable assembly, find yourself a "Continuous Flexible" cable with one twisted pair and a shield, and a second "Continuous Flexible" cable with one pair but with larger wire. Shielded would be good, and twisted isn't all that important for the power cable. Look for the higher temp wire while you are at it. Honestly, this approach would be preferable in my opinion. 4) Consider making your cable(s) up as an assembly with a free-floating plug at the hotend end of the cable. This way if the cable snags the cable should pull apart and not pull the connector out of your board. Think of it as a "Break away" connector. If you do use multiple cables, don't do something silly like use the same kind of connector for both cables, making it possible to get them swapped around. And remember to put the female end of the connector(s) on the end coming from the controller. This way a loose cable won't have potentially hot prongs dangling about. 5) One of the specs for CANBUS is that you can have up to 40 meters of cable length for a 1Mb/s network. Your cable is going to be 2 meters long. Unless you are Dr. D-Flo, and then it's 10 meters or so... Chances are that any problems with your network will not be in the cable (until it breaks). Meaning that if the system works in one spot, and then fails once the head moves, it's most likely a bad cable. If your system doesn't work at all, it's probably something else. Jan Axelson's book "Serial Port Complete" has an excellent chapter on RS-485 networks. I highly recommend reading (at least) that chapter.
Note: With the update to Katapult this still works but you have to change all commands with "CanBoot" to "katapult". I just did it and that was the trick. Thanks for the second time!
Finally someone showing other people flashing the firmwares only with the Pi/Pi alternative over dfutil and not using this (pesky) STM32 Cube software on Windows! You dont need that software, your Pi is able to do it all and more people should know this! Thx Dan!
Thanks DJ! I actually saw the STM32Cube recommended and shown in a few videos. I couldnt understand why? needing to use a desktop app just doesnt seem to make a whole lot of sense to me when you can do it all from the printer.
@@ModBotArmy Exactly this. Maybe because some people just dont know that you can do it without that (and I think some of this comes directly from BTT/Mellow howtos with countless of that programms screenshots in a pdf)
Actually STM Cube on Windows wil not work to flash an RP2040 (aka 'pico') based board. STM Cube is onloy for STM32 microcontrolers. Also the terms "DFU" does not apply to the rp2040. The way you flash an RP2040 is to place it in boot mode thenthe chip looks like a flash drive, you copy the binary to the flash drive and then reset the chip. No special software is required. as the chip acts like a normal USB disk drive. A lot of these boards are moving from STM32 to RP2040 and as of Feb '24 it is about 50/50. Inside both are ARM M0 CPUs but the RP2040 is dual core, has more memory is physically tine and cost only $4. So you can see why it is popular
Was pulling my hair out watching other tutorials that were very inconsistent and leaving out not-so obvious details to most noobs. I retraced my steps from the start of your video and at 12:22 thanks to your remark on checking wiring I realized my sloppy inattentive self had the CAN wires in reverse polarity. You sir are a gentleman and a glorious scholar
As someone not seeing this done as much as i saw, made my suspicion of it possibly being very difficult correct. This video is immensely helpful in showing what it can do and how to set it up correctly. Thanks for sharing
Greaty guide! I was able to follow for SBB2240 almost exactly the same. Only difference/issue was that i have SBB2240 so i needed to uncomment tmc2240 instead of 2209 for the extruder and everything else was fine!
I appreciate that this is infinitely more difficult than a simple printer review, etc. All of the work you put in and the excellent detail is greatly appreciated. I must have spent 15 hours trying to fix my micron that I trashed trying to install canbus. you helped me fix it in two hours. Phenomenal video, thank you; you are a lifesaver.
I am new subscriber. First just let me say that you are by far the best source of information I have found that explains everything clearly and in a very smooth flow. I have a pretty solid background in electronics and mechanics. I have only been into 3d printing for about 6 months and recently upgraded to Klipper on four Ender 3's. For me, working on the printers is my happy place. I have already learned so much and will be tackling the canbus upgrade you've outlined in this video. I purchased a Creality Ender 6 off Ebay used "for parts" about a week ago (100.00! 25.00 shipping. Great price for something with "good bones") After disassembly and reassembly I had it up and running in about 3 hours. I will be running a dedicated Pi3B for Klipper, with attached EBB46 and U2C 2.1instead of running it with the old PC i have connected to all 4 of my Ender 3's. I really appreciate you sharing this vital knowledge for all of us to enjoy and apply. I will also be attempting input shaping and was wondering what you are using to measure resonance on the print bed? I know that is neccesary for "Bed Slinger" is it also neccesary for CoreXY like the Ender 6?
I went through the whole process just few weeks ago and it was indeed painful. It turns out that it's better to set the can bus speed to 1M (and repeat the whole process of compiling/flashing) if you intend to use the input shaper... Info that you have to hunt down buried in the klipper forums. All in all it can be useful in case of toolchangers but otherwise too much of a hassle.
"Hi ModBot, thank you for your informative video on 3D printers! I wanted to share some additional information regarding the use of twisted or drilled cables. While twisted cables can be beneficial for longer cable lengths or in environments with high electromagnetic interference, it's important to note that most 3D printers don't require cable lengths longer than 2 meters. For shorter distances, such as those typically found in 3D printer setups, the risk of signal degradation or interference is relatively low, even without twisted cables. As long as good quality cables with sufficient shielding are used, a non-twisted cable can provide a reliable connection. It's always a good idea to ensure proper cable management, avoid sharp bends, and minimize sources of electromagnetic interference near the cables. However, for most 3D printer setups, twisted cables may not be necessary. Keep up the great content, and thank you for sharing valuable information with the community!"
Awesome video, I'm going for canbus with the same config so it really helps! Just mentioning if nobody else did: if you put the ebb configuration in a different cfg file than printer.cfg, you are not able to do a PID tune for the extruder because klipper allows writing at the bottom of printer.cfg only.
I wish I could give this video a thousand likes! After banging my head against the wall over the past few weeks I was considering abandoning the upgrade, but your instructions got me up and running. Thanks!
Thank you so much for this tutorial i was struggling with this for almost two weeks now and could not get it to flash the ebb36 properly (maybe because of the faulty u2c firmware) but following your video it worked on the second try. The first try failed because there is a small mistake in the description where it says: python3 ~/CanBoot/scripts/flash_can.py -i can0 -f /klipper/out/klipper.bin -u MYUUID it should be: python3 ~/CanBoot/scripts/flash_can.py -i can0 -f ~/klipper/out/klipper.bin -u MYUUID in the video its displayed correctly but copying it from the description gives an error Thanks again for the great explanation
How strange, I swore I copied everything from the terminal exactly how I entered it. Thank you for letting me know. I have updated the description. Awesome to hear that it helped!
You used the U2C because your M8P didn’t support can is that correct. I have the M5P that has can and both 36, and 42 boards. I have been searching to find the answer as I didn’t buy the U2C. One forum post I saw said the onboard can should work. Maybe you could do a follow up on how to set up the USB bridge and touch on the onboard can options. Love your vids, they always get me past the roadblock when I’m learning something new.
With this video I finally managed to configure it, and as you say it is not easy, but if you continue paying attention to the notes you will achieve it, I will venture to use the i2c port or the USB of the EBB 36 CAN, as a note, I used an audio cable for my can bus, initially I looked for a 4-wire one, but I couldn't find one, I used the two-wire one that comes shielded and a ground line that I didn't use, what I did was build with two of these cables, one for the can and the other for the 24v, thank you very much Con este video por fin logre configurarlo, y como dices no es sencillo, pero si sigues atento las notas lo lograras, me aventurare a usar el puerto i2c o el USB del EBB 36 CAN, como nota, use para mi can bus cable de audio, inicialmente busque de 4 hilos, pero no encontré, use el de dos que viene apantallado y una línea tierra que no use, lo que hice fue que construi con dos de estos cables, uno para el can y el otro para los 24v, muchas gracias
Good idea if you don't have enough (source of) issues yet. Well, just kidding but to me perfection don't come when you added everything you 'can' but when there's nothing left to remove. As an early reprapper I'm afraid 3D printing setup grows in complexity (firmware, number of parts, etc.) with a considerable extra time/money spent. Do you remember how inexpensive, quick and easy was a board/firmware replacement with Marlin 1.xx and Arduino IDE ? I wish next evolution will simplify all that mess.
Another source of agony with USB cables is type-c to type-c cables. EBB36 and U2C lack the chipsets to autonegotiate and whatever they've done with their USB implementation, it doesn't "fall back" to normal USB host -> USB slave.
*Prior to start doing what is shown on the video it is strongly recommended to perform a brand new clean re-installation of the whole OS with a up to date Klipper on a Raspberry Pi first.* Otherwise there is a chance that you'll end up with *_"Total 0 uuids found"_* even though your wiring, jumpers and whatever else are perfectly done.
HI Dan, @ModBot first up I love your videos and I'm super grateful for all your hard work. I did however fall into a black hole due to the constant change of the IT/ 3d printing world. I got totally lost when it came to canboot and katapult change after you made the video. Your video was a great in all the aspect up to this point. I just watched your video again after days of working on my printer and it all make perfect sense now I'm on the other side of getting all working. To be clear no criticism at all, I do however wonder if others might fall into the same trap I did. I did find the other guides you linked helped to fill in the gaps and I'm wondering if it would help if you edited your intro with a few notes in regarded to canboot Katapult. I wish I have looked at the links more carefully but to hindsight is 20/20 and a week ago I had no idea at all about canbus and was bumping around in the dark quite a lot. My intention to share this info as a pay it forward. keep up the great work Steve
Does the EBB 36 and 42 have the same pinout/config? I already have a ebb36 in my E5+ and I just got klipper flashed to two EBB42's for my Sovol IDEX and wondering if I can just copy my config from the EBB36 over?
Excellent walkthrough! I’m glad I sent you those donations during the MercuryOne build streams, money well spent 😊 I’m assuming your M8P is v1.0, without an embedded transceiver, and if that’s the case I strongly suggest you ditch the overpriced USB to CAN adapter for a tiny CAN transceiver which can be connected to PB0 (“ADC2”) and PB1 (“SERVO”) pins on the board instead. You can then configure the Manta in CAN bridge mode, as you would with a v1.1 (or a BTT Octopus). USB adapters just suck… One more thing about the embedded ADXL345 - don’t count on it for accurate input shaper results. The board is mounted too far from the nozzle (where it matters, duh) to provide valuable results. I consider this more of a gimmick.
Interesting! I did see a guide showing the trasceiver being uses with the BTT Pico and figured that was needed for Can Bridge. Maybe I misunderstood though. That is cool to know. As for the ADXL I have seen that nozzle is the best place to mount it but most of the time I end up mounting it to the layer cooling fan which is lower than the EBB but still high up. It may not be as accurate but I still think it definitely does help. I would be curious to know on the X1 Carbon or P1P where in the toolhead they have it. I feel like it does a pretty good job. Thank you for the feedback and the support
@@ModBotArmy an external CAN transceiver is needed for boards which don’t have one. Most modern MCUs have CAN support built-in - if you look at the documentation for most STM32 MCUs you’ll see CAN_TX and CAN_RX pins. A transceiver (on-board or external) is then used to convert this serial signal to CAN-High and CAN-Low. With RPi Pico, CAN support is implemented in software, thanks to the awesome work done by the Klipper developers. Due to that, you can tie any free GPIOs to the CAN transceiver. I happen to have two manta boards on my two Mercs, one is v1.0 and the other is v1.1. Setting up an external transceiver took a bit of figuring out the correct MCU pins but I managed this. In my opinion this is a much cleaner way than a USB adapter - and on the manta you have only 3 (one is a a 4-pin header). I like CAN bus so much that one of my machines now has a network of 4 CAN boards (I know, don’t ask…) One thing I do agree about the embedded accelerometer is that it’s better than no accelerometer at all 🙂
Thanks. This made CANN more understandable. I love you and know you tend to speak quickly but as a suggestion you may want to slow down just a bit so we can follow a bit easier. Cheers!
Thank you for the feedback. It is tough. Part of it is that I feel much less authentic when I slow down. I talk fast generally and when I am excited about something it feels wrong trying to slow it down. I have discussed this before with quite a few viewers and most seem to prefer the talking fast. You are not alone though and this is the second comment on this video alone. Maybe I enter pauses between topic shifts or something like that.
Very informative. Makes wiring cleaner, I recently rebuilt two 3D printer electronics and wiring and although a little more complicated to set up, CAN would maybe save me a lot of trouble with wiring. However I still didn´t felt like it was time for me to move into that setup, so I went with "traditional" wiring instead. Maybe in future builds. :D
Great video I wish you could do one for setting up canboot on the manta m8p v1.1 with cb1 using the manta’s onboard canbus. The documentation for this fragmented from many sources.
Thanks for the video. I haven't finished this project yet (lots of crimping to do). But I was hoping you would post where you got the mount/strain relief. EDiT: You really lost me on the "final steps". It seems that what you are saying and what is being displayed in the video are different. Are upper and lower case interchangeable in Klipper? CANBus gets spelled and displayed many different ways in the video. At 13:33 the Mainsail screen shot shows the file "canbus-ebb36". Isn't this supposed to be a .cfg file? because at 13:32 the Mainsail screen shot of the printer.cfg file shows [include canbus-ebb36.cfg} Also, on the same printer.cfg screenshot there is no "serial" definition. Is that supposed to be deleted? And finally, you say "just like when you built your original config file swap out pin IDs as necessary" What? I'm transitioning from Marlin to Klipper and have set up a few printers with Klipper and thought I had a fairly good handle on it. But, for me, you went way too fast through the final steps. And some coverage of the verification process would really be helpful. Now all I get is "Option 'serial' in section 'mcu EBBCan' must be specified".
7 месяцев назад
Hello, Could You make a follow up video, how to update the MCUs? Latest Klipper update ''bricked'' my printer :D
Got a Monster8v2 that happens to have CAN on it and wondered why. It makes total sense for a huge machine with a bunch of MCUs, but I'm still wondering why on earth people are going to all the trouble if they just have a hotend board. USB is so much easier.
Confused, are we replacing the printer control board with smaller ones, one on each stepper and one for the hot end? If so, what function does the main board do? Shouldn't we just have the smaller boards and a Pi (no mainboard needed)? A second or third printer should be also connected to the same Pi.
It's mainly meant for the hotend/toolhead, so there are only 4 wires. Two fans, extruder motor, heater, thermistor and maybe RGB LEDs are a bunch, especially if you need to crimp them all.
Nice video @MotBotArmy , this video help me to understand, complete and setting my canbus. Question where if is possible I can find the fan duct system you have.
I've been through the entire code base and changed quite a bit of it. The move, move queue, and rails abstraction are very well done. So is the entire configuration layer. The bad parts are (although far better than Marlin) the trapq trapezoidal planning. This should be replaced by S curves. I didn't care for the way they implemented end stops, extruders, and the tool head object. Being limited to 1 tool head object makes you have to play games with the kinematic python files as well as the C helper files when implementing IDEX features. I'm not a fan of the extruder object, as it doesn't allow room for spindles or such. The good news is it is so well written, it's easy to change.
Not sure if it was mentioned but your command "sudo dfu-util -a 0 -D ~/CanBoot/out/canboot.bin --dfuse-address 0x08000000:force:mass-erase:leave -d 0483:df11" has the B in canboot capitalized and it could not find the fw file. Thank you for the guide.
I wonder if the best way is to K.I.S.S. (Keep it simple ...). I can say to keep all simple, no lag software to add specially in the move of extruder motor that need fast response and to avoid the driver in hot chamber. The wires can be wrapped in protective silicone tube to avoid the chains. Excuse me for being devil's advocate.
This was exceptionally helpful, thank you. Do you know if you would need 2x of the BTT U2C boards to run two separate EBB's or can you run two off the one board?
Super late reply but as far as I understand, a main benefit of CAN-Bus is the ability to daisy-chain devices. You likely only need one BTT board to communicate with the EBBs :)
do you think that it is reliable to use can bus for high speed printing? is the communication fast enough to handle it? and this 2209 driver that comes on the toolhead board can work in enclosured printers? or it will need some water cooling?
@@ModBotArmy the chains just look so cool on switchwire! Asthetics > Performance in this case!, sort of the same thing as rgb make computer faster! But, I think I would run the canbus wire through the chain! Then again my v0 input shaper results before and after canbus prove that the mass bundle of wires impacts performance. But what really drew me into the switchwire was how good the chains look on the machine!
A couple weeks ago I attempted to use the RS485 but gave up because I couldn't find a guide that I could follow. I got to the point that I would be willing to pay someone to do it for me, but who? Heck, if I can't figure it out with the help of this vid & links, I may get on fiver & see if I can pay someone to talk me through it.
Not sure why, but I'm not getting a UUID detected after going through your video. At 10:59, you state to connect the Pi to the U2C, but the video shows connecting the U2C to the MCU. Which is the correct step?
I hoped that the usb a port on the u2c would allow the ebb36 board to operate with usb. the usb data lines being can high and low and the usual 5v lines could pass on the 24v but I am unable to do so.
does the Octopus Board not already have CAN interfaces? Why do we need another U2C module then? you glanced over this quite fast, but I did not get it I guess. May you elaborate this or give some docs?
since you are using a pi you don't need ftp it has sftp built in as part of the ssh protocol just select sftp and login with your ssh credentials edit: i rewatched the video youre already using sftp maybe call it the correct name to prevent confusion.
This part auto can0 iface can0 can static bitrate 500000 up ifconfig $IFACE txqueuelen 1024 is different from the Maz0r guide: allow-hotplug can0 iface can0 can static bitrate 500000 up ifconfig $IFACE txqueuelen 256 pre-up ip link set can0 type can bitrate 500000 pre-up ip link set can0 txqueuelen 256 Which one should I use?
@@ModBotArmy yes, absolutely. Only one cable and you are good to go. Ah, in windows you can use the stm software to program the board. Only the 2.0.9 version
I feel like I'm always missing a step somewhere. I have no such file under interfaces, and I do not have the permission to add said file under interfaces. I've tried using chmod to give myself permission, but it says I'm missing something at the end. This seems to be overlooked in every RUclips tutorial and klipper documentation. Has anyone else had this issue?
@@ModBotArmy ok I saw a guide that said to go to 1m to get it to work. I have been struggling to get this to work. About to try your guide thanks a ton.
@@paintballercali So it depends. I have had issues running input shaper with a printer that has a Raspberry Pi connected to an Octopus board working as a CAN Bus bridge to an EBB36. It always errors out before finishing. If I connect the EBB directly to the Pi with a Waveshare CAN Hat, I don't get the error. Both running the CAN Bus at 500k. I've tried increasing the CAN speed to 1M and it still doesn't finish with the Octopus as a CAN Bridge. I installed the canutils package because it has a command that can show the utilization of the CAN Bus. At 500k baud it goes over 100 percent utilization. Bumping the baud rate up to 1M, it goes up to peaks of 80% or so, but still fails. If I use the Waveshare CAN Hat, the bus utilization is extremely low by comparison. Like under 10 percent, even at 500k baud. I have even verified this by connecting an oscilloscope to the CAN H and L lines to watch the traffic with the scope. I believe there is some bug in the klipper code that is causing it to flood the CAN Bus with packets when using the Octopus as a CAN Bus bridge. Modbot is probably not having this issue because he's using the U2C can adapter.
This is the first video I have not been able to follow you on, there's too much advanced information that the average user will not get given at very high speed. Voron builders might get it.
This is one of the more advanced mods/topics I have covered in a long time. I wouldn’t attempt this without a fair bit of klipper experience and even additional research. I did my by best to fill in gaps but yeah this is a lot.
The phrase “Without further ado “ means “let’s get right to it”, you saying it before you do your intro logo and an advert for PCB way is the opposite of “without further ado”.
When it comes to the choice of cables there are a few things to remember:
1) Highly flexible cables should be used if at all possible. The reason for this is that *all* cables that flex *will* eventually break. In a factory we would schedule a pre-emptive cable replacement at a calculated interval. When is your cable going to break? You will know that right after it shuts down your factory. A highly flexible cable will delay this from happening for a very long time.
2) The terminating resistance is determined by what is called the "Characteristic Impedance" of the cable. The idea is to match the impedance of the cable. Basically 120 ohm resistors at each end are going to be just fine.
3) Ideally what you want is a "DeviceNet" type of cable that contains two pairs of conductors, one pair made up of bigger wires (lower AWG number is bigger. i.e. #18 AWG is bigger than #22 AWG). The problem is that DeviceNet is an obsolete media, so your cabling choices are limited. But Belden's "3084A Multi-Conductor" is basically what you are after. The Red/Black pair is for power, the Blue/White pair is for signal. Note that the R/B pair has larger conductors, while the B/W pair has the thicker insulation. Also note that the Belden cable is rated for 75C, and may not be particularly flexible.
3a) If you can't find what you want in a premade cable assembly, find yourself a "Continuous Flexible" cable with one twisted pair and a shield, and a second "Continuous Flexible" cable with one pair but with larger wire. Shielded would be good, and twisted isn't all that important for the power cable. Look for the higher temp wire while you are at it. Honestly, this approach would be preferable in my opinion.
4) Consider making your cable(s) up as an assembly with a free-floating plug at the hotend end of the cable. This way if the cable snags the cable should pull apart and not pull the connector out of your board. Think of it as a "Break away" connector. If you do use multiple cables, don't do something silly like use the same kind of connector for both cables, making it possible to get them swapped around. And remember to put the female end of the connector(s) on the end coming from the controller. This way a loose cable won't have potentially hot prongs dangling about.
5) One of the specs for CANBUS is that you can have up to 40 meters of cable length for a 1Mb/s network. Your cable is going to be 2 meters long. Unless you are Dr. D-Flo, and then it's 10 meters or so... Chances are that any problems with your network will not be in the cable (until it breaks). Meaning that if the system works in one spot, and then fails once the head moves, it's most likely a bad cable. If your system doesn't work at all, it's probably something else.
Jan Axelson's book "Serial Port Complete" has an excellent chapter on RS-485 networks. I highly recommend reading (at least) that chapter.
Note: With the update to Katapult this still works but you have to change all commands with "CanBoot" to "katapult". I just did it and that was the trick. Thanks for the second time!
Finally someone showing other people flashing the firmwares only with the Pi/Pi alternative over dfutil and not using this (pesky) STM32 Cube software on Windows! You dont need that software, your Pi is able to do it all and more people should know this! Thx Dan!
Thanks DJ! I actually saw the STM32Cube recommended and shown in a few videos. I couldnt understand why? needing to use a desktop app just doesnt seem to make a whole lot of sense to me when you can do it all from the printer.
@@ModBotArmy Exactly this. Maybe because some people just dont know that you can do it without that (and I think some of this comes directly from BTT/Mellow howtos with countless of that programms screenshots in a pdf)
you can also use make flash, and I totally agree, on windows 11 stm32cube is very glitchy at least for me, dfu-util works all the time
Actually STM Cube on Windows wil not work to flash an RP2040 (aka 'pico') based board. STM Cube is onloy for STM32 microcontrolers. Also the terms "DFU" does not apply to the rp2040.
The way you flash an RP2040 is to place it in boot mode thenthe chip looks like a flash drive, you copy the binary to the flash drive and then reset the chip. No special software is required. as the chip acts like a normal USB disk drive.
A lot of these boards are moving from STM32 to RP2040 and as of Feb '24 it is about 50/50. Inside both are ARM M0 CPUs but the RP2040 is dual core, has more memory is physically tine and cost only $4. So you can see why it is popular
Thanks i follow your video step by step and remplaced canboot for katapult and it worked perfectly !
Was pulling my hair out watching other tutorials that were very inconsistent and leaving out not-so obvious details to most noobs. I retraced my steps from the start of your video and at 12:22 thanks to your remark on checking wiring I realized my sloppy inattentive self had the CAN wires in reverse polarity.
You sir are a gentleman and a glorious scholar
As someone not seeing this done as much as i saw, made my suspicion of it possibly being very difficult correct. This video is immensely helpful in showing what it can do and how to set it up correctly. Thanks for sharing
Greaty guide! I was able to follow for SBB2240 almost exactly the same. Only difference/issue was that i have SBB2240 so i needed to uncomment tmc2240 instead of 2209 for the extruder and everything else was fine!
I appreciate that this is infinitely more difficult than a simple printer review, etc. All of the work you put in and the excellent detail is greatly appreciated. I must have spent 15 hours trying to fix my micron that I trashed trying to install canbus. you helped me fix it in two hours. Phenomenal video, thank you; you are a lifesaver.
Thanks! Made the software side of the upgrade so much easier. Only issue was that i have SBB2240 so i needed to uncomment tmc2240 instead of 2209
Thank so very much for the clear steps!!! All videos save so much time.
I am new subscriber. First just let me say that you are by far the best source of information I have found that explains everything clearly and in a very smooth flow. I have a pretty solid background in electronics and mechanics. I have only been into 3d printing for about 6 months and recently upgraded to Klipper on four Ender 3's. For me, working on the printers is my happy place. I have already learned so much and will be tackling the canbus upgrade you've outlined in this video. I purchased a Creality Ender 6 off Ebay used "for parts" about a week ago (100.00! 25.00 shipping. Great price for something with "good bones") After disassembly and reassembly I had it up and running in about 3 hours. I will be running a dedicated Pi3B for Klipper, with attached EBB46 and U2C 2.1instead of running it with the old PC i have connected to all 4 of my Ender 3's. I really appreciate you sharing this vital knowledge for all of us to enjoy and apply. I will also be attempting input shaping and was wondering what you are using to measure resonance on the print bed? I know that is neccesary for "Bed Slinger" is it also neccesary for CoreXY like the Ender 6?
Yes xy axis need input shaping vibrations compensation
I went through the whole process just few weeks ago and it was indeed painful. It turns out that it's better to set the can bus speed to 1M (and repeat the whole process of compiling/flashing) if you intend to use the input shaper... Info that you have to hunt down buried in the klipper forums.
All in all it can be useful in case of toolchangers but otherwise too much of a hassle.
Neat, maybe I'll do this next year when I feel like upgrading my mutant Ender-5 again.
Currently it's some kind of ender/voron mutant hybrid.
same here...
@@tigre3droyce771 mutant ender, or try Cam Bus next year?
@@adamrosenberg4367 I got a Hybrid, and of course Can Bus for sure
Thank you! Followed your guide step by step and everything is working perfectly! Great job!
"Hi ModBot, thank you for your informative video on 3D printers! I wanted to share some additional information regarding the use of twisted or drilled cables. While twisted cables can be beneficial for longer cable lengths or in environments with high electromagnetic interference, it's important to note that most 3D printers don't require cable lengths longer than 2 meters.
For shorter distances, such as those typically found in 3D printer setups, the risk of signal degradation or interference is relatively low, even without twisted cables. As long as good quality cables with sufficient shielding are used, a non-twisted cable can provide a reliable connection.
It's always a good idea to ensure proper cable management, avoid sharp bends, and minimize sources of electromagnetic interference near the cables. However, for most 3D printer setups, twisted cables may not be necessary.
Keep up the great content, and thank you for sharing valuable information with the community!"
Awesome video, I'm going for canbus with the same config so it really helps! Just mentioning if nobody else did: if you put the ebb configuration in a different cfg file than printer.cfg, you are not able to do a PID tune for the extruder because klipper allows writing at the bottom of printer.cfg only.
As someone Klipper-competent but new to CAN, this was an excellent onboarding to both the concept and practical implementation- thanks!
I wish I could give this video a thousand likes! After banging my head against the wall over the past few weeks I was considering abandoning the upgrade, but your instructions got me up and running. Thanks!
Nice. I have the same components on order now and am waiting for them to arrive. Hopefully soon! Thanks for the great video!
Sweet! Hopefully this will help you with the process.
This video is soooo good - all the information and steps needed to setup printer for CAN-BUS. Already bookmarked and shared with people in need
Thank you ModBot! This is a most helpful video. I've now got my pi, U2C, and EBB42 talking to each other.
Ill been trying get this working with other guides without success.
Your video was a real blessing. 10/10
Thanks!
Thank you so much for this tutorial i was struggling with this for almost two weeks now and could not get it to flash the ebb36 properly (maybe because of the faulty u2c firmware) but following your video it worked on the second try.
The first try failed because there is a small mistake in the description where it says:
python3 ~/CanBoot/scripts/flash_can.py -i can0 -f /klipper/out/klipper.bin -u MYUUID
it should be:
python3 ~/CanBoot/scripts/flash_can.py -i can0 -f ~/klipper/out/klipper.bin -u MYUUID
in the video its displayed correctly but copying it from the description gives an error
Thanks again for the great explanation
How strange, I swore I copied everything from the terminal exactly how I entered it. Thank you for letting me know. I have updated the description.
Awesome to hear that it helped!
Electronics are magic. Doubt I'll be doing this project, but at least I found out what this part was.
Please do a video on CAN BRIDGE with boards that support it
You used the U2C because your M8P didn’t support can is that correct. I have the M5P that has can and both 36, and 42 boards. I have been searching to find the answer as I didn’t buy the U2C. One forum post I saw said the onboard can should work.
Maybe you could do a follow up on how to set up the USB bridge and touch on the onboard can options.
Love your vids, they always get me past the roadblock when I’m learning something new.
Thanks so much for bringing us this!
With this video I finally managed to configure it, and as you say it is not easy, but if you continue paying attention to the notes you will achieve it, I will venture to use the i2c port or the USB of the EBB 36 CAN, as a note, I used an audio cable for my can bus, initially I looked for a 4-wire one, but I couldn't find one, I used the two-wire one that comes shielded and a ground line that I didn't use, what I did was build with two of these cables, one for the can and the other for the 24v, thank you very much
Con este video por fin logre configurarlo, y como dices no es sencillo, pero si sigues atento las notas lo lograras, me aventurare a usar el puerto i2c o el USB del EBB 36 CAN, como nota, use para mi can bus cable de audio, inicialmente busque de 4 hilos, pero no encontré, use el de dos que viene apantallado y una línea tierra que no use, lo que hice fue que construi con dos de estos cables, uno para el can y el otro para los 24v, muchas gracias
Good idea if you don't have enough (source of) issues yet. Well, just kidding but to me perfection don't come when you added everything you 'can' but when there's nothing left to remove. As an early reprapper I'm afraid 3D printing setup grows in complexity (firmware, number of parts, etc.) with a considerable extra time/money spent. Do you remember how inexpensive, quick and easy was a board/firmware replacement with Marlin 1.xx and Arduino IDE ? I wish next evolution will simplify all that mess.
Another source of agony with USB cables is type-c to type-c cables. EBB36 and U2C lack the chipsets to autonegotiate and whatever they've done with their USB implementation, it doesn't "fall back" to normal USB host -> USB slave.
*Prior to start doing what is shown on the video it is strongly recommended to perform a brand new clean re-installation of the whole OS with a up to date Klipper on a Raspberry Pi first.* Otherwise there is a chance that you'll end up with *_"Total 0 uuids found"_* even though your wiring, jumpers and whatever else are perfectly done.
Project is now called KATAPULT, not CanBoot for those following this in the future.
how do i work with it, im lost ???
@modbot
I would like to see more about your Mercury v1.1. 😊
Thank you so much for your video ! I got stuck with the uuid part, and I couldn't get answers from other youtubers. You are a lifesaver !
OMFG thank you! finally got my can working allowing me to continue my setup of my ZeroG hydra+ 🙌
Yet again you come through with the answers. This is saved to watch again after purchasing. ❤
Massive thanks for this! I've been having no luck the past few days trying various guides. Yours did the trick!
Thanks for all the leg work. Super grateful!
HI Dan, @ModBot first up I love your videos and I'm super grateful for all your hard work.
I did however fall into a black hole due to the constant change of the IT/ 3d printing world.
I got totally lost when it came to canboot and katapult change after you made the video.
Your video was a great in all the aspect up to this point.
I just watched your video again after days of working on my printer and it all make perfect sense now I'm on the other side of getting all working.
To be clear no criticism at all, I do however wonder if others might fall into the same trap I did.
I did find the other guides you linked helped to fill in the gaps and I'm wondering if it would help if you edited your intro with a few notes in regarded to canboot Katapult.
I wish I have looked at the links more carefully but to hindsight is 20/20 and a week ago I had no idea at all about canbus and was bumping around in the dark quite a lot.
My intention to share this info as a pay it forward.
keep up the great work
Steve
I have this exact setup and have been looking for ages on a good guide. Ipl try this tonight. Thank you!
Does the EBB 36 and 42 have the same pinout/config? I already have a ebb36 in my E5+ and I just got klipper flashed to two EBB42's for my Sovol IDEX and wondering if I can just copy my config from the EBB36 over?
Thanks for making this video. when i did can on my V1.8 it took me 2 weeks to figure this exact config of u2c & ebb 36
Thank you very much for this concise and accurate guide. It helped me to get a U2C and a SB2209 to work together.
Excellent walkthrough! I’m glad I sent you those donations during the MercuryOne build streams, money well spent 😊
I’m assuming your M8P is v1.0, without an embedded transceiver, and if that’s the case I strongly suggest you ditch the overpriced USB to CAN adapter for a tiny CAN transceiver which can be connected to PB0 (“ADC2”) and PB1 (“SERVO”) pins on the board instead. You can then configure the Manta in CAN bridge mode, as you would with a v1.1 (or a BTT Octopus).
USB adapters just suck…
One more thing about the embedded ADXL345 - don’t count on it for accurate input shaper results. The board is mounted too far from the nozzle (where it matters, duh) to provide valuable results. I consider this more of a gimmick.
Interesting! I did see a guide showing the trasceiver being uses with the BTT Pico and figured that was needed for Can Bridge. Maybe I misunderstood though. That is cool to know.
As for the ADXL I have seen that nozzle is the best place to mount it but most of the time I end up mounting it to the layer cooling fan which is lower than the EBB but still high up. It may not be as accurate but I still think it definitely does help. I would be curious to know on the X1 Carbon or P1P where in the toolhead they have it. I feel like it does a pretty good job.
Thank you for the feedback and the support
@@ModBotArmy an external CAN transceiver is needed for boards which don’t have one.
Most modern MCUs have CAN support built-in - if you look at the documentation for most STM32 MCUs you’ll see CAN_TX and CAN_RX pins. A transceiver (on-board or external) is then used to convert this serial signal to CAN-High and CAN-Low.
With RPi Pico, CAN support is implemented in software, thanks to the awesome work done by the Klipper developers. Due to that, you can tie any free GPIOs to the CAN transceiver.
I happen to have two manta boards on my two Mercs, one is v1.0 and the other is v1.1. Setting up an external transceiver took a bit of figuring out the correct MCU pins but I managed this. In my opinion this is a much cleaner way than a USB adapter - and on the manta you have only 3 (one is a a 4-pin header).
I like CAN bus so much that one of my machines now has a network of 4 CAN boards (I know, don’t ask…)
One thing I do agree about the embedded accelerometer is that it’s better than no accelerometer at all 🙂
Thanks. This made CANN more understandable. I love you and know you tend to speak quickly but as a suggestion you may want to slow down just a bit so we can follow a bit easier. Cheers!
Thank you for the feedback. It is tough. Part of it is that I feel much less authentic when I slow down. I talk fast generally and when I am excited about something it feels wrong trying to slow it down. I have discussed this before with quite a few viewers and most seem to prefer the talking fast. You are not alone though and this is the second comment on this video alone. Maybe I enter pauses between topic shifts or something like that.
Very informative. Makes wiring cleaner, I recently rebuilt two 3D printer electronics and wiring and although a little more complicated to set up, CAN would maybe save me a lot of trouble with wiring. However I still didn´t felt like it was time for me to move into that setup, so I went with "traditional" wiring instead.
Maybe in future builds. :D
Awesome, thanks so much for your efforts. Will revisit when the boards arrive
Thank you for this!
Would be nice if you could show your board RPi setup for a few second , I have no idea which board to choose and which RPi or should I choose CB1 ..
Great video I wish you could do one for setting up canboot on the manta m8p v1.1 with cb1 using the manta’s onboard canbus. The documentation for this fragmented from many sources.
Thanks for the video. I haven't finished this project yet (lots of crimping to do). But I was hoping you would post where you got the mount/strain relief.
EDiT:
You really lost me on the "final steps". It seems that what you are saying and what is being displayed in the video are different. Are upper and lower case interchangeable in Klipper? CANBus gets spelled and displayed many different ways in the video.
At 13:33 the Mainsail screen shot shows the file "canbus-ebb36". Isn't this supposed to be a .cfg file? because at 13:32 the Mainsail screen shot of the printer.cfg file shows [include canbus-ebb36.cfg}
Also, on the same printer.cfg screenshot there is no "serial" definition. Is that supposed to be deleted?
And finally, you say "just like when you built your original config file swap out pin IDs as necessary" What?
I'm transitioning from Marlin to Klipper and have set up a few printers with Klipper and thought I had a fairly good handle on it. But, for me, you went way too fast through the final steps. And some coverage of the verification process would really be helpful.
Now all I get is "Option 'serial' in section 'mcu EBBCan' must be specified".
Hello, Could You make a follow up video, how to update the MCUs? Latest Klipper update ''bricked'' my printer :D
Got a Monster8v2 that happens to have CAN on it and wondered why. It makes total sense for a huge machine with a bunch of MCUs, but I'm still wondering why on earth people are going to all the trouble if they just have a hotend board. USB is so much easier.
Confused, are we replacing the printer control board with smaller ones, one on each stepper and one for the hot end? If so, what function does the main board do? Shouldn't we just have the smaller boards and a Pi (no mainboard needed)? A second or third printer should be also connected to the same Pi.
It's mainly meant for the hotend/toolhead, so there are only 4 wires. Two fans, extruder motor, heater, thermistor and maybe RGB LEDs are a bunch, especially if you need to crimp them all.
I've thought of that also. I think you could run a printer with these boards at each motor without a dedicated main board.
Nice video @MotBotArmy , this video help me to understand, complete and setting my canbus. Question where if is possible I can find the fan duct system you have.
Thank you, such a great, clear, and succinct video.
I've been through the entire code base and changed quite a bit of it. The move, move queue, and rails abstraction are very well done. So is the entire configuration layer. The bad parts are (although far better than Marlin) the trapq trapezoidal planning. This should be replaced by S curves. I didn't care for the way they implemented end stops, extruders, and the tool head object. Being limited to 1 tool head object makes you have to play games with the kinematic python files as well as the C helper files when implementing IDEX features. I'm not a fan of the extruder object, as it doesn't allow room for spindles or such. The good news is it is so well written, it's easy to change.
Great video! Maybe on of these days I'll gather the courage for CAN
Thank you! Do it! But make sure you give yourself a fair bit of time. The end result is awesome.
@@ModBotArmy got my canbus boards this week and away we go!
Oh and the manta m8p also has it built in so you don't need the u2c
Thanks for the vid. Just checking if m8p doesn't need U2C as it has CAN port built in? Which mean I can just connect ebb36 directly to m8p? Thanks
Does that EBB36 board you mounted on the tool head have an accelerometer on it?
Not sure if it was mentioned but your command "sudo dfu-util -a 0 -D ~/CanBoot/out/canboot.bin --dfuse-address 0x08000000:force:mass-erase:leave -d 0483:df11" has the B in canboot capitalized and it could not find the fw file. Thank you for the guide.
좋은 정보였다. 차례대로 진행하니까 잘된다. 고맙다 형씨
I wonder if the best way is to K.I.S.S. (Keep it simple ...).
I can say to keep all simple, no lag software to add specially in the move of extruder motor that need fast response and to avoid the driver in hot chamber.
The wires can be wrapped in protective silicone tube to avoid the chains.
Excuse me for being devil's advocate.
This was exceptionally helpful, thank you. Do you know if you would need 2x of the BTT U2C boards to run two separate EBB's or can you run two off the one board?
Super late reply but as far as I understand, a main benefit of CAN-Bus is the ability to daisy-chain devices. You likely only need one BTT board to communicate with the EBBs :)
Does input shaping work even with axes of the printer not aligned with the axes of the adx
(Im assuming the chip is placed "vertically" on the board)
I just setup my manta e3ez last night, and I didn't need a U2C the manta board has a USB to can converter built into the board
Made my day!! Thank you for your clear video ;););)
do you think that it is reliable to use can bus for high speed printing? is the communication fast enough to handle it?
and this 2209 driver that comes on the toolhead board can work in enclosured printers? or it will need some water cooling?
Great video! I’ll need to use this method on my cb1 for switchwire
Are you planning on removing the cable chain then??
@@ModBotArmy the chains just look so cool on switchwire! Asthetics > Performance in this case!, sort of the same thing as rgb make computer faster! But, I think I would run the canbus wire through the chain! Then again my v0 input shaper results before and after canbus prove that the mass bundle of wires impacts performance. But what really drew me into the switchwire was how good the chains look on the machine!
A couple weeks ago I attempted to use the RS485 but gave up because I couldn't find a guide that I could follow. I got to the point that I would be willing to pay someone to do it for me, but who?
Heck, if I can't figure it out with the help of this vid & links, I may get on fiver & see if I can pay someone to talk me through it.
Hopefully this will help you out. I will be installing CAN into more printers and if I see things that are very differnt I may make a follow up.
Not sure why, but I'm not getting a UUID detected after going through your video. At 10:59, you state to connect the Pi to the U2C, but the video shows connecting the U2C to the MCU. Which is the correct step?
did you solve it?
It seems that Arksine/CanBoot repository has been renamed to Arksine/katapult.
I hoped that the usb a port on the u2c would allow the ebb36 board to operate with usb. the usb data lines being can high and low and the usual 5v lines could pass on the 24v but I am unable to do so.
does the Octopus Board not already have CAN interfaces? Why do we need another U2C module then? you glanced over this quite fast, but I did not get it I guess. May you elaborate this or give some docs?
What do I do if the Can0 is in the down state? is there a command to bring it up?
Thanks so much for these informative videos
Better to be a CAN Bus than CANNot Bus.
😭 so far I've been CAN NOT bus. I'm the guy he was talking about at the end, not being able to fill in the gaps.
since you are using a pi you don't need ftp it has sftp built in as part of the ssh protocol just select sftp and login with your ssh credentials
edit: i rewatched the video youre already using sftp maybe call it the correct name to prevent confusion.
Hello, great video, thanks for sharing that topic :)👍
shout out to esoterical github guides without them CAN would be a pain
Can I use this type of board with sonic pad?
Love your work..
12:03 it failed and said network is down. I had to reboot/reconnect everything and uuids showed up
Outstanding! Thanks!!!
Thanks Pi!
You finally evolved. ;-)
This part
auto can0
iface can0 can static
bitrate 500000
up ifconfig $IFACE txqueuelen 1024
is different from the Maz0r guide:
allow-hotplug can0
iface can0 can static
bitrate 500000
up ifconfig $IFACE txqueuelen 256
pre-up ip link set can0 type can bitrate 500000
pre-up ip link set can0 txqueuelen 256
Which one should I use?
For the life of me I cannot figure out why my I cant find my UUID after flashing canboot to my EBB36. Can anyone here help?
Well done, but I prefer the USB mode. Yes, you have to use USB C cable and the power line, but you don't have to use another board.
Fair, the exception to that would be CanBUS Bridge if your board is compatible. Having the option is nice.
@@ModBotArmy yes, absolutely. Only one cable and you are good to go. Ah, in windows you can use the stm software to program the board. Only the 2.0.9 version
I feel like I'm always missing a step somewhere. I have no such file under interfaces, and I do not have the permission to add said file under interfaces. I've tried using chmod to give myself permission, but it says I'm missing something at the end. This seems to be overlooked in every RUclips tutorial and klipper documentation. Has anyone else had this issue?
is his head just stuck at that angle or what
Seems simple enough
U rock! 🤘
Hey ModBot!
Hey!!
I thought you wanted to double the baudrate to get input shaper working
Input shaper work well at 500k. Old value I saw was 250k so this would be double.
@@ModBotArmy ok I saw a guide that said to go to 1m to get it to work. I have been struggling to get this to work. About to try your guide thanks a ton.
@@paintballercali So it depends. I have had issues running input shaper with a printer that has a Raspberry Pi connected to an Octopus board working as a CAN Bus bridge to an EBB36. It always errors out before finishing. If I connect the EBB directly to the Pi with a Waveshare CAN Hat, I don't get the error. Both running the CAN Bus at 500k. I've tried increasing the CAN speed to 1M and it still doesn't finish with the Octopus as a CAN Bridge. I installed the canutils package because it has a command that can show the utilization of the CAN Bus. At 500k baud it goes over 100 percent utilization. Bumping the baud rate up to 1M, it goes up to peaks of 80% or so, but still fails. If I use the Waveshare CAN Hat, the bus utilization is extremely low by comparison. Like under 10 percent, even at 500k baud. I have even verified this by connecting an oscilloscope to the CAN H and L lines to watch the traffic with the scope. I believe there is some bug in the klipper code that is causing it to flood the CAN Bus with packets when using the Octopus as a CAN Bus bridge. Modbot is probably not having this issue because he's using the U2C can adapter.
can the board support tv fans?
This is the first video I have not been able to follow you on, there's too much advanced information that the average user will not get given at very high speed.
Voron builders might get it.
This is one of the more advanced mods/topics I have covered in a long time. I wouldn’t attempt this without a fair bit of klipper experience and even additional research. I did my by best to fill in gaps but yeah this is a lot.
ty ty ty ty
I hope you are able to get it figured out!
This is a complicated way to simplify something.