P.A.S.T.E. (Portable, Affordable, Solder Tube Extruder)


P.A.S.T.E. is the first “commercially-oriented project” I have designed. While I really do not have an interest in selling the product for a profit, P.A.S.T.E. was born out of my experience with industry SMD soldering. RIT has a full “surface-mount technology” lab with pick & place machines, hot-air rework stations, x-ray machines, etc., but it is not used by EE’s as part of our curriculum (as far as I can tell, EE’s at RIT never get any exposure to PCB design or soldering). On a separate occasion for Launch I had the opportunity to work in the lab and realized how great this facility is. When looking online for my own equipment, I bought a hot air rework gun for around $50 which was reasonable in my mind, but I was not able to find a cheap tool for actually applying the solder paste. RIT’s SMD lab has an elaborate pneumatic system with compressed air for their wonderful pneumatic solder paste machines. Unfortunately, I do not want an air compressor in my room. An even worse problem with the compressed air method is the price of the pneumatic tool actually dispensing the solder. From a mechanical, rather than pneumatic, approach, I saw i-Extruder, a pen-shaped tool that encases the solder syringe. This looks like a great device, but starts ~$200–no thank you. Thus I decided to make my own machine, P.A.S.T.E.


From an electrical standpoint, P.A.S.T.E. is a very basic system. An ATTiny85 microcontroller reads the status of the Forward and Backward buttons near the end of the syringe to determine the motor’s direction and the analog input of the potentiometer to determine the motor’s speed. The motor driver has two pins that determine the direction and speed of the motor. The potentiometer analog input value is mapped to a PWM value for the ATTiny to output to one of the two pins, dependent upon the button selected for direction (see the code below for a less wordy explanation).

Price Breakdown (most referenced from ordering 10 sets of components)
(1) – PCB – $2.30
(1) – Motor – $13.19
(1) – ATTTiny85 – $1.24
(1) – DRV8833 – $1.932
(2) – Momentary Push Button – $0.1326
(1) – Potentiometer – $1.41
(1) – 1k Resistor – $0.0277
(1) – 47k Resistor – $0.008
(1) – 2.2uF Capacitor – $0.04
(1) – 10nF Capacitor – $0.0079
(1) – 10uF Capacitor – $0.0469
(1) – Polarity Diode – $0.291
(1) – Micro B USB Connector – $0.801
(1) – Power LED – $0.138
(1) – 8POS Dip Socket – $0.1472
(1) – Screw Terminal – $1.05

Total Cost: $22.76 (not including solder or 3D printed parts, but 3D printed parts are essentially free)


P.A.S.T.E. is designed to be a very plug and play tool. To use the machine, simply plug in 5V over USB or with the convenient 0.1″ headers, move the slide switch to the “On” position, and set the speed with the potentiometer. P.A.S.T.E. is designed to be held like a pen with one’s thumb pressing the button, but I have found a variety of ways to hold the machine with different fingers pressing the buttons.


The mechanical aspect of  P.A.S.T.E. was a little complicated due to the small volume I had to work with, as well as the round nature of the syringe. I needed to design a keyway to prevent the pushing mechanism from simply twisting in the syringe and not pushing down. You can see in the picture on the right just how small the motor is. The functional assembly can be seen in the renderings from Fusion 360 on the right. The shaft of the motor I ultimately used was already a threaded rod. Consequently, all I needed to do was make a screw mechanism for pushing the syringe. This mechanism is pictorially described on the right. The “plunger” (as I call it) has a hexagonal cutout in it to hold a nut (via epoxy). This is a square shaft, so the rotation of the screw does not rotate the plunger instead of pushing it down the tube. The square shaft mates with the square hole shown in the clear render. You may ask what the large and very thin extrusion at the end of the plunger is. This is simply so the part will stick to the bed during 3D printing. When printing the prototypes for P.A.S.T.E., the plunger would consistently separate from the bed, so I added this region for added bed adhesion from the higher surface area.


Even Industries
Engineer: Joseph Even
Description: Complete code for P.A.S.T.E.

const byte CT2 = 0;
const byte CT1 = 1;
const byte POT = A1;
const byte FWD = 3;
const byte BWD = 4;

int drive_speed = 0;
bool fwd_status = 0; 
bool bwd_status = 0; 

void setup() {
pinMode(CT2, OUTPUT);
pinMode(CT1, OUTPUT);
pinMode(A1, INPUT);  

void loop() {
  drive_speed = analogRead(A1);
  fwd_status = digitalRead(FWD); // Inverse Logic (INPUT_PULLUP)
  bwd_status = digitalRead(BWD); // Inverse Logic (INPUT_PULLUP)

if ( (fwd_status == 1) & (bwd_status == 0) ) { // FORWARD
 analogWrite(CT1, drive_speed / 4);
 digitalWrite(CT2, LOW);
else if ((fwd_status == 0) & (bwd_status == 1)) { // REVERSE
 digitalWrite(CT1, LOW);
 analogWrite(CT2, drive_speed / 4);
else { // NEUTRAL
 digitalWrite(CT1, LOW);
 digitalWrite(CT2, LOW);