One of the most critical hardware components of the control system is actually software, the desktop 3D printer's firmware. The firmware is a software installed on the electronics that provides a link between software and hardware. It interprets the G-code files, and can perform operations based on known dimensions and heater sensor profiles. It is a library of operational protocols that can be tuned by printer vendors and individual innovators alike, to improve or completely alter performance characteristics. Bottom line, the firmware guides the function of the machine. So it is the use of the machine specific firmware in combination with the control electronics component, and the job specific G-code instructions, that produces the printed object. Even in a very rudimentary mechanical design, firmware can help accomplish these tasks by optimizing the management o,f and communication between, analog and digital circuits. For example, a combination of firmware and hardware controllers for a Delta printer need to convert Cartesian coordinate G-code instructions into carriage positions up and down on the a, b, and c towers, and this needs to happen on the fly. The original attempts to build Delta printers sent instructions to directly control the carriage positions individually, but there were far too many instructions. So the electronics could not keep up with pulling them quickly enough for the job file to keep going, resulting in caching errors. Another way to think of this, if the G-code files are a musical score for the part you want to produce, then the firmware is the conductor leading and directing the operations of your printer. And to take this orchestra metaphor further, consider the role of the conductor as interpreter of your composition, bringing along her sense of style and personal phrasing for each measure of music. Don't like how the orchestra sounds, or rather how the 3D printer prints? Fire the firmware and upload a new conductor. Meeting your MCU, wait, my 3D printer is 8-bit? In many electronic devices, like computers, CNCs, and, yes, 3D printers, a piece of onboard computer software governs the behavior of the hardware itself. While this strategy isn't needed for all electronic devices, having the ability to tune and version the firmware in a complex device, grants that device a larger lifetime, and opportunity for future improvements. While a firmware strategy can extend beyond a single piece of software installed on a single component, let's talk for a moment about one of the smallest and most significant board components, the microcontroller, the MCU. This tiny element, here in the Ultimaker 2, runs the entire show. This IC is a programmable part of the mainboard and the element involved in every decision making step for operating your printer. Why is this element so important? Because it houses the firmware that shapes the behavior of the other elements of the device. Let's take a deeper look at the hardware this firmware is loaded onto. If any piece of information in this lecture series dates the moment of writing and recording it will be this one, up until October of 2017 the majority of electronic's control boards running desktop 3D printers were 8-bit microcontrollers, as they have been since the beginning of the desktop 3D printer movement. Thanks to the ready availability of low cost Atmel MCUs, an entire ecosystem of easy routes to program them, the Arduino IDE and clever Marlin Sailfish and variant firmware. Why, when the industry standard options for every other component of desktop 3D printers have been upgraded, has this critical feature remained frozen in time? Certainly the low cost and sourcing availability for these chips have been factors, but it is worth noting that they have remained in use because the technology has been sufficient for much of what the equipment was needed for. Rather than investing in new platforms and spending development dollars authoring new firmware and electronic strategies, many manufacturers have instead chosen to incorporate circuits from the Arduino ATmega 2560 series development boards, and similar, and continue to pull additional performance out of the older MCU chips included in these boards. Why does this work? Well, much of the path planning resources used in desktop 3D printing can lean on decades of tools from CNCs and other older automation systems that were created in an era when 8-bit was the standard choice, as a result, end users have tended to be happy enough. This however is starting to change, manufacturers are taking advantage of other options thanks to the rising popularity of Smoothieboard, Duet, Replicate, and other 32-bit microcontroller development boards. They make it easier to incorporate beefier MCUs into an electronics package, as well as permitting more processing power, wider data pipelines, advanced motion control features, such as look ahead planning, and interface upgrades, like driving full colored displays. With the Ultimaker 3 the role of the MCU has already evolved, while it still controls much of the timing and communications around the operation of the printer, it now plays a secondary role behind the Linux board, that really runs the show in that system. Story of Marlin, Marlin is one of the more popular open source 3D printer firmware projects. This project created by, and for, RepRap enthusiasts, launched in 2011 for RepRap and Ultimaker machines based around 8-bit Atmel AVR microcontrollers, in use in open source Arduino platform development boards. It still plays a major role in the field, while many vendors and hobbyists roll their own version of Marlin far from the original development trunk. It is also appropriate to say, as the Marlin's site claims, that Marlin drives most of the world's 3D printers. This project was derived from Sprinter and Grbl and remains actively developed on GitHub. Studying the features that have been added over the years and its expansion to new platforms, this is the perfect testament to why a community project, like desktop 3D printing, was able to advance so rapidly and with such impressive results.