please dont rip this site

Direct InkJet PCB Resist Printing

Custom Epson Based Flatbed

By Volkan Sahin

My major aim was to design a hardware/SW to implement a generic printer device. I planed to use inkjet head as an actuator. Later the same structure can be used to control laser/edm head also. I used my previous experiences on Epson CX4200/4800 because of that my knowledge is limited to drive Epson piezo heads but their head is much more complicated than Xaar or Spectra heads.

As a general rule piezo heads can be used to eject different type of liquids but for Epson head never try to use anything that is solvent based. The main reason is inside the head most parts are glued together and it is very easy to damage it.

In my implementation, I try to use minimum computational power for the micro and try to do all the timing related tasks on the fpga and keep all bulk storage at the PC side.

As a summary:

I uploaded schematics, a figure showing implemented blocks inside fpga and Epson head driving signals

Epson inkjet head signals:

All colors data are sampled (latched) with CLK signal. In Epson head each dot is represented by 2 bits therefore if each color has a 90 nozzles it means that we need to send 180 bits, in addition to that it also requires a waveform select bits in my case it was 32 bits. So it requires 212 bits data transfer for per 90 nozzles.

Common and CH signals

Common and LATCH (LE) signals

Common and NCHG signals

2 bits are used to select a different drop size for each dot. For example:

The waveform select bits (32 in my case) is used to assign physical waveform number to 2 bits representation, so in this case we have 32 bits and maximum 4 possibility for each dot, we can select 1 out of 8(=32/4) possible waveforms for each dot. This is common for all 90 nozzles.

On X-axis I have 720 dpi linear encoder(quadrature decoding) and if assume head travels 8" in 2 seconds we have ~350 microseconds between each encoder pulse. During this time we need to download next encoder position data so our head clock period should be 3.3 microseconds maximum in the case of double edge clocking. If we double the resolution we need 1.65microseconds as a clock period.

You can find detailed information on Epson head format in US patent 6758544 B2.



Block Diagram

Source files for the FPGA can not be released due to software patent issues. Part of the code used is closed source, and can not be shared. Without that part, the rest is not useful. If you would like to participate in producing open source code, please contact the yahoo group for inkjet PCB printing...



John L Wright of Computer Repair Says:

Volkan Sahin Could you send me an email address so that we may email each other.
I have an application for a GPL coded printer that uses Spectra heads
Thanks John Wright

file: /Techref/pcb/etch/custom-vs.htm, 9KB, , updated: 2019/9/9 09:01, local time: 2024/7/13 17:42,

 ©2024 These pages are served without commercial sponsorship. (No popup ads, etc...).Bandwidth abuse increases hosting cost forcing sponsorship or shutdown. This server aggressively defends against automated copying for any reason including offline viewing, duplication, etc... Please respect this requirement and DO NOT RIP THIS SITE. Questions?
Please DO link to this page! Digg it! / MAKE!

<A HREF=""> PCB Resist, InkJet Printing, Epson InkJet, By Volkan Sahin</A>

After you find an appropriate page, you are invited to your to this massmind site! (posts will be visible only to you before review) Just type a nice message (short messages are blocked as spam) in the box and press the Post button. (HTML welcomed, but not the <A tag: Instead, use the link box to link to another page. A tutorial is available Members can login to post directly, become page editors, and be credited for their posts.

Link? Put it here: 
if you want a response, please enter your email address: 
Attn spammers: All posts are reviewed before being made visible to anyone other than the poster.
Did you find what you needed?


Welcome to!


Welcome to!