How can I use Virtual COM on Linux?


Let me start the explanation about specific model first.

Our CT-S280 printer uses USB-Serial conversion chip from FTDI.
This printer supports only virtual COM for USB.
Therefore, for the explanation of CUPS, we have additional explanation about virtual COM in the following site.
http://www.citizen-systems.co.jp/english/support/download/printer/driver/cups/source/

The missing source file in this explanation can be found on FTDI site
http://www.ftdichip.com/Drivers/VCP.htm

On the models besides CT-S280, virtual COM function is realized not using FTDI chip.
But the function is designed to be compatible with FTDI chip.
So the explanation on the above site can be utilized for other model's virtual COM.

However, behavior of FTDI chip differs by the version and their virtual COM driver works differently depending on the chip version. Our virtual COM function is based on old FTDI chip but sometime it is wrongly recognized as newer chip and it does not work correctly. (Wrong character print)

In addition to the USB ID change explained on the above site, we found additional patch for the solution of above problem. Here is the explanation.

(kernel source extract directory)/drivers/usb/serial/ftdi_sio.c

besides the CT-S280 patch (VID=0x2730,PID=0xfff), following patch need to be
added to  ftdi_determine_type  function.
---------------------------------------------------------------------
In the beginning of this function, you can see the line showing
  version = le16_to_cpu(udev-> …
Right after this (before the branch by if sentence), insert the line
  if( version == 0x002 ) version = 0x400;
to make bcdDevice to be handled as 4.
---------------------------------------------------------------------
Note: If same PC uses device using FTDI chip, this change may affect the
behavior of the device.
We found wrong character pritning only at the first printing after
the connection but we could not find any reason.

*** Please note that the above is just our recommendation
and we cannot guarantee or support about this solution.***

You cannot comment on this entry