What's new
VORON Design

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

Introducing: USBBUS

This is not the auto industry. This is a computer / technical hobby and the USB standard is ubiquitous and not going anywhere any time soon. There is way more to this than just being a few bucks cheaper and very often cheaper circles back to bite the buyer in the butt and ends up costing more than just money - lost time, frustration and wasted materials come to mind.

I usually recommend buying well designed and built quality gear over price and I don't think I'm alone, If I was there would be no LDO. Keep up the predictions, it is always entertaining to see what happens IRL and the marketplace.
Your uninformed if you think the 3D printer is much different than a car.
I would prefer my computer/technical hobby be technically sound with a huge industrial backing.
A car has at least one ECU that runs the car and connects to all of its noisy sensors and controllers via a single CAN bus. Expanded easily with additional optional modules that connect to the CAN bus.
CAn has high priority devices and lower ones. Same for a 3D printer.
USB can not connect to anything but one module.

If you think Beacon or Nitehawk is going to be give you better products or service than Mellow/BTT you are being naive.
Thousands of people help other users around the world on Discord or Reddit before Beacon or Nitehawk even reply to your email to ask what is your order number because of their huge volumes.
 
Your uninformed if you think the 3D printer is much different than a car.
I would prefer my computer/technical hobby be technically sound with a huge industrial backing.
A car has at least one ECU that runs the car and connects to all of its noisy sensors and controllers via a single CAN bus. Expanded easily with additional optional modules that connect to the CAN bus.
CAn has high priority devices and lower ones. Same for a 3D printer.
USB can not connect to anything but one module.

If you think Beacon or Nitehawk is going to be give you better products or service than Mellow/BTT you are being naive.
Thousands of people help other users around the world on Discord or Reddit before Beacon or Nitehawk even reply to your email to ask what is your order number because of their huge volumes.

I'm very familiar with cars and their electronic systems. One of my hobby cars is a nearly 20 year old E61 BMW which has multiple FO CAN buses because BMW discovered that a single CAN bus is too slow to reliably do everything in real time. BMW even used FO for control of the high-end digital audio system remote amps, DSP and audio signal transmission. I guess it seemed like a good idea at the time and when it is all working it is impressive. So unfortunately I have plenty of experience coding the modules and working with FO.

There is nothing inherently better about the physical CAN bus topology or USB's tiered star topology. They can both be configured similarly in terms of connections. How it works IRL is dependent on the application and implementation. As far as signal reliability CAN bus should be more tolerant but it's not like a hobby printer presents as a noisy environment compared to a car or industrial application.

As a 50 year car guy, veteran mini and micro computer guy from the 70s I assure you cars are nothing like hobby 3D printers. By comparison 3D printers are toys mechanically and electronically. But you can certainly hold the opposite opinion.
 
Your uninformed if you think the 3D printer is much different than a car.
I would prefer my computer/technical hobby be technically sound with a huge industrial backing.
A car has at least one ECU that runs the car and connects to all of its noisy sensors and controllers via a single CAN bus. Expanded easily with additional optional modules that connect to the CAN bus.
CAn has high priority devices and lower ones. Same for a 3D printer.
USB can not connect to anything but one module.

If you think Beacon or Nitehawk is going to be give you better products or service than Mellow/BTT you are being naive.
Thousands of people help other users around the world on Discord or Reddit before Beacon or Nitehawk even reply to your email to ask what is your order number because of their huge volumes.
I think it's rude to call someone "uninformed" when they actually have a lot of knowledge about CAN.
Beacon gives great support and so does LDO. Just because someone responds on Discord or Reddit does not mean you have the correct information and it's good practice to sort though the information to get data needed.

@YAOG I to play with CAN on my E92 BMW. I too can read out the CAN system on it since my car is heavily modified.
 
I think it's rude to call someone "uninformed" when they actually have a lot of knowledge about CAN.
Beacon gives great support and so does LDO. Just because someone responds on Discord or Reddit does not mean you have the correct information and it's good practice to sort though the information to get data needed.

