Improving motion control in a bipolar printer

Sculpto – user friendly 3D printing for kids, school and leisure. No expert knowledge needed to use the Sculpto-printer. You can control it with your smartphone. Danish start-up company Sculpto makes 3D printing available for children, teachers and others. Developers from the Danish consulting company TechPeople, owned by Data Respons, have assisted Sculpto in developing a new, improved version of the printer.

Sculpto 3D printerSimon Breum Fisker and Jacob Lindeberg launched their Sculpto printer in 2016, and September 2017 they released a new, improved model called Sculpto+. The new printer is quicker and quieter. Also, a new “print engine” makes it even easier to find models on the internet, e.g. on thingiverse.com and print them directly from your phone.

But although extremely user friendly the machine is highly sophisticated as both the arm and the bed move in a polar coordinate system. For the Sculpto+, TechPeople applied some advanced printer engine control software, up until now only used in a few expensive high-end printers. Also TechPeople consultants improved the original PCB layout.

Sophisticated device

The Sculpto+, though fairly cheap, user friendly and brightly coloured, it is a sophisticated little device. Developers from TechPeople have assisted Sculpto, among other things doing a PCB layout review. TechPeople’s review expert made a number of recommendations for improvements. The new layout has eliminated engine noise. Now you can only hear a faint humming from the printer fan.

TechPeople also applied new printer engine control software. The control software makes acceleration and deceleration softer, resulting in higher speed and precision.

An improved motion control algorithm was developed and implemented for the printer. The algorithm ensures controlled acceleration of the printer’s stepper motors and a smooth print pace. There were two major challenges regarding motion control for the 3D printer that needed to be considered.

Simon Breum Fisker and Jacob Lindeberg, from Sculpto

Simon Breum Fisker and Jacob Lindeberg, from Sculpto

Physical movement

The first challenge was the physical movement of the print head and print plate. Due to the bipolar nature of the printer, the print plate is required to rotate with a speed that is dependent on print-head distance from center of the plate. Otherwise, the print-head will not keep a constant pace when moving across the print plate in a straight line. The constant pace is required to get a good print result.

The challenge is that this requires the print plate stepper motor to accelerate and decelerate quickly when crossing near the print plate center in order to turn the plate 180 degrees quickly, so that the print head can maintain a constant pace all the way across the plate.

Another issue related to physical movement of the print head is, that when it needs to change direction, this should be done as quickly as possible to avoid stopping too long at the same location and thus leaving too much print material in the edges of the print. Meanwhile, it is critical not to accelerate too fast because otherwise the stepper motors risk skipping steps with the result that the coordinate system of the 3D print becomes shifted in the middle and thus the print cannot be used.

Motion planning

The second challenge was motion planning based on a stream of print commands known as CNC g-codes. This means that the motion controller at any time only knows about a small part of the complete path for the 3D print.

Even with this limited information, the printer is required to keep a smooth pace by constantly updating its planning ahead route, in order for print material to be extruded in smooth layers. If the print-head at any time stops even for a short while, it will leave too much print material on the stopping location resulting in bumpy prints. The challenge here was that a lot of mathematics needed to be defined, so that print speed can be maximized while the motion is kept within several different constraints on speed and acceleration.

Improved motion control

The solution for improved motion control consists of two major updates as well as a number of minor updates for stability, configuration, test and debug possibilities. The major updates are an updated motion planner algorithm that is based on constant jerk motion (jerk is the derivative of acceleration) and a stepper motor control that supports constant jerk motion and the microstepping step drivers used in the Sculpto printer.

The motion planner algorithm implements constant jerk motion governed by classical constant acceleration motion equations expanded to the constant jerk case. The equation that forms basis for all the optimization formulas derived and implemented in the motion planner is:

formula

where,

s = distance
v = velocity
a = acceleration
j = jerk
t = time

Movement using constant jerk involves up to 7 steps in the motion as seen below.

* Source: https://www.controleng.ca/servosoft/SSHelp1033/source/MotionProfile.htm

Furthermore, the planner needs to handle cases where it is not possible to achieve maximum defined acceleration or velocity for each axis. These cases arise when the motion is limited either by total distance of movement or the dynamic velocity constraint. The dynamic velocity constraint is caused by 4-axis motion on the printer where each axis has an independent maximum velocity and acceleration since the overall movement needs to follow point-to-point print commands.

Updated stepper motor control

The updated stepper motor control supports constant jerk motion instead of the previously used constant acceleration motion. This pushed the microcontroller used in Sculpto closer to the limits, since the requirement for the solution was to use the existing microcontroller due to hardware cost considerations. Both memory and CPU resources was restricted.

A solution was implemented that found a compromise between memory usage by the pre-calculated stepper timings during motion planning and CPU load in the on-the-fly calculations during the 50 kHz stepper update interrupt routine. Furthermore, some of the calculations were converted from 32-bit fixed point to 64-bit fixed point in order to achieve the computation precision required by constant jerk motion equations.

Smoother and faster

All in all the software update enabled the Sculpto printer to use smoother and faster motions during printing, while keeping within the limits of their existing microcontroller. As a bonus Sculpto got access to and knowledge about more commands and settings in the internal motion controller. This enabled them to continue optimizing the printer settings and constraints as they see fit, even after the software update was completed.

About Sculpto

All in all the software update enabled the Sculpto printer to use smoother and faster motions during printing, while keeping within the limits of their existing microcontroller. As a bonus Sculpto got access to and knowledge about more commands and settings in the internal motion controller. This enabled them to continue optimizing the printer settings and constraints as they see fit, even after the software update was completed.

Affordability and user friendliness

– 3D printing has a huge potential. But the typical printer is big, heavy and difficult to operate, say Simon Breum Fisker and Jacob Lindeberg, who founded Sculpto in 2015.

– We decided to develop a printer that was cheap, compact and user friendly. In particular we wanted to simplify the steps you have to go through from designing a model to actually printing it. That was really complicated and required a lot of technical knowledge. We wanted to automate that as much as possible and open up 3D printing to a much bigger group of users.

When Simon Breum Fisker and Jacob Lindeberg set out to develop the Sculpto printer, they decided to focus on the two aspects that they saw as the major barriers to 3D printing becoming a commodity: price and user friendliness.

– We took the printer control board and transformed it to the screen the user carries in his pocket – his smartphone. We developed an app for controlling the printer wirelessly. In that way we can continuously add value to our customers through the app and through online updates of the printer.

– Also, we chose bipolar printing because it makes the printer look nicer and more accessible. A bipolar printer extrudes the plastic at the intersection point of two circles, as opposed to a cartesian coordinate system, where the plastic is extruded at the intersection point of two straight lines.