Hello everyone! This project has been developed for my final
Engineering degree project. The aim was to convert a commercial FDM 3D printer into a bioprinter with the minimum budget possible. This proposal comes from the challenge that bioprinters are usually very expensive, ranging from 20.000€ to even 500,000€.

Therefore, we wanted to make this technology available to every maker, and the best tool that a DIYer has is its own 3d printer. With very few and simple tools, filament, and the knowledge anyone who wants to experiment with bioprinter will be able to do so.

By doing so, fields such as tissue engineering could experiment a growing interest from the maker community, and because other people that are not doctors and don’t work in labs, could contribute in their own way to the development of this area.

We are contributing to the open-source community in the same way we have nourished ourself from it. The original bio-extruder’s credit goes to T.JHinton, who designed the “Replistruder v3.0”, which we later modified for our necessities. The bio-extruder mount has been inspired in Madau3D’s “Ender 3 Direct Drivinator”.

This project also includes a design that has been entirely designed by our team. It’s a thermal control system, which allows the printing material to stay at a constant temperature up to 40ºC, or 104ºF. We wanted the whole project to be accessible, so the system only uses available components, such as ABS printed parts. The heating system uses the hot end from the 3d printer itself.

As for what are the possibilities with this printer, we have been using hydrogels, which are advanced materials that hold a large amount of water while maintaining the structure, but there are many more possibilities, like printing chocolate, gelatine or even meat. Checkout Novameat startup for example.


  • Ender 5 or Ender 5 Pro
  • M3 x 20,30 and 40 bolts (20 units each aprox.)
  • PLA and ABS filament
  • Threaded rod M3 x 120 mm
  • 28mm Ø, 1mm thich and 64mm long copper bar
  • 4x female-male jumper cables
  • Tin soldering iron kit
  • Metal files or other tools for resizing the bolts
  • 10ml MB syringes

Step 1: Get All the Components

The components that have been used in this project are easy to find, so that anyone anywhere can replicate the bio-printer. The biggest expense is going to be the Ender5 3D printer. It’s important that you get this printer and not another one, because the “bio-extruder mount” has been designed for this printer. If anyone wishes to use another printer and adapts the 3d file let me know, so that I can upload it for other users.

As for the screws, I have been using M3x20, 30 and 40, but you will have to cut to each required length. I have been using a handsaw for doing so.

Step 2: Print All the 3D Parts

Instructions for printing the components and stl. files here

Some parts have to be printed in ABS because they will be in direct contact with the printer hot end. Here you have some links to ABS printing services:



Step 3: Disassemble the Extruder From the Printer

Unscrew the bolts shown above. Disassemble the motor and
unplug the wiring.

TIP: Store the components in small plastic bags and name them with a marker. That will save you from having a messy working table.

Step 4: Assemble the Bio-extruder Support

For doing so you are going to have to disassemble the
extruder mounting plate bearings, because the “support” is going to be mounted in between the bearings and the mounting plate. You will ned a hex key and the wrench that comes with the 3d printer kit.

Bear in mind that there is a washer that will come out when disassembling it. Insert them in the 3d printed part holes. Now you can adjust the 3d part in its place and put back the bearings.

Step 5: Assemble the Bio-extruder Main Body

You are going to need the M3 nuts and bolts. First, insert an M3 nut in the “leadscrew gear” central whole. Then insert the M3 Threaded rod. Then assemble the “leadscrew gear” on the “replistruder core” and screw the “gear plate” on top. You will need 4

M3x20 screws and M3 nuts.

Step 6: Assemble the Bio-extruder Motor

If you haven’t already, disconnect the extruder motor and insert the “NEMA17 GEAR” part into its shaft. Now insert M3 x 20 screws and M3 nuts. You may need a metal file for resizing the bolts. Assemble the “sliding motor bracket” with two M3 x 40 nuts. These nuts will get screwed with the motor holes, so there is no need for nuts.

Now we are ready to mount the motor sub-assembly with the main body. Get two M3 x 40 bolts and insert them from the front face of the “Replistruder core”. Check that everything is working fine. You can manually rotate one of the gear and see if the traction is smooth. The “leadscrew gear” should rotate as well.

Save the part called “10ml-BD_syringe_plate” for later on. We will assemble it after loading the syringe.

Step 7: Assemble the Bio-extruder Into the 3D Printer

Now we are ready to mount the motor sub-assembly with the

main body. Get two M3 x 40 bolts and insert them from the front face of the “Replistruder core”.

Check that everything is working fine. You can manually rotate one of the gear and see if the traction is smooth. The “leadscrew gear” should rotate as well.

Save the part called “10ml-BD_syringe_plate” for later on. We will assemble it after loading the syringe.

Step 8: Syringe Sub-assembly

This step will actually be used further in the project, but it’s easier if I show you at this point how it works, so that if there is any issue you will still remember how to disassemble the different parts.

After loading the syringe with the desired material you will have to insert a M3 bolt into the centre of the “clutch”, which will go inside the arrestor. Then screw it a little from the bottom threaded rod.

Then, grab the syringe, and pass it through the “10ml Bd syringe plate”. This part has a small hole where the syringes barrel flange sits. Insert the “10ml screw adapter” on the plunger flange. This part is going to go lose, so be careful it does not drop. Now we will assemble it to the extruder. Slide it horizontally from the front of the “main body”.

Step 9: Adjust the Syringe

The “leadscrew adapter” will serve as the plunger of the bio-extruder. But for now if you try to move the gears, the threaded rod is going to rotate. We want to convert this circular movement into lineal vertical movement.

What we will do is block the rotation of the component. For doing so first we will manually rotate the rod clockwise, so that it goes down. It will go through the “leadscrew adapter”. Keep rotating until there is moderate-high pressure. Then rotate the clutch, so that the arrestor moves down. Again, rotate it until there is pressure with the part below.

Step 10: Test the Polarity of the Extruder Motor and Connect the Motor Back to the Printer

The motor is no longer in the position it was in the original 3D printer. Its located higher, and therefore the cables are too short. We are going to need to enlarge them. We used jumper cables for doing so. These are very convenient when developing the project because it makes it easy to assemble and disassemble.

The motor used is a NEMA17 motor, and you can find wiring diagram on how to connect the cables, but because there are many providers to this type of motors, I am going to teach you how to check the polarity.

There are 4 wires on each side and we don’t know which stepper motor cables to connect with the built controller. Grab a multimeter and turn the dial to Continuity Test mode. Now touch two cables from the motor. If they beep the are part of the same coil. Use some kind of tape to remember those cables go together. Do the same thing with the controller cables and connect the groups with jumper cables.

TIP: When trying your first print, if you realize that the syringe is moving backwards, change the order of the cables, and therefore polarity of the cables.

Step 11: Move the Z Homing Sensor

Print the Z sensor 3D part and replace it with the original one. Make sure the new sensor mount is well vertically aligned with the metal bit on the printing bed.

Step 12: Start and End GCode

The software we are going to be using for this project is Cura, because it’s the most popular software in the community, and allows for easy modification of the parameters, making it accessible to many new users.

The first thing is changing the Start and End G-Code. Before printing, by default the printer goes to its Home position. In our case, we are printing on Petri dishes, because then we analyse the results. We encountered the problem that at the beginning of the print, the syringe tip touched the walls of the Petri dish.

With the new code, the printer bed moves down. Then the X and Y axis move the bio-extruder to the centre, and then the bed moves up to its home position again.

TIP: Don’t forget to level he 3d printer plate before printing, or you could damage the syringe tip.

Step 13: Change the Cura's Profile Parameters

I have included the profile that I have been using with the bio-printer, but It’s always better to learn how to do it yourself. Therefore these are some of the parameter you should touch;

  • Flow: Its one of the most important parameters to touch. Set it between 500% and 1000%. It depends on the diameter of the syringe tip.
  • Speed: between 5mm/s and 30mm/s
  • Layer height: 0.1mm to 0.3mm
  • Initial layer Width:120% to 150%. It will help with first layer adhesion
  • Infill density: This will really depend on the shape you want to extrude.
  • Printing temperature: 0ºC
  • Enable print cooling: OFF
  • Enable retraction: OFF

Step 14: Update the 3D Printer Firmware

When trying to make our first print, we realised that the files wouldn’t run, and the LCD was telling us that the printer was “getting prepared”. The reason; there is a security code that doesn’t allow the printer to extrude filament if the hot end is colder than 80ºC, so that users don’t break the printer because of under-heating the material.

The Ender 5 uses a custom Marlin firmware. In order to make changes to the firmware download the latest version. In the Configuration.h file, under a folder called Marlin, you’ll find the code lines that must be changed.

I have uploaded the custom firmware, so that you don't have to do the whole process.

Step 15: Heating System 3D Printed Parts

After checking that everything works correctly, we can move to the second phase of the project; the heating system, that will allow us to maintain the printing material at a certain temperature. The first step would be to print the “heating_system” parts. This is a two piece model unified by a hinge. It prints all at once and assembled, and requires minimum support material. Also print the part “clip”, which will allow the whole thing to stay closed while printing.

Step 16: Disassemble the Hot End From the Extruder

We are going to use the heater block from the hotend, which includes a temperature sensor, a heating element and a silicone cover. Checkout the video above to see how to do it. (1:20 to 2:00 and 3:50 to 5:20)

Step 17: Assemble the Heating System Parts

The heater block is going to provide the temperature, but we need some other metallic part that spreads the heat all around the syringe. We will use a 28mm Ø , 1mm thick and 63mm long copper bar. Cut it in half with a handsaw and sand the edges. If you’re using a table clamp to hold the tub while cutting it, be careful, because if you apply too much pressure it will bend.

Now we can proceed with the assembly. First, insert the heater block (silicone cover included) in its hole, with the side that isn’t covered inwards. Then, you can insert the two half-tubes.

Step 18: Include the Heating System Into the Bio-printer

Insert two nuts in its holes, that are located on the side faces of the heating system Then screw M3x20 nuts from above the “extruder mount”.

Step 19: Using the Heating System

You can control the heating system directly from the printer’s LCD screen. But bear in mind that if you want to maintain your printing material at, for example, 30ºC, it doesn’t mean that you have to set the extruder temperature at the same value. The system has a % of heat loss, of around 60%. For keeping a hydrogel at 30ºC you will have to set the printing temp. at around 85ºC

Step 20: Choosing and Preparing the Material

Step 21: The Results

These are some of the scaffolds that we have printed. We tried different types of hydrogel-like materials that are easily found in any store, such as Aloe-vera, hand-creams and toothpaste.

Step 22: Acknowledgements and Closing

The development of this project does not only include the development of the printer, but there were also other students involved, that have contributed to the project.

The bioprinting team has been formed by Maria Casas, Oriol Chico, Victor González, Pau Oliver and me, Nicolás Rosell. The project has been tutored by Juan Crespo and Xavier Tutó, and the project has been developed in Elisava School of Design and Engineering, more specifically in the “Biolab” department.

Thanks to the readers for taking the time to go over this project. Don’t hesitate to ask me a question and please share your results. I will be happy to help anyone interested in giving it a go, and I hope that this project serves for others to generate improvements in the field.

Be the First to Share


    • Backyard Contest

      Backyard Contest
    • Remote Control Contest

      Remote Control Contest
    • Build a Tool Contest

      Build a Tool Contest



    Question 5 months ago

    I bought an ender3, and want to convert it in bioprinter. does it fit for ender 3 v2? or I need different dimensions? thanks in advance


    Question 10 months ago on Step 6

    I found a missing component in Step 6. I can't find about a component in the stl files. Can I ask you if you can send me this file?


    Question 10 months ago on Step 6

    Hi Nico,
    thank you for this great project. I'm trying to follow all the steps but I think there is one missing component. This one shown in the image is not in the stl. files. Can I ask you if you can send me this file?


    missing component.PNG

    Question 1 year ago

    I want to expand to dual extrulder, is it possible?