@YAOG I to play with CAN on my E92 BMW. I too can read out the CAN system on it since my car is heavily modified.

Rudeness, I appreciate your recognition of it and calling it out. Thank you.

I loved my older E36 M3 for its absolute simplicity relative to the E61 generation technology spaceship. I liked the long roof format practically so much I bought a facelift MB W212/3 estate - also AWD like the 5'er was. Nothing like a high volume car that can swallow up all my hobbies, hauls me, some company and all the gear with comfort, speed and grace. Not sure why America stopped buying wagons. Give me a good car over even an amazing SUV any day.

I think LDO and Beacon will remain in business a little longer. There is room in the printer market for good support (from all sources) and new products. This hobby is like a development class of auto racing, innovation is simply a requirement of the field think F1 rather than than NASCAR. Development and innovation are a large part of the attraction for many of us I imagine.

Sorry for the wander...
 
I'm very familiar with cars and their electronic systems. One of my hobby cars is a nearly 20 year old E61 BMW which has multiple FO CAN buses because BMW discovered that a single CAN bus is too slow to reliably do everything in real time. BMW even used FO for control of the high-end digital audio system remote amps, DSP and audio signal transmission. I guess it seemed like a good idea at the time and when it is all working it is impressive. So unfortunately I have plenty of experience coding the modules and working with FO.

There is nothing inherently better about the physical CAN bus topology or USB's tiered star topology. They can both be configured similarly in terms of connections. How it works IRL is dependent on the application and implementation. As far as signal reliability CAN bus should be more tolerant but it's not like a hobby printer presents as a noisy environment compared to a car or industrial application.

As a 50 year car guy, veteran mini and micro computer guy from the 70s I assure you cars are nothing like hobby 3D printers. By comparison 3D printers are toys mechanically and electronically. But you can certainly hold the opposite opinion.
My experience is similar but on American cars and extensive 3D printer/firmware. I appreciate your acknowledge the right to different opinions. I did not consider "uninformed" as rude but will consider that on any new comments.
 
My experience is similar but on American cars and extensive 3D printer/firmware. I appreciate your acknowledge the right to different opinions. I did not consider "uninformed" as rude but will consider that on any new comments.

I admit to being uninformed about a lot of stuff just ask my kids. Maybe rude was too strong a word choice but it felt that way. But we're all good here in the aither either way. 8^)
 
Not sure why America stopped buying wagons. Give me a good car over even an amazing SUV any day.
This. Back when I bought the Fusion I lamented to the dealer why Europe got the Mondeo wagon and we didn't get the same here, and that if it were offered that's what I'd be buying. Nothing but a couple of luxury wagons or the sea of SUVs. Bleh.
 
My experience is similar but on American cars and extensive 3D printer/firmware. I appreciate your acknowledge the right to different opinions. I did not consider "uninformed" as rude but will consider that on any new comments.
No worries, I just want to make sure the conversation stays civil and sounds like we all have thick skin in this thread. I can tell YAOG does by working on German cars and having kids, lol.

@Maddog I think you may have saved yourself a headache by working on American vs German.
 
No worries, I just want to make sure the conversation stays civil and sounds like we all have thick skin in this thread. I can tell YAOG does by working on German cars and having kids, lol.

@Maddog I think you may have saved yourself a headache by working on American vs German.

I started with American cars as a kid. When I started driving in the '70s I bought an old '66 Mustang V8 fastback. But it scared the poop out of me because it had such bad brakes and handled so badly. After brake mods - larger master cylinder, discs in front and larger rear drums, suspension mods - relocated front control arms, shorter stiffer springs, re-arced rear springs and an extra leaf, adding control arms to locate the live axel amd prevent spring windup, solid bushings etc - that were commonly done to race them on a road course I still didn't like the way they handled compared to my friend with a BMW 2002ti.

Bought a Mercury Capri and did some simple upgrades and it was a world of difference. Mostly drove German cars since. Well except for the '96 Dodge Caravan XL I had for 20 years during the little kid period LOL. That ended with the new 2005 Mustang GT which while fun was still not a good handling car sigh...
 
