Features

Features

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:

Homing settings.Homing method for this axis. Usually "Set to value" should be used for E axis and "Use inputswitch" should be used for XYZ. The selected tab when the save button is pressed is theoption that will be used.Move towards a switch until it is hit, then back off, then move towards it slower and recordthe position.SwitchInput switch to use.X_AXISMove towards negative infinityIf set then homing will move towards lower positions, otherwise homing will move towardshigher positions.First move distanceDistance past switch hit point allowed in first seeking move. (Units: mm)0.1Back off move distanceDistance that is moved back after the switch is first hit. (Units: mm)2Second move distanceDistance past switch hit point allowed in second seeking move. (Units: mm)0.1Switch positionPosition of the switch on the axis. This value is allowed to be outside of the machine limits.(Units: mm)0StatusConfigurationG-Code ConsoleFilesLogPruntSteppersKinematicsInput switchesThermistorsHeatersHomingFansInput shapingG-code assignmentsX_AXISY_AXISZ_AXISE_AXISDisabledSet to valueUse input switch

Advanced Corner Blending

Prunt is capable of blending corners using Pythagorean-Hodograph splines with G⁴ continuity. This has multiple benefits:

  • Improved print quality: Common print defects such as surface irregularities, resonance artifacts like ringing, and overshooting at corners are greatly reduced.
  • Reduced mechanical stress: The elimination of instantaneous changes in acceleration, jerk, and snap commanded by the motion planner reduces the stress placed on belts and bearings, likely resulting in longer service life.
  • Better high-speed performance: Blended corners that better model the real motion of the printer allow for higher performance tuning of parameters.
  • Enhanced pressure advance: Pressure advance reduces the continuity of extruder motion profile by one level, which usually means that smoothing is required. With the combination of Prunt’s G⁴ paths and motion profiles, no smoothing is required if the pressure advance time is low enough to not cause excessive load.

G⁴ Continuity

Prunt uses a corner blending algorithm that results in paths with G⁴ continuity, whereas most other 3D printer only supports G¹ path continuity and only with external processing of the g-code before printing. Continuity refers to how smooth a path is as it transitions between different segments. In the context of 3D printers, continuity impacts how smooth the motion is as the print head moves through corners and changes direction. The various levels of continuity are defined as follows:

  • G⁰ continuity: A path with G⁰ continuity is one where segments are connected; there is no gap between the endpoints of two consecutive segments. However, there can be sharp changes in direction at the corners.
  • G¹ continuity: In addition to being connected at the endpoints (G⁰), G¹ paths have a first derivative that is also continuous. G¹ continuity implies that the velocity vector does not change abruptly between segments. G¹ continuity is most commonly achieved by replacing sharp corners with circular arc segments tangent to the two lines that form the corner. G¹ continuity results in smoother transitions at the corners but does not eliminate sudden changes in acceleration, which can still affect print quality.
  • G² continuity: Paths with G² continuity have continuous second derivatives, meaning that the acceleration is continuous across transitions between segments, providing much smoother motion through corners.
  • G³ continuity: In addition to the previous constraints, G³ paths have continuous third derivatives, meaning that jerk (the rate of change of acceleration) is continuous. Improvements to print quality at this point are minor. However, the extra computational cost is minor so Prunt provides this and the next level of continuity despite that.
  • G⁴ continuity: In addition to the previous constraints, G⁴ paths have continuous fourth derivatives, meaning that snap (the rate of change of jerk) is continuous. As with G³ continuity, improvements to print quality are minor. Using G⁴ continuity also allows for pressure advance profiles to have G³ continuity without smoothing.

The below two images show a comparison of circular arc blending as generated by slicers and post-processing tools and the G⁴ blending used by Prunt. The X and Y axis values are shown in red and green.

  • Circular arc blending:

  • Prunt corner blending:

Adjustable Corner Deviation

In addition to blending corners, Prunt also allows for precise control over the maximum deviation of the blended path from the original path. This value can be changed in g-code during a print to control how sharp any given corner will be.

Advanced Motion Profiles

Prunt generates 31-phase motion profiles with G⁴ tangential continuity with individually adjustable velocity, acceleration, jerk, snap, and crackle limits. Most other popular 3D printer motion controllers only support up to G¹ (3-phase trapezoidal) or G² (7-phase s-curve) motion profiles.

These profiles take into account the curvature of blended corners and limit the axial acceleration, jerk, snap, and crackle accordingly. Prunt allows the user to define the tangential limits and allows the axial values to reach approximately double these except on very small corners where the values may be further exceeded. This decision was made so that parameters in Prunt result in print times similar to other motion controllers.

Below is an example of the acceleration stage (first 15 phases) of a Prunt motion profile:

Pressure Advance

Prunt supports pressure advance in the same way as other motion controllers. The G⁴ continuity of Prunt motion profiles means that pressure advance without smoothing does not generate instantaneous changes in velocity, acceleration, or jerk.

Safer and Faster Homing

Instead of setting a homing speed, Prunt allows the user to specify the maximum distance that the axis is allowed to move after the homing switch is hit. This parameter is used to compute the maximum velocity under the given kinematic constraints, leading to homing being as fast as possible while also never moving past the maximum allowed travel distance of the switch.

Vendor Supplied Pin Mappings

Prunt allows the vendor of a board to handle pin mappings. This eliminates the need to look up what MCU pins are connected to and instead allows the user to directly use the names printed on the board.

Automatic Firmware Upgrades

Prunt provides the capability for board vendors to perform upgrades at startup after confirmation from the user, without the need to install a jumper on the board. This feature is available on all official Prunt hardware.

Single Portable Executable

Prunt allows for the creation of a single executable with minimal dependencies (libc and libm). The user does not need to worry about having a specific Python environment or similar. This executable contains the web server and it is possible for a hardware vendor to include firmware update files within the executable, which all official Prunt hardware does.

Multi-Threading

Prunt makes use of multiple threads and allows tasks to be assigned to specific CPUs. Notably, the step generation task is carefully designed to never stall during motion to increase reliability:

  • The printer will always have events queued to come to a complete stop before the step generator task performs any potentially blocking operations.
  • All computations performed within the step generation loop take approximately constant time.
  • Position targets are generated at fixed time deltas, and actual step generation is offloaded to hardware.

All other tasks may be stopped for long periods of time without causing any errors.

High-Level API for Hardware Vendors

Prunt provides a high-level API for implementing new devices. This API makes no assumptions about the types of motors used, the communication protocol, or the communication latency, allowing unconventional hardware to easily use Prunt.