DIY Inkjet Printer
Description
The prototype design used a carriage assembly constructed from steel rods that were assembled using connectors that can be printed on an FDM machine. The entire carriage system is driven along the x-axis by a belt attached to a stepper motor. The print cartridge, taken from an HP point of sale printer, is driven along the y-axis by another stepper motor belt drive. The electronic controls use an Arduino Mega to run all of the printing systems.
The design resulted in a working prototype that fulfills all of the design constraints. The rod frame carriage design is lightweight, easy to assemble and easy to integrate with the other systems. The Arduino used in the electronics has a large library of resources available to perform things like LCD, SD card, and stepper control.
Areas where future work should be focused include making molds and casting printable parts to bring down the overall cost, developing host side software, and optimizing the speed.
There is a video of this working here: youtube.com/watch?v=fYeYeTGkvJM
There are additional pictures here: flickr.com/photos/nicholasclewis/sets/72157626730985822/
This was a group project involving:
Patrick Hannan
Jared Knutzen
Nicholas C Lewis
Joy Markham
Instructions
Assemble the electrical components as shown in the "Circuit.zip" & "DIY Inkjet Printer.pdf".
Flash your Arduino Mega with the firmware from "Firmware.zip".
Use Processing.org to run the script in "Preprocessor.zip" and create a 'print.dat' file. Copy the file onto the SD card and print using the DIY Inkjet Printer.
Optionally don't build the x-y carriages and just mount the print head to other robots for mobile printing applications.
You must be logged in to post a comment.
Hi, Nicholas!
If you remember, I asked about theory of printhead in "inkshield topic", but haven't succeed in finding better printhead. So, I tried to repeat your experience by myself and have a "problem" with prithead.
Now I made "power part" of my printer and it has 20V 300mA for printhead nozzles. But when I trying to test just one nozzle with 5us pulses through 800us, it works strange:
It heating some seconds and then begin to spray some ink, but not like drops - like aerosol. So, is it normal? And how far I should place surface for painting in this case to have good resolution (and which is achievable?)?
Maybe, it's not good to paint permanently through one nozzle, but what time I should give it to cool? Maybe, I should to try another timing?
Thank you.
Typically you want the inkhead around 2-4mm from the print surface. I have a picture with the head various distances from the paper here: http://www.flickr.com/photos/n...
You should be on for ~5us then off for at least 800us and that should be fine for a single nozzle continuously.
There is some additional detail about driving the head here: http://nicholasclewis.com/proj...
Hi Nicholas,
I'm a french student in an computer school and we are currently building a mobile robot (that prints). We based our work on your Inkjet Printer.
We currently have a problem linking the carriage to our board. You used the CONN_16_HP_Q2347A connector. On the data-sheet (http://portal.fciconnect.com/C... we can't see where pin are connected to the Q2347A HP Carriage Assembly.
In your documentation (DIY_Inkjet_Printer.pdf), the first link you wrote in your bibliography is to InkjetKitDocs-v1.0.pdf.
Is the electric circuit schematics for linking the carriage is the same as yours? (without the connector)
The main problem we saw is that on your picture where we can see the CONN_16_HP_Q2347A, the 2 NC (not connected) pins are not on the side as there are on the carriage.
Do we miss something here ?
Subsidiary question: is the carriage they use (HP 51604A) is used/controlled the same as yours (HP C6602) ?
Thanks !
Cool!!! i also want to make one .i will buy this cartridge later.sounds easy to drive! although i have not comprehend the time sequence exactly. thank you for you shareing!!
Wow! Cool!
Three questions:
1) What is the powder print material?
2) How do you interface with/control the print head?
3) Can it print in full color? I would assume you could, but if you hacked the print head, you may not be able to. So that's why I'm asking.
This information is probably in the report, but I'd rather not read through 20 pages of writing. And it's late and I'm tired.
Thank you, and congratulations on your success! I'm going to try hacking an inkjet printer to print on powder this summer too!
Hi,
I read your datasheet and I would have more information about the cartridge. I would use the cartridge with any card, not only the Arduino.
- The voltage of the 2 pins "com" is 24V. What about the current intensity ?
- What are the voltage and the intensity for the others pins of the cartridge ?
- Why the pins 2 and 7 are not used ?
- What generator did you use to have 24V ?
Thank you !
- It is not 24v at the ink head. The head needs around 20v @ ~300mA.
- The other pis are pulled to ground to fire each nozzle. I strongly suggest re-reading pages 14-15 as they describe the voltage and timing for the head.
- Pins 2
&
amp; 7 have no connection to the head and are just connected together in the cable. They can be used for cable detection.
- If you look at the circuit diagram there is a LM317 regulator between the 24v and the head. This is what regulates the 20v.
Hi Nicholas,
I'm currently a computer science engineering student and I have to realize my final-year project. Actually, I
âm working on a printer robot and I found your inkjet printer firmware very interesting.
I want to buy the HP carriage assembly but there are two different references: HP Q2299A and HP Q2347A:
http://www.transactsupplies.co...
http://www.transactsup
plies.com/store/HP-Carriage-As...
I would like to know if theses references are both compatible with your firmware, or if your firmware is specific to an only one carriage.
It will be very nice of you to help me.
With my frenchy best regards,
Tiphaine
Sir do you have the book "Inkjet applications by matt gilliland", if so please send to my email. because i don't have a source here, i am a student not able to purchase through online. so only asking you.
Sir i don't have the hp print head you used in this project. and i have a print head that from CANON(BJC-2100), but it has more nozzles(resolution is 720*360 dpi), how i can interface that print head with the Arduino mega? and as you told that programming will become more complex, what should i do for that, and also i don't have any reference book to proceed further to wright program.. help me please..thank you..
hi..i wanna change the printing image which you uploaded in the preprocessor.zip, how can i convert some new image to .DAT format and will this work with the same printer to print??
Sorry for the delay.
The very first line of preprocessor.pde is:
// open a file and read its binary data
byte b[] = loadBytes("g3784.bmp");
change the "g3784.bmp" to the name of your new file. It should be a black and white bitmap that is scaled to fit on your printbed (@96dpi)
and is possible to add 3rd dimension to this project...have you tried that?
Hi
Great project. I have built the circuit, but I can not get the LCD to display coorectly. The words are placed random and not full words and sometimes just gibbarage are displayed and words are typed over the previous word. Is there anything else I have to load with the firmware for the lcd to disp
lay correctly? Any help much appreciated.
Cheers
Piet
I love the effort and intention, but one thing kills this project's final product stone dead.
In the specification/'functional requirements', you missed the most common expectation of anyone with a modern inkjet printer, and that is for it to print more than one page at a time unattended.
By not including that you went on to design the printer with an x-axis assembly that moved along the y
-axis, instead of using the proven method of guiding paper through rollers to the x-axis. Consequently, you have to change each page that you want printed individually by hand.
This gives the machine the overall effect of a self-plating printing press - combining levels of tech from completely diffe
rent centuries. :'(
I hope someone else can now develop on this work so that we can, for instance, easily print a hundred posters cheaply and easily with an open-source machine.
Just throw over 9000 rollers at it... then we jammin', an' I hope you like jammin' too. :-E
Not using rollers makes the machine more convenient for printing onto ridgid surfaces (cd blanks?).
That was intentionally NOT one of the "functional requirements.' As others have pointed out this printer is a poor replacement for a commercial inkjet printer and was never designed as one.
Although not explicitly stated in the report it has been stated before that the primary goals were to release an open source a method of:
1. connecting a inkjet head to an microcontroller
2. converting picture/text data to a format the microcontroller/inkjet could easily handle
If you are interes
ted in having a printer that can print to sheet after sheet please build on what we did, as that is why we shared this work. :)
Excellent implementation...
Could be interesting a new version, vertical, with 2meters carriage, able to paint on the walls...
OK, but what about drivers? For linux. ;-)
I believe it can be the best option for PCB printing, but ... have I to have 3d printer to build it? really?
Everything is open source and currently uses Arduino and Processing.org. It will work fine on any platform that supports those tools. Additionally the code should be adaptable to any other platform/language you may want.
You don't have to use a 3D printer to make it if you have other tools that you can use to build a basic x-y frame. Once again it is open source, use it, adapt it, and improve it. :)
How hard would it be to adapt this thing for a large variety of cartridges? I am imagining a testing application for a wide variety of refilled cartridges.
Nice work. Definitely a cool project. I often think of re-inventing the wheel. I must admit it would be much cooler if the parts to make it were actually cheaper than going out and buying a REAL inkjet printer. I'm sure you used parts from one as well.
Its neat that you have the ability to re-invent the inkjet printer, but its simply not practical. There are new ones on the internet, if you look hard enough, for as little as $10. My hats off for the hard work, but I would suggest a more productive area of development.
This project uses no parts from a commercial printer. Currently everything can be purchased individually. The attached PDF has a detailed BOM with sources.
I agree that it is impractical to re-invent the inkjet printer and this is not a re-invention. This project is to open the door to applications of inkjet printing that would be difficult or impossible with a commercial printer. One of these, a sphere printer, is suggested below by dave_menninger
, another is 3D powder printing as also mentioned below.
I wonder if anyone can help me... I'm struggling to find these .zip files made reference to. Complete n00b here I know, but where are they? :-E
I'm going to attempt to adapt this to an eggbot / spherebot. Thanks for the great documentation!!
You're guys did a very good jobs. Keep going and make 3D printer more powerful. :)
It is great to see that you good people are working to make an open inkjet printer. It's about time! :) I'll follow this with joy and anticipation.
License

Is there any reason that anyone can think of that this couldn't be modified to print signs on windows? Vacuum cups to hold it to the window and off we go?