The Proper printer controller, or PPC for short, is a program which can control 3D printers running Marlin (like Creality’s printers). This utilizes the Marlin Instrument Drivers for LabVIEW and the goal of this software is to make a platform for controlling and testing 3D printers and make custom applications. LabVIEW is a graphical programming environment often used for controlling instruments. LabVIEW has got a community edition which can be downloaded for free for personal use. The LabVIEW source code can be downloaded from GitHub https://github.com/properprinting/PPC
PROPER PRINTING PROVIDES THE SOFTWARE TO YOU “AS IS” AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, STATUTORY, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION ANY WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR INFRINGEMENT. NO ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN TO YOU BY ANY PROPER PRINTING EMPLOYEE, REPRESENTATIVE OR DISTRIBUTOR WILL CREATE A WARRANTY FOR THE SOFTWARE, AND YOU MAY NOT RELY ON ANY SUCH INFORMATION OR ADVICE.
On a less formal note: This software enables actions which have the potential to do damage, like starting a torture test while it is printing. Don’t hold me responsible when you destroy your printer or set your house on fire.
Here is the video I’ve made which shows the software and some background information:
In order to use the binary package the LabVIEW Runtime Engine is required. Once this is installed the .exe file can be started. It’s recommended to locate the folder containing the .exe file in a folder with write permissions (e.g. C:/PPC or My Documents). This way the new printers can be stored in the config.ini file.
The LabVIEW project can be placed in your LabVIEW project folder. I’ve made a folder located at: ./My Documents/LabVIEW Data/Projects. The project is basic and contains one main VI called main.vi. This VI is built with a simplified version of the Queued Message Handler which is a combination of the producer/consumer and event handler architectures. This requires LabVIEW knowledge and it’s recommended to take a look at the more basic examples provided with the Marlin Instrument Driver package if you are not familiar with LabVIEW. I have used subdiagram labels to explain what is going on within the structure itself.
The PPC contains several tabs with dedicated functions.
The settings tab is selected automatically at startup so you can select the connected printer. The printer can be selected using the drop-down menu after which the parameters appear. These parameters are the X,Y and Z build volume and the connected COM port. In order for a COM port to appear you will need to install two drivers:
If the drivers are installed properly and the printer is connected you should be able to select a COM port from the second drop-down menu. After the proper COM port is selected and the Initialize button is pressed, the Initialized indicator will light up after successful initialization. Now it’s possible to control your printer!
It is possible to add new printers by typing a custom name in the 3D printer drop-down menu. Once the safe button is pressed, the new or modified printer is saved to the configuration file. A printer can be deleted using the delete button.
Machine control tab
The Machine control tab is the first tab and can be used for manual movement and setting the temperatures. It is possible to move diagonally with this interface and to home the Z axle separate from the X and Y. This is useful for bed leveling.
Machine monitoring tab
The Machine monitoring tab is used to show the temperature chart and endstop statuses. The temperature chart shows the set and actual temperatures of the bed and hotend. I did not have a Marlin printer with a heated chamber so this will be a future feature. By default this is not running because this can slow down the communication. This can result in short pauses during printing or torture testing.
Run Gcode tab
The run Gcode tab runs the selected Gcode. If the Test mode control is selected it can run a simulated Gcode without sending the commands to the printer. This can be done without having to initialize the printer. The current position is shown in real time in the X,Y plot and resets at every Z movement. The Gcode can be paused and the tool head will move up 5mm. From this point it is possible to move the tool manually using the Machine control tab. After the pause button is pressed again it goes back where it has left off and continues from that point. The Gcode will stop if it has ended or the Stop button is pressed and confirmed.
Torture testing tab
The Torture testing tab will move the selected axle back and forth over the set distance at the set speed from the center of the bed. The center of the bed is determined by the printer settings in the Settings tab. After the Start button is pressed, the printer will home, go to the center of the bed and start moving back and forth. This can be used to test the durability of the printer and to find resonance frequencies. The resonance frequencies will be found at very low distances <2mm. The speed has no impact at this point. Be aware that this can literally torture your machine and test its limits. Use this function with caution at your own risk!