Inkshield

From RepRap
Revision as of 02:45, 15 November 2015 by Jobo (talk | contribs) (Bill of Materials)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Crystal Clear action run.png
InkShield

Release status: Working

Inkshield in action.jpg
Description
An Arduino shield for controlling the HP C6602x thermal inkjet cartridge.
License
Creative Commons Attribution-ShareAlike 3.0
Author
Contributors
Based-on
Categories
CAD Models
External Link


The Inkshield is an Arduino shield that can be used for controlling the HP C6602 inkjet cartridge. The board provides the necessary circuitry to boost a 12v input to a 20v output to drive the nozzles. It also provides a multiplexer and darlington array to control each nozzle. Four input pins are used to address the nozzles and one pin is used to fire the nozzles.

Theory

Nicholas has posted a very through explaination of the operation theory and circuitry on his website.

Purchasing

The Inkshield can be purchased from Nicholas C. Lewis on his website.


Bill of Materials

http://nicholasclewis.com/projects/inkshield/parts/

https://octopart.com/bom-lookup/YQR1ALkJ

Software

It should be noted the initial libraries for controlling the InkShield are some what lacking. There is a detailed explanation here. The simplified functionality is explained in the aforementioned document, and demonstrated with a simplified implementation of the "I <3 InkShield" sketch here.

Hardware Modifications

The MC34063A on the board can be replaced with a MC34063EBN (if your MC34063A burns out), with the following modifications:

  • U1 - MC34063EBN
  • R1 - Replace with a 1 Ohm part
  • C2 - Replace with a 100pF part

Marlin

This fork of Marlin provided provisions for controlling the InkShield. It will support up to 6 inkjet heads. The following is the Mcode used to control them.

M700 - P<head_number> S<nozzle_bits>

The argument to the 'S' parameter is a decimal number which is converted to a 16-bit binary number used to represent the nozzle firings. For example, sending "M700 P0 S3" would fire the first two nozzles simultaneously on the zeroth head because 3 is 11 in binary. Equally, "M700 P1 S64" would fire the 7th nozzle on the first head because 64 is 1000000 in binary. Also the firmware will handle all safety precautions with respects to timing when firing the nozzles.

Typical operation would be to use a G1 command to move the head, an M400 command to clear the move buffer, and an M700 command to fire the nozzles. This is a very inefficient way of operating the printer, however at slow speeds the delays are imperceptible.