I dunno, my lightly modded 2013 Mustang GT holds its own at track days. Simple to work on (thanks Ford for thinking of enthusiasts when engineering the car). On another project I found that the Windsor engine platform is kind of like adult Legos; so many mix-and-match options.
 
Currently CAN is thoroughly abused by the 3D printer community. It is a horrible hack that works.

Please when using USB do not repeat this.

One suggestion is to PLEASE use USB-C and follow the specs with regards to power. USB-C charger cables can send up to about 200 Watts, this is way more than needed for a print head. The worst thing you can do is allow under-rated cables and simply "hack" the power lines with hard-wired connection to the power supply. Just do it right, even if this means reading a whole bunch and writing some software.

What is "right"? the print head negotiates the power requirements with whatever it is connected to and waits to hear if the request can be filled. This is very flexible and is the reason you can power an LCD monit or an external disk drive with USB-C. I can just hear the complaints, "That is too hard and I don't understand it." Education can solve that. Let's not repeat the CAN bus mistake.
 
Currently CAN is thoroughly abused by the 3D printer community. It is a horrible hack that works.

Please when using USB do not repeat this.

One suggestion is to PLEASE use USB-C and follow the specs with regards to power. USB-C charger cables can send up to about 200 Watts, this is way more than needed for a print head. The worst thing you can do is allow under-rated cables and simply "hack" the power lines with hard-wired connection to the power supply. Just do it right, even if this means reading a whole bunch and writing some software.

What is "right"? the print head negotiates the power requirements with whatever it is connected to and waits to hear if the request can be filled. This is very flexible and is the reason you can power an LCD monit or an external disk drive with USB-C. I can just hear the complaints, "That is too hard and I don't understand it." Education can solve that. Let's not repeat the CAN bus mistake.
Chris, You are right they should have been more "consistent" with standards that can be used to exploit their existence.
Unfortunately as I pointed out already, 2 vendors have already added USB to their CAN offerings and they have simply connected the power to the main VCC supply and used the typical CAN connector on the other.
So they are just using the D+ and D- for data and without great shielding its probably limited to 12MHz. Better than CAN but far from the 480MHz and 1Ghz capability being thrown about.
 
Currently CAN is thoroughly abused by the 3D printer community. It is a horrible hack that works.
Please elaborate such strong claims. IMO it's the other way around.

CAN is a very simple protocol and suitable for real-time tasks. It can be used with many different connectors and cables. USB on the other hand is very complex and has strict requirements on connectors and cables. It's not very good at realtime applications.

Now, the main problem with Klipper is that its USB and CAN implementations are both lacking.
The current USB implementation uses bulk transfer and expects real-time guarantees during multi-mcu homing. Most of the time it works, but that's not good enough. In my 3D printing journey, Klipper is the only motion controller making me worry about spurious errors like "Timer too close" making the print abort midway. This is unacceptable. At the very minimum Klipper should use USB with isochronous transfer to have some realtime guarantees. But this will likely never happen as it's a lot of work and requires a custom kernel driver.

The Klipper CAN implementations is also lacking because it does not support CAN-FD. At max 1M frequency the available bandwidth is too limited and there is a lot of overhead due to the max 8-byte payload size. When Klipper wants to send a 64-byte message on the CAN bus, it needs to split it in 64/8=8 CAN frames. Every CAN frame has a minimum overhead of 47 bits. So the original 64-byte message will be transmitted with 8x (47+64) bits frames on the CAN bus. This is nearly a 100% overhead.
With CAN-FD, frames can contain up to 64 bytes. No need to split them anymore. And the bitrate can reach 8 Mbps. I'm currently working on adding CAN-FD support to Klipper.

---

USB-PD on the toolhead is a terrible idea. It's so complex and quirky that many devices on the market have compatibility issues. Also it can only provide 20V max so you need another bulky step-up converter for your 24V heater.
 
