Welcome to the ultimate beginner’s guide to recycling PET bottles into 3D printer filament! Whether you’re a seasoned DIYer, or an eco-conscious tinkerer, this project is your ticket to sustainable, low-cost 3D printing. At WTC Zone, we’ve broken down this eco-friendly journey into simple steps, cutting PET bottles into strips, controlling extruder temperature, managing filament pulling speed, and assembling the full machine. Follow our tutorials, watch our videos, and join the recycling revolution!
Why This Rocks: Turn plastic bottle waste into 1.75mm filament for your 3D printer, save $$$, and help the planet. Perfect for hobbyists, students, and anyone who loves hands-on projects!
What You’ll Learn
This guide covers the entire process of building a DIY Filament Making Machine (FMM):
- Cut PET Bottles into Strips: Create adjustable-width strips using a manual cutter.
- Control Extruder Temperature: Build an Arduino-based circuit to Soften PET strips at 230–270°C.
- Adjust Filament Pulling Speed: Use a stepper motor and potentiometer for precise control.
- Assemble the Filament Machine: Combine components for a complete setup.
End Goal: Produce high-quality 3D printer filament from recycled PET bottles, ready for your next print!
Why This Project Is Awesome
- Eco-Friendly: Repurpose plastic bottle waste into useful filament, reducing landfill impact.
- Budget-Friendly: Costs ~$50–100 in parts, saving hundreds compared to commercial filament.
- Beginner-Friendly: No advanced skills needed—just basic tools and enthusiasm.
- Customizable: Adjust strip width, temperature, and speed to suit your 3D printer.
- Engaging: Fun and clear for older makers (step-by-step clarity).
Step-by-Step Tutorials
We’ve created detailed blog posts and YouTube videos for each part of the project. Follow these to build your filament machine from scratch!
1. Make a PET Bottle Strip Cutter
What: Build a manual cutter to slice PET bottles into 3–15mm strips for filament extrusion.
Why: Clean, consistent strips are key for smooth filament production.
How:
- Use an M8 bolt, nuts, bearings, and a hex saw to create an adjustable cutting tool.
- Pull bottles through the cutter for precise strips, no electricity needed!
- 3D Parts Link is Here : - All the 3D-Print-Ready Parts
- Blog: Make Your Own PET Bottle Strip Cutter (Adjustable Width)
- Videos:
- Preparing PET Bottles to PET Strips/Cutting
- PET Bottle Cutter
Pro Tip: Experiment with strip widths (e.g., 6mm) for your extruder setup.
Formula for PET Bottle Strip Cutting for 1.75mm Filament
The formula is derived from volume conservation during extrusion: the cross-sectional area of the input PET strip should roughly match the area of the output filament, assuming minimal material loss and no stretching (adjust in practice based on pulling speed and extruder design).
Formula:
W = [Ï€ × (D/2)²] / T
- W: Strip width (mm)
- D: Filament diameter = 1.75 mm
- T: PET bottle wall thickness (mm, typically 0.20–0.50 mm; measure with a caliper)
Filament cross-section area = Ï€ × (0.875)² ≈ 2.405 mm²
Practical Tips:
- Add 10–20% to W for material loss or compression (e.g., if W = 8 mm, try 9–10 mm).
- Test with your extruder: Slower pulling = thicker filament; faster = thinner.
- Bottle thickness varies (e.g., soda bottles ~0.30 mm); cut test strips and extrude to fine-tune.
Chart: Bottle Thickness vs. Recommended Strip Width
Bottle Thickness (T) | Recommended Strip Width (W) |
---|---|
0.20 mm | 12.03 mm |
0.25 mm | 9.62 mm |
0.30 mm | 8.02 mm |
0.35 mm | 6.87 mm |
0.40 mm | 6.01 mm |
0.45 mm | 5.35 mm |
0.50 mm | 4.81 mm |
Notes on Chart:
- Based on exact volume match; adjust +10–20% for real-world extrusion.
- For accurate 1.75mm filament, use a nozzle ~2–3mm and control pulling speed.
- Source: Derived from standard extrusion principles; test for your setup.
2. Build an Extruder Temperature Controller
What: Create an Arduino-based circuit to control the extruder’s temperature for melting PET strips.
Why: Precise temperature (230–270°C) ensures PET get soften into smooth filament.
How:
- Use an Arduino Nano, 70kΩ thermistor, 12V heater, IRF520 MOSFET, I2C LCD, and 100kΩ potentiometer.
- Program the Arduino to read temperature, adjust the heater, and display readings.
- Blog: Make Your Own Extruder Temperature Controller
- Video: Making the Extruder Nozzle for My Filament Machine
Pro Tip: Add a 0.1µF capacitor on A0 to reduce noise if LCD shows incorrect temperatures (e.g., 9°C at room temp).
Code for the Circuit
The provided code was designed for a 10kΩ thermistor, but your extruder uses a 70kΩ thermistor. Below is the corrected code, adjusted for:
- 70kΩ thermistor (NOMINAL_RESISTANCE = 70000.0).
- 100kΩ series resistor (SERIES_RESISTOR = 100000.0) to match the thermistor.
- A narrower temperature range (MIN_TEMP = 100, MAX_TEMP = 250) for PET plastic.
- On/off control with hysteresis for simplicity.
This code reads the thermistor, sets the temperature via the potentiometer, controls the heater via the MOSFET, and displays temperatures on the LCD.
--------------------------------------------------------------------------------------------------------------------------------------------------------------
//https://www.youtube.com/@wtczone
#include <Wire.h>#include <LiquidCrystal_I2C.h>
// Pin definitions#define THERMISTOR_PIN A0#define POT_TEMP_PIN A1#define MOSFET_PIN 9
// Thermistor parameters (for 10k NTC thermistor)#define NOMINAL_RESISTANCE 10000.0 // 10k ohm at 25°C#define NOMINAL_TEMPERATURE 25.0 // 25°C#define BETA 3950 // Beta coefficient#define SERIES_RESISTOR 10000.0 // 10k ohm series resistor
// Temperature control parametersfloat setTemp = 25.0;const float HYSTERESIS = 2.0;const float MIN_TEMP = 0.0;const float MAX_TEMP = 300.0;
// LCD setupLiquidCrystal_I2C lcd(0x27, 16, 2);
bool heaterState = false;
void setup() { pinMode(THERMISTOR_PIN, INPUT); pinMode(POT_TEMP_PIN, INPUT); pinMode(MOSFET_PIN, OUTPUT); digitalWrite(MOSFET_PIN, LOW);
lcd.init(); lcd.backlight(); lcd.setCursor(0, 0); lcd.print("Temp: --.- C"); lcd.setCursor(0, 1); lcd.print("Set: --- C");
Serial.begin(9600); Serial.println("Temperature Controller Started");}
float readTemperature() { int raw = analogRead(THERMISTOR_PIN); if (raw <= 0 || raw >= 1023) return -999.0; // Error value
// Correct resistance formula (assuming thermistor to GND) float resistance = SERIES_RESISTOR * ((1023.0 / raw) - 1.0);
// Steinhart-Hart approximation float tempK = 1.0 / ((1.0 / (NOMINAL_TEMPERATURE + 273.15)) + (1.0 / BETA) * log(resistance / NOMINAL_RESISTANCE)); return tempK - 273.15;}
void controlHeater(float currentTemp) { if (currentTemp < 0 || currentTemp > 300 || currentTemp == -999.0) { digitalWrite(MOSFET_PIN, LOW); // Safety shutdown heaterState = false; return; }
if (currentTemp < setTemp - HYSTERESIS) { digitalWrite(MOSFET_PIN, HIGH); heaterState = true; } else if (currentTemp > setTemp + HYSTERESIS) { digitalWrite(MOSFET_PIN, LOW); heaterState = false; }}
void updateDisplay(float currentTemp) { lcd.setCursor(6, 0); if (currentTemp == -999.0) { lcd.print("Err "); } else { lcd.print(currentTemp, 1); lcd.print(" C "); }
lcd.setCursor(5, 1); lcd.print((int)setTemp); lcd.print(" C ");}
void handlePotentiometer() { int potValue = analogRead(POT_TEMP_PIN); setTemp = map(potValue, 0, 1023, MIN_TEMP, MAX_TEMP); setTemp = constrain(setTemp, MIN_TEMP, MAX_TEMP);}
void loop() { float currentTemp = readTemperature();
handlePotentiometer(); controlHeater(currentTemp); updateDisplay(currentTemp);
Serial.print("Temp: "); Serial.print(currentTemp); Serial.print(" C | Set: "); Serial.print(setTemp); Serial.print(" C | Heater: "); Serial.println(heaterState ? "ON" : "OFF");
delay(500);}
3. Control Stepper Motor Speed
What: Use a NEMA 17 stepper motor and A4988 driver to adjust filament pulling speed.
Why: Variable speed ensures consistent filament diameter.
How:
- Connect an Arduino Nano, 10kΩ potentiometer, and A4988 driver to control motor speed (500–2000µs delay).
- Adjust speed with the potentiometer for smooth pulling.
- Blog: How to Control Stepper Motor Speed with Potentiometer
- 3D Parts Link is Here : - All the 3D-Print-Ready Parts
- Video: NEMA Stepper Motor Speed Control
Pro Tip: Set A4988 to full-step mode and check VREF (~0.8V for 1.5A) to avoid motor vibration.
Code for Clap to Light Up LED light Using Sound Sensor DIY Project by WTC Zone
The original code had a step delay range of 0–10000µs, which is problematic (0µs is invalid and causes issues). The modified code below uses a safer range (500–2000µs) to prevent vibration at high speeds, adds the ENABLE pin for reliability, and includes Serial debugging.
//https://www.youtube.com/@wtczone
// Pin definitionsconst int stepPin = 5; // STEP pinconst int dirPin = 4; // DIR pinconst int potPin = A0; // Potentiometer pin
void setup() { // Set pins as outputs pinMode(stepPin, OUTPUT); pinMode(dirPin, OUTPUT); // Set initial direction (HIGH = one direction, LOW = opposite) digitalWrite(dirPin, HIGH);}
void loop() { // Read potentiometer value (0-1023) int potValue = analogRead(potPin); // Stop motor if pot is near 0 if (potValue < 50) { return; // Skip the rest of the loop → motor stops }
// Map potentiometer value to delay (faster = lower delay) int stepDelay = map(potValue, 50, 1023, 5000, 50); // Min speed: 2000µs, Max speed: 500µs // Generate a step pulse digitalWrite(stepPin, HIGH); delayMicroseconds(10); // Short pulse digitalWrite(stepPin, LOW); // Delay between steps (controls speed) delayMicroseconds(stepDelay);}
4. Assemble the Filament Machine
What: Combine the cutter, temperature controller, stepper motor, and spooler into a full filament machine.
Why: Creates a complete system to produce 1.75mm filament from PET bottle strips.
How:
- Integrate components: cutter for strips, extruder for melting, motor for pulling, and spooler for winding.
- Follow assembly steps to ensure stability and safety.
- 3D Parts Link is Here : - All the 3D-Print-Ready Parts
- Videos:
- PET Strip Spooler for the Project
- Filament Machine Assembly Part 1
- Filament Machine Assembly Part 2
- Filament Machine Assembly Part 3 (Add link after posting)
Pro Tip: Test each component separately before full assembly to catch issues early.
3D Parts Link is Here : - All the 3D-Print-Ready Parts
Parts You’ll Need
Here’s a consolidated list of parts for the entire project:
- Cutter: M8 bolt (50cm), 7 M8 nuts (2 locking), 5 washers, 2 608ZZ bearings, hex saw, sandpaper, bench vise, pliers, 3D-printed cutter file.
- Temperature Controller: Arduino Nano, 70kΩ thermistor, 100kΩ resistor, 100kΩ potentiometer, 12V heater, IRF520 MOSFET, I2C LCD (16x2), 12V power supply (5–10A), breadboard, jumper wires.
- Stepper Motor Control: NEMA 17 motor (1.5–2A, 4 kg·cm), A4988 driver, 10kΩ potentiometer, 12V adapter (≥2A), buck converter (12V to 5V), 100µF/10µF capacitors, breadboard, jumper wires.
- Spooler & Assembly: Bearings, spool, frame materials (wood/metal), screws.
- 3D Parts Link is Here : - All the 3D-Print-Ready Parts
All Parts Picture
How It All Works Together
- Cut Strips: Use the PET bottle cutter to create 3–15mm strips from plastic bottles.
- Melt Strips: Feed strips into the extruder, where the temperature controller maintains 230–270°C to soften PET.
- Pull Filament: The stepper motor pulls the melted PET at a controlled speed to form 1.75mm filament.
- Spool Filament: Wind the filament onto a spool for use in your 3D printer.
- Test & Print: Use your recycled filament to create eco-friendly prints!
Tips for Success
- For Beginners: Start with the cutter, it’s the easiest step and needs no electronics. Watch videos for visual guidance.
- For Gen Z: Hype up your builds! Share your filament creations on TikTok with #DIYPETFilament.
- For Older Makers: Take it slow, test each part (cutter, temperature, motor) before assembly. Use our troubleshooting tips.
- Safety First:
- Handle hot extruders (200–250°C) with care to avoid burns.
- Work in a ventilated area to avoid plastic fumes.
- Ensure power supplies match component ratings (e.g., 12V, 5–10A for heater).
- Troubleshooting:
- Temperature Issues: If LCD shows 9°C, check thermistor wiring (to GND), update code for 70kΩ, add 0.1µF capacitor.
- Slow Motor: Adjust code to 100–2000µs delay, verify A4988 VREF (~0.8V), check potentiometer range.
- Assembly: Test components individually to ensure they work before integrating.
Why You’ll Love This
- Save Money: Make filament compared to $20/kg commercial rolls.
- Help the Planet: Recycle PET bottles, reducing plastic waste.
- Learn Skills: Master Arduino, electronics, and mechanical builds.
- Show Off: Create cool 3D prints and share your eco-hacks with the maker community!
Watch & Learn
Check out our YouTube playlist for step-by-step visuals:
- Preparing PET Bottles to PET Strips/Cutting
- PET Bottle Cutter
- Making the Extruder Nozzle
- NEMA Stepper Motor Speed Control
- PET Strip Spooler
- Filament Machine Assembly Part 1
- Filament Machine Assembly Part 2
- Filament Machine Assembly Part 3 (Add link after posting)
Dive Deeper
Read our detailed blog posts for full instructions:
Get Involved
- Comment: Got questions or ideas? Drop them below! What will you print with your PET filament?
- Share: Spread the word on social media with #DIYPETFilament and tag @WTCZone.
- Subscribe: Join our YouTube channel (PRO KAM EXPLAINED) for more DIY projects!
- Follow Us:
Future Ideas
- Automate It: Add a motor to the cutter for faster strip production.
- Upgrade Temperature Control: Use PID for precise heating (try PID_v1 library).
- Add a Diameter Sensor: Ensure consistent 1.75mm filament with a sensor.
- Share Your Build: Post your filament machine on Thingiverse or GitHub to inspire others!
Final Thoughts
This DIY filament machine is your chance to recycle, create, and learn! Whether you’re a lifelong maker, our step-by-step guide makes it easy to turn PET bottles into 3D printer filament. Start with the cutter, master the electronics, and assemble your machine, then print something awesome!
Need help? Check our troubleshooting tips or comment below. Let’s make sustainability fun and functional together!
Happy Making, WTC Zone Team
If you have any other ideas to make me design, you can describe them in the comment section and if I can, I will make a designing video on it. So I am waiting #prokam #wtc #Arduino #ideas #projects #diy #how #to #ArduinoProjects #UltrasonicSensor #HeightMeasurement #TechDIY #WeTechCreators #wtczo
#DIYPETFilament #3DPrintingHacks #EcoFriendlyDIY #RecyclePET #ArduinoProjects
0 Comments