3D Printing 101: Part 3: Electronics

Last modified: February 24, 2024

This week's 3D Printing 101 post focuses on the electronics aspect of 3D printers. The electronics required for motion control will be familiar to CNC machinists (but even that has a few new twists) and some other areas are unique to 3D filament extrusion printing.

3D Printing 101: Part 1: 3D Printer Basics

3D Printing 101: Part 2: Mechanics

3D Printing 101: Part 2a: Delta Robot Mechanics

>> 3D Printing 101: Part 3: Electronics

3D Printing 101: Part 4: Software

Electronic Subsystems

Although most 3D printing aficionados use the term "electronics" to refer to the hardware controller that operates the printer, for the purposes of this post I am using the term to refer to all electronic components necessary to operate a 3D printer.

The required electronic subsystems are:

and a few optional (but highly recommended) subsystems include:

Controller

The controller is really the heart of a 3D printer or CNC machine. With a few simple additions, standard CNC control solutions like Artsoft's Mach3 or Open Source LinuxCNC (aka EMC) with parallel-port based stepper hardware motor controllers like the popular Gecko G540 can be used to drive a 3D printer. The primary requirement is four axis motor control; three axes are required for X, Y and Z movement and the additional axis controls the filament extruder.

3D printers require a heater circuit to melt the filament in the print head, also called the hot end. Temperature control is unique to 3D printers so it is not surprising that off-the-shelf solutions for Mach or LinuxCNC based systems are not common and can be complex and expensive to add. A programatic controlled heater has advantages but it is not an absolute requirement. A simple manually controlled thermostat using a common thermistor to measure temperature and a high watt resistor as the heating element is inexpensive and effective. But, as you gain 3D printing experience you'll discover that control over other components like a heated build surface and fans is desirable. These devices can be controlled manually but programatic control is more convenient.

Enter the Arduino-based 3D Printer Controllers

In parallel to the RepRap 3D printer hardware project, the community latched on to the cross-platform Open Source Arduino hardware and software as the basis for a dedicated 3D printer controller. Arduino is a simple, but powerful, hardware architecture with built in I/O support for sensors, digital to analog convertors, analog to digital convertors and other features. Arduino includes a powerful IDE (integrated development environment) and a programming language that is very similar to "C". The development process for creating both software (i.e. firmware) and hardware extensions on Arduino is seamless and easy to master.

Several Open Source 3D printer controllers developed rapidly. Of these, the RAMPS - or RepRap Arduino Mega Pololu Shield - platform has gained widespread acceptance. RAMPS plugs on to a standard Arduino (add-on Arduino modules are called "shields") and provides control for up to 5 stepper motors, with three thermistor inputs, and three MOSFET outputs to control heaters and fans. It is also expandable to control other devices and interface to LCD displays and features replaceable stepper drivers. A RAMPS with an Arduino can be purchased pre-assembled for less than $200 and since these run Open Source firmware, there are no additional software costs. More recently, integrated designs like RAMBo (RepRap Arduino-compatable Mother Board) have emerged that offer lower prices and additional capabilities.

RAMPS on an Arduino

Wrapping Up

While it might be tempting to use traditional CNC controller hardware and software to power a 3D printer (in fact, this is how I got started), a general purpose solution for temperature and fan control is not available currently. A few hardy explorers have gone down this path (myself included) and soon realized that the capabilities and cost of an Arduino-based solution is pretty hard to beat - and there is a vibrant community offering support and help when you need it.

In the next post in the 3D Printing 101 series I'll discuss the software chain, including the firmware that runs on the Arduino-based controllers.

Be the first to know about updates at CNC Cookbook

Join our newsletter to get updates on what's next at CNC Cookbook.