TOOL FOR SCRIPTING AND IMAGE PROCESSING APPLIED IN JETLAB INKJET PRINTERS

The aim of this paper is development of the additional scripting software for jetlab 4xl-A inkjet printer used in the Department of Technologies in Electronics at Technical University of Kosice. The developed software significantly contributes to the simplification of the technological process and thereby eliminates the main disadvantages of the control software provided with the device. The developed software in Matlab allows changing the main properties of designed structures such as the resolution of image, resize the image, set the offset and deposition parameters. Before the development of the scripting software, all parameters of the image or deposition process had to be written manually in the script form which caused the mistakes in the deposition process.


INTRODUCTION
The unstoppable development of nanotechnology brings new possibilities in the area of electronics technology.One of these technologies is inkjet printing technology (IJP), which offers a lot of advantages, such as creation conductive, semi conductive, isolation or other function layers onto various flexible or rigid substrates.Described non-contact printing method presents the digital printing, which works with small ink quantities with very low viscosity based on nanoparticles of special materials.This printing nano-technology is suitable especially for applications, where the precise printing with high accuracy is desirable [1].
IJP jetlab ® 4xl-A by MicroFab Technologies Inc. is used for our experiments.The described equipment includes the control software for managing the technological properties of device, such as the control wave properties, jetting properties and offset parameters.The control software by MicroFab accepts just the bmp files.For the final deposition of the nanoinks onto the polymeric substrates, the writing of the script is required, which includes the basic printing properties as well as the address of bmp file.This technological step presents the main disadvantage of the control software, which significantly slows down the printing adjustment and introduces errors into the process.

INKJET PRINTING TECHNOLOGY
The IJP presents the deposition technique of small volumes of nanoink onto the flexible polymeric substrates using the piezoelectric phenomena.The described deposition technique allows the applying of very thin layers (approx. 1 um) of conductive, semi conductive, isolation and special materials in the form of nanoparticles onto the polymeric substrates.Described non-contact printing method presents the digital printing, which works with small ink quantities with very low viscosity based on nanoparticles of special materials.This printing technology is suitable especially for applications, where the precise printing with high accuracy is desirable.The described technology offers the very wide range of usable materials.There are various types of polymer flexible substrates that could be used for flexible electronic devices, e.g.polyethylene terephthalate (PET), polyimide (PI) and polyethylene naphthalene (PEN) [1,2].
Inks, used for inkjet printing technology may be divided into 3 groups.The first, most used inks are based on nanoparticles of conductive organic or metal (silver, gold, copper) materials.The second group consists of semi conductive inks, which are based on carbon nanotubes, as well as on organic materials, such as PQT-12 or P3HT.The last group of inks serves to creating of isolation layers.For this purpose, organic (PVP, PMMA) and inorganic (Zr, TiO2, SiO2) materials are used [3,4].
The deposition process of nano-ink onto the flexible substrates with high precision, creation the suitable adhesion mechanism and recommended curing conditions are influenced on many technological steps which are closely related.These technological aspects represent the most important technological parameters, which must be taken into consideration during the deposition settings by using the developed software [1].

IMAGE PROCESSING OF IMAGES USED FOR PRINTING
As it has been mentioned in the introduction, the strict requirements for the technological aspects during the deposition process must been respected.In the next subchapters, mathematical operations of image processing implemented in the proposed software tool are described.

Image thresholding
Most common designs' insufficient which are used in electronic technologies is that are not available as binary images as it is necessary in the IJP jetlab ® .The majority of image software realizes the edge feathering which leads to that the edges between conductive route and the background is expressed by gray scale.The IJP technology works only with binary images.For this reason the grayscale images have to be converted on this form.This is achieved by choosing appropriate threshold [5,6].The value of the applied threshold depends only on subjective satisfaction of the technologist.Thresholding can be expressed by equation (1).
where Pixp represents the value of gray scale image pixel, Pixb is a binary value of this pixel after thresholding and the variable t is value of the threshold.By application the equation ( 1) on the image the binary image is obtained.

Color inversion
The second most common insufficient is that the conductive lines in the images are standardly represented by black color.For many electronics and technologists this is mainly familiar from design of PCB.In jetlab ® IJP technology the conductive lines are presented by white color.This is the reason why the color inversion is necessary.The color inversion in images can be simply achieved by using the equation ( 2) on all pixels of image.
where Pixib is the inverted value of binary pixel Pixb.The color inversion [5] of the gray scale images can be achieved by analogical procedure, as it is mentioned in the equation (2).

