Hey Michael, I have been a software developer for 43 years. Usually whenever I see someone explain bit depth I see someone struggle, use confusing verbiage, or wanting to move on to another topic. On a few very rare occasions you see someone explaining it very well. You did it very well.
Except he didn't. Old 8 bit processors used in consoles had 8 bit registers and 16 bit addressing so they were not actually completely 8-bit CPU. And he comparing CPU speed 100 MHz vs 16 MHz and deciding "32 bit better". Use 8-bit at 100 MHz and you will have more than enough CPU speed for printing.
@@vladimirseven777 This is not the case for all old 8 bit processors; for example the 6502 did not have 16 bit addressing. What you are referring to are extensions to 8 bit memory spaces using bank switching in order to save costs or implement features ahead of their time. That there are exceptions and additions to an evolving design does not make the explanation of the basic design faulty.
@@louis-ericsimard7659 Not faulty, but very incomplete. Like modern AT-mega or Arduino are the same as old 8-bit processors. Bank switching in 16 bit processors was implemented to address memory above 65535 while pure 8-bit can address only 256 bytes.
@@StavrosKor It depends from application. For example if used for temperature measurement or digital to analog conversion 8 bit data bus or data width used in CPU it limited to max 8 bit capacity - from 0 to 255 (256 states). 16 bit (65536) or 32 bit (somewhere 4 billion +) - you can use better precision, for example work with 0.001 of temperature. But right now 1C degrees (for example from 20 to 275C) or stepper motor drivers (max 256 microsteps) seems enough.
@@vladimirseven777 That isn't true. You can basicly calculate everything in an 8bit processor to the same precision a 32bit processor can by concernating the calculations using things like carry-flags. The only problem is, that it takes a lot more clock cycles for your calculation. Modern 32bit CPU, like stm32, also come with an FPU (floating point unit) which handles floating point operation in much less cycles that the standart ALU of the Arduinos ATMega2560. Problem of the stepper driving is that the Software on a 8bit processors in use aren't able to drive more that 10.000 steps/s due to lack of ressources with the workaround of sending multiple steps at once to reach up to 40.000steps/s. This method is called double and quadstepping which you can find in configuration.h in the marlin files and produces an absolute horrible sound, vibrations and possibly steplosses, as seen in the video. More than 40.000 isn't possible at all without disturbing the whole software loop comprising things like closed loop temperature regulation, watching for endstops being hit, safety loops (temperature runaway)etc. Having 80steps/mm for X/Y axis at 16µSteps limits your movement to 125mm/s (=10000/80). If you increase the steps per mm by increasing the µStep-Number to let's say 256µSteps like the TMC allows you to do, you would be limited to ~8mm/s.
Very nicely done, Michael! This level of tutorial, first generic, then specific to 3D printers is just what the community needed. The level of information is perfect.
I would love to see a comparison between a 8bit system with klipper and a RPI and a 32bit board. To see how the 8bit board compares when the calculations are done on the rpi. And as always a good and clear video. Keep it up
Just bought the same board for my Ender 3. Been putting off swapping it in, but there's no excuse now. Thanks for your hard work! Your channel is awesome.
I'm commenting only for thank you for such a good job doing videos, not only this one but every other videos. Nice work! Really helpful for newbies like me. I appreciate it a lot.
nicely explained, thank you. This would be the first video I have watched that clearly explains the differences, drawbacks and complications around 8 bit vs 32 bit boards. Love your work, keep them coming. cheers..
Max Lindner what would be awesome but total over kill but take a 1st gen core i7 980-990 extreme and turn it into a 3d printer all in one board. , octo-print , arduino ide, a slice of your choice fusion 360 and or what ever else you can throw at it. Even a high end 1st gen xeon. X58 chip set board or what ever. For the lower cost but way to much process power lol man that would be sick. I wonder if it could be done. I assume so.
@@mitchh6471 I have seen a similar thing done before by a friend. Take a look at Klipper firmware. It's general idea is process the print via a PC and pipe it to the Arduino in the printer.
@@BillyBobJimPatton I actually do have a couple of pc's standing around and collecting dust. William, I think this is one of the few occasions, where a youtube comment has given me the momentum to do something great!
@@maximilianlindner happy to have bucked the trend and give a useful YT comment. I should screenshot it and frame it as proof that it can happen haha I'd be interested to hear how you get on with trying it.
[Being pedantic for fun, not to be a pest] There are actually analog computers that aren’t base-2, but I don’t know if they’re still used anymore. In addition, many SSDs are actually base-4 or even base-8, meaning each memory cell stores two or three bits at a time. Explaining Computers has a very good video about this discussing the new Samsung QVO 3-bit SSDs. Love your work, keep it coming. 🙂 I know I’m commenting on an old video, it’s just how I roll. ;)
I really enjoyed this video, I think it's a great tutorial on why we might need 8 bit versus 32 bit, and I was pleased to see you mention how stepper drivers with higher resolution can aggravate this need. I do have one criticism though, the H-bot style such as the Ender 5 is still a cartesian kinematic, the Y axis just moves the X gantry instead of the bed, and isn't harder to calculate. Spot on about the CoreXY and Delta style tho.
I don't own any h bot machines but I was under the impression two stepper inputs were needed for most movements. I may in fact be wrong, no problem admitting that.
Teaching Tech hey so I think I am in the wrong - I just saw you seeming to refer to the Ender 5 as H bot which it is not. So all good! Good video thank you!
Your review of 8bit vs 32bit is nice. Thre are limitations of 8bit it has been known for a while. Expecially with matrix bed leveling and linear advance adding a lot of overhead into the movement. Most 8bit setups are running a RPI 3B+ with octoprint to make life easier transfering files wirelessly. If we use the RPI processing power for running Klipper so all data processing is made by the RPI we can print to a very high microstepping. The limitation is made by the transfer speed of the arduino USB. Its a little lower than the processing speed of your 32bit but a lot higher than what 8bit can handle.
@@TeachingTech from memory a 8bit system with 1/16 steppers (a4988) tops out around 160-180mm/s. With a ABL and linear advance its around 120mm/s which is still a lot higher than most users print at. Using klipper a arduino has 115200bps baud rate. Since we are only sending move data and sensor information we can use a ABL and LA and still print upwards of ~200mm/s.
@Teaching Tech Actually 8/32 bit is not really the precision of the ALU but the width of address map. For a controller it is called x bit only because the address map is x bit width - more the 'x' means more memory it can address. Page 17 of the datasheet - datasheet.octopart.com/LPC1768FBD100,551-NXP-datasheet-8326490.pdf
Good overview of "bits". Just minor corrections: 8 bit signed has a range of -128 to +127 (not the -127 to +127 as in the video). Also, the 32 bit unsigned has a range of 4.29 billion values or a signed range of -2147483648 to + 2147483647. it may seem funny that there are more "negative" numbers than "positive". In the case of -128 to +127, this comes out to 128 negative values PLUS the value 0 PLUS 127 positive values (128 + 1 + 127 = 256 possible values an eight-bit number can represent).
My favourite analogy is to say that going from 8-bit/16MHz to 32-bit/72MHz is like going from one milk-float at 15mph on a country lane, to four minivans at 70mph on a four-lane-wide highway. The bigtreetech SKR-mini-E3 looks interesting btw - $30 drop-in replacement for Ender-3/5, using a 72MHz ARM Cortex-M3 processor and soldered-on TMC2209 drivers - a real winner, I think.
Very Good content! I really like your channel with this type of content rather than the printer review. Keep it up and I will give you a shout out in my next
Hopefully you can mention the TMC2209's that are coming embedded on some ender 3 direct replacements. Not even sure if it's fully supported but it's the cheapest/easiest way to push into 32bit boards with the ender series
3:02 Surprised no one's pointed this out. N digits of binary can represent up to 2^N values, and thus 8 bits can represent up to 256 values (0-255 unsigned). Early computers represented negative integers as described here, called signed magnitude representation-- one bit is reserved for positive/negative, and the rest is used for the number's value. However, modern computers represent negative integers differently, and 8 bits can represent 256 values (-128 to 127). This happened partly because of the cost of transistors in the early days of computing, and partly because it was kinda silly to have both a positive 0 and a negative 0. en.wikipedia.org/wiki/Signed_number_representations#Two's_complement Signed magnitude representation didn't catch on for integers, but it lives on in modern floating point (IEEE 754). Floating point does have a positive 0 and a negative 0, and they're used in cases where, say, a mathematical function has a discontinuity at 0. 1 divided by x, for example-- approaching zero from the positive side of the X axis, it shoots up to positive infinity, whereas approaching it from the other side, it falls off to negative infinity.
Can you get 2 identical printers but upgrade one with the 32bit board and one on 8bit then print something high speed? I would like to see the results at the end.
@@originaltrilogy1 You asking me or did you mean to ask Teaching Tech? I am not sure what model would be good to print but would would guess anything with lots of angles, corners and dimensions within very short distance from each other... something where it has to process many movements on all axis very quickly. Maybe some kind of chain style objects or something with lots of circles and other shapes? im thinking something like this at high speed but i could be wrong. www.thingiverse.com/thing:1363023
Between setting up the software to use Marlin 2.0, configuring the FW for the board and the printer, setting up various drivers (especially TMC drivers with SPI/UART), and setting up various sensors, you could have an entire SKR series lol.
My car's EFI is controlled by a 8bit MEGA2560 Arduino, so it's a bit surprising you would need anything approaching 32bit for something as simple as a 3D printer. Like doesn't the micro just tell the stepper controller which way to go and how far, and then the stepper controller decides the number of steps based on it's jumper settings. I can see going to 32bit because it's nearly the same price, but maybe it's more to do with memory size than needed processing power.
The mc still has to send a signal for each micro step to the driver. That's why your steps per mm are increased in the firmware when you go up from 1/16.
Most of those 32 & 64 bit game consoles were actually just 16bit as far as the actual instruction set they could register. The manufacturers used the size of the memory bus to the RAM to justify the higher 'bit' since thats all the public knew as a number being 'better'. But I get your point.
@ 3:18 you reference the max decimal value that can be represented in a 32 bit binary number as 2,147,483,648. That is for a signed number or two's complement. That effectively makes it a 31 bit number. A 32 bit binary number is 4,294,967,295 in decimal format.
Thank you for this video, I literally just asked a question about the difference between the boards and whether they are necessary on the facebook ender 3 groups.
64-bit or 128-bit boards for advanced 3D printers that can move the print head(s) on a robotic arm with all the nuances of a human artist. Use resin pens with UV light to cure each color on the fly in real time. Have a multi-head rotational mount so that each head handles one or more different colors or types of materials or a mixture. So an Octopus style robotic 3D printer will of course need more processing power to perform marvelous feats of automated artistry.
I want to buy a control board and install 4 drivers. I want to run 4 stepper motors with a very simple few lines of code that I wrote. I was going to use Arduino, but Arduino is not connected to this control board. But it doesn't matter to me because all I want is to control 4 motors by any method. My reason for wanting to buy this control board is to keep all the drivers and motors in one place. My question is: Can I write my own codes on this card? For example, this motor starts when it receives a signal from the sensor, this motor accelerates when I increase the potentiometer.
on AliExpres their is £2 difference between the MKS gen L and the MKS SGen L (the 32bit replacement, same size) i'd love to know why anyone would pick the 8 bit for £2 difference.
You're right, at the current market prices there is no real issue with even budget 3D printers being supplied with the a 32bit board. For the likes of Creality, the price in bulk would be even less than £2 a board different. The manufacturers just need to get on with it.
What about an accurate pinout for this board? Please include some info on that in the next video. The information for this board is so hard to find! Thanks for the great content as always!
I was thinking a long time to upgrade to the MKS gen L but up until recently i wont. i will use the SKR 1.3 because 2 killer features: SD card and 32 Bit proccesor
So is the controller in my Anycubic Linear Kossel 32 bit? I loaded Marlin 1.1.8 onto it about 8 months ago and now it's dialed in its completely dependable and delivers high quality prints. Same with my Ender 3. I know it's got a cheap-ass 8 bit board but it works well. And there is the issue. My interest is not in building the best printer but in having reliable printers to output my projects. They are both dialed in such that I rarely have to level them and I'm not sure screwing around with the controller will give me additional value. Maybe I need to build a delta from scratch.
As written above, I think the rule "If it ain't broke, don't fix it" applies in your case. -You're already satisfied with the prints, which means it might not be worth all the trouble and frustrations upgrading. But at a later point, when you think your Kossel is no longer an interesting piece of technology, you could upgrade it to a 32-bit board, which should then give it 'new life'.
The Marlin page shows that the HAL for the $38 Adafruit Grand Central M4 (ATSAMD51) is in development.. bus that doesn't have any SD card (for the g-code), nor as many I/Os as the MKS-Gen-L-1.0.. how will that work for 3d printing? Shield?
Just chiming in to say Max value of an unsigned 32 bit integer is in the 4 billions, for a signed 32 bit int you are correct though, but with the stipulation that the lowest number is negative 2 billion something instead of 0. Which means you can still jam roughly 4 billions different values into 32 bits, whether signed or unsigned.
Does the controller actually do the displacement computations or it's made by the slicer when creating the g-code file description of the model? It seems that the controller computational work is mostly restricted to the gcode file parsing (a translation with no math involved) and not actually to compute step motors displacement commands. I think It only computes inertia (when and how fast step motors should be moved) and PID temperature control and this suspicious came to my mind after trying Klipper. In Klipper, the parsing work is done by the RPi and the motors pulses sent directly to the stepers using a daemon running in the controller.
Gcode only does so much. It will say move from here to here but that doesn't account for acceleration or anything like that. Consider that the gcode is the same for a Cartesian printer vs a delta despite the greatly differing maths required.
I'm buying a laser engraver and I'm wondering if anything is stopping us from flashing grbl firmware to an skr board? Run a laser engraver using a 3d printer main board?
Have you made any video about microstepping and what you can gain/cons?. Now with access to Skr 1.3 32bit and 2209's maybe that's a path to take? What would going all 1/32 stepping do for example?
I would love if you would do a comparison on the popular coreXY printers. Voron, D-bot, Hypercube, HEVO, V-king, etc. no one really has a complete comparison that I could find.
What about the Anycubic Kossel Linear Plus? It's a great Printer with only an 8-Bit Trigorilla Motherboard and I am printing flawlessly with 100mm/s. So you don't "need" an 32bit CPU for a Delta.
I have a monoprice maker select plus, basically a wanhao duplicator I3, and was wonder if this board would be possible to retro fit into my printer, I'm not happy with it and doing research on turning it I to what it should be
I have the Cocoon clone of that printer. The sticking point will be the ribbon cable attachment which is different to other prints. You would need to cut and terminate the wires with jst connectors or make a break out board.
@@TeachingTech I have seen your video with the Cocoon, tinkering to make it work would not be a problem, curious if it was possible to make it work. I basically am unhappy with my printer and I want to work with it and turn it into something better cause that's just me, tinker with something till I either break it or enhance it ha ha.
Can someone tell me what the difference is between a skr pro board vs a Rambo board? The only difference I see and understand is that the skr comes with a screen and Rambo board doesn’t.
My CNC mill runs on an FPGA (smoothstepper) because it is more able to kick out the steps at regular timing with the chip set up specially for the purpose. Are there 3D printer boards that use FPGA?
It is pretty simple, the Duet can't be beat in price/performance right now. It has the best stepper drivers available, everything config is GCode, it has a pretty damn fast CPU, built-in webinterface. It not even more expensive than an arduino with a motor shield plus good stepsticks and a raspberry plus sdcard for the webinterface. There is simply no excuse not to have a Duet if you want a webinterface (which is something you never want to be without once you've been spoiled by it).
This highly depends on the quality of the CNC machine. If the machine is highly imprecise (eg. +/- 1mm tolerance) then it would be futile to make the upgrade. On the other hand, a 32-bit board could improve resolution if the machine is well built.
Should give you about 25% speed increase and likely better quality - also I'd bet on the 32-bit horse for future expandability (eg. expect future firmware to run on 32-bit microcontrollers when 8-bit has too little program-space).
@@TeachingTech Personally I think you had the right amount of details without losing people. For example you could have spoken about 2's complement but it would not really add anything but confusion. From my experience of teaching computer science at secondary level, address space is not a first lesson topic :)
No this the correct answer. The ability to address up to 4 gigs of memory is the advantage of 32-bit. That limitation is also why everything eventually moved to 64-bit in the computing world. There are actually still 32-bit types available in 8-bit microcontrollers. See Long, Double, etc in Arduino. That maybe confusing for some people though. Enjoy the channel keep up the good content.
@@Nath8737 No, the designation if an architecture is 8/16/32/64 bits depends on the width of the working registers, the width of the address bus has nothing to do with it. Remember the C64? Its 6510 CPU is an 8-bit design with a 16-bit address bus. The 8-bit AVR that is used on many printer boards uses separate busses for programm and data and while the data-bus is 16-bit wide, the program-bus is even wider making devices with more than 64k of FLASH possible. Putting memory into chips however is expensive and epxanding the busses with additional bits also is. We see more memory in 32-bit mikrocontrollers for two reasons, first of with everything using 32 bits it just does not cost extra anymore to use a 32 bit address bus. Secondly the price per bit SRAM dropped significantly in the last 15 years, mostly due to smaller structures but also due to better mass production. AVR was 140nm if I recall it correcly, more recent controllers are manufactured in 22nm. Atmel could have easily released an AVR with 64k SRAM and 256k+ FLASH but they were driven by demand from industrial customers - and obviously there was no demand for such a controller.
Your channel is great, thanks for the content. You are one of the only ones reviewing the A10M on UA-cam that I trust, because of that I have a couple questions. What are your thoughts on the Geeetech A10M after a couple months with it? Is it useful for single filament use too ? How is the maintenance ? Would you still recommend it?
I wonder if eventually we’ll see ‘dumb’ boards which are slaves to something like the RPi? On the one hand it would make upgrades easier, cheaper and potentially provide advantages such as integrated wifi. On the other hand it could cause issues such as if the Pi freezes/crashes.
Awesome & timely video Michael. I am considering using Marlin 2.0 to help implement BLTouch. But I am afraid the ENDER-5's Sanguino board might be incapable of supporting Marlin 2.0. Is the MKS Gen L board a better choice; or something else. Maybe I should stick with Marlin 1.1.9 on my Ender-5; and look at Marlin 2.0 for my next printer, down the road ..... I look forward to your advise.
I haven't tested marlin 2.0 on an Ender board but on paper it should be fine. The Gen L is superior in every way to the Melzi, but there isn't any need to upgrade unless you want to use more IO pins or change stepper drivers.
Hey Michael, I have been a software developer for 43 years. Usually whenever I see someone explain bit depth I see someone struggle, use confusing verbiage, or wanting to move on to another topic. On a few very rare occasions you see someone explaining it very well. You did it very well.
Except he didn't. Old 8 bit processors used in consoles had 8 bit registers and 16 bit addressing so they were not actually completely 8-bit CPU. And he comparing CPU speed 100 MHz vs 16 MHz and deciding "32 bit better". Use 8-bit at 100 MHz and you will have more than enough CPU speed for printing.
@@vladimirseven777 This is not the case for all old 8 bit processors; for example the 6502 did not have 16 bit addressing. What you are referring to are extensions to 8 bit memory spaces using bank switching in order to save costs or implement features ahead of their time. That there are exceptions and additions to an evolving design does not make the explanation of the basic design faulty.
@@louis-ericsimard7659 Not faulty, but very incomplete. Like modern AT-mega or Arduino are the same as old 8-bit processors. Bank switching in 16 bit processors was implemented to address memory above 65535 while pure 8-bit can address only 256 bytes.
@@StavrosKor It depends from application. For example if used for temperature measurement or digital to analog conversion 8 bit data bus or data width used in CPU it limited to max 8 bit capacity - from 0 to 255 (256 states). 16 bit (65536) or 32 bit (somewhere 4 billion +) - you can use better precision, for example work with 0.001 of temperature. But right now 1C degrees (for example from 20 to 275C) or stepper motor drivers (max 256 microsteps) seems enough.
@@vladimirseven777 That isn't true.
You can basicly calculate everything in an 8bit processor to the same precision a 32bit processor can by concernating the calculations using things like carry-flags. The only problem is, that it takes a lot more clock cycles for your calculation.
Modern 32bit CPU, like stm32, also come with an FPU (floating point unit) which handles floating point operation in much less cycles that the standart ALU of the Arduinos ATMega2560.
Problem of the stepper driving is that the Software on a 8bit processors in use aren't able to drive more that 10.000 steps/s due to lack of ressources with the workaround of sending multiple steps at once to reach up to 40.000steps/s. This method is called double and quadstepping which you can find in configuration.h in the marlin files and produces an absolute horrible sound, vibrations and possibly steplosses, as seen in the video. More than 40.000 isn't possible at all without disturbing the whole software loop comprising things like closed loop temperature regulation, watching for endstops being hit, safety loops (temperature runaway)etc.
Having 80steps/mm for X/Y axis at 16µSteps limits your movement to 125mm/s (=10000/80). If you increase the steps per mm by increasing the µStep-Number to let's say 256µSteps like the TMC allows you to do, you would be limited to ~8mm/s.
Very nicely done, Michael! This level of tutorial, first generic, then specific to 3D printers is just what the community needed. The level of information is perfect.
I would love to see a comparison between a 8bit system with klipper and a RPI and a 32bit board. To see how the 8bit board compares when the calculations are done on the rpi.
And as always a good and clear video. Keep it up
Just bought the same board for my Ender 3. Been putting off swapping it in, but there's no excuse now. Thanks for your hard work! Your channel is awesome.
This is why your channel is called "Teching Tech" I learned a lot. Thank you so much for this outstanding Content. Greets from Germany!
Your description of binary was amazing
This is the best description of how a microprocessor works I have ever seen!
I agree with Louis on this. you explained a very complex subject so easily and clearly.
I'm commenting only for thank you for such a good job doing videos, not only this one but every other videos. Nice work! Really helpful for newbies like me. I appreciate it a lot.
4:50 if you already know what a bit is and want to skip to the part concerning 3D printers.
Thanks 👌
Thanks man
Great topic and I really appreciate you guiding us into this new technology!
my friend you teach something i was not expecting, by the first time i really learn binare codification
great video you are truly a great teacher in every definition of the word.
stay warm
Alex
Another awesome video, going online now to order my SK board so I am ready to follow you and upgrade my Ender 3.
Very easy to follow explanation! Easy to understand, I gues could be used even in schools. Great!
I love the way you explain things
very clear, concise and easy to understand
nicely explained, thank you. This would be the first video I have watched that clearly explains the differences, drawbacks and complications around 8 bit vs 32 bit boards. Love your work, keep them coming. cheers..
As always your explanations are great and simple to understand.
YEEEEEES ! I bought a SKR and i'm waiting to arrive! Your video is going to be super helpfull!
Another terrific video. You explain topics very well.
Definitely helpful information for a lot of us! And now I know enough to know that I don't really need to know any more, for what I do. Thanks!
We need 3d printer boards with 7 nm ZEN2 architecture, 64 cores and 8 ghz!
Max Lindner what would be awesome but total over kill but take a 1st gen core i7 980-990 extreme and turn it into a 3d printer all in one board. , octo-print , arduino ide, a slice of your choice fusion 360 and or what ever else you can throw at it. Even a high end 1st gen xeon. X58 chip set board or what ever. For the lower cost but way to much process power lol man that would be sick. I wonder if it could be done. I assume so.
@@mitchh6471 I have seen a similar thing done before by a friend. Take a look at Klipper firmware. It's general idea is process the print via a PC and pipe it to the Arduino in the printer.
You can run Klipper on a RPI. Or a high-end multcore workstation if you have one spare lol.
@@BillyBobJimPatton I actually do have a couple of pc's standing around and collecting dust. William, I think this is one of the few occasions, where a youtube comment has given me the momentum to do something great!
@@maximilianlindner happy to have bucked the trend and give a useful YT comment. I should screenshot it and frame it as proof that it can happen haha
I'd be interested to hear how you get on with trying it.
Perfectly explained as usual! Very interesting and very handy to know the differences! Cheers!
Perfect timing, I just bought one for my ender 3 :)
Ordered mine last week, looking forward to the upgrade comparaison
[Being pedantic for fun, not to be a pest]
There are actually analog computers that aren’t base-2, but I don’t know if they’re still used anymore.
In addition, many SSDs are actually base-4 or even base-8, meaning each memory cell stores two or three bits at a time. Explaining Computers has a very good video about this discussing the new Samsung QVO 3-bit SSDs.
Love your work, keep it coming. 🙂
I know I’m commenting on an old video, it’s just how I roll. ;)
I really enjoyed this video, I think it's a great tutorial on why we might need 8 bit versus 32 bit, and I was pleased to see you mention how stepper drivers with higher resolution can aggravate this need. I do have one criticism though, the H-bot style such as the Ender 5 is still a cartesian kinematic, the Y axis just moves the X gantry instead of the bed, and isn't harder to calculate. Spot on about the CoreXY and Delta style tho.
I don't own any h bot machines but I was under the impression two stepper inputs were needed for most movements. I may in fact be wrong, no problem admitting that.
Teaching Tech hey so I think I am in the wrong - I just saw you seeming to refer to the Ender 5 as H bot which it is not. So all good! Good video thank you!
you sure did teach the hell outta that tech, cheers!
Those leftover 8 bit controllers also make really sweet general purpose Arduino compatible dev boards.
Great video. Definite thumbs up for this one!
Your review of 8bit vs 32bit is nice. Thre are limitations of 8bit it has been known for a while. Expecially with matrix bed leveling and linear advance adding a lot of overhead into the movement.
Most 8bit setups are running a RPI 3B+ with octoprint to make life easier transfering files wirelessly. If we use the RPI processing power for running Klipper so all data processing is made by the RPI we can print to a very high microstepping. The limitation is made by the transfer speed of the arduino USB. Its a little lower than the processing speed of your 32bit but a lot higher than what 8bit can handle.
I have two klipper videos coming up. Thanks for sharing.
@@TeachingTech from memory a 8bit system with 1/16 steppers (a4988) tops out around 160-180mm/s. With a ABL and linear advance its around 120mm/s which is still a lot higher than most users print at.
Using klipper a arduino has 115200bps baud rate. Since we are only sending move data and sensor information we can use a ABL and LA and still print upwards of ~200mm/s.
This has been explained so well, thank you.
Good timing, I bought the same board a couple of weeks ago and am just finishing installing it into my printer.
You should do a test of showing print quality differences as well, especially when using some of the smoother drivers such as 2208
@Teaching Tech
Actually 8/32 bit is not really the precision of the ALU but the width of address map. For a controller it is called x bit only because the address map is x bit width - more the 'x' means more memory it can address.
Page 17 of the datasheet - datasheet.octopart.com/LPC1768FBD100,551-NXP-datasheet-8326490.pdf
Good overview of "bits". Just minor corrections: 8 bit signed has a range of -128 to +127 (not the -127 to +127 as in the video). Also, the 32 bit unsigned has a range of 4.29 billion values or a signed range of -2147483648 to + 2147483647. it may seem funny that there are more "negative" numbers than "positive". In the case of -128 to +127, this comes out to 128 negative values PLUS the value 0 PLUS 127 positive values (128 + 1 + 127 = 256 possible values an eight-bit number can represent).
My favourite analogy is to say that going from 8-bit/16MHz to 32-bit/72MHz is like going from one milk-float at 15mph on a country lane, to four minivans at 70mph on a four-lane-wide highway.
The bigtreetech SKR-mini-E3 looks interesting btw - $30 drop-in replacement for Ender-3/5, using a 72MHz ARM Cortex-M3 processor and soldered-on TMC2209 drivers - a real winner, I think.
Perfect !!! Just what i was waiting, how to install the SKR.
Wow thanks for the review of my System Architecture class...
My primary reason for a motherboard upgrade is for quiet operation and having 5 servo outputs for a future dual z-axis upgrade with auto leveling.
Thank you for sharing you’re knowledge
Very Good content! I really like your channel with this type of content rather than the printer review. Keep it up and I will give you a shout out in my next
Nice intro
Looking forward to part 2
Thanks for sharing :-)
Hopefully you can mention the TMC2209's that are coming embedded on some ender 3 direct replacements. Not even sure if it's fully supported but it's the cheapest/easiest way to push into 32bit boards with the ender series
Just small notice. Download speed is measured at Bits/s not bytes/s (B - bits, b - bytes)
Thank you for the clear explanation!
3:02 Surprised no one's pointed this out. N digits of binary can represent up to 2^N values, and thus 8 bits can represent up to 256 values (0-255 unsigned). Early computers represented negative integers as described here, called signed magnitude representation-- one bit is reserved for positive/negative, and the rest is used for the number's value. However, modern computers represent negative integers differently, and 8 bits can represent 256 values (-128 to 127). This happened partly because of the cost of transistors in the early days of computing, and partly because it was kinda silly to have both a positive 0 and a negative 0. en.wikipedia.org/wiki/Signed_number_representations#Two's_complement
Signed magnitude representation didn't catch on for integers, but it lives on in modern floating point (IEEE 754). Floating point does have a positive 0 and a negative 0, and they're used in cases where, say, a mathematical function has a discontinuity at 0. 1 divided by x, for example-- approaching zero from the positive side of the X axis, it shoots up to positive infinity, whereas approaching it from the other side, it falls off to negative infinity.
Morio, I got to 3:15 and went nope, 2s compliment. I'm an embedded designer.... Apart from that, great explanation
Nice video! I'm waiting for skr mini e3 in ender 3 tutorial :)
Can you get 2 identical printers but upgrade one with the 32bit board and one on 8bit then print something high speed? I would like to see the results at the end.
I'm going to try this on my CR10 S5, so will do the experiment. Any suggestions as to which model to use for the experiment?
@@originaltrilogy1 You asking me or did you mean to ask Teaching Tech? I am not sure what model would be good to print but would would guess anything with lots of angles, corners and dimensions within very short distance from each other... something where it has to process many movements on all axis very quickly. Maybe some kind of chain style objects or something with lots of circles and other shapes? im thinking something like this at high speed but i could be wrong. www.thingiverse.com/thing:1363023
@@originaltrilogy1 hmmm perhaps a little boat?
Between setting up the software to use Marlin 2.0, configuring the FW for the board and the printer, setting up various drivers (especially TMC drivers with SPI/UART), and setting up various sensors, you could have an entire SKR series lol.
@@cobeer1768 no I don't lol. That would be a great thing.
Hoping to cover as much as possible in a concise way.
Thank you for the informative video.
omg, Alex kid! You gave me a nostalgic heartache😢
My car's EFI is controlled by a 8bit MEGA2560 Arduino, so it's a bit surprising you would need anything approaching 32bit for something as simple as a 3D printer. Like doesn't the micro just tell the stepper controller which way to go and how far, and then the stepper controller decides the number of steps based on it's jumper settings. I can see going to 32bit because it's nearly the same price, but maybe it's more to do with memory size than needed processing power.
The mc still has to send a signal for each micro step to the driver. That's why your steps per mm are increased in the firmware when you go up from 1/16.
Most of those 32 & 64 bit game consoles were actually just 16bit as far as the actual instruction set they could register. The manufacturers used the size of the memory bus to the RAM to justify the higher 'bit' since thats all the public knew as a number being 'better'. But I get your point.
@ 3:18 you reference the max decimal value that can be represented in a 32 bit binary number as 2,147,483,648. That is for a signed number or two's complement. That effectively makes it a 31 bit number. A 32 bit binary number is 4,294,967,295 in decimal format.
Wow! I just posted a request for this on Michael's Patreon Page. Now that is responsive!
He was probably already working on it.
Great descriptive upload.
Condensed too a T.
Thank you for this video, I literally just asked a question about the difference between the boards and whether they are necessary on the facebook ender 3 groups.
This is a great explanation 👍
Wow, you are smart about this stuff! Thank you!
64-bit or 128-bit boards for advanced 3D printers that can move the print head(s) on a robotic arm with all the nuances of a human artist. Use resin pens with UV light to cure each color on the fly in real time. Have a multi-head rotational mount so that each head handles one or more different colors or types of materials or a mixture. So an Octopus style robotic 3D printer will of course need more processing power to perform marvelous feats of automated artistry.
Would be very interesting to see a full comparison on a Tarantula Pro or an Ender 3... Stock vs 32bits vs Klipper
I want to buy a control board and install 4 drivers. I want to run 4 stepper motors with a very simple few lines of code that I wrote. I was going to use Arduino, but Arduino is not connected to this control board. But it doesn't matter to me because all I want is to control 4 motors by any method. My reason for wanting to buy this control board is to keep all the drivers and motors in one place. My question is: Can I write my own codes on this card? For example, this motor starts when it receives a signal from the sensor, this motor accelerates when I increase the potentiometer.
5:33 Ok so 32bits is a must if the drivers have high resolution microstepping, nice.
A must have for the TMC drivers basically.
I am waiting for a board featuring an ATSAMD51, preferably done as drop-in replacement for the Ender-3.
other option is flash klipper onto the 8 bit board and offload all the maths onto the pi wich then just sends step pulse timing/dir to the controller
on AliExpres their is £2 difference between the MKS gen L and the MKS SGen L (the 32bit replacement, same size) i'd love to know why anyone would pick the 8 bit for £2 difference.
You're right, at the current market prices there is no real issue with even budget 3D printers being supplied with the a 32bit board. For the likes of Creality, the price in bulk would be even less than £2 a board different. The manufacturers just need to get on with it.
And if the mechanics can not keep up what is the use.
With the update of the MK3S+ to MK4 from Prusa, can you make an update on your notes?
What about an accurate pinout for this board? Please include some info on that in the next video. The information for this board is so hard to find! Thanks for the great content as always!
I was thinking a long time to upgrade to the MKS gen L but up until recently i wont. i will use the SKR 1.3 because 2 killer features: SD card and 32 Bit proccesor
MKS Gen L can have sd card. It requires to buy SPI card reader for $0.5, connecting it to AUX3 and some small change in marlin.
So is the controller in my Anycubic Linear Kossel 32 bit? I loaded Marlin 1.1.8 onto it about 8 months ago and now it's dialed in its completely dependable and delivers high quality prints. Same with my Ender 3. I know it's got a cheap-ass 8 bit board but it works well. And there is the issue. My interest is not in building the best printer but in having reliable printers to output my projects. They are both dialed in such that I rarely have to level them and I'm not sure screwing around with the controller will give me additional value. Maybe I need to build a delta from scratch.
If it's reliable and printing to your satisfaction I would leave it.
As written above, I think the rule "If it ain't broke, don't fix it" applies in your case.
-You're already satisfied with the prints, which means it might not be worth all the trouble and frustrations upgrading.
But at a later point, when you think your Kossel is no longer an interesting piece of technology, you could upgrade it to a 32-bit board, which should then give it 'new life'.
The Marlin page shows that the HAL for the $38 Adafruit Grand Central M4 (ATSAMD51) is in development.. bus that doesn't have any SD card (for the g-code), nor as many I/Os as the MKS-Gen-L-1.0.. how will that work for 3d printing? Shield?
Just chiming in to say Max value of an unsigned 32 bit integer is in the 4 billions, for a signed 32 bit int you are correct though, but with the stipulation that the lowest number is negative 2 billion something instead of 0. Which means you can still jam roughly 4 billions different values into 32 bits, whether signed or unsigned.
Nice video as usual.
When can we expect the video on the SKR 1.3?
Thanks!
Monday morning Aus time.
Quality content.. well done.
Does the controller actually do the displacement computations or it's made by the slicer when creating the g-code file description of the model? It seems that the controller computational work is mostly restricted to the gcode file parsing (a translation with no math involved) and not actually to compute step motors displacement commands. I think It only computes inertia (when and how fast step motors should be moved) and PID temperature control and this suspicious came to my mind after trying Klipper. In Klipper, the parsing work is done by the RPi and the motors pulses sent directly to the stepers using a daemon running in the controller.
Gcode only does so much. It will say move from here to here but that doesn't account for acceleration or anything like that. Consider that the gcode is the same for a Cartesian printer vs a delta despite the greatly differing maths required.
So can we use marlin and get ability like klipper?
Why 16 bits processors aren't mentioned (or considered)?
I'm buying a laser engraver and I'm wondering if anything is stopping us from flashing grbl firmware to an skr board? Run a laser engraver using a 3d printer main board?
why cant they have a compromise between price and power with a 16 bit board
Have you made any video about microstepping and what you can gain/cons?. Now with access to Skr 1.3 32bit and 2209's maybe that's a path to take? What would going all 1/32 stepping do for example?
I would love if you would do a comparison on the popular coreXY printers. Voron, D-bot, Hypercube, HEVO, V-king, etc. no one really has a complete comparison that I could find.
Possibly because no one owns all of them :)
can i put duet 2 on tarantula pro? i cant find guide
What about the Anycubic Kossel Linear Plus? It's a great Printer with only an 8-Bit Trigorilla Motherboard and I am printing flawlessly with 100mm/s. So you don't "need" an 32bit CPU for a Delta.
Excellent video! Subbed!
i want to see the difference in 3d printing with 32 bit processor vs the 8 bit one.
Nekoromancer on my delta printer, the print was smoother, and even on the same micro stepping
I will include some simple testing on my skr guide.
Muchas gracias por compartir tu conocimiento!
I have a monoprice maker select plus, basically a wanhao duplicator I3, and was wonder if this board would be possible to retro fit into my printer, I'm not happy with it and doing research on turning it I to what it should be
I have the Cocoon clone of that printer. The sticking point will be the ribbon cable attachment which is different to other prints. You would need to cut and terminate the wires with jst connectors or make a break out board.
@@TeachingTech I have seen your video with the Cocoon, tinkering to make it work would not be a problem, curious if it was possible to make it work. I basically am unhappy with my printer and I want to work with it and turn it into something better cause that's just me, tinker with something till I either break it or enhance it ha ha.
Can someone tell me what the difference is between a skr pro board vs a Rambo board? The only difference I see and understand is that the skr comes with a screen and Rambo board doesn’t.
My CNC mill runs on an FPGA (smoothstepper) because it is more able to kick out the steps at regular timing with the chip set up specially for the purpose. Are there 3D printer boards that use FPGA?
It is pretty simple, the Duet can't be beat in price/performance right now. It has the best stepper drivers available, everything config is GCode, it has a pretty damn fast CPU, built-in webinterface. It not even more expensive than an arduino with a motor shield plus good stepsticks and a raspberry plus sdcard for the webinterface. There is simply no excuse not to have a Duet if you want a webinterface (which is something you never want to be without once you've been spoiled by it).
I really wonder if this improves for a cnc/laser engraver!
Haas probably not since CNCs move a lot slower
This highly depends on the quality of the CNC machine.
If the machine is highly imprecise (eg. +/- 1mm tolerance) then it would be futile to make the upgrade.
On the other hand, a 32-bit board could improve resolution if the machine is well built.
Ok... but what does upgrading my 8bit ender3 to 32bit give me?
Are the prints better?
Should give you about 25% speed increase and likely better quality - also I'd bet on the 32-bit horse for future expandability (eg. expect future firmware to run on 32-bit microcontrollers when 8-bit has too little program-space).
Soooooo do I buy the 32 bit board or no? Just a simple yes or no.
Don't forget one of the largest benefits of 32bit in processing is larger memory addressing. This means more ram accessible by the CPU.
Agreed I though about including flash space and ram. I probably should have.
@@TeachingTech Except that it has nothing to do with the 8bit or 32bit designation.
@@TeachingTech Personally I think you had the right amount of details without losing people. For example you could have spoken about 2's complement but it would not really add anything but confusion. From my experience of teaching computer science at secondary level, address space is not a first lesson topic :)
No this the correct answer. The ability to address up to 4 gigs of memory is the advantage of 32-bit. That limitation is also why everything eventually moved to 64-bit in the computing world. There are actually still 32-bit types available in 8-bit microcontrollers. See Long, Double, etc in Arduino. That maybe confusing for some people though. Enjoy the channel keep up the good content.
@@Nath8737 No, the designation if an architecture is 8/16/32/64 bits depends on the width of the working registers, the width of the address bus has nothing to do with it.
Remember the C64? Its 6510 CPU is an 8-bit design with a 16-bit address bus.
The 8-bit AVR that is used on many printer boards uses separate busses for programm and data and while the data-bus is 16-bit wide, the program-bus is even wider making devices with more than 64k of FLASH possible.
Putting memory into chips however is expensive and epxanding the busses with additional bits also is.
We see more memory in 32-bit mikrocontrollers for two reasons, first of with everything using 32 bits it just does not cost extra anymore to use a 32 bit address bus. Secondly the price per bit SRAM dropped significantly in the last 15 years, mostly due to smaller structures but also due to better mass production.
AVR was 140nm if I recall it correcly, more recent controllers are manufactured in 22nm.
Atmel could have easily released an AVR with 64k SRAM and 256k+ FLASH but they were driven by demand from industrial customers - and obviously there was no demand for such a controller.
Your channel is great, thanks for the content. You are one of the only ones reviewing the A10M on UA-cam that I trust, because of that I have a couple questions.
What are your thoughts on the Geeetech A10M after a couple months with it?
Is it useful for single filament use too ?
How is the maintenance ?
Would you still recommend it?
Is the upgrade creality mobo with tmc drivers 32 bit?
no. and it's a bad 8 bit board too. it isn't designed for the trinamic drivers so they overheat.
I wonder if eventually we’ll see ‘dumb’ boards which are slaves to something like the RPi?
On the one hand it would make upgrades easier, cheaper and potentially provide advantages such as integrated wifi.
On the other hand it could cause issues such as if the Pi freezes/crashes.
Like, say, this?
github.com/KevinOConnor/klipper
Would love to see a comparison of this vs a new controller board.
@@HughCampbell Interesting! Thanks!
Got klipper plus a dedicated klipper board coming up.
Awesome & timely video Michael. I am considering using Marlin 2.0 to help implement BLTouch. But I am afraid the ENDER-5's Sanguino board might be incapable of supporting Marlin 2.0. Is the MKS Gen L board a better choice; or something else. Maybe I should stick with Marlin 1.1.9 on my Ender-5; and look at Marlin 2.0 for my next printer, down the road ..... I look forward to your advise.
I haven't tested marlin 2.0 on an Ender board but on paper it should be fine. The Gen L is superior in every way to the Melzi, but there isn't any need to upgrade unless you want to use more IO pins or change stepper drivers.