Hi everyone! Here are the GBX R&D updates from the past month:
HID Global rPC Testing
Continued testing with HID Global’s rPC flake with the Crammer reached a stopping point due to a limitation with the Crammer: to date, there is no mechanism to finely control the rate of the crammer motor in relation to the pellet extruder (see last month’s forum post). The rate could be coarsely controlled in powers of two via microstepping, which involves adding or removing jumper pins on the 3D printer’s board. This was how the crammer motor’s rate was previously configured to 8 microsteps/steps for printing rPET water bottle flake. However, this rate was too high for printing with HID Global rPC flake, which has a higher bulk density compared to rPET flake, and after 30 minutes of printing, the HID Global rPC jammed at the extruder inlet because it was being crammed into the extruder at a higher rate than it was being convey further down into the extruder.
Increasing the number of microsteps to 16 microsteps/step prevented the eventual jamming, but at that rate, the crammer motor was cramming material into the extruder at a slower rate than the extruder was extruding the material, resulting in starve feeding conditions. This caused varying rates of underextrusion, resulting in perimeter walls that varied between 1.2 and 2.1mm for an expected wall width of 2.1mm. The width of the first layers varied depending on whether the extruder was purged with extra revolutions of the crammer motor in relation to the pellet extruder motor, and the width decreased throughout the print.
The Crammer motor’s movements are synchronized with the pellet extruder motor via ditto printing, or Marlin’s Dual Nozzle Duplication Mode. The benefit of this configuration is that the crammer motor’s RPM will slow and speed up in relation to the pellet extruder motor as the main motor’s speed varies throughout a print. However, testing revealed that using ditto printing bypasses the DISTINCT_E_FACTORS definition in Marlin, which usually controls the calibrated steps/mm for different extruder motors.
Ideally, a gcode command would set the relative RPM rate of the Crammer motor to optimize the Crammer RPM per material, preventing both compacting and underfeeding. To test this, a custom gcode command was created in Marlin_main.cpp. In theory, this gcode command can be called in a print’s starting gcode to set the crammer motor’s relative rate for each print or material.
The custom gcode command collects a value that can then be used in stepper_indirection.cpp, where the ditto printing code takes the commands sent to E0 (the pellet extruder motor) and copies them to E1 (the crammer motor). However, this file is not in the same scope as Marlin_main.cpp, resulting in compiling errors.
This kind of custom code is more complex than the types of customizations the re:3D usually attempts, and our software developer went home for the holidays. Therefore, work on the Crammer was paused, and work pivoted to testing the rPC HID Global flake with a vibration motor. For more information on the feed throat design with the vibration motor, see the next section.
The vibration motor was powered with an adapter that could vary the voltage output between 3 and 12 volts. With the vibration motor installed, the HID Global rPC flake did not flow through the feed throat until the supplied voltage was at least 7.5V. At that voltage, the Gigabot X was able to print 8 test prints that were about 20 minutes of print time each.
A 2 hour print was attempted, but had a period of underextrusion after about 1.5 hours of printing due material getting temporarily stuck in the feed throat. Subsequent prints were printed with the vibration motor supplied with 9V, and similar failures have not occurred for 2 hour prints.
So far, plant pots, plant pot saucers, and coral models have been printed from the HID Global rPC in combination with the vibration motor. The first few test models were given to the Habitat for Humanity Re:Store in Austin, TX to be included in their silent auction, for which the opening bid for 3 plant pots was $75.
The printing parameters for the planters were input into re:3D’s quote tool to estimate their sales cost based on material, print time, labor, and other factors. A single planter is $103 each if standard setup time is included (2 hours to purge to that material). However, if the extruder is already loaded with the material and the setup time is only 0.5hrs, one planter is $28. The price per planter further decreases if printed in batches: the maximum batch size for a regular GBX is 3 since it's in vase mode and needs to print sequentially. A batch of 3 planters is $33, so $11 each. In summary, they become a lot cheaper if they are printed with a dedicated GBX and in batches, since labor is by far the biggest cost contributor.
A 3D scanned model of a coral was also printed with the HID Global rPC. Coral models are popular prints for our Puerto Rican partners for use with coral reef restoration. The below print was printed hollow and with two perimeters, and it took about 2 hours to print.
The next step is to print models with increasingly longer print times to verify the reliability of the vibration motor with the HID Global rPC flake.
In October 2020, a version of the feed throat was created with a mount for a vibration motor, to be used with feedstock material that had difficulty flowing through the Gigabot X feeding system (feed hose, feed throat, extruder body). The vibration motor was revisited due to difficulties printing rPC regrind of HID Global. The newest update of the vibration motor feed throat incorporates all the updates to the feed throat that have occurred since the last version with a vibration motor.
The other update to the vibration motor was integrating it into the Gigabot X electronics system. Previously, the vibration motor was controlled by a separate power cable that was manually turned on and off at the beginning and end of a print. This was accomplished by connecting the vibration DC motor to one of the heater/fan pins on the Gigabot X’s Azteeg X3 Pro board, since those pins can produce an output of 24V, and the average voltage can be controlled through pulse width modulation via gcode. In other words, the RPM and therefore the vibration strength of the vibration motor can be controlled by setting a value via gcode.
The vibration motor pin was assigned in the Gigabot X firmware and uploaded to an in-house GBX. Once the motor was wired to the board, it was controlled by the M106 gcode command. This command typically controls a variable speed fan, but the vibration motor functions similarly by adjusting its RPM based on the supplied voltage. The M106 gcode was added to the start and stop gcode in Simplify3D so the vibration motor automatically starts at the beginning of a print and turns off at the end of the print.
This configuration was tested with a 1 hour planter test print, and the vibration motor successfully turned on and off when expected. Now that the vibration motor is more integrated into Gigabot X, it is a more reliable tool to use in conjunction with any material with flow issues that don’t work well with the Crammer or the standard feed throat.
Knowledge Base Articles
A couple of new GBX-related articles have been added to the Knowledge Base in the past month: