teddybearSebastien RicoultJulie Carole Matte
Published © GPL3+

Open & Affordable 3D Bioprinting

Starting with an open source RepRap Ender 5 3D printer, we convert it to a bioprinter, and design some simple bioinks to print with.

IntermediateWork in progress4,628
Open & Affordable 3D Bioprinting

Things used in this project

Hardware components

Creality3D Ender-5 3D Printer
×1
Buck converters
×1
Duet 2 Wifi Electronic Controller Card V1.04
×1
Duex expansion board (5 channel)
×1
PanelDue LCD screen for Duet Wifi
×1
Jumper wires (generic)
Jumper wires (generic)
×1
608ZZ bearings
×1
M8 1m stainless steel rod
×1
Loctite threadlocker
×1
Epoxy
×1
Peristaltic Pump for Nema 17 stepper Motor
×1
Creality 3D® Two Phase 42-34 RepRap 42mm Stepper Motor For Ender-3 3D Printer
×2
Calcium Chloride 1M
×1
Sodium Alginate
×1
60mL BD Syringe
×1
Luria Bertani (LB) broth and agar
×1
Petri dish
×1
Kanamycin
×1
BBa-JO4450 Plasmid
×1
TOP10 Competent E.coli
×1
M8 nuts
×1
silicone tubing 1.5mm ID X 3mm OD
×1
8mm OD PVC tube
×1
Blunt tip Luer lock syringe needle for print head nozzle, gauge of choice
×1
50-60ml BD Syringe
×1
UV grow light
×1
Nannochloropsis Phytoplankton Starter Culture Kit
×1
Tubing PEEK 1/16"od x 0.040"
×2
Adapter Female luer to 1/4-28
×2
Adapter Male luer to 1/4-28
×2
One Piece FB 1/16 Assy
×4
Grow Light Bar for Indoor Plants
×1
1.5mm2 bootlace ferrule
×20
2x2.5mm bootlace ferrule
×10
Aussel 2.5mm Pitch 2 3 4 5 Pin JST SM Connector Male and Female Plug Housing Connector Adaptor Assortment Kit
×1
M3, M4, M5 assorted nuts and bolts
×1
Hammerhead fasteners for M3, M4, M5 bolts
×1
XT60 connectors
×1
XT60 parallel connectors
×1
heatshrinks for XT60s
×1
16g silicone wire
×1
22g silicone wire
×1
8MP USB camera Mjpeg 3264X2448 2.8-12mm varifocal lens IMX179 sensor mini
×1
12V DC linear solenoid
×2
Texas Instruments Low side mosfet power driver
×2
mini breadboard
×1
12V DC power adapter
×1

Software apps and online services

Cura slicing software
Cura is a slicing software, its interface is very nice to use, but it only supports two extruders max
Prusa Slic3r slicing software
Slicer is slicing software similar to Cura, its interface is not as basic, but it can support more extruders
RepRapFirmware
Firmware used on the DuetWifi and Duex5 board which control the printer
Marlin
Firmware we used on the Ender 5 printer before upgrading it to the Duet
RepRapFirmware config tool

Hand tools and fabrication machines

Drill / Driver, Cordless
Drill / Driver, Cordless
Soldering iron (generic)
Soldering iron (generic)
multimeter
ferrule crimping pliers
Dupont crimping tool and kit
soldering mat
DC power supply
Multitool, Screwdriver
Multitool, Screwdriver
Plier, Long Nose
Plier, Long Nose
Plier, Cutting
Plier, Cutting
Wire Stripper, Automatic
Wire Stripper, Automatic

Story

Read more

Custom parts and enclosures

Print head assembly - version 1

A version of the print head attachment with space for a camera and two needles

Print head assembly - version 2 (solenoid mount)

Holds a solenoid, used to drive a needle

Print head assembly - version 2 (needle holder)

used for holding syringe needle as it is actuated by the solenoid

Print head assembly - version 2 (assembly)

holds two solenoids, each with a needle for printing

Bracket for peristalticpump

Holds to peristaltic pump in place on the printer

Bracket for syringe pump

Holds the syringe pump in place on the printer

STL files for Large Volume Extruder

These files were made available in proprietary sldprt format by Pusch et al. ( https://www.sciencedirect.com/science/article/pii/S2468067217300822 ), we've attached the open STL format versions for convenience

3D Printed spacer for placing in between M8 nuts in nuts shuttle assembly

Schematics

Circuit diagram for solenoid driver

Used to turn solenoids on an off without making them too hot

Code

Ender 5 Duet/Duex config settings

JSON
Use this config file with the RepRapFirmware config tool ( https://configtool.reprapfirmware.org/Start ) to generate the correct firmware settings for your bioprinter
{"board":"duetwifi10","firmware":2.03,"nvram":false,"auto_save":{"enabled":false,"save_threshold":12,"resume_threshold":20,"gcodes_to_run":"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000"},"geometry":{"type":"cartesian","mins":[0,0,0],"maxes":[220,220,300],"delta_radius":105.6,"homed_height":250,"low_dive_height":false,"max_carriage_travel":260,"print_radius":85,"rod_length":215,"z_min":0},"drives":[{"direction":1,"microstepping":16,"microstepping_interpolation":true,"steps_per_mm":80,"instant_dv":15,"max_speed":100,"acceleration":500,"current":800,"driver":0,"endstop_type":1,"endstop_location":1},{"direction":1,"microstepping":16,"microstepping_interpolation":true,"steps_per_mm":80,"instant_dv":15,"max_speed":100,"acceleration":500,"current":800,"driver":1,"endstop_type":1,"endstop_location":1},{"direction":0,"microstepping":16,"microstepping_interpolation":true,"steps_per_mm":400,"instant_dv":3,"max_speed":20,"acceleration":100,"current":800,"driver":2,"endstop_type":1,"endstop_location":1},{"direction":0,"microstepping":64,"microstepping_interpolation":false,"steps_per_mm":407.436654315252,"instant_dv":2,"max_speed":20,"acceleration":250,"current":800,"driver":3},{"direction":1,"microstepping":64,"microstepping_interpolation":false,"steps_per_mm":407.44,"instant_dv":2,"max_speed":20,"acceleration":250,"current":800,"driver":5},{"direction":1,"microstepping":64,"microstepping_interpolation":false,"steps_per_mm":407.44,"instant_dv":2,"max_speed":20,"acceleration":250,"current":800,"driver":6}],"idle":{"used":true,"factor":30,"timeout":30},"homing_speed_fast":50,"homing_speed_slow":6,"travel_speed":100,"z_dive_height":2,"slow_homing":false,"probe":{"type":"noprobe","recovery_time":0.4,"trigger_height":2.5,"trigger_value":500,"x_offset":0,"y_offset":0,"speed":2,"deploy":false,"points":[],"pwm_channel":64,"pwm_inverted":false},"bed_is_nozzle":false,"bed":{"present":true,"heater":0,"use_pid":true},"chamber":{"present":false,"heater":2,"use_pid":false},"heaters":[{"temp_limit":120,"scale_factor":100,"series":2200,"thermistor":98801,"beta":4185,"c":0,"channel":0},{"temp_limit":280,"scale_factor":100,"series":2200,"thermistor":98801,"beta":4185,"c":0,"channel":1}],"num_nozzles":1,"toolchange_wait_for_temperatures":false,"generate_t_code":false,"tools":[{"mix_ratio":[],"number":0,"name":"standard","extruders":[0],"heaters":[1],"x_offset":0,"y_offset":0,"z_offset":0,"fans":[]},{"mix_ratio":[],"number":1,"name":"bio1","extruders":[1],"heaters":[],"fans":[],"x_offset":0,"y_offset":0,"z_offset":0},{"mix_ratio":[],"number":2,"name":"bio2","extruders":[2],"heaters":[],"fans":[],"x_offset":0,"y_offset":0,"z_offset":0}],"compensation_x_offset":15,"compensation_y_offset":15,"peripheral_points":3,"halfway_points":0,"calibration_factors":3,"probe_radius":85,"mesh":{"x_min":15,"x_max":195,"y_min":15,"y_max":195,"radius":85,"spacing":20},"home_first":false,"orthogonal":{"compensation":false,"height":50,"deviations":[0,0,0]},"network":{"enabled":true,"mac_address":"","name":"Bertie","password":"","ssid":"","ssid_password":"","dhcp":true,"ip":"192.168.1.20","netmask":"255.255.255.0","gateway":"192.168.1.254","protocols":{"http":true,"ftp":false,"telnet":false}},"fans":[{"value":65,"inverted":false,"frequency":20,"thermostatic":false,"heaters":[],"trigger_temperature":45,"name":""},{"value":85,"inverted":false,"frequency":20,"thermostatic":true,"heaters":[1],"trigger_temperature":45,"name":""},{"value":65,"inverted":false,"frequency":20,"thermostatic":false,"heaters":[1],"trigger_temperature":45,"name":""}],"custom_settings":"","display":{"type":0,"encoder_steps":4,"spi_frequency":2000000,"menus":[{"name":"main","value":""}],"images":[]}}

Credits

teddybear

teddybear

1 project • 2 followers
Sebastien Ricoult

Sebastien Ricoult

1 project • 2 followers
Julie Carole Matte

Julie Carole Matte

1 project • 2 followers

Comments