Resolution change
During the experiments realization and optimization of the horizontal and vertical movement's step of printing head, it is necessary also change the resolution of the printed structure.In the case of binary images, after the resolution changes the loss of information is not significant.Change of the resolution can be simple achieved by using the decimation and the interpolation.

Increase of resolution
The increase of resolution is achieved by inserting of the new pixels with appropriately chosen value.This process is also known as the interpolation [7,8].In the case of the binary images it is achieved by duplicating of pixels.If the resulting resized image has to be without the interpolation distortion, the degree of the interpolation must be integer.The process of the interpolation of binary image is shown in the Fig. 2.

Decreasing of resolution
The process of decreasing of spatial resolution is also called as decimation [7].Depend on decimations degree the decimation is achieved by dropping of each k-th pixel.The decimation is always the loss process connected with distortion.The process of the decimation is shown in Fig. 3.

Repeating printing
The deposited nanoparticles onto the flexible substrate after the sintering process are not homogenous due to the very thin layer of nanoparticles.For this reason, there is need to repeat the deposition process more time for achieve the homogenous layers with high conductivity.There are two possible ways how to repeat the deposition process.The first one lays on the repeating of nanoparticle deposition of the same structure on substrate where the start position is the same.In this approach the printing must be repeated with step which provides the creation of homogenous layer of nanoink.The optimal value of this step is a half size of the droplet diameter after the ink spreading on the substrate.It has to be taken into the consideration during the structure design which presents the main drawback of this method.The second method lays on the starting position offset of the printing head.The deposition process consists of the four iteration of the same structure with different start position.This procedure is shown in the Fig. 4. By repeating of the mentioned procedure it is possible to print multilayer structures with required number of layer.The main benefit of this method is that the structure has dimensions with respect to the resolution and DPI of designed structure.

JETLABS SCRIPTS FOR PRINTING OF BMP IMAGES
The most of processes realized on the jetlab devices are achieved by the scripts.The benefits of the scripting are that the script can be edited by arbitrary text editor like wordpad, notepad or gedit.Editing of the scripts presents the effective tool for parameter changes.The microfab's scripting language presents the user friendly tool for print control.Each script is started by the comment whereas the control software considers the first row as a comment.All other comments are distinguished from other commands by semicolon on the beginning of comment.Empty rows in the script are omitted and each new command has to start on the new row.The basic commands of 2D printing are listed in the Table 1.For needs of our experiments only the commands "moveto", "fly", "bitmap" and "repeat" are used.All of commands are described in detail in [9].Thus, in next subchapters, only the "moveto", "fly" and "bitmap" are described.From our point of view, these commands are the most important for our experiments.

Scripting command bitmap
The scripting command bitmap is used for printing the bitmap images.The syntax of this command is: bitmap <x-step> <y-step> <angle> <topbottom> <bidir> <filename> In the Table 2 the parameters of command "bitmap" are listed.The path to the bitmap file For example, the scrip for printing of file "route.bmp"located in the root directory of system C:\ with successive move from top to bottom, printing in both directions in horizontal way, no rotation and step 0.135 mm is: bitmap 0.135 0.135 0 0 1 "C:\route.bmp"

Scripting command fly
The deposition process can be also achieved by using the "on-fly" mode.This mode causes the speeding up of the deposition process.By using of this mode a straight line of spots is printed without stopping.In this mode it is necessary to choose the appropriate motion speed of the printing head.If the head motion is too high, the droplets after the impact on the substrate can be deformed by the inertia forces.Syntax of this command is below.

Set fly <on/off> <velocity> <burstcount><stepsize>
Parameters "stepsize", "burstcount" and "velocity" are closely related together.If the burstcount is set, the responsibility for creating of all droplets in a row of an array is moved to the jet controller, and only a trigger for the starting location in the row is being provided by the motion controller [9].Droplets releasing depend only on the mentioned parameters.Hence, in our experiments this mode is not used.The velocity parameter gives speed of printing and is given in mm/s.Example of activated fly-on mode with speed 10 mm/s is below.

Scripting command moveto
This command is used mainly for creation the multilayers structures when it is important to start always from the same position or from the position with defined offset.Syntax is: move to <x> <y> where x and y are values of horizontal and vertical coordinates given in mm.

DEVELOPED SOFTWARE TOOL
Previously mentioned algorithms was implemented in software suite Matlab [10].A program tool for processing of input designs, script generation (for one layer and multilayer structures) has been developed.In the Fig. 5 the main window of graphical user interface (GUI) is shown.The GUI consists of two main parts.On the left side are located the options for image processing of designs and generation of scripts.On the right side are shown previews of processed image and generated script.In the next subchapters the parts of GUI are described.

Options
This panel consists of two parts.The first one is focused on the image processing of designed structures.The second one is focused on the generation of scripts for printing of bitmap images and multilayer printing.

Image
In the Fig. 6 the detail of options used for designed structures edit is shown.As it can be seen from the Fig. 6, there is a possibility of creation the binary images by thresholding of gray scale images which can be inverted.In next it is possible to change the resolution according to the requirements on DPI, resolution and the final size of deposited design.From the Fig. 6 it is clear that loaded image can be processed by thresholding with threshold in the range of the interval <1, 255> given by the slider.Thresholded image can be also inverted if the checkbox "Invert" is marked.The modification can be achieved by pressing the "Process" button.After pressing the "Reset" button the original image is loaded and all changes are dropped.In the second part the tool for calculation of DPI, resolution and real size is located.It is obvious that these three parameters are closely related.By selecting the checkboxes "Lock", two known parameters will be locked, and by pressing the "Compute", the third unknown parameter is calculated.The size of image is changed by pressing of "Resize" button after the selection of resize factor from the listbox.In the addition to the default value, the next values -0.125, 0.25, 0.5, 2, 4 and 6 are listed in the listbox.By recursively resizing can be achieved the resolution by factor which is not listed in listbox.

Scripteditor
In the scripteditor is the possibility to setup the required parameters of script for printing bitmap images.In the Fig. 7 the detail of the panel for script generation is shown.

CONCLUSION
This paper describes the development of the software tool for scripting and image processing applied in jetlab ® IJP by Matlab.The developed scripting tool presents the significant contribution to the optimization of the deposition process.The use of this software greatly simplifies the parameter settings of the printing and thus eliminates the error rate caused by technologist.The developed software allows the setting of the important parameters of IJP as well as the image parameters in one technological step in contrast to the difficult scrip writing.

Fig. 1
Fig. 1 Jetlab ® 4xl-AThe IJP jetlab ® 4xl-A by MicroFab used for experimental works on the Department of Technologies in Electronics is shown in the Fig.1.The described technology offers the very wide range of usable materials.There are various types of polymer flexible substrates that could be used for flexible electronic devices, e.g.polyethylene terephthalate (PET), polyimide (PI) and polyethylene naphthalene (PEN)[1,2].Inks, used for inkjet printing technology may be divided into 3 groups.The first, most used inks are based on nanoparticles of conductive organic or metal (silver, gold, copper) materials.The second group consists of semi conductive inks, which are based on carbon nanotubes, as well as on organic materials, such as PQT-12 or P3HT.The last group of inks serves to creating of isolation layers.For this purpose, organic (PVP, PMMA) and inorganic (Zr, TiO2, SiO2) materials are used[3,4].The deposition process of nano-ink onto the flexible substrates with high precision, creation the suitable adhesion mechanism and recommended curing conditions are influenced on many technological steps which are closely related.These technological aspects represent the most important technological parameters, which must be taken into consideration during the deposition settings by using the developed software[1].

Fig. 5 Fig. 6
Fig. 5 The main window of developed program tool

Fig. 7
Fig. 7 The panel for script generationIn the chapter 4 the commands used in our scripts are shown.In the Fig.7is shown the possible options for script generation according to the description in the chapter 4. On the bottom of this panel are options for multilayer printing and printing with offset.Multilayer printing can be realized by repeating of one script or by multiple writing of all commands in one txt file.By pressing of the "Generate" button the script is generated and after generation the user can save it by "save" button.Example of script for multilayer printing with offset is shown below.

Table 1
The basic scripting commands of 2D printing

Table 2
Parameters of the bitmap command