I was investigating this just recently (so timely video), but it seems like the execution is still a little rough. I've been delayed with my own progression with CAN implementation due to the poor BTT documentation, so kudos to getting this all working! For those wondering why you would bother, I can think of a few reasons which initially interested me; 1) Reducing cabling from the control board to the print head (potentially reducing areas for troubleshooting if/when hardware faults occur) 2) Replacing the cheap cable from factory that's used when manufactured, and which may be prone to breaking with flex/movement in the original wiring loom when the print head moves around; 3) Easier assembly when/if building a printer or completing a major upgrade (Bowden to direct drive comes to mind); Disadvantages I can see would be having the whole printer down in the event the CAN system/board is damaged. Normally you may be able to replace the individual component/loom (for heater, bltouch, etc.) - with the CAN system, if the board is Kaput, your other working elements will remain inoperable until the CAN board/system is replaced. I would imagine CAN is better for bigger, complex systems and printers, potentially in excess of what the BTT boards currently allow. There are a whole heap of other advantages with CAN too, but that's more related to communication benefits, integrity of signals and reduction of electrical noise, etc. Michael - potentially something to have been discussed in the video/subsequent video - the why and when such an upgrade would be beneficial. Thanks for the video!
lol, you switched to CAN bus, then ran an _entire_ Cat5 cable + power wires for 1 twisted pair? I'm not trying to bust your balls, just teasing. Your content is tremendously appreciated.
For those who want to save some money: You can also operate the tool board directly via USB on the Raspberry. The connection saves the detour via CAN BUS. However, you have to connect the 12V or 24V additionally.
@@MatheusFP104 It is even easier to set up. Just flash the precompiled USB firmware from BTT GitHub instead of the CAN BUS version. Make sure to define the MCU correctly in the printer.cfg.
The USB bus is not as robust a signal as a CAN bus. Also very few USB wires are rated for as much movement as happens in a 3d printer. I would not reccomend this. It could be a very expensive 15 bucks you're trying to save.
You are using this "not robust" connection between your raspberry and the CAN board, also between your raspberry and your mainboard and you do a signal conversion. USB is rated for much higher transfer rates than CAN. And you only have a distance about one meter. CAN is a good technology, don't get me wrong. The USB cables resist the movements if you have an eye on your routing. The thin twisted pair cables which are used for CAN are not better.
@@Technikfreak72 Where are you getting the 1 meter length from. 1m will not be enough for most 3d printers. An ender 3 or any of it's clones needs at least 1.5 meter cable to the head. For larger box style 3d printers you're looking at 2 meters easy. This is where cheap usb cables start to lose signal(max on most usb standards is 3m allthough usb 2.0 is the exception with 5m). The higher transfer rate of usb is completely unneccesary for this aplication. I also don't think a cheap chinesium usb cable(remember you trying to save 15 bucks here) is gonna hold up. I've got usb cables that couldn't hold up to a few dozen charge cycles without fraying. I really wouldn't want that kind of cable anywhere near a high stress movement of a 3d printhead. There is a good reason why the 3d printer with the usb-c cable to the toolhead was so heavily critisized for it.
Just bought the BTT EBB 42 and U2C to fit onto my CR-10 v2, so this guide is very welcome 👍... also ordered a BTT CEB CAN Bus interface board in preparation for the Sovol SV08 multi-toolhead upgrade.
Just a note, all these toolboards work just fine with USB. No extra hardware needed, no lengthy setup process. No loss in latency, no additional overhead, etc etc. It's much easier to deal with. I wrote a provocative RatOS blog post about it, because i think CANbus is misplaced in simple 3d printers and overcomplicates the process for no particular good reason. If you run cable chains you may want a usb cable rated for drag chain use (they do exist), but in simple umbilicals that is overkill. 5K+ hours on several printers and no issues.
Exactly this. I am quite surprised that there is such a large focus on the CAN bus aspect when it is in actual fact not needed at all. . Just use USB and be done with it. The main klipper board is also connected via USB - tried and trusted. CAN overcomplicates the Klipper setup by a ridiculous amount.
Can you explain this. I am currently looking at and implementing CAN into my system and before i go ahead and create a cable. i would like to know what you mean by "use USB"
@@3D_Print-hy3rp There's not much to explain. Just erase CAN from your vocabulary, forget it exists and connect your boards with USB to your Pi like you've always done. There's nothing more to it.
@@miklschmidt but surely the power for the fans and hotend you can't run that through the usb being max 12v (normal 5v) you need 24/12v for fans and a good powerline for the hotend
@@3D_Print-hy3rp Power delivery is unrelated to the communication protocol, CAN doesn't deliver power either. You power your devices like you would otherwise. On toolboards the power wires are usually paired with the CAN connections in a MOLEX or XT30 connector. All you're doing is swapping CAN for USB. Or rather, you're *not* swapping USB for CAN. That said USB-PD could in theory power a toolboard, but there's no reason to go there and no boards currently support it.
I have been fighting with this exact setup for the past month. Watching your video gave me a number of new things to try. Thank you so much for putting this together! Hopefully it will fix my problem.
@@bamhm182 Did you have to re-flash your motherboard baud to match as well? I did not do that. I have U2C and Ebb 36 V1.2 set to 1000000 and at the klipper flash for the ebb, no UUiD can be found. I'll have to look at it further this weekend.
@@spanny52 mobo and can are two separate can devices, so the mobo is whatever BTT recommended, and the can is 1M. I recommend you start from the very beginning of the instructions here, and follow through exactly. I was having the same issues. I used the OFFICIAL candle whatever, not the BTT fork.
Did it a month ago to my sapphire, good upgrade. I went with the Rs485 can hat, seems a bit easier to me. Also interesting for all who self source a voron 2.4 for example: a canbus toolhead board might even be financially a good idea, on a 350 2.4 you save around 30m of wire and two drag chains
Great Video. You are right, it is definitely not for the faint hearted. there are so many variants and even tutorials on the same combinations that it is very very confusing. None really have an explanation on what is happening or what the process is doing at the time. You have done a good job here of explaining it. Thanks
I recently considered this upgrade but opted for the BTT PiggyBack36 break out board instead. I consolidated all the wiring into a single umbilical with custom cabling and minimal weight gain. Much better setup
Hey! What kind of plug do I need for the 2x8 connector? Is it included with the PiggyBack or do I have to source it separately? What is the pitch on the 2x8 connector? What size wires (AWG) did you use for it? Thanks in advance!
@@daniel.hungaryalf a year late, but the piggyback36 uses a 2x8 molex microfit 3.0 connector, and for wire size, 18awg for hotend heater cartridge wires, 22awg for everything else (not relevant to the piggyback36, but 12awg for the bed heater cartridge) The piggyback36 comes with the connector, though you will have to crimp the pins to the wires yourself, you can do this with regular household tools, but it’s better to purchase a crimping tool
Wonderful!!! Very informative especially those parts you were experienced and how the way you are overcame them all. The tips for unplug the Can connector to ensure klipper lost the connection for new firmware flashing is soooooooo good!!!
CAN bus communication of the components is an idea I had ~7 years ago, but never had time to implement and test. Nice to see it's making it's way into consumer printers.
I'm currently gonna be putting the Canbus on my Sovol Sv08 for the multipule toolhead build. I'm also using the Ebb 36 and the u2c boards just need to make up a mounting bracket for the u2c board to mount near the main board.
I'm really thankful about this video. It couldn't come at better time. I had FlyMellow CAN 2.0 kit for my V_minion on order, but order was constantly getting delayed. This video made me realize it would be too much hassle and variations for the gains. My original intention was make tool head more modular. I can get to my goals with "CANless" toolboard much easier. Yes it's more wires, but waaaayyyyyyy less hassle with updates. And I'm not sure flymellow can 2.0 (one I cancelled) supports usb flashing.
It's easy for RRF because the amount of boards it officially supports is pretty limited, and they themselves also design them. Klipper have to work with a multitude of boards from different manufacturers, sometimes with conflicting features between them. It's basically a Mac vs. PC situation. That said, Klipper is already there. CAN support on Klipper is pretty new and may still need some maturing, but it already works. And that not mentioning the other features that Klipper brought to 3d printers that are being copied by RRF like input shaping (and even so with limitations, due to how RRF works). In the end both are great firmwares, and as long as they allow me to print plastic boats I'm happy. :)
I found BTTs documentation on the pinouts for the U2C and EBB can ports extremely frustrating, and like many, ended up burning the board by reversing polarity (they have decided to mirror the polarity instead of keeping it the same).
Mirroring the pinouts like that is never a good idea because there's a clear benefit to NOT mirroring. I hope the designers are learning their lessons...
Hmmm... I know the PrusaXL is using similar setup with only power and communication going to the hot-end(s). I wonder what protocol they decided on for the communication protocol. There are so many to chose from in addition to CANbus.
Have already ordered a Mellow Fly-SHTv2 and octopus pro to do this on my soon-to-be heavily modified Ender 6 (Gutter-Rat/EVA3.0) chances are I'll make it worse and I'll lose my patience but for some weird reason I enjoy that so can't wait!
It's definitely a good mod for the open printers. However, how well does it perform in a heated enclosed printer? I'm worrying that the stepper driver might overheat given its ambient temperature will be 50-70 degrees VS ~20 room temperature.
Definitely a valid concern. You could probably get a heat sink on the TMC2209 to help a bit. So far I haven't needed it after some long test prints post video.
Works just fine with my 3D printer. I am however using fly sht36 board for the last 6 months but its all the same like BTT. The board itself has one temp. sensor built in and the board temperature reaches about 90°C but still works without any problems. You shouldn't worry about the temperature.
A lot of people are using Canbus with their Voron 2.4 without problems. Iam in the process but I need to print an abs mount for the ebb to continue my build. Also, a lot of people are using igus cables like me.
i don´t get why your channel is still not having millions of subscribers .. almost everything I want to know, you´ve already made a video about it.. like this one f.e. .. thanks and keep it up !
Very Nice job in detailing the process!!! Your video are the go to if you want install something and need more clarification . Not sure i will use a can bus but if i ever do this video will be the my go to.
I think you are missing the point of the EBB42 a bit^^ it is meant to be mounted on the actual toolhead, this way you can leave out as many cables as possible. It also has an adxl345 accelerometer on board so you can measure and reduce resonances with Klipper. Obviously this can only work if the sensor is on the toolhead.
As he mentioned at the start the 36 is designed to go on a toolhead with pancake steppers. The 42 is designed for a full nema 17,which you rarely see on a toolhead and so would go wherever your extruder motor goes.
Super helpful. Following this and info/help from klipper forum. Pi4 => Octopus v1.1 => EBB36 v1.2, ran into issue with EBB36 CANBus UUID not being returned, firmware uploads, but doesn't seem to be executing...
Wish I saw this just a few hours ago lol. My CR10s Pro's SSR failed a few days ago and replacing it today I accidentally killed the mosfet on the board so the bed heats forever without stop. If I had saw this i'd order the parts to set this up rather than just getting a replacement board and still dealing with the stupid 30 pin. Maybe next year I'll try setting this up, should be easier by then right.
Musk needs to hurry up with the neurolink, theres so much information and data, it would be incredible to be able to download these instructions and then be able to go back and reference them at any time. I feel like im years late on the can bus bandwagon, but I'm here now. Thank you for consistently providing good concise information
I got it somehow working… the software side is always the tricky part. Wired the cable along the filament PTFE tube now. Got to many broken wires in the past. Don’t want to deal with cable chains anymore. Have to write down my working EBB firmware before it’s too late in case I need to update it.
This... is going to be fun. Sheesh. looking forward to getting the EBB42 in the mail soon. This video made me realize its not exactly what I thought it was. =)
After programming my U2C, at 7:40, I can't get the U2C to reboot without a blue light. EDIT: I went ahead and pushed forward, but I can't get the message "0 uuids found", I get the same issue you had previously - Error: No such device EDIT: A Word to everyone feeling like every step of the way, the errors drive you crazy, keep pushing through. I have finished setup and am happy! Thanks so much for this Teaching Tech. FYI running EBB V1.2 with U2C V2.1 on an octopus pro and raspberry pi 3 model b (Voron 2.4)
@@chrisvolkert6117 oh I pushed forward meaning I continued the guide disregarding the blue light and the EBB/U2C are functioning well in my printer while the U2C still has that blue light 🤣 hopefully that's clear if not lmk
Hello Michael, I am thinking of upgrading my Sapphire Plus 3D Printer with the new SKR3 EZ mainboard. I noticed it has CAN on the board. I also want to purchase along with the board the PAD 7 also from BIQU. Could I connect then the EBB Board directly to the mainboard? Since I wonßt use a rasberry I will use the PAD 7 controller. Thank you
Hello, I have a stupid question: if I control every stepper with an ebb42, do i still need an additional controller board? Seems to me like everything is controlled by the Raspberry directly and it would reduce cabling. Seeing the current prices for the ebb36/42 it might be even cheaper than the usual control board + stepper drivers (2 ebb42 including adxl345+2209: 25€).
Hi Michael, Thanx for the video and the link to metoyou. The step where, prior to flashing the EBB, disconnect the USB and connect the CAN is for me strange as it is not mentioned on the metoyou page. Also, no matter what I try, I get the same UIID for both EBB and U2C and flashing klipper to the EBB fails,... any pointers in the right direction would help,...
if the install process gets better, this would be a great solution. however given were already running 1 ethernet cable for the signal its not that much of a saving. you can run a lot off just a single ethernet cable already, thermistor(2), part cool fan(2), hotend fan(2), spare 2 wires as you wouldnt want to run the heater off ethernet wire. 5 more wires to bltouch (i think its possible to run 4 wires tho) and 4 more for the extruder. so thats 15 wires needs which we can do with 2 ethernet cables. and ofc the hotend run off its own supply. much cheaper and easier of a mod, can can custom make pcbs pretty easy as its just a breakout board.
If using a btt pi, you dont need the u2c as it has a canbus port, correct? Also how is the heater handled? Is it ran from the ebb42 or still from the mainboard?
For clarity, the USB-C connection on the tool head of the Hermit Crab CAN isn't 'actually' USB-C is just using the connector as a convenient low profile multi pin connector. The interface is still CAN, just using pairs within the USB-C cable to do it. I'm starting an upgrade with the hermit crab and my only major thought / need to work through is how much current the hot end takes vs how much a usb-c cable can actually provide within its own thermal limits.... there seems to be a mis-match between how much current the cable is rated for and how much a hot end would draw....
Wouldn't the X motor have found four wires in the LAN cable? Only two of eight cables are used there. Now the servo motors and display remain on the old board. But all print head is controlled by CAN, except X motor.
Hi, did get 2 U2C 2.1 boards. Unfortunately I am not able to create a candleLight FW, not from the BTT instructions or following your instructions (after checking out into the STM32G0_support branch). As I not use the U2C with a Raspberry 4 (MKS-PI and 2. with an OrangePI Zero2) I did successfully flash CanBoot on it. I did send a email to BTT, but with the Chinese New Year now it will take possible weeks before I get an answer.
I am an electrical engineer and work as software dev at a manufacturer of saddle stitchers. CAN was present as a field bus system in industrial automation a few years ago and sometimes even today. But I am happy that it is not that common anymore. We are using an ethernet based and way easier system instead. CAN can be really fiddely to work with and every time I deal with it on an old machine it rremindes me how little i like this technology. It's an interesting solution but I would never take the hassle on me and try this out xD I preffer the ribbon cable in this case... Nice video though :)
You stated, "We are using an ethernet based and way easier system instead." Does that method have a name I can search on? I would love to know more about this. Thank you.
I'm building a custom IDEX printer and want to use CANBUS- do you know if it's possible to daisy chain one tool head to the other so I can control both using a single U2C board, or would I need a secondary serial device to control the second toolhead? I feel like i'm wandering into no-man's land here, since CANBUS is already pretty niche and IDEX puts me alone on an island lol
Thanks to your videos I have figured an Ebb42, and I can not be happier ... Now I want to go further and use the accelerometer that includes to adjust the Input Shaping in Klipper... Where can I find a guide to the steps I should follow?
I recently added almost this exact setup on my printer - one thing I'll note, is with the default Baud rate of 250k, I encountered a "connection timeout" issue when conducting a bed mesh - I upped the baud to 1,000,000 and it worked fine. Is there any benefit to going with 250k baud? If not, maybe it's better to recommend a 1,000,000 as a standard - although, I am unaware if the high baud has any drawbacks.
@@Technikfreak72 CAN transcivers are certified and designed to operate upto 1,000,000baud at distances upto 30 meters, if you are seeing corruption you are missing resistors to terminate the bus or are using untwisted / out of spec wires. (or a pi that can't handle the rate of converting packets from klipper > can and vice versa)
Would love to find one of these boards that supports two hotends. I'm just about to swap another printer over to dual extrusion and that would allow for some significantly simplified wiring. Haven't found a board capable of such things yet, but maybe one day.
Hmm... This could be an improvement on a lot of printers. I have a Creality Ender 3 S1, where there is already a compact direct drive assembly with a single cable. This could replace that somewhat stiff and relatively bulky band cable with an even lighter one. Time to investigate a little more I guess... As a side note: I guess this is not very useful if you use the Creality Sonic Pad, because that uses closed source Klipper stuff (as far as I know), so that limits modification. But maybe there is a work-around for that. I have not put much investigation time into that, because the Sonic Pad is not that available yet in my country.
Nice video! One thing puzzles me. When you created the config for the canboot bootloader you decided to build the deployer.bin, but you didn't flash it, why? I have trouble to understand the documentation for this deployer. I don't understand the benefit of it as I am able to flash klipper without it. What does it deploy?
I have done all the possible mods on my stock ender 3 v2 main board and CAN was the last i have made. For me it was dissapinting that i could not use CAN on mainboard itself and i had to add SPI to CAN board to connect my EBB36. The main takeway from all the CAN is that CAN can have many nodes on it, so basically next video instructable should be how to run single CAN on Pi and connect Octopus and EBB (or few) on same CANbus. As i have bought Fysetc Spider for my future printer plans i have 5 driver spaces free and i plan to CAN mod my original creality 4.2.2 that uses single hardware USART for driving all 4 stepper drivers that are addressed and can be easily flashed via STM32programmer using BOOT0, to add 4 more steppers for future use via CAN. Serial = P2P, CAN = multinode on single bus. Is Teaching Tech up to it? Making instruction video for masses to use Single CANbus to rule all stepper drivers of multiple boards and more?
CAN is much more widely used than you would think. I'm honestly surprised it's taken this long to get noticed by the 3D printing community. I dislike the klipper specific firmware. Would much rather see a CAN protocol standard for motors and print heads that could be used more openly regardless of the main controller software.
The CAN bus solution only makes sense if you are using it as a bus connecting several nodes. A CANbus with only one node is really a solution looking for a problem. So if you are building a robot arm with 6 joints, all with individual steppers and encoders, connecting all 6 nodes with just 4 wires makes sense and is worth the trouble. For 1 node, just use a multiwire cable with appropriate wire size for the stepper power, and another pair for the heater. Just because you can CAN, it doesn't mean you should.
digital signalling such as an spi bus from an accelerometer for input shaping is very noise sensitive and tricky to get working reliably over anything but very short distances. CAN or another fieldbus like MODBUS is a far better solution.
@@m3chanist You don't need to run the accelerometer calibration often. So you can just put klipper on a RPi Pico connected to an AXL. Connect the Pico to the RPi and mount the sensor on the toolhead, then run the measurement. Disconnect everything, and you're golden.
I think CANbus could be the future, but why stop with four wires? What needs to happen is to take it to two wires -- power to the tool head -- and have the communication between th Pi and the bus board happen via Bluetooth!
What is the difference between the regular candlelight firmware and the BTT fork? I got this thing to work with the regular firmware and wondering if there is anything extra in the BTT fork that I need to get it to work correctly.
Hi, I am new to 3d printing and stuck between the 2 printers I want to buy. Which one do you recommend between the CR10s Pro v2 and The Ender 5 plus? I have a few more questions if you don't mind.
In an ideal world we would have a universal CAN-Bus PCB for all 3d Printers. Advantages to using CAN-Bus: Reduced Weight, Friction, Hassle... We then need to standardized connectors for Fans, Thermistor, RGB and Heater Cartridge... Control boards cost would be considerably reduced as connectors contribute in large part to their costs. It doesn't even have to be CAN-Bus, it could be as simple as USB, or even better... wireless (WiFi/Bluetooth)... I genuinely can't understand why we run all these cables when we only require power and data to control everything. Imagine a printer control board with only a few CAN-Bus connectors. Hot-End Bus: Heater, Thermistor, Direct Drive Motor, Fans, RGB... Motion Bus: Motors, End-Stops, Other Sensors... Magic ;)
I have been thinking about this, could you use this kind of board to add independent Z stepper, or a second extruder to an x carriage. Seams like it would work, with hours of effort.
Goddammit, i just finished painstakingly pinning out the ribbon cable for my cr10s pro to work with a btt octopus board and the original daughter board! Sods law i guess :'D Great work as always TT, love the vids!
This seemed like a lot of work just to clean up a few wires, no? Am I missing something? I am in the process installing a BTT M4P and CB1 combo with the HDMI 5 screen on my CR-10 S5. This printer is in need of a wire tuck. Im just trying to clean up a few things.
It's valuable when you start making changes on the toolhead. On my V-Core I swapped out my Z probe, my cooling fan, added a filament sensor and I'm about to add LED lighting, all without touching the cable umbilical (which is just 24V and a USB cable). It's also great for IDEX or toolchanger setups to cut down on the sheer number of toolhead wires. On a single extruder printer that is "finished" I would say there's not a huge benefit, however it is pretty cool and works well in my experience.
Great video! I tried CANable + BTT method here for the U2C v2.1, I still can't get UUID. Blue light was on when usb cable is plugged in with Boot button pressed, now blue light is always on. Are there other ways to fix the problem? Should I return this faulty card? Thanks
@@chrisvolkert6117 BTT / BIQU Support response is below, you may want to try. It didn't work for me, Pi detects U2C normal and DFU modes but I can't get CAN comm to work. Waiting for a new U2C to arrive. "you can send the lsusb command to see if there is a USB device for U2C. Or press and hold the boot button, unplug and plug the USB cable of u2c, and then check whether there are stm32 dfu devices in lsusb 2. If there is a U2C device, send sudo ifdown can0 first, and then send sudo ifup can0 to restart the can0 device, and then send ifconfig to check whether the can0 device starts normally. 3. If there is a can0 device in ifconfig, the command of klipper to query canbus id can be executed normally No USB device tries to refresh the firmware again, the module is completely powered off, press and hold the Boot button, insert the Type-C data cable to power the module, enter the DFU mode, and use STM32CubeProgrammer software to update the firmware again Use candlelight firmware github.com/candle-usb/candleLight_fw"
My BTT U2C v2.1 board from Biqu was faulty + getting a replacement. I bought the same board from a local reseller. Follow this video and it works first time
Wow that’s cool. Wait a minute! 4 wires what about 2? Telephone uses 2😊. BTT please make a module and a adaptor for your BTT mainboard to make the print head LESSwires using WiFi. Klipper software people maybe control the head thru WiFi. I m new to electronics, Anyone out there doing this please share. Let’s have more ideas to 3D printing. Thanks for sharing.
12:18 The EBB is three times faster than the mainboard itself :D Next Upgrade: replace the two CAN signal cables by a WIFI connector While the CAN bus idea definitly technically intruiging, I am currently struggling to see the real benefits unless you're constantly swapping out your printheads on a multi-tool switching printhead, the EBB would be nice since you only need 4 contacts between the adapter plate and the tool Then, each tool would also have a different CAN ID, not sure if that could be used for tool-specific settings.
I'm switching now to canbus because I'm tempted by running 4 cables to the printhead instead of 14. I will get accelerometer permanently attached to the printerhead (which would add another 6 wires if mounted permanently) and I'll add bed levelling proble (another 3 wires). It will reduce weight that my carriage has to drag around, it should reduce noise on the PT1000 lines, it will offload mainboard and let me run other steppers at higher stepping rates if needed. Also if anything gets damaged or upgraded on the printhead, I will no longer need to route wires completely through all the dragchains. However these advantages are only when mounted on the printhead itself. I don't see any reason to change to CAN if the EBB board is going to be mounted in a stationary place.
It seems convoluted, and expensive, to use a USB to CAN bridge here. Some of us using PiZero2's as the Klipper host may not even have an extra USB port to spare. Is there a problem with simply using a MCP2515 on the fruit-pi's SPI bus? Seems that this would be less expensive, and more direct. I know from experience, the SPI bus easily goes 1Mbps. Perhaps someone here can help me: Are we dealing with a 3.3V, or 5V CAN bus on that print head board? Gawd I hope it is 3.3V.
Could you become interested in a CNC project? I want to CNC ny Bridgeport mill. I'd like to use MakerBase NEMA23 stepper/servo motors. Those motors are typically used on 3D printers. I'd like to use something like GRBL CNC control but the software hurdles are to high for me. Im more PCB design / hardware oriented.
I hope one day BTT creates a board with usb-pd port which will allow a single cable to run to the tool head. Usb-pd revision 3.1 claims 240w power delivery which should be plenty.
Oh man, yeah, while this seems like a headache to set up at the moment, as it seems like early stages of adoption and standardization, I think it's absolutely needed to modernize these devices, and ultimately makes cable management much cleaner and easier, and should make everything more reliable and less susceptible to interference.
Characteristic impedance is a property of the cable, the terminator at the end should match it, not be a substitution. Ethernet twisted pair is around 100-ohms impedance, so close enough. More generally, I think that just telling people to blindly cut-and-paste random lines of text from one place to another isn't an effective way for people to learn, and this is going to be more of a direct issue when something goes wrong. They've performed all these actions, like some magic trick incantation and when it goes wrong they're not as prepared to thoughtfully debug stuff. Then they are left to do searches on the Internet or to start randomly trying stuff (just likely they blindly copy and pasted their way into this mess) in an attempt to make it work. It's be great if along the way there was an explanation as to what those shell commands actually DID so a picture of the overall process would become more clear. Sure, this would make a longer video even longer and might not be appropriate in every (or most) cases. But it's a great opportunity to teach by example and learn while doing. It's not like this specific video is particularly bad in this regard, it's just a trend that I see (like the old "pipe this curl into your super-user shell and hope that you trust the random Internet person to not send you commands that erase your disk" instructions that you see everywhere..) Thanks for the doing this video; I hope to maybe do this conversion to my Voron 2.4. However, it's working just fine for the moment, so I'll likely wait until some natural opportunity comes up to fix what's not currently broken.
Just something I noticed, the impedance across the Can hi/low should be 60 ohms achieved by using a 120 ohm resistor at each end. I assume that the board at the raspberry pi already had the resistor built in and that's why it wasn't needed (but obviously that would change if you were using a different board). Also using an ethernet cable for the twisted pair is a great hack but all the extra unused cables just doesn't sit right with me. I don't know how important the specific twist rate is but perhaps there are better solutions (in my experience working with Can on a daily basis you can get away without a twist unless you are working in a very electrically noisy environment or you are pushing the speed limits of the Can protocol but then you would be better of just using CanFD).
Most ethernet cables are solid copper wire which is not suitable for movement. Copper work hardens which means in this case means it will get more and more brittle the more movement it does. Use 18awg stranded wire instead. Stranded wire is much more risistant to work hardening.
I'm using 18 awg fine stranded silicone-insulated wire, not twisted or impedance matched in any way, and it's working fine (at least at 250 kbps) since the cable runs are short. The Gucci option would be something like igus chainflex -- they have a zillion varieties with different combinations of thick conductors for power and twisted pairs for signal.
Okay. I'm about to chuck this whole thing into the garbage because I can't get it to work. I have tried several time with no luck. I am to the point where I am trying to flash klipper on the EBB36. I have connected the U2C and EBB (do the cables go H -> H, L->L or H->L or L->H? I have tried it both ways), but always get an error when trying to get the CAN uuid. I have gone through the process of downloading and flashing many times. No luck. Is there a step missing? I did flash CanBoot on the U2C and got a CAN uuid for it, but couldn't get one for the EBB36. HELP!
Thank you for the fast reply. I had already searched the last year of your video releases, but couldn't find any match. I like how slim the fan duct is. I currently use a Blokhead duct, but it is huge, so your video piqued my interest when I saw the slim fan setup.@@TeachingTech
Hello! Help me please, I've been struggling with installing canbus for 2 days now. I have orange pi 5(Distributor ID: Debian Description: Armbian 24.2.1), bought an ebb36 board and a U2C module. At the very beginning, when creating the can0 file, it gave the error /etc/network/interfaces.d/can0 directory does not exist. I manually created the interfaces.d folder and the can0 file. With all further manipulations, I encountered the same problem: I did not see the device via can0. when I scanned the ip addr networks, I discovered that there was no can0 network. Maybe someone has encountered this problem. Thanks in advance!
depends on various things, USB for real time communication is kinda $hit, CAN is more robust and reliable, also its has to do with how the protocols are setup, USB generally being a master-slave protocol, CAN almost always being a multi master protocol, TLDR CAN is more reliable and robust for such applications.
@@pvim So all the klipper machines running on usb communication are "$hit"? You have a raspberry pi controlling mainboard in realtime through usb what's more to say
is the only advantage of this solution the reduction of the number of wires? honestly, I would rather run a well-made harness in a classic way and avoid any possible tinkering in the future. In my opinion, this is a triumph of style over substance
I was investigating this just recently (so timely video), but it seems like the execution is still a little rough. I've been delayed with my own progression with CAN implementation due to the poor BTT documentation, so kudos to getting this all working!
For those wondering why you would bother, I can think of a few reasons which initially interested me;
1) Reducing cabling from the control board to the print head (potentially reducing areas for troubleshooting if/when hardware faults occur)
2) Replacing the cheap cable from factory that's used when manufactured, and which may be prone to breaking with flex/movement in the original wiring loom when the print head moves around;
3) Easier assembly when/if building a printer or completing a major upgrade (Bowden to direct drive comes to mind);
Disadvantages I can see would be having the whole printer down in the event the CAN system/board is damaged. Normally you may be able to replace the individual component/loom (for heater, bltouch, etc.) - with the CAN system, if the board is Kaput, your other working elements will remain inoperable until the CAN board/system is replaced.
I would imagine CAN is better for bigger, complex systems and printers, potentially in excess of what the BTT boards currently allow. There are a whole heap of other advantages with CAN too, but that's more related to communication benefits, integrity of signals and reduction of electrical noise, etc.
Michael - potentially something to have been discussed in the video/subsequent video - the why and when such an upgrade would be beneficial.
Thanks for the video!
lol, you switched to CAN bus, then ran an _entire_ Cat5 cable + power wires for 1 twisted pair? I'm not trying to bust your balls, just teasing. Your content is tremendously appreciated.
For those who want to save some money: You can also operate the tool board directly via USB on the Raspberry. The connection saves the detour via CAN BUS. However, you have to connect the 12V or 24V additionally.
How? Can you give some links? Thanks!
@@MatheusFP104 It is even easier to set up. Just flash the precompiled USB firmware from BTT GitHub instead of the CAN BUS version. Make sure to define the MCU correctly in the printer.cfg.
The USB bus is not as robust a signal as a CAN bus. Also very few USB wires are rated for as much movement as happens in a 3d printer. I would not reccomend this. It could be a very expensive 15 bucks you're trying to save.
You are using this "not robust" connection between your raspberry and the CAN board, also between your raspberry and your mainboard and you do a signal conversion. USB is rated for much higher transfer rates than CAN. And you only have a distance about one meter. CAN is a good technology, don't get me wrong. The USB cables resist the movements if you have an eye on your routing. The thin twisted pair cables which are used for CAN are not better.
@@Technikfreak72 Where are you getting the 1 meter length from. 1m will not be enough for most 3d printers. An ender 3 or any of it's clones needs at least 1.5 meter cable to the head. For larger box style 3d printers you're looking at 2 meters easy. This is where cheap usb cables start to lose signal(max on most usb standards is 3m allthough usb 2.0 is the exception with 5m). The higher transfer rate of usb is completely unneccesary for this aplication. I also don't think a cheap chinesium usb cable(remember you trying to save 15 bucks here) is gonna hold up. I've got usb cables that couldn't hold up to a few dozen charge cycles without fraying. I really wouldn't want that kind of cable anywhere near a high stress movement of a 3d printhead. There is a good reason why the 3d printer with the usb-c cable to the toolhead was so heavily critisized for it.
As someone whose CR10S PRO V2 just crapped out on them and is the process of installing a new board/removing the ribbon cable I salute you!
Just bought the BTT EBB 42 and U2C to fit onto my CR-10 v2, so this guide is very welcome 👍... also ordered a BTT CEB CAN Bus interface board in preparation for the Sovol SV08 multi-toolhead upgrade.
Just a note, all these toolboards work just fine with USB. No extra hardware needed, no lengthy setup process. No loss in latency, no additional overhead, etc etc. It's much easier to deal with. I wrote a provocative RatOS blog post about it, because i think CANbus is misplaced in simple 3d printers and overcomplicates the process for no particular good reason. If you run cable chains you may want a usb cable rated for drag chain use (they do exist), but in simple umbilicals that is overkill. 5K+ hours on several printers and no issues.
Exactly this. I am quite surprised that there is such a large focus on the CAN bus aspect when it is in actual fact not needed at all. . Just use USB and be done with it. The main klipper board is also connected via USB - tried and trusted. CAN overcomplicates the Klipper setup by a ridiculous amount.
Can you explain this. I am currently looking at and implementing CAN into my system and before i go ahead and create a cable. i would like to know what you mean by "use USB"
@@3D_Print-hy3rp There's not much to explain. Just erase CAN from your vocabulary, forget it exists and connect your boards with USB to your Pi like you've always done. There's nothing more to it.
@@miklschmidt but surely the power for the fans and hotend you can't run that through the usb being max 12v (normal 5v) you need 24/12v for fans and a good powerline for the hotend
@@3D_Print-hy3rp Power delivery is unrelated to the communication protocol, CAN doesn't deliver power either. You power your devices like you would otherwise. On toolboards the power wires are usually paired with the CAN connections in a MOLEX or XT30 connector.
All you're doing is swapping CAN for USB. Or rather, you're *not* swapping USB for CAN.
That said USB-PD could in theory power a toolboard, but there's no reason to go there and no boards currently support it.
I have been fighting with this exact setup for the past month. Watching your video gave me a number of new things to try. Thank you so much for putting this together! Hopefully it will fix my problem.
Any luck so far? I'm thinking about installing Canbus on my voron and am just curious lol.
@@jeremytodd1 yeah, actually! It turns out my issue was that I needed to set the baud to 1M.
@@bamhm182 Did you have to re-flash your motherboard baud to match as well? I did not do that. I have U2C and Ebb 36 V1.2 set to 1000000 and at the klipper flash for the ebb, no UUiD can be found. I'll have to look at it further this weekend.
@@spanny52 mobo and can are two separate can devices, so the mobo is whatever BTT recommended, and the can is 1M. I recommend you start from the very beginning of the instructions here, and follow through exactly. I was having the same issues. I used the OFFICIAL candle whatever, not the BTT fork.
So glad to have a more experienced walk thru.
So many steps.
So many places to get right.
Did it a month ago to my sapphire, good upgrade. I went with the Rs485 can hat, seems a bit easier to me.
Also interesting for all who self source a voron 2.4 for example: a canbus toolhead board might even be financially a good idea, on a 350 2.4 you save around 30m of wire and two drag chains
Holy shit, 30 *meters* of wire? Crazy.
Great Video. You are right, it is definitely not for the faint hearted. there are so many variants and even tutorials on the same combinations that it is very very confusing. None really have an explanation on what is happening or what the process is doing at the time. You have done a good job here of explaining it. Thanks
I recently considered this upgrade but opted for the BTT PiggyBack36 break out board instead. I consolidated all the wiring into a single umbilical with custom cabling and minimal weight gain. Much better setup
Hey!
What kind of plug do I need for the 2x8 connector? Is it included with the PiggyBack or do I have to source it separately?
What is the pitch on the 2x8 connector?
What size wires (AWG) did you use for it?
Thanks in advance!
@@daniel.hungaryalf a year late, but the piggyback36 uses a 2x8 molex microfit 3.0 connector, and for wire size, 18awg for hotend heater cartridge wires, 22awg for everything else (not relevant to the piggyback36, but 12awg for the bed heater cartridge)
The piggyback36 comes with the connector, though you will have to crimp the pins to the wires yourself, you can do this with regular household tools, but it’s better to purchase a crimping tool
Wonderful!!! Very informative especially those parts you were experienced and how the way you are overcame them all. The tips for unplug the Can connector to ensure klipper lost the connection for new firmware flashing is soooooooo good!!!
CAN bus communication of the components is an idea I had ~7 years ago, but never had time to implement and test. Nice to see it's making it's way into consumer printers.
A guide on setting up input shaper with the ADXL345 onboard the EBB board would be super handy.
Wait, the EBB board comes with an integrated ADXL345?
@@kerbodynamicx472 Yep :)
I'm just happy that I'm at a point where everything you said in this video wasn't intimidating
i had the exact same timeout issue. Finished watching your tutorial and that was the solution. Thanks a bunch.
I'm just starting this mod on my printer and collecting all the boards. Look forward to using this for setting up my canboard
I'm currently gonna be putting the Canbus on my Sovol Sv08 for the multipule toolhead build. I'm also using the Ebb 36 and the u2c boards just need to make up a mounting bracket for the u2c board to mount near the main board.
I'm really thankful about this video. It couldn't come at better time. I had FlyMellow CAN 2.0 kit for my V_minion on order, but order was constantly getting delayed. This video made me realize it would be too much hassle and variations for the gains. My original intention was make tool head more modular. I can get to my goals with "CANless" toolboard much easier. Yes it's more wires, but waaaayyyyyyy less hassle with updates. And I'm not sure flymellow can 2.0 (one I cancelled) supports usb flashing.
I've been using Klipper in my 2 printers since I discovered it here and never looked back.
Thank you for this video!!!
Will install CAN bus on my new Voron build and that would be realy helpfull!
CAN has been the future of 3d printing for 3 years now. But in RRF where it just works :) Seriously though Klipper will get there too.
It's easy for RRF because the amount of boards it officially supports is pretty limited, and they themselves also design them. Klipper have to work with a multitude of boards from different manufacturers, sometimes with conflicting features between them. It's basically a Mac vs. PC situation. That said, Klipper is already there. CAN support on Klipper is pretty new and may still need some maturing, but it already works. And that not mentioning the other features that Klipper brought to 3d printers that are being copied by RRF like input shaping (and even so with limitations, due to how RRF works).
In the end both are great firmwares, and as long as they allow me to print plastic boats I'm happy. :)
I found BTTs documentation on the pinouts for the U2C and EBB can ports extremely frustrating, and like many, ended up burning the board by reversing polarity (they have decided to mirror the polarity instead of keeping it the same).
Mirroring the pinouts like that is never a good idea because there's a clear benefit to NOT mirroring. I hope the designers are learning their lessons...
I have the same BTT CAN bus parts waiting to go into a printer I am rebuilding, so I expect this video will be a handy resource. Thanks.
Hmmm... I know the PrusaXL is using similar setup with only power and communication going to the hot-end(s). I wonder what protocol they decided on for the communication protocol. There are so many to chose from in addition to CANbus.
Have already ordered a Mellow Fly-SHTv2 and octopus pro to do this on my soon-to-be heavily modified Ender 6 (Gutter-Rat/EVA3.0) chances are I'll make it worse and I'll lose my patience but for some weird reason I enjoy that so can't wait!
canbus Looks awesome. I feel it is too new at this stage for me. But something on the horizon when a major upgrade or failure happens
It's definitely a good mod for the open printers. However, how well does it perform in a heated enclosed printer? I'm worrying that the stepper driver might overheat given its ambient temperature will be 50-70 degrees VS ~20 room temperature.
Definitely a valid concern. You could probably get a heat sink on the TMC2209 to help a bit. So far I haven't needed it after some long test prints post video.
Works just fine with my 3D printer. I am however using fly sht36 board for the last 6 months but its all the same like BTT. The board itself has one temp. sensor built in and the board temperature reaches about 90°C but still works without any problems.
You shouldn't worry about the temperature.
A lot of people are using Canbus with their Voron 2.4 without problems. Iam in the process but I need to print an abs mount for the ebb to continue my build. Also, a lot of people are using igus cables like me.
i don´t get why your channel is still not having millions of subscribers .. almost everything I want to know, you´ve already made a video about it.. like this one f.e. .. thanks and keep it up !
Very Nice job in detailing the process!!! Your video are the go to if you want install something and need more clarification . Not sure i will use a can bus but if i ever do this video will be the my go to.
I think you are missing the point of the EBB42 a bit^^ it is meant to be mounted on the actual toolhead, this way you can leave out as many cables as possible. It also has an adxl345 accelerometer on board so you can measure and reduce resonances with Klipper. Obviously this can only work if the sensor is on the toolhead.
As he mentioned at the start the 36 is designed to go on a toolhead with pancake steppers. The 42 is designed for a full nema 17,which you rarely see on a toolhead and so would go wherever your extruder motor goes.
Super helpful. Following this and info/help from klipper forum. Pi4 => Octopus v1.1 => EBB36 v1.2, ran into issue with EBB36 CANBus UUID not being returned, firmware uploads, but doesn't seem to be executing...
Wish I saw this just a few hours ago lol.
My CR10s Pro's SSR failed a few days ago and replacing it today I accidentally killed the mosfet on the board so the bed heats forever without stop. If I had saw this i'd order the parts to set this up rather than just getting a replacement board and still dealing with the stupid 30 pin. Maybe next year I'll try setting this up, should be easier by then right.
Musk needs to hurry up with the neurolink, theres so much information and data, it would be incredible to be able to download these instructions and then be able to go back and reference them at any time.
I feel like im years late on the can bus bandwagon, but I'm here now. Thank you for consistently providing good concise information
I got it somehow working… the software side is always the tricky part.
Wired the cable along the filament PTFE tube now. Got to many broken wires in the past. Don’t want to deal with cable chains anymore.
Have to write down my working EBB firmware before it’s too late in case I need to update it.
This... is going to be fun. Sheesh. looking forward to getting the EBB42 in the mail soon. This video made me realize its not exactly what I thought it was. =)
After programming my U2C, at 7:40, I can't get the U2C to reboot without a blue light.
EDIT: I went ahead and pushed forward, but I can't get the message "0 uuids found", I get the same issue you had previously - Error: No such device
EDIT: A Word to everyone feeling like every step of the way, the errors drive you crazy, keep pushing through. I have finished setup and am happy! Thanks so much for this Teaching Tech. FYI running EBB V1.2 with U2C V2.1 on an octopus pro and raspberry pi 3 model b (Voron 2.4)
Hey, IF I don't manage to fox it by tedious trial-and-error: waht were your fixes to your initial problem and "Edit1"?
@@chrisvolkert6117 oh I pushed forward meaning I continued the guide disregarding the blue light and the EBB/U2C are functioning well in my printer while the U2C still has that blue light 🤣 hopefully that's clear if not lmk
@@chrisvolkert6117 I believe for edit1 it was a question of restarting the printer (waiting a like 30s while shutdown), then repeat previous steps
Also if you have a revo be careful, DFU mode on a BTT CAN Board WILL destroy it. Do not leave the hotend connected to the board on this mode.
This is the v1.1 of the board where the DFU pullup is shared with the hotend, it doesnt affect the v1.0 and v.12 boards
Do you use a Revo?
Hello Michael, I am thinking of upgrading my Sapphire Plus 3D Printer with the new SKR3 EZ mainboard. I noticed it has CAN on the board. I also want to purchase along with the board the PAD 7 also from BIQU. Could I connect then the EBB Board directly to the mainboard? Since I wonßt use a rasberry I will use the PAD 7 controller. Thank you
Hello, I have a stupid question: if I control every stepper with an ebb42, do i still need an additional controller board? Seems to me like everything is controlled by the Raspberry directly and it would reduce cabling. Seeing the current prices for the ebb36/42 it might be even cheaper than the usual control board + stepper drivers (2 ebb42 including adxl345+2209: 25€).
Hi Michael, Thanx for the video and the link to metoyou. The step where, prior to flashing the EBB, disconnect the USB and connect the CAN is for me strange as it is not mentioned on the metoyou page. Also, no matter what I try, I get the same UIID for both EBB and U2C and flashing klipper to the EBB fails,... any pointers in the right direction would help,...
if the install process gets better, this would be a great solution. however given were already running 1 ethernet cable for the signal its not that much of a saving. you can run a lot off just a single ethernet cable already, thermistor(2), part cool fan(2), hotend fan(2), spare 2 wires as you wouldnt want to run the heater off ethernet wire. 5 more wires to bltouch (i think its possible to run 4 wires tho) and 4 more for the extruder. so thats 15 wires needs which we can do with 2 ethernet cables. and ofc the hotend run off its own supply. much cheaper and easier of a mod, can can custom make pcbs pretty easy as its just a breakout board.
If using a btt pi, you dont need the u2c as it has a canbus port, correct? Also how is the heater handled? Is it ran from the ebb42 or still from the mainboard?
Would love to see your take on the Biqu Hermit Crab Tool changer that supports Can Bus. You can run it completely through USB-C.
For clarity, the USB-C connection on the tool head of the Hermit Crab CAN isn't 'actually' USB-C is just using the connector as a convenient low profile multi pin connector. The interface is still CAN, just using pairs within the USB-C cable to do it.
I'm starting an upgrade with the hermit crab and my only major thought / need to work through is how much current the hot end takes vs how much a usb-c cable can actually provide within its own thermal limits.... there seems to be a mis-match between how much current the cable is rated for and how much a hot end would draw....
Wouldn't the X motor have found four wires in the LAN cable? Only two of eight cables are used there.
Now the servo motors and display remain on the old board. But all print head is controlled by CAN, except X motor.
So where does the heat sink go? I assume the TMC chip??
Hi,
did get 2 U2C 2.1 boards. Unfortunately I am not able to create a candleLight FW, not from the BTT instructions or following your instructions (after checking out into the STM32G0_support branch). As I not use the U2C with a Raspberry 4 (MKS-PI and 2. with an OrangePI Zero2) I did successfully flash CanBoot on it. I did send a email to BTT, but with the Chinese New Year now it will take possible weeks before I get an answer.
Good video, I have a BTT Octopus and know it has CAN bus on it. Could you do a video on that setup?
+1 for this - working on an SB2040 with an octopus pro and it has been monumentally challenging to find the documentation
I am an electrical engineer and work as software dev at a manufacturer of saddle stitchers. CAN was present as a field bus system in industrial automation a few years ago and sometimes even today. But I am happy that it is not that common anymore. We are using an ethernet based and way easier system instead. CAN can be really fiddely to work with and every time I deal with it on an old machine it rremindes me how little i like this technology. It's an interesting solution but I would never take the hassle on me and try this out xD I preffer the ribbon cable in this case...
Nice video though :)
You stated, "We are using an ethernet based and way easier system instead." Does that method have a name I can search on? I would love to know more about this. Thank you.
@@jimmypeters8524 EtherCat, Profinet, Serco 3, Profinet IRT, CC-Link
I'm building a custom IDEX printer and want to use CANBUS- do you know if it's possible to daisy chain one tool head to the other so I can control both using a single U2C board, or would I need a secondary serial device to control the second toolhead? I feel like i'm wandering into no-man's land here, since CANBUS is already pretty niche and IDEX puts me alone on an island lol
Thanks to your videos I have figured an Ebb42, and I can not be happier ... Now I want to go further and use the accelerometer that includes to adjust the Input Shaping in Klipper... Where can I find a guide to the steps I should follow?
Just wondering: would this also work on a manta M8p in combination with a CB1?
Should work fine. I am running a M8P + CM4 + Waveshare CAN hat on one of my printers.
I recently added almost this exact setup on my printer - one thing I'll note, is with the default Baud rate of 250k, I encountered a "connection timeout" issue when conducting a bed mesh - I upped the baud to 1,000,000 and it worked fine. Is there any benefit to going with 250k baud? If not, maybe it's better to recommend a 1,000,000 as a standard - although, I am unaware if the high baud has any drawbacks.
higher transfer rates are increasing the risk to receive corrupt data
@@Technikfreak72 Which would create another timeout? Or, just make it sluggish?
@@Technikfreak72 CAN transcivers are certified and designed to operate upto 1,000,000baud at distances upto 30 meters, if you are seeing corruption you are missing resistors to terminate the bus or are using untwisted / out of spec wires. (or a pi that can't handle the rate of converting packets from klipper > can and vice versa)
Would love to find one of these boards that supports two hotends. I'm just about to swap another printer over to dual extrusion and that would allow for some significantly simplified wiring. Haven't found a board capable of such things yet, but maybe one day.
CAN is daisy chain so you can loop out toolhead 1 to toolhead 2 just ensure you have power wires spec for the total amperage of both heads
True, although it would still be neat to have the capability within a single board.
Great video! I think anyone with a core-xy especially one with a flying gantry would have to seriously consider this mod.
Hmm... This could be an improvement on a lot of printers. I have a Creality Ender 3 S1, where there is already a compact direct drive assembly with a single cable. This could replace that somewhat stiff and relatively bulky band cable with an even lighter one. Time to investigate a little more I guess...
As a side note: I guess this is not very useful if you use the Creality Sonic Pad, because that uses closed source Klipper stuff (as far as I know), so that limits modification. But maybe there is a work-around for that. I have not put much investigation time into that, because the Sonic Pad is not that available yet in my country.
Nice video! One thing puzzles me. When you created the config for the canboot bootloader you decided to build the deployer.bin, but you didn't flash it, why? I have trouble to understand the documentation for this deployer. I don't understand the benefit of it as I am able to flash klipper without it. What does it deploy?
I have done all the possible mods on my stock ender 3 v2 main board and CAN was the last i have made. For me it was dissapinting that i could not use CAN on mainboard itself and i had to add SPI to CAN board to connect my EBB36. The main takeway from all the CAN is that CAN can have many nodes on it, so basically next video instructable should be how to run single CAN on Pi and connect Octopus and EBB (or few) on same CANbus. As i have bought Fysetc Spider for my future printer plans i have 5 driver spaces free and i plan to CAN mod my original creality 4.2.2 that uses single hardware USART for driving all 4 stepper drivers that are addressed and can be easily flashed via STM32programmer using BOOT0, to add 4 more steppers for future use via CAN.
Serial = P2P, CAN = multinode on single bus.
Is Teaching Tech up to it? Making instruction video for masses to use Single CANbus to rule all stepper drivers of multiple boards and more?
Thank you for the timeout debug!
CAN is much more widely used than you would think. I'm honestly surprised it's taken this long to get noticed by the 3D printing community. I dislike the klipper specific firmware. Would much rather see a CAN protocol standard for motors and print heads that could be used more openly regardless of the main controller software.
I'm about to wire up my ratrig vcore. Would it be worth looking into the canbus?
The CAN bus solution only makes sense if you are using it as a bus connecting several nodes. A CANbus with only one node is really a solution looking for a problem. So if you are building a robot arm with 6 joints, all with individual steppers and encoders, connecting all 6 nodes with just 4 wires makes sense and is worth the trouble. For 1 node, just use a multiwire cable with appropriate wire size for the stepper power, and another pair for the heater.
Just because you can CAN, it doesn't mean you should.
digital signalling such as an spi bus from an accelerometer for input shaping is very noise sensitive and tricky to get working reliably over anything but very short distances. CAN or another fieldbus like MODBUS is a far better solution.
@@m3chanist You don't need to run the accelerometer calibration often. So you can just put klipper on a RPi Pico connected to an AXL. Connect the Pico to the RPi and mount the sensor on the toolhead, then run the measurement. Disconnect everything, and you're golden.
Enjoyed your video, but I have the U2C 2.1 and EBB 36 V1.2. The U2C is working, but the EBB 36 V1.2 does not want to report an UUID.
@pascalcoeman8873 I have the same issue. Might have to go with mateyou's advanced set up or use the STM programmer.
I think CANbus could be the future, but why stop with four wires? What needs to happen is to take it to two wires -- power to the tool head -- and have the communication between th Pi and the bus board happen via Bluetooth!
What is the difference between the regular candlelight firmware and the BTT fork?
I got this thing to work with the regular firmware and wondering if there is anything extra in the BTT fork that I need to get it to work correctly.
Could the now unused Stepper driver on the main board now be used to run independent dual Z on a 4 driver board like skr mini e3?
I've heard that some of BTT's EBB boards have a bad habit of destroying thermistors.
When will you review the Creality Sonic pad?
I have a KP3S pro v2 i want to connect more peripherals to the CAN bus, how can i do it?
Hi, I am new to 3d printing and stuck between the 2 printers I want to buy. Which one do you recommend between the CR10s Pro v2 and The Ender 5 plus? I have a few more questions if you don't mind.
In an ideal world we would have a universal CAN-Bus PCB for all 3d Printers.
Advantages to using CAN-Bus: Reduced Weight, Friction, Hassle...
We then need to standardized connectors for Fans, Thermistor, RGB and Heater Cartridge...
Control boards cost would be considerably reduced as connectors contribute in large part to their costs.
It doesn't even have to be CAN-Bus, it could be as simple as USB, or even better... wireless (WiFi/Bluetooth)...
I genuinely can't understand why we run all these cables when we only require power and data to control everything.
Imagine a printer control board with only a few CAN-Bus connectors.
Hot-End Bus: Heater, Thermistor, Direct Drive Motor, Fans, RGB...
Motion Bus: Motors, End-Stops, Other Sensors...
Magic ;)
I have been thinking about this, could you use this kind of board to add independent Z stepper, or a second extruder to an x carriage. Seams like it would work, with hours of effort.
Is there a specific reason for not using the cheaper pi canhat?
My TFT is already a hat on top of my pi, so no go.
I have a question the main board like Btt octopus it doesn’t need any firmware change
This seems like WAY more trouble than it's worth and a great way to introduce lots of firmware related bugs into a working system.
Goddammit, i just finished painstakingly pinning out the ribbon cable for my cr10s pro to work with a btt octopus board and the original daughter board! Sods law i guess :'D
Great work as always TT, love the vids!
For me blue light is continously turned on even after unplugging and replugging the USB-C cable
please help me with solution
This seemed like a lot of work just to clean up a few wires, no? Am I missing something? I am in the process installing a BTT M4P and CB1 combo with the HDMI 5 screen on my CR-10 S5. This printer is in need of a wire tuck. Im just trying to clean up a few things.
I am converting my S5 to a StealthBurner so this seems like a good choice instead of 26 cables
It's valuable when you start making changes on the toolhead. On my V-Core I swapped out my Z probe, my cooling fan, added a filament sensor and I'm about to add LED lighting, all without touching the cable umbilical (which is just 24V and a USB cable). It's also great for IDEX or toolchanger setups to cut down on the sheer number of toolhead wires. On a single extruder printer that is "finished" I would say there's not a huge benefit, however it is pretty cool and works well in my experience.
I have a Bondtech DDX kit on mine already with a bltouch. Going to swap the stock filament detector for the btt unit.
Great video! I tried CANable + BTT method here for the U2C v2.1, I still can't get UUID. Blue light was on when usb cable is plugged in with Boot button pressed, now blue light is always on. Are there other ways to fix the problem? Should I return this faulty card? Thanks
if you find out anything, please update - have the same issue
@@chrisvolkert6117
BTT / BIQU Support response is below, you may want to try. It didn't work for me, Pi detects U2C normal and DFU modes but I can't get CAN comm to work. Waiting for a new U2C to arrive.
"you can send the lsusb command to see if there is a USB device for U2C.
Or press and hold the boot button, unplug and plug the USB cable of u2c, and then check whether there are stm32 dfu devices in lsusb
2. If there is a U2C device, send sudo ifdown can0 first, and then send sudo ifup can0 to restart the can0 device, and then send ifconfig to check whether the can0 device starts normally.
3. If there is a can0 device in ifconfig, the command of klipper to query canbus id can be executed normally
No USB device tries to refresh the firmware again, the module is completely powered off, press and hold the Boot button, insert the Type-C data cable to power the module, enter the DFU mode, and use STM32CubeProgrammer software to update the firmware again
Use candlelight firmware
github.com/candle-usb/candleLight_fw"
My BTT U2C v2.1 board from Biqu was faulty + getting a replacement. I bought the same board from a local reseller. Follow this video and it works first time
Wow that’s cool. Wait a minute! 4 wires what about 2? Telephone uses 2😊. BTT please make a module and a adaptor for your BTT mainboard to make the print head LESSwires using WiFi. Klipper software people maybe control the head thru WiFi. I m new to electronics, Anyone out there doing this please share. Let’s have more ideas to 3D printing. Thanks for sharing.
12:18 The EBB is three times faster than the mainboard itself :D
Next Upgrade: replace the two CAN signal cables by a WIFI connector
While the CAN bus idea definitly technically intruiging, I am currently struggling to see the real benefits unless you're constantly swapping out your printheads
on a multi-tool switching printhead, the EBB would be nice since you only need 4 contacts between the adapter plate and the tool
Then, each tool would also have a different CAN ID, not sure if that could be used for tool-specific settings.
I'm switching now to canbus because I'm tempted by running 4 cables to the printhead instead of 14. I will get accelerometer permanently attached to the printerhead (which would add another 6 wires if mounted permanently) and I'll add bed levelling proble (another 3 wires). It will reduce weight that my carriage has to drag around, it should reduce noise on the PT1000 lines, it will offload mainboard and let me run other steppers at higher stepping rates if needed. Also if anything gets damaged or upgraded on the printhead, I will no longer need to route wires completely through all the dragchains.
However these advantages are only when mounted on the printhead itself. I don't see any reason to change to CAN if the EBB board is going to be mounted in a stationary place.
Anyone know which Molex connector is on the EBB42? BTT docs don’t specify if it’s a Minifit or a Microfit, nor the pitch.
Canbus. Two tin cans joined by string used on public transport to communicate. Can. Bus.
A modification of a RatRig Core V3 with CAN interface would be nice (with BTT Octopus).
It seems convoluted, and expensive, to use a USB to CAN bridge here.
Some of us using PiZero2's as the Klipper host may not even have an extra USB port to spare.
Is there a problem with simply using a MCP2515 on the fruit-pi's SPI bus? Seems that this would be less expensive, and more direct. I know from experience, the SPI bus easily goes 1Mbps.
Perhaps someone here can help me: Are we dealing with a 3.3V, or 5V CAN bus on that print head board? Gawd I hope it is 3.3V.
That's exactly what I'm using to talk to a pair of EBB42's on my IDEX printer. Check out the Waveshare CAN hat.
@@keegan854 That is a slick piece of kit.
Could you become interested in a CNC project? I want to CNC ny Bridgeport mill. I'd like to use MakerBase NEMA23 stepper/servo motors. Those motors are typically used on 3D printers. I'd like to use something like GRBL CNC control but the software hurdles are to high for me. Im more PCB design / hardware oriented.
I hope one day BTT creates a board with usb-pd port which will allow a single cable to run to the tool head. Usb-pd revision 3.1 claims 240w power delivery which should be plenty.
That is exactly what I was thinking, but even the current 100w would be enough.
@@eslmatt811 I wonder how much voltage usb c 3.1 could carry?
@@gregdittrich1206Plain USB C 3.1 (which is not PD v3.1, the number just happens to be the same) can deliver 15 watts at up to 3A, so that's 5V.
Oh man, yeah, while this seems like a headache to set up at the moment, as it seems like early stages of adoption and standardization, I think it's absolutely needed to modernize these devices, and ultimately makes cable management much cleaner and easier, and should make everything more reliable and less susceptible to interference.
Characteristic impedance is a property of the cable, the terminator at the end should match it, not be a substitution. Ethernet twisted pair is around 100-ohms impedance, so close enough.
More generally, I think that just telling people to blindly cut-and-paste random lines of text from one place to another isn't an effective way for people to learn, and this is going to be more of a direct issue when something goes wrong. They've performed all these actions, like some magic trick incantation and when it goes wrong they're not as prepared to thoughtfully debug stuff. Then they are left to do searches on the Internet or to start randomly trying stuff (just likely they blindly copy and pasted their way into this mess) in an attempt to make it work.
It's be great if along the way there was an explanation as to what those shell commands actually DID so a picture of the overall process would become more clear. Sure, this would make a longer video even longer and might not be appropriate in every (or most) cases. But it's a great opportunity to teach by example and learn while doing. It's not like this specific video is particularly bad in this regard, it's just a trend that I see (like the old "pipe this curl into your super-user shell and hope that you trust the random Internet person to not send you commands that erase your disk" instructions that you see everywhere..)
Thanks for the doing this video; I hope to maybe do this conversion to my Voron 2.4. However, it's working just fine for the moment, so I'll likely wait until some natural opportunity comes up to fix what's not currently broken.
Just something I noticed, the impedance across the Can hi/low should be 60 ohms achieved by using a 120 ohm resistor at each end. I assume that the board at the raspberry pi already had the resistor built in and that's why it wasn't needed (but obviously that would change if you were using a different board).
Also using an ethernet cable for the twisted pair is a great hack but all the extra unused cables just doesn't sit right with me. I don't know how important the specific twist rate is but perhaps there are better solutions (in my experience working with Can on a daily basis you can get away without a twist unless you are working in a very electrically noisy environment or you are pushing the speed limits of the Can protocol but then you would be better of just using CanFD).
the metoyou githud don't have the instruction folder and docs anymore😶🌫
Most ethernet cables are solid copper wire which is not suitable for movement. Copper work hardens which means in this case means it will get more and more brittle the more movement it does. Use 18awg stranded wire instead. Stranded wire is much more risistant to work hardening.
I'm using 18 awg fine stranded silicone-insulated wire, not twisted or impedance matched in any way, and it's working fine (at least at 250 kbps) since the cable runs are short. The Gucci option would be something like igus chainflex -- they have a zillion varieties with different combinations of thick conductors for power and twisted pairs for signal.
Most ethernet patch cables are not, they are stranded and available in any length you want.
Okay. I'm about to chuck this whole thing into the garbage because I can't get it to work. I have tried several time with no luck. I am to the point where I am trying to flash klipper on the EBB36. I have connected the U2C and EBB (do the cables go H -> H, L->L or H->L or L->H? I have tried it both ways), but always get an error when trying to get the CAN uuid. I have gone through the process of downloading and flashing many times. No luck. Is there a step missing? I did flash CanBoot on the U2C and got a CAN uuid for it, but couldn't get one for the EBB36.
HELP!
Got it working. Downloaded the bin file from github and used STM32 Cube Programmer to flash it. Started working right away.
What duct are you using on the CR10 and are the files publicly available for it?
It's an older version of the Hero Me. I have a few videos on this.
Thank you for the fast reply. I had already searched the last year of your video releases, but couldn't find any match. I like how slim the fan duct is. I currently use a Blokhead duct, but it is huge, so your video piqued my interest when I saw the slim fan setup.@@TeachingTech
Hello! Help me please, I've been struggling with installing canbus for 2 days now. I have orange pi 5(Distributor ID: Debian
Description: Armbian 24.2.1), bought an ebb36 board and a U2C module. At the very beginning, when creating the can0 file, it gave the error /etc/network/interfaces.d/can0 directory does not exist. I manually created the interfaces.d folder and the can0 file. With all further manipulations, I encountered the same problem: I did not see the device via can0. when I scanned the ip addr networks, I discovered that there was no can0 network. Maybe someone has encountered this problem. Thanks in advance!
I don't see the use case for this when you're removing a working cable, and it doesn't seem to add any features.
Why not just use usb protocol? We already run klipper with usb, you can connect EBB42 with usb and run it that way. Also flashing is easier
I can imagine that, depending on your heater, it could be too much wattage for usb.
@@Nikitaman Usb is not used for power but protocol. You still need 24v ang GND for power
@@multifrag Oh, i thought you also mean usb cable.
depends on various things, USB for real time communication is kinda $hit, CAN is more robust and reliable, also its has to do with how the protocols are setup, USB generally being a master-slave protocol, CAN almost always being a multi master protocol, TLDR CAN is more reliable and robust for such applications.
@@pvim So all the klipper machines running on usb communication are "$hit"? You have a raspberry pi controlling mainboard in realtime through usb what's more to say
Thanks!
hey whats the music used in this video?
is the only advantage of this solution the reduction of the number of wires? honestly, I would rather run a well-made harness in a classic way and avoid any possible tinkering in the future. In my opinion, this is a triumph of style over substance