News & Events

How do I drive the ez-Inkjet from a controller

Issue

I want to drive the ez-Inkjet from my controller, how do I do that ?

The best is you buy a GT controller from us, which has below already nicely implemented. But, if you want to do it yourself, it is not that complicated but you will probably need to come here.

Below gives you an overview of how it is done. We can provide examples for code, for bitmaps.

To print, an inkjet needs information to be printed (see below), a shaft encoder (the inkjet has shaft encoder inputs), and a print-go that comes from a photocell. Here we only handle the information, the shaft encoder and photocell we assume you know.

Principle

Communication to a server (ez_jet.exe) through tcp/ip sockets. The structure is a command, 3 parameters and a string.

After some initialization commands, like product length, your program has to generate a bitmap (.bmp) and you tell the inkjet over tcp/ip where to load the bitmap from.

Procedure

Open tcp/ip socket: below you see the 3 main commands

#define EZTCP_IP_PORT 10061
*sock = socket( AF_INET, SOCK_STREAM, 0);
setsockopt (*sock, IPPROTO_TCP, TCP_NODELAY, (char *) &init, sizeof (BOOL)))
connect( *sock, (struct sockaddr *) &baseAddr, sizeof (baseAddr) )

Initialize:
send.cmd = EZCMD_GET_HEAD_MAC;
send_msg_tcpip( &send, sizeof( send), __LINE__);

send.cmd = EZCMD_CONFIG_RES;
send.par1 = Inkjet.cfg.l_seriesRes; // 600 dpi
send.par2 = (int)( x + 0.49); // ticks per inch

send.cmd = EZCMD_CONFIG_LONG;
send.par1 = ProdLen*1000; // Paper width in µm

send.cmd = EZCMD_CONFIG_WIDE;
send.par1 = 54144; // Paper width in µm

send.cmd = EZCMD_CONFIG_WAVEFORM;
send.par1 = Inkjet.cfg.dropSize;

send.cmd = EZCMD_CONFIG_DIRECTION;
send.par1 = Encoder.cfg.reverse;
send.par2 = Inkjet.cfg.turnBackwards[0];

send.cmd = EZCMD_CONFIG_FLIP;
send.par1 = flipHorizontal;
send.par2 = flipVertical;

send.cmd = EZCMD_CONFIG_HEAD_OFFSET; // offset between 4 rows
send.par1 = i;
send.par2 = Inkjet.cfg.ez_offset[i];

send.cmd = EZCMD_CONFIG_VOLT_OFFSET; // offset to regular
send.par1 =Inkjet.cfg.ez_volt_all;

send.cmd = EZCMD_CONFIG_TEMPERATURE; // ink temperature
send.par1 = 0;
send.par2 = Inkjet.cfg.ez_temp;

In Production

send.cmd = EZCMD_PRINT_PAGE;
send.par1 = recordNo;
strncpy( send.string, “d:/temp/bmp-1.bmp”);

send.cmd = EZCMD_GET_STATUS;
send.par1 = 0; // 1=complete, 0=ok/nok

Example Bitmap: see zip

Please see Ricoh gen 5 data sheet

eZ-Inkjet: