UART has some nice features for people who are into tinkering, like dynamically switching from spreadcycle and stealthchop2 modes. But I think what most people will use, if they do, is being able to change the driver Vref in the firmware and not by turning the potentiometer.
Very good explanation on the two technologies, and explaining the application and advantages. (or total lack thereof) between the two. Thanks for the video!
Excellent video; thanks for making and posting. I was interested in how SPI works, but the first few videos I looked at that claimed to be about connecting a CPU (Arduino, ESP32, Pi, Teensy, etc) to a TMC5160 stepper driver had "SPI" in their title, but skipped actually describing how to hook it up. Thanks for the detailed description!
Fun fact: GTR board, when taken with an expansion board and filled with UART TMC2209 drivers - costs almost as much as a Duet 2 + Duex5 clones from the same Bigtreetech. It has more inputs and outputs, if you plan to use Klipper - it's a pretty good system, could be worth it, maybe for something like a Voron or other printer with lots and lots of motors. If you do like Reprap firmware, and don't mind its restrictions and lower speeds - you can get a Duet clone. Either way - Bigtreetech has got you covered. I like what they're doing. Affordable prices, true open-source on github... I wish Bigtreetech made their own Pi board! You know, to order alongside the other boards, for octoprint and other similar things.
Do keep in mind that, if you want to use UART for your stepper drivers, the microcontroller will probably not have that many UARTS supported in hardware, and a software implementation must be used (which will probably be slower/require more resources/be less reliable), whereas with SPI, you only need one SPI bus on your microcontroller (of which there may be more than one)
That's a really good point and one which i hadn't considered. Do you know if the software implementation would be slow enough to cause issues? Or do you know that they're not already using a software implementation?
@@Vector3DP There are SoftwareSerial implementations included in the Marlin source code. I don't know if it'll cause issues. It might be a theoretical problem only.
I don't think it actually matters, most drivers use step/dir for controlling the motors, and only use one of the serial interfaces for configuration, which won't happen that often and has no critical timing. Those that can use a serial interface for controlling the motors, use the SPI bus.
Missed one thing on UART, there is one wire mode and two wire mode. One wire mode sends then waits for a response on that same wire, two wire mode is what you showed in your video. On the SKR’s, Pro, GTR, & M5 all use one wire mode. ua-cam.com/video/alPl3kzp_oE/v-deo.html
Is there a way to add ethernet to octopus board instead of wi-fi? Probably a ethernet breakout board with UART or SPI interface. Looking to connect my RPi remote server to 3d printer.
awesome. thanks for this video. I was wondering, if you could make a video focussing about the Wifi function of this board. What it can do and so :) would be interested.
What bother me about this video is why you did not explain the fact that UART is hardware implementation and SPI is a protocol which means UART is more expense and real estate taken on the board. While at the speed at which communication is need on a 3 D printer both SPI and UART are on level playing ground as neither is better than the other. Since SPI is a protocol it is much easier to implement and is cheaper in the long run as less space on the board and less hardware which means cheaper for the MFG's which means more profit. Actually moving to SPI on the 5160 was not only profit motivated but the driver real estate can be much smaller footprint allowing them to up the anti on the half bridges used for control which means better quality at the same time. Another thing is it took you half a video to get to the point of this vid in the first place which was lack luster. Next time do better homework and your vid's will be much better.
I wonder if there's one the tmc2209 and SKR2 prefer... cuz they'll take either depending on your jumpers. Ah wait, my bad, the 2209 are UART. Maybe it was the 2208 that was spi... Hell...this dang thing can take step/dir too if I wanna use my big CNC stepper drivers... lol
Almost a good video, but you very much ignored the software difference between the two. Specifically the added features you get with Marlin when you use UART as the communication type on steppers that support it. Added features like being able to specify the current, turn on/off the various modes and set thresholds for modes. This is a lot more than you can currently do with the SPI connection in Marlin.
Sorry Adam, not wanting to troll, but you mention parallel vs serial, which neither UART or SPI is, and your SPI diagram is a bit out, surely MOSI goes to MISO, you basically setup a chain then use CS to reference them..? I'm probably just jealous as I want one of those boards to give S.T.E.V.E. 3 Z axis steppers.. ;-)
Don't mention one vs the other, just a diagram of both to show what the 'serial' part of serial communication means in winder context. Mosi goes to Mosi. That's why they're named like that, to prevent confusion like you get with UART where you wire up to diffently named ports. Master is the main chip, slaves are the stepper drivers. Output of the master connects to input of the slave, hence Mosi.
@@Vector3DP Fair enough, just seemed a bit random, I always thought MOSI (Master Out Slave In) goes to MISO (Master In Slave Out), maybe that's why I prefer I2C.. :)
@@Vector3DP Actually, Stephen is correct. MOSI/MISO is used AFAIK exclusively on MCUs, because these are assumed to be the master. Devices other that MCUs usually use SDO/SDA and are connected MISO-SDO and MOSI-SDA. But when two MCUs are communicating, then the master "status" alternates and the one sending is a master but when it receives, it is a slave. That is why MOSI goes to MISO.
Me: I don't understand the difference Vector3D: this is how to understand the difference My brain: no, I don't think I will Really nice video guide, I will rewatch this in a little bit after I figure out the wiring for TMC2130 to RAMPS to fix some cetus printers.
To confuse matters even more, it's often possible to select between UART and USB when setting up Klipper. USB is easier to set up as far as the average person is concerned, but UART might be a few nanoseconds faster because most 3D printer controller boards these days use a UART to USB chip. In fact, when sending G-code from a computer connected to a printer via USB, the computer doesn't actually know it's talking to a 3D printer. It only sees a USB to UART adapter (which is why the printer appears as a serial port in Windows Device Manager or the equivalent). That's probably not going to change any time soon, especially with all of the existing software and hardware out there.
machines controlled externally also use uart. uart can only run at 115kbps. UART is a serial port its outdated it shouldn't be used. Gcode sent over uart is how PC/kipper machines work and it can cause bottle necks at on high poly meshes due to uart mode being way slower than usb itself. they are still like this ! Look for better options than uart!
That second head growing beside your nose looks PAINFUL homie, tea tree oil is your friend (soak a cotton ball and press and hold it on for a while, you can even hold it there long term with a band-aid if necessary. Do this when you wake up and then before bed and it should be gone in 2 days tops!)
No real info Both work both are ok.. No Ibofo on feature like linear advance " hi use either one" but you watched my video for better features with ZERO features listed !!
Both options are wasteful in terms of control pin consumption. But if you use I2C to SPI converters (NXP, MAX..), things don't get so bad. Only the performance of the low-pins number microcontroller/its SPI software-hardware bus will remain a bottleneck. With UART - same thing: NXP present ICs even with FIFO. then, only 2 pins needed for all devices and by one - for backing interrupts, of outcoming data transfer. I hope no one will have any difficulties - with software adaptation ;)
4:56 You're all welcome...
he still doesn't even get to it until 5:40!
@@andrewcichetti555 But really it isn't until 6:00!!
UART has some nice features for people who are into tinkering, like dynamically switching from spreadcycle and stealthchop2 modes. But I think what most people will use, if they do, is being able to change the driver Vref in the firmware and not by turning the potentiometer.
Very good explanation on the two technologies, and explaining the application and advantages. (or total lack thereof) between the two. Thanks for the video!
Excellent video; thanks for making and posting. I was interested in how SPI works, but the first few videos I looked at that claimed to be about connecting a CPU (Arduino, ESP32, Pi, Teensy, etc) to a TMC5160 stepper driver had "SPI" in their title, but skipped actually describing how to hook it up. Thanks for the detailed description!
At 4:28 seconds I found myself asking out loud, what the hell does any of this have to do with SPI or UART.
EXACTLY my thought, it took half a vid to get to the point and my explanation in my comment was way better lol
My friend, this is what I wanted to know but did not bother to search for. Subscribed for this video.
Fun fact: GTR board, when taken with an expansion board and filled with UART TMC2209 drivers - costs almost as much as a Duet 2 + Duex5 clones from the same Bigtreetech. It has more inputs and outputs, if you plan to use Klipper - it's a pretty good system, could be worth it, maybe for something like a Voron or other printer with lots and lots of motors.
If you do like Reprap firmware, and don't mind its restrictions and lower speeds - you can get a Duet clone.
Either way - Bigtreetech has got you covered. I like what they're doing. Affordable prices, true open-source on github...
I wish Bigtreetech made their own Pi board! You know, to order alongside the other boards, for octoprint and other similar things.
Id like something similar to the einsy rambo as used on prusa mk3 with a location to gpio hook up a pi "natively"
Having not watched this video throughout haha i meant on more "normal" boards skr etc
@@gazeddy Pi GPIO header is waaay too large, SKR boards are already full of components, there's no space on them.
@@machinerin151 You don't need to hook up all the GPIO pins to the board, just the ones required for communication.
Ur wish is just happend and now its on my hands too😃 Manta + CB1💝
Thank you so much for sharing this info - in fact, these were confusing to me as well.
remember on my embedded systems class learning about UART, i have now forgotten almost everything lol.
Do keep in mind that, if you want to use UART for your stepper drivers, the microcontroller will probably not have that many UARTS supported in hardware, and a software implementation must be used (which will probably be slower/require more resources/be less reliable), whereas with SPI, you only need one SPI bus on your microcontroller (of which there may be more than one)
That's a really good point and one which i hadn't considered. Do you know if the software implementation would be slow enough to cause issues? Or do you know that they're not already using a software implementation?
@@Vector3DP There are SoftwareSerial implementations included in the Marlin source code. I don't know if it'll cause issues. It might be a theoretical problem only.
I don't think it actually matters, most drivers use step/dir for controlling the motors, and only use one of the serial interfaces for configuration, which won't happen that often and has no critical timing. Those that can use a serial interface for controlling the motors, use the SPI bus.
Missed one thing on UART, there is one wire mode and two wire mode. One wire mode sends then waits for a response on that same wire, two wire mode is what you showed in your video. On the SKR’s, Pro, GTR, & M5 all use one wire mode. ua-cam.com/video/alPl3kzp_oE/v-deo.html
There can be up to four wires if you add in hardware flow control with the RTS/CTS lines.
He did not miss one thing he missed a lot of things.
this came just in time, im about to upgrade my printer's board and drivers, and i really confused about spi/uart
ramble ramble ramble/ Loves the sound of his own voice.
AFAIK boards like SKR 1.4 use only one pin for RX and TX with TMC drivers in UART mode.
hey buddy thanks for making the video yes it did help.
Great update
Thanks for sharing👍😀
The red headers are nice contrasting.
Ótimo vídeo, usei as legendas. Deu pra entender certinho. Obrigado.
Thank you great explanation
The UART mode is not supported on SKR 1.2 PRO board?
Thanks so much! now i understand the different!
so does uart set microstepping or do i need use step/dir mode to get microstepping?
Hi can you make a video how to setup this board for it to compile propely with no error thx.
Thanks good work😊
Is there a way to add ethernet to octopus board instead of wi-fi? Probably a ethernet breakout board with UART or SPI interface. Looking to connect my RPi remote server to 3d printer.
awesome. thanks for this video. I was wondering, if you could make a video focussing about the Wifi function of this board. What it can do and so :) would be interested.
What bother me about this video is why you did not explain the fact that UART is hardware implementation and SPI is a protocol which means UART is more expense and real estate taken on the board. While at the speed at which communication is need on a 3 D printer both SPI and UART are on level playing ground as neither is better than the other. Since SPI is a protocol it is much easier to implement and is cheaper in the long run as less space on the board and less hardware which means cheaper for the MFG's which means more profit. Actually moving to SPI on the 5160 was not only profit motivated but the driver real estate can be much smaller footprint allowing them to up the anti on the half bridges used for control which means better quality at the same time. Another thing is it took you half a video to get to the point of this vid in the first place which was lack luster. Next time do better homework and your vid's will be much better.
amazing video
SPI is a bus technology. UART is serial point-to-point
I wonder if there's one the tmc2209 and SKR2 prefer... cuz they'll take either depending on your jumpers. Ah wait, my bad, the 2209 are UART. Maybe it was the 2208 that was spi...
Hell...this dang thing can take step/dir too if I wanna use my big CNC stepper drivers... lol
Almost a good video, but you very much ignored the software difference between the two. Specifically the added features you get with Marlin when you use UART as the communication type on steppers that support it. Added features like being able to specify the current, turn on/off the various modes and set thresholds for modes. This is a lot more than you can currently do with the SPI connection in Marlin.
Sorry Adam, not wanting to troll, but you mention parallel vs serial, which neither UART or SPI is, and your SPI diagram is a bit out, surely MOSI goes to MISO, you basically setup a chain then use CS to reference them..? I'm probably just jealous as I want one of those boards to give S.T.E.V.E. 3 Z axis steppers.. ;-)
Don't mention one vs the other, just a diagram of both to show what the 'serial' part of serial communication means in winder context. Mosi goes to Mosi. That's why they're named like that, to prevent confusion like you get with UART where you wire up to diffently named ports. Master is the main chip, slaves are the stepper drivers. Output of the master connects to input of the slave, hence Mosi.
@@Vector3DP Fair enough, just seemed a bit random, I always thought MOSI (Master Out Slave In) goes to MISO (Master In Slave Out), maybe that's why I prefer I2C.. :)
@@Vector3DP Actually, Stephen is correct. MOSI/MISO is used AFAIK exclusively on MCUs, because these are assumed to be the master. Devices other that MCUs usually use SDO/SDA and are connected MISO-SDO and MOSI-SDA. But when two MCUs are communicating, then the master "status" alternates and the one sending is a master but when it receives, it is a slave. That is why MOSI goes to MISO.
Me: I don't understand the difference
Vector3D: this is how to understand the difference
My brain: no, I don't think I will
Really nice video guide, I will rewatch this in a little bit after I figure out the wiring for TMC2130 to RAMPS to fix some cetus printers.
The difference is: nothing. (well there is but mostly it doesn't matter)
@@Vector3DP thanks!
Til better to overkill than underkill!
To confuse matters even more, it's often possible to select between UART and USB when setting up Klipper. USB is easier to set up as far as the average person is concerned, but UART might be a few nanoseconds faster because most 3D printer controller boards these days use a UART to USB chip. In fact, when sending G-code from a computer connected to a printer via USB, the computer doesn't actually know it's talking to a 3D printer. It only sees a USB to UART adapter (which is why the printer appears as a serial port in Windows Device Manager or the equivalent). That's probably not going to change any time soon, especially with all of the existing software and hardware out there.
thank you.
machines controlled externally also use uart. uart can only run at 115kbps. UART is a serial port its outdated it shouldn't be used. Gcode sent over uart is how PC/kipper machines work and it can cause bottle necks at on high poly meshes due to uart mode being way slower than usb itself.
they are still like this !
Look for better options than uart!
That second head growing beside your nose looks PAINFUL homie, tea tree oil is your friend (soak a cotton ball and press and hold it on for a while, you can even hold it there long term with a band-aid if necessary. Do this when you wake up and then before bed and it should be gone in 2 days tops!)
No real info
Both work both are ok..
No Ibofo on feature like linear advance
" hi use either one" but you watched my video for better features with ZERO features listed !!
HAH First
Both options are wasteful in terms of control pin consumption. But if you use I2C to SPI converters (NXP, MAX..), things don't get so bad. Only the performance of the low-pins number microcontroller/its SPI software-hardware bus will remain a bottleneck. With UART - same thing: NXP present ICs even with FIFO. then, only 2 pins needed for all devices and by one - for backing interrupts, of outcoming data transfer. I hope no one will have any difficulties - with software adaptation ;)