How to setup the Epson JavaPOS ?
To find the last available Epson JavaPOS ADK use www.epson-pos.com (we can't put it there : restrictive licence)
Here I want to explain a little about how to setup the Epson JavaPOS ADK for TM printer:
On WindowsXP, and I believe the process on Linux is similiar
- Install the JavaSE which version you like. I use jdk1.5.0_09;
- Then installed the "Epson JavaPOS ADK 1.82" (or 1.81, 1.80, any version suppor jpos18-control; and copy the "epsonJposService182.jar, epsonJposServiceCommon.jar" to /ofbiz/applications/pos/lib;
- NOTE:
- Epson JavaPOS program will also install the Jars in JavaHome/jre/lib/ext so if you get conficts look there and resolve the driver versions. like jpos111.jar and in the ofbiz like you might have jpos182.jar
- if you are running more than one instance of ofbiz then it is best to have the drivers just in Ofbiz, so remove the SetupPOS.properties as well
- NOTE:
- Now modified the jpos.xml file, under /ofbiz/applications/pos/config; I post a sample here:
It uses a TM-U220D on COM1 port, please remember to keep the jpos182 or 180 same as the file you using under ./pos/lib;
<JposEntry logicalName="TM-U220D">
<creation factoryClass="jp.co.epson.jpos182.util.EpsonJposServiceInstanceFactory"
serviceClass="jp.co.epson.jpos182.ptr.U220D"/>
<vendor name="SEIKO EPSON" url="http://www.epson.co.jp"/>
<jpos category="POSPrinter" version="1.8"/>
<product description="EPSON TM-U220D Printer Device Service"
name="EPSON Services for JavaPOS(TM) Standard" url="http://www.epson.co.jp"/>
<!--Other non JavaPOS required property (mostly vendor properties and bus specific properties i.e. RS232 )-->
<prop name="dataBits" type="String" value="8"/>
<prop name="Parity" type="String" value="0"/>
<prop name="portName" type="String" value="COM1"/>
<prop name="U375Compatible" type="String" value="0"/>
<prop name="deviceBus" type="String" value="RS232"/>
<prop name="DataLen" type="String" value="1"/>
<prop name="UsedJAI" type="String" value="0"/>
<prop name="TimeoutTime" type="String" value="5000"/>
<prop name="baudRate" type="String" value="9600"/>
<prop name="TwoColor" type="String" value="0"/>
<prop name="PortType" type="String" value="0"/>
<prop name="UsedNVRAM" type="String" value="0"/>
<prop name="StopBit" type="String" value="1"/>
<prop name="RetryTime" type="String" value="100"/>
<prop name="ErrorOption" type="String" value="1"/>
<prop name="ReverseEject" type="String" value="0"/>
<prop name="SerialPowerWaitTime" type="String" value="500"/>
<prop name="InputWait" type="String" value="1"/>
<prop name="AnalysisLevel" type="String" value="1"/>
<prop name="BufferSize" type="String" value="2"/>
<prop name="DeviceDesc" type="String" value="EPSON TM-U220D Printer"/>
<prop name="OutputLength" type="String" value="10"/>
<prop name="parity" type="String" value="None"/>
<prop name="stopBits" type="String" value="1"/>
<prop name="PortName" type="String" value="COM1"/> <!-- Windows -->
<!--prop name="PortName" type="String" value="/dev/ttyS0"/-> <!- Linux -->
<prop name="ReceiveTimeout" type="String" value="10"/>
<prop name="TwoByteCharacter" type="String" value="0"/>
<prop name="Page254UseCode" type="String" value="0"/>
<prop name="PhysicalDevice" type="String" value="TM-U220D"/>
<prop name="PaperSize" type="String" value="80"/>
<prop name="BaudRate" type="String" value="6"/>
<prop name="Page255UseCode" type="String" value="0"/>
<prop name="ServiceVersion" type="String" value="1.80"/>
<prop name="flowControl" type="String" value="None"/>
<prop name="FlowControl" type="String" value="1"/>
</JposEntry> - Install Java CommAPI 2.0: copy comm.jar and javax.comm.properties to j2se or j2re 's /lib folder. Copy the win32com.dll to /windows/system32 (see Attachments)
- Modifiy the pos-containers.xml, which under /framework/base/config:
to make the
<property name="Receipt" value="TM-U220D" />
value same as you defined in jpos.xml file.
Now launch with java -jar ofbiz.jar -pos, and enjoy it!
Successful TCP / Ethernet Epson printer implementation
- First, replace the modules in back of the printer
- While the printer is unplugged from power, you must change the "reset" dip-switch (2-7) from off to on.
- Power on the printer, and plug it into the network.
- As per the "UB-E02 Technical Reference Guide." (get it, you'll need it) use the switch button on the Ethernet module to set the ROM back to factory defaults. This will also print a settings page afterward, and let you know the subnet / ip address that you'll need to know to configure the printer.
- Use the Epson TMNet WINconfig utility on a Windows box (sorry! there is NO linux utility!) Set the PC on the same subnet, and set your gateway as the default IP address of the printer.
- Change the settings of the printer (once connected) to suite your environment.
- Add the printer to Epson JavaPOS with SetupPOS.sh using the IP address and info that you set previously.
- Test with CheckHealth
- Add printer to pos-containers.
- start and test OFBIZ...You will receive the error at the bottom of the page. I think it's from something in the deviceloader that is able to check through serial and not though Ethernet! Nothing I wanted to fiddle with though, It works just fine and fast!
FYI....DO NOT use a passthrough drawer on Ethernet printers, or customer displays. It mentioned this several times in all of the technical guides.
***IF YOU HAVE A CASH DRAWER CONFIGURED, AND UNPLUGGED WHILE TESTING, YOU WILL RECEIVE THE FOLLOWING ERROR*** (although it doesn't affect anything, and the application still starts)
---- exception report ----------------------------------------------------------
Exception: jpos.JposException
Message: The power supply of the device is off.
---- stack trace ---------------------------------------------------------------
jpos.JposException: The power supply of the device is off.
jp.co.epson.upos.pntr.init.AbstractPrinterInitialization.getRealtimeStatus(Unknown Source)
jp.co.epson.upos.pntr.init.AbstractPrinterInitialization.getPrinterStatus(Unknown Source)
jp.co.epson.upos.pntr.init.AbstractPrinterInitialization.getPrinterStatus(Unknown Source)
jp.co.epson.upos.pntr.init.AbstractPrinterInitialization.initializeCommon(Unknown Source)
jp.co.epson.upos.pntr.init.AbstractPrinterInitialization.initialize(Unknown Source)
jp.co.epson.upos.pntr.init.AbstractPrinterInitialization.initializeDevice(Unknown Source)
jp.co.epson.upos.drw.CashDrawerPortControl.initializePrinterInstance(Unknown Source)
jp.co.epson.upos.drw.CashDrawerPortControl.openPort(Unknown Source)
jp.co.epson.upos.drw.CommonCashDrawerService.setDeviceEnabled(Unknown Source)
jpos.BaseJposControl.setDeviceEnabled(Unknown Source)
org.ofbiz.pos.device.GenericDevice.enable(GenericDevice.java:71)
org.ofbiz.pos.device.GenericDevice.open(GenericDevice.java:46)
org.ofbiz.pos.device.DeviceLoader.load(DeviceLoader.java:165)
org.ofbiz.pos.container.JposDeviceContainer.start(JposDeviceContainer.java:50)
org.ofbiz.base.container.ContainerLoader.start(ContainerLoader.java:101)
org.ofbiz.base.start.Start.startStartLoaders(Start.java:263)
org.ofbiz.base.start.Start.startServer(Start.java:312)
org.ofbiz.base.start.Start.start(Start.java:316)
org.ofbiz.base.start.Start.main(Start.java:399)
--------------------------------------------------------------------------------
Epson JavaPOS ADK 1.82 support these product
DM-D110 DM-D210 DM-D500 DM-Z460/DM-Z461
TM-H5000II TM-H5200 TM-H6000 TM-H6000II TM-H6000II Photo ID TM-H6000II Validation
TM-H6000II with Scanner TM-H6000III TM-J2000/TM-J2100
TM-J7000/TM-J7100 TM-J7500/TM-J7600
TM-L90 TM-P60 TM-T88II TM-T88III TM-T88IIR TM-T90
TM-U210A TM-U220 w/Black Mark Sensor TM-U220A TM-U220B TM-U220D TM-U230 TM-U950
Advice
Never load/mix 2 instances of ADK (eg 1.8x and 1.92) on the same machine