PullStruder: from plastic bottle to PET filament

Ever wanted to use plastic bottle for 3d printing ? Here is how to !

Similar projects worth following
Mid september 2021 I published a video showing how I made PET filament from plastic bottles.

This quick and dirty video has been seen 50000 times during 7 months.

This clearly shows that, as I am, people are really concerned about plastic pollution and vaste of ressources.
This project is not "THE" answer but may clearly participate to the global awareness on this topic.

Recycling bottles into filament is overall an easy process. Today I mostly print with this filament and more than 100 bottles have been turned into new "recycled pieces".
You will see that you will be able to make your own PullStruder machine almost from scrap and reused stuff. And for less than the price of 1kg PETG spool !

I propose this project for the Hackaday's 2022 Challenge Round 2: "(Reuse, Recycle, Revamp)
Build hardware solutions for recycling of material that would otherwise end up in the waste stream"

This project should be in line with these objectives !

We're Now At A Million Plastic Bottles Per Minute - 91% Of Which Are Not Recycled

This presents an overwhelming challenge in responding to an exponential increase in recyclable yet un-recycled products...

  • Wouldn't it be nice if every maker could reuse and recycle a few of these bottles ?
  • Wouldn't it be nice if this recycling process could be simple, cost effective and non toxic ?
  • Wouldn' it be nice if every maker could make new parts easily, freely with this recycled plastic ?
  • Wouldn't it be nice if these parts could be stronger than FDM 3D printed parts with ABS, PLA or PETG ?

This is exactly what we propose to do with this project !

Before going further let's have a look at the original video that I published in september 2021.

I got a lot of "complains"  that the process was "globally described" but not explained in a detailled way. So this project is here to give all detailled explainations on how to do it.

Things have evolved since september, the overall process has been consolidated and I can now give much more details about this design, its limitations, its strengths and weaknesses.

You will learn how to produce your own filament and also how to get your first Hackaday's logo printed with recycled PET.

The idea

Well it's not exactly mine as a few videos did appear in summer 2021 giving a few informations about the "Pulstruding" method. 

However I would like to give the full credit for this "pulstruding" method to another French "laGrenouiille"  who published this in 2019 :

"This small round wire can be then used as fishing wire, sowing wire or maybe even 3d printer wire with a very easy production process (It have to be tested, but I am waiting my 1,75 calibrated hole !). This would still be limited by the strip length, but you can obtain 25m of 2mm strip out of a 1,5L Coca Cola bottle 😉"

Most of the other links where oriented to make business and sell pullstruding machines... This wasn't my intention as I wanted a free to build, easy to build and cheapest as possible machine. The machines I saw were too complex IMHO and I thought I could make one almost from nothing and for almost no cost (less than 20USD): reuse, recycle, revamp as they said !

The concept is quite simple :

  • use plastic PET bottle
  • cut it into a long ribbon
  • force this ribbon to go through a hot end at 200°C, and it will immediately shrink
  • pull the filament slowly and regularly
  • print it !

From bottle to ribbon

The first thing you will have to do is to "prepare your bottle". It seems ridiculous but a well prepared bottle helps a lot to get a nice and long ribbon !

You will have to cut the bottom. Have a look to Preparing the bottle log for details.

To get your ribbon you will need a bottle cutter. There are plenty of DIY solutions on internet, most of them use a cutter blade. It is probably not the best solution as the blade will dull very fast and you will have to change it quite often.

I saw this solution which is very well documented by "laGrenouille"  (site down very often) and from which I could grab the idea and explain it into the Bottle cutter log.

This brilliant idea consists in using two sharp rollers bearings as the cutting blades.

A picture worths a lot of words ! So here is the final cutter.

You just need to insert the "side" of the bottle into the small notch you see on the front "finger", it will be guided through the rollers and cut into a nice ribbon. See details in the "Using the bottle cutter" log

The ribbon, after manual winding, will be inserted into the spool holder, ready to go to the PullStruder machine !

From ribbon to filament

We enter now into the "high tech side of the force", we need a PullStruder machine !

And you will soon see that it can be built almost entirely from scrap !

Here is the machine

It is composed of (from left to right)

  • a 3d printed spool holder
  • a heater block into which is going the...
Read more »


Stl files for ribbon run-out detection

RAR Archive - 29.79 kB - 07/18/2022 at 09:58



firmware for Prusa i3mk2s (PET + filament runOUt)

hex - 661.50 kB - 07/11/2022 at 14:06


Zip Archive - 38.28 kB - 05/27/2022 at 13:08



the spool holder for the ribbon. Stl files

RAR Archive - 39.04 kB - 05/01/2022 at 19:26



the gauge used to drill the bottle cutter

simplify3d_stl - 42.27 kB - 05/01/2022 at 17:24


  • 1 × Rex C100 PID controller + static relay + thermocouple 15 USD
  • 1 × AC 220V 220 Voltage 110W Ceramic Plug Stainless Band Heater 30mmx30mm 5USD
  • 1 × Wiper Motor Bosch 954 065 (or equivalent !)

  • Detection of end of ribbon

    JP Gleyzes07/18/2022 at 09:42 0 comments

    Hre is how I made this simple but efficient detection of end of ribbon:

    I simply wired two endstop switches (scavaged from an old micro waves owen) in parallel to the power cord switch.

    Here is the schematics, quite simple !

    So the original switch is still active and allows to startup operations. Heater can be powered and when temperature is reached, the wiper motor can also be switched on.

    Then the paddle can be inserted under the filament. This is enough to close the switches S3 and S4 wired in serie into the paddle.

    You can now switch off the power cord switch. The cord will remain powered until S3 or S4 is released.

    stl files are avaliable here. Bear in mind that the filament must push down on the switches... you may need to adapt this design to your pullstruder geometry !

    Once finished, it works like a charm!

  • Adding PET into Prusa firmware

    JP Gleyzes07/12/2022 at 07:01 0 comments

    In order to have default values for PET I have modified the default Prusa firmware.

    Here is how I did:

    You just have two files to modify. I have just superseeded the "PP" values as I don't use this kind of filament :

    and then I made the same here

    As you can see the "PET" settings are pointing of the PP_PREHEAT_HOTEND_TEMP. This does the trick!

    And I did also modified the original "PET" to "PETG" to avoid confusion...

  • Adding a filament run out sensor

    JP Gleyzes07/11/2022 at 14:05 0 comments

    The best way to handle "small" filament lenght is to add a filament run out sensor.

    My Prusa i3 mk2s wasn't equiped with such a device... So I added one!

    Let's start by a video:

    Full description and 3d model are here :

    I have choosen, for reliability reasons, to use an endstop switch instead of an optical sensor.
    They are very cheap, easy to find on aliexpress

    I use the Normally Open switch so that the contact is closed when the filament is inserted.

    Prusa firmware is easily modified to activate the filament runOut option.
    It does trigger the G600 Gcode command as soon as the filament is cut. It is the regular command to change filament.

    The sensor snaps on the extruder without any screw. Even the lid is inserted and fixed using a filament "rivet" (see picture on thingiverse).

    The sensor is designed to fit this exact type of switch...

    The two wires of the switch go to the Y_Max connector on the mini Rambo board. They are connected to the S and - pins of the connector. There is no polarity you can swap the two pins !

    Compiling the Prusa firmware is quite easy as everything is open source. Guidelines for compilation are given here onthe Prusa's Github page.

    Clone this repository on your PC and 4 files must be modified to activate the filament runOut sensor for the Prusa i3 mk2S. All the code is already there, just uncomment those lines and compile!

    But if you are too lazy, here is the .hex for the modified firmware (Prusa i3 mk2s filament 1.75 with runout sensor)

  • safety against electrical chocks

    JP Gleyzes05/27/2022 at 13:06 0 comments

    I simply added a few 3d printed parts to protect against Mains Voltage.

    These parts can be added to :

    • heater block terminal
    • PID controller (back side)
    • static relay

    They only protect MAINS voltages not low level DC voltage of the PID neither the static relay.

    stl files are available here :

  • fusing two filaments into a longer one

    JP Gleyzes05/13/2022 at 19:22 0 comments

    To achieve this goal I simply used my soldering iron !

    I drilled a scrap piece of aluminium at the diameter of the tip of the iron and used it to melt the filament into a PFTE tube.

    See this video to better understand !

    The white clip to hold the iron in place on its support can be found on my thingiverse's channel here.

  • Printing with PET filament

    JP Gleyzes05/06/2022 at 12:50 0 comments

    In this log we will cover

    • the temperature concern... is your hotend ok for PET?
    • the slicer parameters
    • how to protect your bed

    PET printing temperature

    PET, which stands for polyethylene terephthalate, it is a form of polyester (just like the clothing fabric). 

    PET is a polymer of ethylene glycol and terephthalic acid. Pellets of PET resin are heated to a molten liquid, which can be easily extruded or molded into almost any shape. 

    PET is a crystalline resin, a specific gravity of about 1.4, a melting point of 245 ℃, the molding temperature between about 290 ~ 315 ℃.

    For Pullstruding the best "printing temperature" has been tested to be above 265°C and not more 270°C.

    These temperatures are very high compared to PLA filament (190-220°C). If you do not want to destroy your printer you should verify that it is able to handle such a temperature.

    Issue will occur with cheap devices where a PFTE tube is inserted down into the hotend

    In this configuration the tip of the teflon tube will heat and start to produce toxic fumes... It may clog the hotend and it is unsafe for your health.

    DO NOT PRINT PET filament with cheap hotends...

    On the other hand, full metal hotends have a metal heatbreak so that the PFTE which is cooled by the top fan will never reach these high temperatures. These fullmetal hotends are safe to be used for PET printing.

    This was the case for my Prusa i3 MK2S printer (and all Prusa's printers). It is equiped with a EV-3DV6 full metal hotend (I was lucky !)

    Slicer parameters


    Let's start by the nozzle. I do use an old .4mm nozzle which is totally worn out. So that its diameter is now .6mm!

    My advice is to print this PET filament with a real .6mm nozzle as it will help to print faster but also to be tolerant to slight variations of the filament diameter and thus will prevent clogging your hotend.

    The settings under PrusaSlicer are the regular ones. No modification ...

    filament settings

    Your PET filament has not exactly the nice 1.75mm dameter of a perfect circle... It has rather the shape of a "C".

    But don't worry, provided that you used a 1.5mm hole on the PullStruder side, then you can safely assume that it is 1.75mm filament.

    Start with all the settings of a regular 1.75mm PETG filament and modify these parameters.

    You just have to change the temperatures (hotend and bed) as follows :

    Now go into the cooling section and decrease the fan speed accordingly. These slow values prevent the "temperature runaway" error that may otherwise occur if the fan is blowing too much air on the nozzle...

    Now go into the "advanced" tab and just precise that you are using PET filament. Don't change the other parameters.

    Print Settings

    You can do pretty much what you prefer into this tab. 

    I did configure my printing to "fast 0.3mm" but you can of course stay to the standard .2mm.

    More important, IMHO, is to tick the box "avoid crossing perimeters" it helps a lot to "hide" oozing and stringing into the printed parts !

    Apart for this you can safely leave the other parameters unchanged from the PETG filament settings.

    How to protect your bed

    Do not try to print directly on a PEI sheet, the adherence will be too strong and you might destroy your PEI when removing the part.

    Rather use Painter tape that you will stick on yor bed.

    Happy printing with PET

  • Filament cost

    JP Gleyzes05/05/2022 at 06:59 0 comments

    This page is devoted to explain the price of 1kg recycled PET bottle filament

    We will study the worst case : 1 small bottle producing only 5 to 6 m of filament. This is the blue one of my video !

    To get these 5m we have a sequence divided into two steps

    • pre heating the nozzle
    • pullstruding the filament while the PID is regulating the temperature

    The heatband has a power of 200W (specified by the manufacturer) and this figure is consistant with the measurement done in situ. (230V * .89A = 204W)

    The preheating phasis lasts 2 minutes and draws 2 * 200 /60 = 0.167 Wh of energy

    The Pullstruding phasis lasts 10 minutes (for ~5 m  ribbon) and draws :

    • 5W during 10 minutes for the wiper motor (5V, 1A) = 5 * 10 /60 = 0.833 Wh of energy
    • the PID regulates the temperature (1min 40s heating, 8min 20s Off). That is  200 W during 1 minute and 40s. 200 * 1.66/60 = 5.55 Wh of energy

    Thus the final energy required to pullstrude one 5m bottle is : 0.167 + 0.833 + 5.55 = 6.553 Wh

    Now 1kg of PETG filament has a lenght of 330 m it will require 330/5 = 66 bottles and will eat 66 times more energy to be produced than a single bottle.

    So the total energy will be 66 * 6.553 = 433 Wh = 0.433 kWh

    Knowing that 1kWh costs 0.18€ (here in France), we get our total cost of 0.433*0.18 = 0.078 €

    In conclusion producing your own filament is really a cost saving solution

    • 1kg of bottle recycled PET filament costs 0.08 € 
    • yes 8 cts € 
    • 250 to 300 times cheaper than buying it !

  • Building the PullStruder

    JP Gleyzes05/02/2022 at 12:53 0 comments

    Nothing complex to build your PullStruder machine

    you will have to find in your scrapyard

    • a PC tower ATX power supply (note that any DC 5V power supply able to deliver 1A or more will work !)

    To use this power supply you will have to short the green cable (power On) on the big connector with any black one (gnd). This is explained several times on internet. Pick any link you want !

    Then  you can pick the ground on any black wire and the +5V on any red one !

    • a wiper motor 

    I used an old car wiper motor. It has classically two speeds and should be powered at 12V.

    Mine is a Bosch 954 065.

    However to get a strong slow motion I power it at 5V on the slow speed

    You will have to search a little how to get the right wires ! 

    Here they are on my wiper motor. Finally if the motor is not rotating in the right direction, simply reverse the two wires !

    You will have to buy 

    • A heat band (one compliant with your MAINS value 220V or 110V)

    Then you should print all the parts 

    The old filament spool is going between the two spacers and is fixed with a 8mm rod + 2x8 mm nuts

    The wiper is also fixed on its support on the left side.

    All the 3d printed parts are fixed on a wooden base. Be sure to align evrything and cut the 8mm rod at the exact dimension of your filament spool (plus nuts + bearings + a little margin)!

    You can find the parts on my thingiverse account.

    If you print the parts in PLA (which I did), it will be Ok but after some time (weeks), the small gear (in blue on the picture) may break... Reprint it with PET plastic bottle which is much stronger than any other filament !

    Finishing the hotEnd

    There is still something missing in your PullStruder : the hotEnd

    Go again in your scrapyard and look for any cylinder of metal that could fit into your heater.

    Preferably use aluminium or copper for better heat conduction and ease of machining...

    I found a 35mm diameter cylinder 35mm height.

    Drill it in the center with several bits from 1.5mm to 12mm. It does not have to be very precise, but the smallest diameter must be 1.5mm and should span over 2mm long.

    This will make a kind of steps into which the ribbon can enter and progressively shrink down to 1.5mm. It will then expand a little after the extrusion to reach the magic figure : 1.75mm (almost !)

    A second hole is drilled on the input side to accomodate the thermocouple. you can thread it with a tap.

    Wiring the temperature controller

    Be careful when wiring the PID and the temperature controller. Mains voltage can be lethal, check and re check your wirings.

    • You MUST connect the earth wire to protect yourself in case of any leakage of current into the heating element.
    • You MUST protect the Mains terminal blocks so that you cannot touch them by mistake.

    If you are not familiar with these dangers, please ask an electrician to help you. Don't risk your life ...

    This being said (and understood) wiring the PID is not very complex. If you bought the recommended REX-C100 model then it is like this. If not, refer to the user guide !


    • the thermocouple goes into pins 9 and 10 (beware of the polarity). It is not a dangerous voltage.
    • The plus and minus of the PID and the Solid State Relay go on pins 4 and 5 (beware of the polarity). It is not a dangerous voltage.
    • the ground of the heat band will go to the ground of your installation (it is not dangerous !)
    • neutral and live of the MAINS are wired as on the top left of the picture. You can swap Live and neutral. But NEVER touch directly these pins... MAINS is lethal...


    • put the other end of the thermocouple into the devoted hole of the aluminium block .
    • Fix the aluminium block into the heat band.
    • Put all this in a safe place and power the unit. The PID should display temperature, the heat band will heat very fast and will stabilize at the setpoint.

    DO NOT TOUCH the...

    Read more »

  • Preparing the bottle

    JP Gleyzes05/02/2022 at 10:36 0 comments

    Start of course by cleaning the bottle.

    • If it is a water bottle nothing to do. 
    • if is a soda one, then rince it to remove sugar.

    Remove most of the stickers. The remaining glue will be suppressed after.

    Although it can be considered as optionnal I do start by putting some pressure into the bottle. I have adapted a tyre valve to a bottle cap and use it to connect to a compressor. No need to put a lot of pressure !

    Then you should use a hot gun to start to warm the bottle so that any "carving" will be progressively removed and you get an almost cylindrical bottle !

    After what, the pressure still there, you can finish the cleaning stage. Pressure helps a lot, you can push on the bottle without deformation. Use solvant to remove strong glues or water and soap if enough.

    Then insert a cutter blade at the very bottom of the bottle where you usually can see a "line". Once again pressure helps to enter the cutter !

    Then with scissors simply cut le whole bottom, progressively shifting the cut to the right (if right handed) so that a primer of the ribbon is visible (will help to cut the ribbon !)

  • Using the bottle cutter

    JP Gleyzes05/01/2022 at 19:15 0 comments

    Using the bottle cutter

    Using the cutter is quite easy. 

    Put it into a vice with the "finger" in the back. Then insert the left side of the bottle into the finger and under the right roller bearings. You can start pulling, while keeping the bottle vertical and gently pressed into the notch.

    After a few centimeters, the ribbon will become nice and consistent (no dent and good height). You can sharpen the tip, this will be used for starting the pullStruding !

    Take your time, pull evenly, and go to the top of the bottle, while a finger in the bottle neck helps a lot to keep the bottle in place.

    Now  cut the end, and starting from this side, roll the ribbon in a nice flat disc shape and insert the tip (previously sharpened) into the spool holder (The top of the bottle is in the center of  disc).

    If properly done the ribbon will be very consistant and with a width of 8.5mm

    You are ready to make the filament !

View all 11 project logs

Enjoy this project?



Bonifacio wrote 08/05/2022 at 05:55 point

Really awesome, congrats! And i also think it fits perfectly this 2022's contest theme! 

  Are you sure? yes | no

JP Gleyzes wrote 08/06/2022 at 09:32 point

Thank you so much !

Most of all it is easy to build and the wiper motor is extremely powerful. Its torque allows to pull the filament at a rather high speed.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates