Close
0%
0%

Delta belt 3D-printer for automated production

Combine the speed of a Delta printer with the automation of a conveyor belt

Similar projects worth following
I needed a way to print a lot small parts (cable chain pieces) fast and preferably in an automated way, so I build this modular delta belt 3D-printer for (small) automated series productions. It combines the best of both worlds, the speed of the delta printer and the automation of the conveyor belt.

Video can be found here: 

STL and Fusion 360 source files can be found here: https://bbprojects.technology/collections/stl-fusion-360-source-files/products/delta-belt-3d-printer

The Idea

I needed a way to print a lot small parts (cable chain pieces) fast and preferably in an automated way, so I build this modular delta belt 3D-printer for (small) automated series productions. It combines the best of both worlds, the speed of the delta printer and the automation of the conveyor belt. 

Design

This design is mainly focused on series production (print a lot of parts in an automated way) and not so much on continuous printing (print very long pieces). The main reason for this is that for continuous printing the head needs to be tilted 45 degrees, which requires a lot of hardware changes to be made to the printer itself. With this design you need to make exactly 0 changes to the hardware and even the firmware of the printer (FLsun Q5 in my case). The belt is designed to be completely modular.

The belt is triggered by a limit switch which in turn is triggered by the homing sequence of the printer itself. The amount of parts you want to print can be chosen by copying and pasting the G-code the amount of times you want the part to print. I tried using some for loops in the G-code but the firmware of the FLsun Q5 doesn't seem to accept these codes.

The motor used to drive the belt is a 42mm 12V Nema 17 stepper motor. the stepper motor itself is driven by a A4998 stepper motor driver (see the parts list for a complete overview). To connect the motor with the roller shaft I used a 36 teeth GT2 pulley on the roller shaft, a 16 teeth GT2 pulley on the motor shaft and a 260mm GT2 belt to connect them both.

PCB design

I decided to create a small Arduino based PCB which was manufactured by JLCPCB, the sponsor of this project. The gerber files and Arduino code can be found in the files section of this project page.

You can now order your PCB+PCBA for only $2, Register to Get $54 Coupons: https://jlcpcb.com/IYB

I used an Arduino Nano to read the input from the limit switch and to control the stepper motor through the A4998 stepper motor driver. Also included on the PCB are 2 status LEDs with appropriate resistors. Next to the stepper motor driver are some pins (J1, J2, J3) to select the microstepping of the driver. Pins J4 go to the stepper motor. C1 is a capacitor to smooth out the power going to the Arduino power supply.

PCB case

To protect the PCB a bit I wanted to create a case around it. I started to design a square box like I usually would but thought it looked so boring. So i decided to put some time and effort in the design of the case and took some inspiration from Lamborghini to give it a modern and futuristic look. I personally like how the design turned out.

Belt design

For the conveyor belt itself I used a rubber sheet of about 3mm thickness ( link: https://rubbermatten24.nl/rubberrol-sbr-3mm ) and cut it to 200x666mm. The rubber is normally used as a mat to put on the floor for more grip, but the website also states it can be used as Isolation, sound proofing and shock absorbing. I first tested out which glue had the best performance, here are the numbers:
-Pattex contact glue: 13 kg
-Bison super glue: 22 kg
-Bison rubber repair: 24+ kg

I ended up using the Bison rubber repair glue and glued both ends of the rubber sheet to each other end-to-end.

Belt_Printer_Arduino_Code_V2.zip

Arduino code for the PCB

x-zip-compressed - 915.00 bytes - 05/16/2022 at 19:50

Download

Gerber_PCB_Belt printer PCB_2022-05-16.zip

PCB fabrication file

x-zip-compressed - 27.23 kB - 05/16/2022 at 19:36

Download

View all 12 components

  • Arduino code had been added to the files

    Brian Brocken05/16/2022 at 20:23 0 comments

    // Defines pins numbers
    const int stepPin = 3;
    const int dirPin = 4; 
    const int Enable = 5;
    const int GLED = 6;
    const int RLED = 7;
    const int LmtSwtch = A1;
    const int Mspeed = 500; //delay between pulses to determine the motor speed (smaller delay = faster motor)
    int Lastbuttonstate = 1;
    int flag1 = 0;
    int StepAmount = 0;
    int StepAmountSet = 6000; //Amount of steps that have to be taken (distance the belt travels when switch is triggered)
    int customDelay,customDelayMapped; // Defines variables
     
    void setup() {
      // Sets the pins as outputs
      pinMode(stepPin,OUTPUT);
      pinMode(dirPin,OUTPUT);
      pinMode(Enable, OUTPUT);
      pinMode(LmtSwtch, INPUT_PULLUP);
      pinMode(GLED, OUTPUT);
      pinMode(RLED, OUTPUT);
      
      //Serial.begin(115200); //uncomment line to use serial monitor
     
      digitalWrite(dirPin,HIGH); //Enables the motor to move in a particular direction
      digitalWrite(RLED,HIGH);
      digitalWrite(GLED,HIGH);
    }
    void loop() {
    
      int Buttonstate = digitalRead(LmtSwtch);
    
      if (Buttonstate < Lastbuttonstate){
        flag1 = 1;
      }
    
      Lastbuttonstate = Buttonstate;
      
      if (flag1 == 0)
      {
        digitalWrite(Enable, LOW);
        digitalWrite(stepPin, LOW);
      }
      if (flag1 == 1 && StepAmount < StepAmountSet)
      {
          digitalWrite(Enable, LOW);
          digitalWrite(stepPin, HIGH);
          delayMicroseconds(Mspeed);
          digitalWrite(stepPin, LOW);
          delayMicroseconds(Mspeed);
          StepAmount = StepAmount + 1;
      }
      else {
        flag1 = 0;
        StepAmount = 0;
      }
    
      /*
      Serial.print("Buttonstate: "); //uncomment this section to use serial monitor
      Serial.print(Buttonstate);
      Serial.print(" flag1: ");
      Serial.print(flag1);
      Serial.print(" StepAmount: ");
      Serial.println(StepAmount);
      */
      
    }

  • PCB gerber file has been added to the files

    Brian Brocken05/16/2022 at 20:22 0 comments

View all 2 project logs

Enjoy this project?

Share

Discussions

ruyters_tim wrote 05/31/2022 at 15:04 point

can annyonne help me with the BOM i cant load it up in the app

  Are you sure? yes | no

ruyters_tim wrote 05/31/2022 at 13:35 point

i cant find those 5x10x3,5 bearings annywhere

  Are you sure? yes | no

Brian Brocken wrote 06/01/2022 at 14:10 point

these will do: https://shop.jvl-europe.com/epages/61425996.sf/nl_NL/?ObjectPath=/Shops/61425996/Products/MF105ZZ

  Are you sure? yes | no

fishdav wrote 05/25/2022 at 17:37 point

Quick question...I noticed this in the parts list

15x15x220mm aluminium tube

Wouldn't a 15id and a 15od, be like a zero? 

  Are you sure? yes | no

Brian Brocken wrote 06/01/2022 at 14:12 point

it's 15mm wide, 15mm high and 220mm long. it's a square tube.

  Are you sure? yes | no

Elliot Williams wrote 05/23/2022 at 07:05 point

That's superb.  I can't believe how well it works with just a rubber sheet.  I had thought that would have caused more problems, but no! 

Where did you get it and/or what kind of rubber sheet is that?  

  Are you sure? yes | no

Brian Brocken wrote 05/23/2022 at 07:11 point

Thanks Eliot, it's 3mm rubber sheet used for flooring for more grip i think. I bought it here: https://rubbermatten24.nl/rubberrol-sbr-3mm

  Are you sure? yes | no

Lightning Phil wrote 05/23/2022 at 05:45 point

The Makerbot TOM lives again, but bigger and better :)

  Are you sure? yes | no

bijlimart1392 wrote 05/22/2022 at 15:04 point

this is new technology is great 

what is 

PCB gerber file has been added to the files

  Are you sure? yes | no

Brian Brocken wrote 05/23/2022 at 07:13 point

A gerber file is a file used to manufacture a PCB (printed circuit board). The PCB in my case is designed to read an input and drive a stepper motor with the help of an Arduino. The code for the Arduino can also be found in the files.

  Are you sure? yes | no

davedarko wrote 05/16/2022 at 23:57 point

that's a great project, thx for sharing!

  Are you sure? yes | no

Brian Brocken wrote 05/17/2022 at 15:37 point

Thank you Davedarko ;-)

  Are you sure? yes | no

Does this project spark your interest?

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