Prunt Board 3 is a 3D printer control board for enthusiasts who want to achieve levels of performance from their printer that are not attainable with existing motion controllers. Our completely new motion control system (named Prunt) outputs motion commands that are smoother than even s-curve motion controllers and uses hardware acceleration to execute motion plans precisely, achieving a large reduction in ringing artefacts in prints and reduced component wear compared to other systems. Additionally our hardware is significantly more robust than any other hardware on the market that we are aware of with protection against electrical shorts between most pins and protection against large ESD events from wires rubbing together that can easily cause damage to stepper drivers on other boards. On top of these core features that are not available elsewhere we have also implemented various smaller features to make using our system a more pleasant experience, such as completely automated firmware updates and the replacement of cumbersome configuration files with a simple GUI. Finally if you find that our software does not fit your usecase then our hardware is capable of running Klipper without having to reflash the firmware and with some additional safety features that prevent an erroneous configuration from damaging the board.
This will soon be available for purchase from CrowdSupply: https://www.crowdsupply.com/prunt-3d/prunt-board-3
The complete source code for the motion control system is available on GitHub: https://github.com/orgs/Prunt3D/repositories
Feature Overview
Hardware
- 6× TMC2240 stepper drivers, all capable of running at 3A with minimal airflow.
- 2× 15A heater outputs with short circuit protection. This is true short circuit protection that will prevent any damage to the board, as opposed to fuses on other boards that will stop a fire but will leave the board damaged.
- 4× fan outputs, supporting 2, 3, and 4 pin fans, all up to 2A with short circuit protection.
- 4× thermistor inputs supporting PT1000 and most common NTC thermistors with protection against shorts to other wires, including heaters.
- 4× endstop inputs with protection against shorts to other wires.
- Fully isolated USB to protect upstream devices.
- Hardware powered step generation for precise timings and step rates that are only limited by the TMC2240 inputs.
- Hardware counters for high-speed fan tachometers.
- Robust ESD protection, this is especially useful in a 3D printer where wires rubbing together can easily generate an ESD event that destroys a stepper driver.
- Buffered thermistor inputs to reduce noise and increase maximum ADC sample rate.
Software
- Fail-safe firmware updates, eliminating the need to ever install a jumper.
- Corner blending with user defined deviation with a higher order of continuity than arcs produced by slicers.
- Constrained and independently adjustable velocity, acceleration, jerk, snap, and crackle for smoother printing.
- Pinout data provided by the board to eliminate the need to edit pin mappings in a configuration file.
- Built-in GUI for configuration editing without the need to ever edit configuration files directly.
- Safer and faster homing by defining maximum overshoot distance instead of speed.
Smooth Motion Planning
G⁴ Motion Profiles
Most popular 3D printer motion controllers (Klipper, Marlin, and RepRapFirmware) only support up to 3-phase G¹ tangential motion profiles, meaning a trapezoidal velocity curve where acceleration is always either zero or the maximum allowed acceleration. This is a problem because an object in the real world simply can not instantly change its acceleration and trying to do make the motors in a 3D printer do so results in vibrations which introduce ringing artifacts in to prints and cause additional wear on components. Some commercial or more obscure open-source motion controllers address this by making the acceleration trapezoidal rather than rectangular, resulting in a 7-phase "s-curve" velocity profile, but even here what we have is still not a motion that is physically possible, just a motion that is much closer to being so. Prunt goes another 2 steps beyond this by making the 4th derivative of acceleration in to a rectangular wave, resulting in a 31-phase velocity profile with significantly smoother motion.
To help visualize this, we have created plots of velocity and its first 4 derivatives with 3-phase, 7-phase, and 31-phase profiles. Note that all of these were created in Prunt as Prunt allows for setting tangential limits for each derivative individually, allowing for emulation of other motion controllers by just changing a few parameters in the GUI.
3-Phase (Klipper/Marlin):

7-Phase ("S-Curve"):

31-Phase (Prunt):

Corner Smoothing
If you are familiar with some of the more advanced configuration options in Klipper and Marlin then you may be aware that both go through corners at a non-zero tangential velocity to reduce print times as stopping at every corner would be very slow. This means that a short period of infinite axial acceleration is introduced at every corner, rendering our very smooth tangential velocities very useless. We of course have a solution to this, but let's start by looking at what Klipper and Marlin corners look like on a plot so we can see the difference later. On the below plot the X and Y axes are shown in blue and orange respectively.

A solution to this problem that may seem obvious is to just turn the corners in to arcs. Most slicers have added an option to do that over the last few years. Let's take a look at how that looks on the same plot as before:

Clearly this is a good solution for Klipper and Marlin as it prevents the aforementioned issues with infinite axial acceleration, but it could be better if we could limit the axial jerk, snap, and crackle as we do for their tangential counterparts. This is a problem that can be solved and we have solved it in Prunt with the use of a degree-15 Bézier curve. We will avoid going in to the technical details here and will instead just show you the plot to compare to the regular arc blending shown above. It is also notable that our corner blending is built directly in to our control system so there is no need to make use of a special slicer.

Hardware Acceleration
Klipper and Marlin both entirely rely on software to generate step signals at appropriate times. This works but it introduces jitter in to the signals as the software is also trying to do many other things, it's also one cause of the "timer too close" errors in Klipper that you can find hundreds of reports of with a web search and may have even experienced yourself. Prunt does better than Klipper or Marlin by offloading all step generation to hardware timers which generate step and direction signals precisely based off a 1.2 GHz master clock. Aside from being more precise, this usage of hardware timers also makes our hardware more reliable as the CPU load does not change based on the step rate. Other inputs and outputs, including heaters, fan PWM outputs, fan tachometer inputs, and thermistor inputs are all also offloaded to hardware, allowing for high output or sampling rates without ever causing extra CPU load.
Built-in GUI
Prunt contains a GUI for controlling the printer and editing all settings. This eliminates the need to edit configuration files by hand. Below is an excerpt of the GUI:

Robust protection
Besides producing better prints, Prunt Board 3 is also the most robust 3D printing control board on the market. You can short-circuit a heater, and our board will detect the short and shut off the heater power within 2 microseconds. You can short a thermistor to a heater, and not only will no damage occur, but our board will detect and report it. You can short the wires of a fan, and once again, our board will detect and report it. If you somehow manage to damage the board (perhaps by shorting mains voltage to it from a loose wire, which we recommend you avoid), the USB port is electrically isolated, so your PC or Raspberry Pi won’t be damaged. These are just some of the many protections available on our hardware to make your printer safer and more reliable.