I'd say that's spot-on why the expansion is important. If we could envision it today, we would have provisioned for it yesterday. It's the stuff that is *new* for tomorrow that requires the expansion flexibility.

As an example, consider the ADXL345. They were I2C or SPI-connected devices with dedicated wiring and breakout boards on the Pi when they came out. Then some designers stepped it up and they became USB-C for easier connectivity. Now they are integrated directly onto the toolhead boards, with no special mounting, nothing to do on the Pi, and no special or extra wiring. That's the development lifecycle - prototype, refine, incorporate. Having USB expansion at the toolhead gives the perfect connectivity for rapid prototyping of all kinds of novel ideas - the good ones of which can then be incorporated directly if they prove beneficial. 👍
I for one, I would like to see the expansion idea work as I have a Dual extruder printer and would really like to use a board on each of them.
 
Please elaborate such strong claims. IMO it's the other way around.

CAN is a very simple protocol and suitable for real-time tasks. It can be used with many different connectors and cables. USB on the other hand is very complex and has strict requirements on connectors and cables. It's not very good at realtime applications.

Now, the main problem with Klipper is that its USB and CAN implementations are both lacking.
The current USB implementation uses bulk transfer and expects real-time guarantees during multi-mcu homing. Most of the time it works, but that's not good enough. In my 3D printing journey, Klipper is the only motion controller making me worry about spurious errors like "Timer too close" making the print abort midway. This is unacceptable. At the very minimum Klipper should use USB with isochronous transfer to have some realtime guarantees. But this will likely never happen as it's a lot of work and requires a custom kernel driver.

The Klipper CAN implementations is also lacking because it does not support CAN-FD. At max 1M frequency the available bandwidth is too limited and there is a lot of overhead due to the max 8-byte payload size. When Klipper wants to send a 64-byte message on the CAN bus, it needs to split it in 64/8=8 CAN frames. Every CAN frame has a minimum overhead of 47 bits. So the original 64-byte message will be transmitted with 8x (47+64) bits frames on the CAN bus. This is nearly a 100% overhead.
With CAN-FD, frames can contain up to 64 bytes. No need to split them anymore. And the bitrate can reach 8 Mbps. I'm currently working on adding CAN-FD support to Klipper.

---

USB-PD on the toolhead is a terrible idea. It's so complex and quirky that many devices on the market have compatibility issues. Also it can only provide 20V max so you need another bulky step-up converter for your 24V heater.
CAN-FD would no doubt be a good update to Klipper. Unfortunately the chip (MCP2518FDT) used for CAN on these RP2040 toolhead boards maxs out at 1MHz. Good luck with getting the CAN squared away. It could be good for multiple extruders,
 
Unfortunately the chip (MCP2518FDT) used for CAN on these RP2040 toolhead boards maxs out at 1MHz. Good luck with getting the CAN squared away.
The fix is quite simple: don't use RP2040 :) There are enough proper MCUs out there with CANFD support. Also using a chip rated to max 85°C on the toolhead is a bad idea.

In the meantime I got Klipper working on CANFD @ 4 Mbps.
Doing a TEST_RESONANCES the max bus load was around 15% (vs 80% with CAN classic).
 
The fix is quite simple: don't use RP2040 :) There are enough proper MCUs out there with CANFD support. Also using a chip rated to max 85°C on the toolhead is a bad idea.

In the meantime I got Klipper working on CANFD @ 4 Mbps.
Doing a TEST_RESONANCES the max bus load was around 15% (vs 80% with CAN classic).
What board works in a Voron Stealthburner, has > 1MHz CAN-FD, has a CPU rated > 85c and has klipper CAN-FD support?
 
- All STM32 mcus are rated up to 85°C ambient (there are also parts going up to 125°C). The RP2040 is rated up to 85°C package temp.
- STM32 G0/G4/H7 have CAN-FD support.
- Only my (unpublished) Klipper fork has CAN-FD support currently.

I'm currently using a SB2240 with my Klipper fork.
 
Last edited:
Top