Carbon Copy Paper Printer

the video of it working on Vimeo

I've set up a simple xy-table with a little solenoid on the printhead.

A little processing sketch read a bitmap black/white (no shades of grey) of 300*500 pixels (1 pixel = 1 step, this was defined by the number of steps available on the entire axis x and y) and store the coordinates of the black pixels in an array.

I 've got a sketch in arduino that ask for the next move on serial, starting from the origin (0, 0), processing calculates the offset x and y to move so that it goes to the coordinates of the first pixel stored in the array, then send it to arduino which move the x and y axis by that x-offset and y-offset, fires the solenoid for a few milliseconds and then asks for the next move and processing sends it back (the index is incremented each time arduino asks for a next move).

The axis are controlled by 2 unipolar steppers, 12V pumping 0.5A controlled by 2 ULN2004, and the solenoid is hooked on a TIP121 transistor.

To print i put a sheet of paper and then on top a carbon copy paper, the solenoid hits the paper where the black pixels are in the image.

So far i can print only bitmap images, i'm looking for a way to implement vector printing, like a cnc would do, though i don't know yet how to do that, everything has been coded by myself except for the stepper library.

hope it can help someone who wants to do this !

Pretty cool.

Implementing vector graphics should be relatively easy.

very nice!

That steps along quite smartly! (or was the video speeded up?)

It strikes me your approach, with some modifications, could form the basis for a 3D printer.

Suppose, instead of carbon paper, you used a plastic sheet with glue on the bottom. The solenoid would have to punch out a pixel of the sheet every time it fired, and deposit it on the model below. Alternatively to glue, it might be possible to use a hot solenoid plunger to melt the plastic and fuse it to the surface below.

After printing a layer of the model this way, you would have to lower the target model by one sheet thickness, and install a new sheet. Not very handy.

However, note the solenoid head only prints one narrow strip at a time. So... replace the full sized sheet with a ribbon, always at the print head position, that can be advanced on a programmable basis so fresh plastic is always below the solenoid. If you were very clever about the ribbon advancement strategy, you could probably work it out so each pixel punched out of the ribbon is adjacent to its predecessor, minimizing waste.

That steps along quite smartly! (or was the video speeded up?)

It appears to have been sped up, based on the flashes of the OP's hand in and out of the shot. ;)

yup, the print was sped up, total print time was 10 minutes, it depends on the number of pixels to print and their position, like if a have one simple line on the image, it prints it in just a few seconds but if i have some pixels but all over the image the x axis has to do a lot of travelling just to print a few pixels along the x-line, i was looking for maybe in processing searching for the first black pixel and then look for the nearest black pixel so that the print order stored in the array would be like "non-linear printing" of the image, that would bu fun, i have to try it.

concerning the 3d printer, i'm not looking for that since the purpose of it is for a school project and i just needed to print with this medium, though anybody interested in modding it into a 3d printer wouldn't have a lot more to do !

concerning vector printing what would be the way of doing it ? i have no idea how to read a vector file and interpret it into print instructions, have to look for Gcode and such things, i think i'm more interested with developping that "non-linear" print solution, would be the first non-linear bitmap printer :)