cad and 3d design of ink-testing tools presentations
TRANSCRIPT
CAD and 3D Design of Ink-Testing ToolsDavid So
August 21st, 2015
My Projects
Much more than just Mechanical Engineering
Fluid Centrifuge
Fluid Centrifuge
• Goal: Design a new fluid centrifuge to accommodate different sized test units
• Process:
– Evaluated current design of the Fluid centrifuge
– Created new system that fits the different sized test units
• Benefits:
– Allows new print bars to experience high amounts of acceleration in order to simulate and speed up the pull of gravity
– Will fit multiple sizes of test units
Progression of Designs
Original Design
First DesignAdded Extra For Strength
Extra Plate Not Needed
FinalRemoved Extra
Metal
Encap EFI (Electrical Fluid Immersion) Tray
What are Encaps?
• Encaps = Encapsulents
EncapsulantWire Bonds
Substrate
Silicon Print Engine
Substrate
Fluid attack
10-30 volts
Temperature (70C) Mechanical wiping
Encapsulant exposed to multiple stressors. It must protect the circuit from shorting/corroding.
Encap EII (Electrical Fluid Immersion) Tray
• Goal: Redesign a more user friendly system to test for fluid shorts
• Process:
– Received preliminary 3D model of what client wanted
– Talked with client to further understand requests and intended functionality
– Modified system to further aid and improve usability
• Benefits:
– New system allows for isolated modular access and removal of individual print bars
– Fluid reservoirs reduces the frequency of refills
Old Tray
New Tray
Fluid Humidity Level Monitor
Fluid Humidity Level Monitor
• Goal: Design a system to inject air bubbles into fluid in order to measure moisture loss due to fluid circulation
• Process:
– Received project scope and purpose
– Discussed with mentor about possible ways of accomplishing air injection into the fluid
– 3D modeled system and individual parts for 3D printing
• Benefits:
– Allows for measurement of humidity loss while fluid is circulating
– Interchangeable head system allows for different sizes of bubbles to be injected into the fluid
Fluid Humidity Level Monitor
Separa
tor
FLUI
D
AIR Bubble
r
Humid
.
Sense
.
Humid
.
Sense
.
Fluid Humidity Level Monitor
St. Helens Micro Pump
InkJet Micro Pump
• Goal: Use InkJet to create a micro pump
• Process:
– Used an Arduino to fire a InkJet pen
– 3D modeled head of InkJet print head
– Developed module to attach ribbon cable to InkJet print head
• Benefits:
– InkJet pen functions as a micro pump to allow slow and controlled pumping of fluid
Building the System
InkJet Print Head for Micro Pumping
Shooting Ink
Code Used
// Inputs and Outputs
const int buttonPin1 = 1;
//const int buttonPin5 = 5;
const int ledPin3 = 3;
const int ledPin4 = 4;
const int ledPin5 = 5;
const int ledPin6 = 6;
const int ledPin8= 8;
//const long interval = 1000; //
interval at which to blink (milliseconds)
int button1State = 0;
int oninterval = 1; // Length for
time on
int offinterval = 1000; // Length for
time off
int numloop = 5000; // Number
of times blinked
int sensorValue = 0; // Dimmer code
int outputValue = 0; // Dimmer code
const int ledPin = 2;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
pinMode(ledPin5, OUTPUT);
pinMode(ledPin6, OUTPUT);
pinMode(ledPin8, OUTPUT);
pinMode(buttonPin1, INPUT);
// Serial.begin(115200);
//pinMode(buttonPin5, INPUT);
}
/*When button is pressed, cartridge will
fire numloop number of times.
Length is specified by oninterval and
offinterval */
void loop()
{
button1State = digitalRead(buttonPin1);
if (button1State == LOW)
{
digitalWrite(ledPin, HIGH);
for (int i =0; i < numloop; i ++)
{
digitalWrite(ledPin3, HIGH);
//delay (oninterval);
delayMicroseconds (oninterval);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, HIGH);
//delay (oninterval);
delayMicroseconds (oninterval);
digitalWrite(ledPin4, LOW);
digitalWrite(ledPin5, HIGH);
//delay (oninterval);
delayMicroseconds (oninterval);
digitalWrite(ledPin5, LOW);
digitalWrite(ledPin6, HIGH);
//delay (oninterval);
delayMicroseconds (oninterval);
digitalWrite(ledPin6, LOW);
digitalWrite(ledPin8, HIGH);
//delay (oninterval);
delayMicroseconds (oninterval);
digitalWrite(ledPin8, LOW);
delayMicroseconds (offinterval);
//delay (offinterval);
//Serial.print(1);
//Serial.print(\n);
}
}
digitalWrite(ledPin, LOW);
}