Leif Christensen, William Forney, Ben Keppers, and William Schober
About the Project
The Recyclebot is a 3D printing filament extruder device capable of converting plastic to 3-D printing filament. The purpose of this project is to help reduce plastic waste by using recycled plastic to create 3D printer filament.
The overarching goal of this semester was to make recyclebot more automated. To achieve this we chose goals that are oriented around monitoring filament diameter and controlling all motors through the arduino. Our recyclebot is modified from this repository, so all parts are the same as in that repository unless otherwise stated. Code, schematics, and CAD files for our modifications are in this repository.
Our Goals this Semester:
- The entire device will have design files originated entirely from free and open source software
- We used KiCad, OpenSCAD, and Inventor to create design files. While Inventor isn’t open source, we exported files in an open source format.
- The device shall be able to accurately sense the diameter of the filament
- We built the InFiDEL diameter sensor to replace the old light-based diameter sensor. Design files for this diameter sensor can be found here: https://github.com/drspangle/infidel-sensor.
- This diameter sensor is significantly cheaper than the light-based diameter sensor previously used, and it uses standard, readily available components.
- We did slightly modify this design. Instead of building the microcontroller board that attaches to the diameter sensor we wired the output pin of the hall effect sensor directly to the arduino. This eliminates a large amount of unnecessary complexity.
- We incorporated the code from this project into the main recyclebot code to take readings from the diameter sensor.
- The device will be able to control the speed of all of its motors through its microcontroller board
- To achieve this goal we’re using the Adafruit Motor Shield V2 from Adafruit. This board allows us to directly control four motors from the arduino. It also provides some prototyping space that we used to add a fan controller and resistor for reading a thermistor. These modifications are reflected in the schematic in our OSF repository, and are as shown below.
- The device shall have a means of automatically adjusting motor speed to ensure a consistent filament diameter
- This is one goal that we haven’t met this semester. While we have all the components necessary to complete this goal we ran out of time to develop a speed control program to complete this goal.
- The device shall be capable of winding produced filament onto a spool
- Previously we’ve had issues with the filament winding guide getting stuck on either end of its travel because its direction is controlled directly by the switch. The motor is stopped when the switch is changing position, leading to the switch not making it to its other position. We solved this issue by connecting the switch to the arduino and having the arduino control the guide motor direction.
- The device shall have embedded features for cable management
- We’re using the Wiring Loom Mounts from the original recyclebot project for cable management, along with wire covers.
Our Value-Added Goals:
- The device will have an enclosure for the electronics
- This goal has been completed. A 3d-printable enclosure was designed and printed for the electronics.
- The device will have a user interface that displays basic extrusion statistics
- This goal has been completed. Recyclebot displays the puller and auger motor speeds along with the nozzle temperature and filament diameter.
- The device can be controlled through the user interface
- Our current version of recyclebot has few mechanisms through which the user can control the extruding process. That being said, much of our goal this semester has been to automate recyclebot. Currently recyclebot will automatically start once it gets up to temperature, and it will automatically control motor speeds according to parameters in the code. A possible future goal could be to allow the user to modify these parameters with the button/encoder on the enclosure.
- The device will have heating control integrated with the program interface
- Currently we have an industrial heater controller heating the extruder. This works well, but it’s not open source and it’s somewhat expensive. This semester we added a thermocouple to the arduino board as a step towards this goal.
- The device will be able to create commercial grade filament
- This is the end goal of recyclebot. We haven’t achieved this this semester, but we hope that eventually the recyclebot team gets recyclebot to a point where it can create high quality filament.
We’ve also revamped the cooling situation. Previously we’ve had issues with filament quality because it was cooling too fast. We got rid of the cooling trough and replaced it with ducted fans on mounts designed in OpenSCAD.
Finally, we needed some new belts, so we designed some belts in OpenSCAD and printed them out in TPU.
When building recyclebot the two circuits below must be build in the prototyping space on the motor shield. We found there to be plenty of room to fit both of these circuits. for connectors, we used generic screw terminals.
The table below has all of the pin connections we used. For the most part these are arbitrary, and can be set to anything as long as they’re updated in the code. We used an arduino Mega because that’s what we had, but an arduino uno should work fine as well.
|Extruder||Motor 3||Motor Shield Terminals|
|Puller||Motor 2||Motor Shield Terminals|
|Guide||Motor 1||Motor Shield Terminals|
|Spooler||Motor 4||Motor Shield Terminals|
|Fan||Fan Terminals||Controlled by PWM 0 on motor shield.|
|LCD||Motor Shield I2C||Address 0x27|
|Thermistor||Thermistor Terminals||Read by Arduino pin A0|
|Diameter Sensor||A3||Out pin of hall effect sensor|
|Guide Switch A||51||One pin of guide switch|
|Guide Switch B||53||Other pin of guide switch|
|Recyclebot V6 OSF Repository||https://osf.io/hm5ka/|
|Original Recyclebot OSF Repository||https://osf.io/9hsmb/|
|Diameter Sensor Repository||https://github.com/drspangle/infidel-sensor|