retrointerfacing

- connecting past and future -

Archive for the ‘reprap’ tag

Repstrap using HP840c’s

with one comment

With the StarLC10 matrix repstrap ending up as pizza plotter, a start has been made building a new 3D machine using only the parts of 3 HP deskjet 840c printers.

r0013937

The printers contain many useful parts, the casing is made almost entirely out of ABS (printing material, hurray!)

r0013939

Especially the sliders come in nice, rectangular frame’s which make mounting them easy. For the first tests a frame has been assembled using standard aluminum X-beams (boikon).

r0013962

Using the cleaner bin (which normally brushes and seals the cartridge) a Z-axis has been made which has at least 8cm of travel:

r0013947 r0013958 r0013959

Arduino-based control of a DC motor using incremental encoder and PID is not much more difficult than controlling a stepper motor. See the wiki for full documentation.

void setup(){
  int oldposition;
  Serial.begin(9600);
  attachInterrupt(0, encoder, RISING);
  pinMode(10,OUTPUT);
  pinMode(12,OUTPUT);
  setMotor(-150);
  delay(50);
  while(position!=oldposition)  {
    oldposition=position;
    delay(50);
  }
  setMotor(0);
  position=0;
}
void loop(){
if(millis()>time+1)
{
  float setpoint = 1000+400*sin(n/200)+200*sin(n/50); // 1890 positions
  float error = setpoint - position;
  setMotor((int)(limit((Kp*error + Kd*(error-oldError) + limit((Ki*sumError),antiWindup)),255)));
  oldError = error;
  sumError+=error;
  n++;
  time=millis();
}
}
void encoder() {// encoder service routine
  if (digitalRead(4)>0) position++;
  else position--;
}
void setMotor(int value){ // set PWM of motor, value may range from -255 to 255
  if (value>=0)   {
    digitalWrite(12,LOW);
    analogWrite(10,value);
  }
  if (value<0)   {
    digitalWrite(12,HIGH);
    analogWrite(10,value);
  }
}

next up: including the extruder head, interfacing, making connections, shredding abs, making a scrap-2-3mm-wire extruder system, etc.. etc…

Written by edwin

August 22nd, 2010 at 9:28 pm

Posted in fablab, fabrication

Tagged with ,

nylon extruder #2

without comments

nylon1 nylon2 nylon3

After the promising results with the first nylon extruder, we (woutzweers and I) made a new nozzle following reprap extruder size (so a 3.5 mm feed hole and a 0.5 mm extrusion hole). The extruder head consist of a small piece of brass with two holes placed at 45degree angle. The soldering iron has been mounted in the clamp of a milling machine, everything in the following movie is hand-operated.

Written by edwin

February 13th, 2010 at 7:45 pm

Posted in fablab, fabrication

Tagged with , ,

Nylon Extruder from soldering station

without comments

Of course, the machine described in the previous post was never meant to have a sole purpose of pizza printing (which it admittedly does badly) but to become a repstrap machine so I can build a sweet Mendel. Next step after a cartesian robot is the plastic extruder. Although other people have tried to use a soldering iron (with limited success) we chose that approach nevertheless. Since isolated heating wire appears to be hard to come by (except for the makerbot store) and we had a spare soldering station lying around. Our first tests seem promising:

nokia2281 sany0016 nokia2306

Critical issues are the steep thermal decline you need from the guiding tube to the heated nozzle. As soon as you drop pressure in putting the nylon through, the plastic pops out on top of the heated nozzle. Next up are a guiding tube from peak (or perhaps some ceramic material) and the steppermotor drive for automatic feeding.

BTW.. the reason we use nylon, is that you can buy it in a normal DIY hardware store. It is normally used for pulling wires trough tubes or unblocking drainage. ABS wire is still pretty expensive everywhere, especially for this kind of testing you’re not going to buy 3 kg…

Written by edwin

February 9th, 2010 at 5:35 pm

Pizza Plotter

with 3 comments

Bringing personal fabrication to your kitchen: the pizza Plotter. During one of the last lectures I gave for Creative Technology about reprap’s and personal fabrication one of the pizza hungry students (Symplexity) pointed out the necessary connection between pizza and production. Thus the idea for a Pizza Printer was born.

The previous posts on the Repstrap describe a 3D carthesian robot made from dot Matrix printer parts (using ONLY parts from three StarLC10 printers). Instead of the Z-axis the nozzle of a pressure plant mister was put on the head. The tank has been filled with tomato sauce. See the results on youtube below:

OK. admittedly, the accuracy needs some work. This has more to do with pressure / extrusion control than with the 2D robot. (which is basically an ordinary ottantotto controlled plotter now). The original StarLC10 power supply has been used, along with part of the casing. A standard RC servo has been added to the plant mister nozzle, allowing for on-off control for move- and draw commands. The ottantotto controls three stepper motors directly (using four wires per motor). The original stepper driver chips (STA401A) have been salvaged and re-used. For all the motors a single STA401 has been used. The control signals of both parallel motors have been bridged.

r0013730 r0013736 r0013731 r0013717 r0013733 r0013729

A drawing is made using a very simple processing sketch, based on the ‘file-save’ examples.

/**
* sketchtool, based on the 'filesave' example.
* move mouse. Every time you click, a datapoint will be saved
*/
int[] x = new int[0];
int[] y = new int[0];
void setup()
{
size(512, 512);
frameRate(30);
}
void draw()
{
background(204);
stroke(0);
noFill();
beginShape();
for (int i = 0; i < x.length; i++) {
vertex(x[i], y[i]);
}
endShape();
// Show the next segment to be added
if (x.length >= 1) {
stroke(255);
line(mouseX, mouseY, x[x.length-1], y[x.length-1]);
}
}
void mousePressed() { // Click to add a line segment
x = append(x, mouseX);
y = append(y, mouseY);
}
void keyPressed() { // Press a key to save the data
String[] lines = new String[x.length];
for (int i = 0; i < x.length; i++) {
lines[i] = x[i]*4 + "t" + y[i]*4;
}
saveStrings("positions.txt", lines);
exit(); // Stop the program
}

Tomato Sauce and Pressure Vats are a match made in white-wall hell. At least until I fully understood the merits of hose-clamps. Luckily, if you are quick enough, the stains wash off well.
r0013726

The printing program is equally simple (but will follow in a next post) The Ottantotto software has been made using winavr (since it involves timer interrupts, and I really love the AVRlib libraries from procryon)

Written by edwin

February 3rd, 2010 at 3:09 am

Posted in DIY, Robotics

Tagged with , ,

Repstrap V2

without comments

It is fun to see how deprivation of material can spark creativity! By setting the boundaries for this project to use ONLY the parts of printers and computer junk, you can - will come up with solutions you otherwise wouldn’t have thought of!

r0013688

After last week’s enthusiastic post, reality kicked in hard when trying to control the steppermotors. Bottom line: they were by far not strong enough to power the metal carriage (normally they only have to move a plastic printer head) Besides lack of strength, they also lacked resolution. With one step (motor 7.2 degrees) more than one milimeter is covered! This makes it hard to get enough precision for printing parts.

One other problem is synchrony between the two side-axes. The slightest difference between the two motors causes the system to jam. The only way to prevent this is to mechanically link both motors.

It came as a surprise that it is possible to do all this using only the remaining parts of the matrix printers. The gears that were previously used for driving the paper roll have been used for a reduction in the drive train. Superfluous gears normally used for spinning the ink-lint have been used as bearings.

r0013684 r00136851 r0013686

r0013687 r0013689 r0013690

r0013691 r0013692 r0013695

The last two pictures show two optical detectors as end-stops for initialization purposes.

Between the two halve shafts that couple the motions from both Y axes, a temporary meccano solution has been made as flexible shaft coupling. Eventually something will have to be distilled from the printer parts, or I will cheat with an ordered flex coupling.

r0013696

Written by edwin

January 11th, 2010 at 5:14 am

Posted in Uncategorized

Tagged with ,

Repstrap V2

with one comment

Some time ago I tried rep-strapping using 5-1/4” diskdrive motors and MDF wood. (see here). The motors turned out to be way too weak, the M5 thread way to slow. Perhaps a larger thread (M12) and some bigger steppermotors can save this evening of work.

In this second attempt I have been using only the parts of three old dot-matrix printers (star LC10) and other computer parts. (I cheated a little bit. So far the extra parts include a big slab of MDF wood and two M8 bolts with washers and nuts)

So far I have build a 3D cartesian robot using the three printers. For the Z-axis I have added the mechanism of a CD-ROM player. Next part will be the motor control (also using the salvaged motor control hardware from the original printers) and an extrusion head (probably not completely from printer- or discarded computer-junk parts)

repstrap1 repstrap2 repstrap3

Written by edwin

January 3rd, 2010 at 4:12 am

Posted in Arduino, DIY, Robotics

Tagged with ,

Personal Fabrication

with one comment

I’m really enthusiastic about the reprap project. The whole Idea of having a printer that can print functioning parts, just on your desktop is .. well.. cool. The reprap is a machine that can replicate part of its own parts. However, to build one from scratch you get a certain ‘bootstrap’ problem.. Hence you have to start out with a ‘repstrap’. Or simpler said, build a 3d extruder/printer/milling machine from scratch so you can make the parts for a reprap machine or any other design.

This is the first post on this subject, the X-axis of the machine is more-or-less finished. Parts used are:

  • M5 threaded rod
  • stepper motor and bearings from 5 1/4” diskdrive
  • MDF and screws
  • two slider-bearings from a kitchen drawer

Normal ball-srews have a larger pitch, so the cart can travel faster. This cheap solution using normal screw end is probably going to be rather slow… Oh well.. you have to start somewhere.. I made this part in one evening in the lab with the Spullenmannen, after a toko on OpenFrameworks and ComputerVision.

printerxaxis

diskdrive1 diskdrive2 diskdrivebearing parts bearingmount motormount mdf

Written by edwin

February 5th, 2009 at 4:39 pm

Posted in DIY, Robotics, fablab, fabrication

Tagged with ,