Professional Documents
Culture Documents
Supported Versions
StarIOPort3.1.jar (Default)
Bluetooth, Ethernet
StarIOPort3.1.jar (Default)
Android OS 2.1
Bluetooth, Ethernet
StarIOPort.jar
Tools Needed:
JDK 6
Eclipse
Android SDK Manager
ADT (Android Development Tool) Plugin for Eclipse
USB Windows Driver by Android Device Manufacturer
Portable Printer
When using StarPRNT emulation:
To use the StarPRNT emulation, set the emulation setting of the printer to Star Line
Mode. To change the emulation, proceed as follows. For SM-L200, it does not need
to switch the emulation.
Table of Contents
Key Legend:
Warning
Note
CAUTION:
Android OS Version
4.4
4.2
4.0
3.1
5.0
4.3
4.1
3.2
Interface
2.1
3.0
2.3
2.2
SM-S210i *
(JP model only)
Bluetooth
SM-S220i *
(Models for US and
Europe only)
Bluetooth
Model
SM-S230i
(Models for US and
Europe only)
Bluetooth
SM-T300i *
Bluetooth
SM-T400i *
Bluetooth
SM-L200
mPOP
USB
USB **
Bluetooth
USB
Bluetooth
5.1
4.4 5.0
4.2 4.3
4.0 4.1
Get Status
Sample Receipts
1D Barcodes
2D Barcodes
Text Formatting
Raster Graphics
Sample Images
MSR
Interface
Port Discovery
Bluetooth Setting
Star Printer
SM-S210i *1
(JP model only)
Bluetooth
*3
SM-S220i *1
(Models for
US and Europe only)
Bluetooth
*3
Model
USB Setting
SM-S230i
(Models for
US and Europe only)
USB
*3
Bluetooth
*3
SM-T300i *1
Ethernet
*3
SM-T400i *1
Ethernet
*3
USB *2
*4
*5
*6
Bluetooth
*4
*5
*6
USB
Bluetooth
SM-L200
mPOP
Note: This SDK offers the most popular features, but not all printer functionality has been included. The commands not
included in this SDK application are available in the StarPRNT Programming Manual.
These screenshots were captured using an Android 4.0 tablet. Screenshots and wording can
vary between Android operating systems.
USB Interface
1. The Android device must be running OS Version 3.1 or higher. (Versions 3.0 and lower
are incompatible with USB tethering to external devices like printers.)
2. No specific Star Micronics driver or printer software needs to be installed on the
Android device.
3. The USB cable needed can vary by tablet. Most Android tablets do not support the
common A to B USB cable. Some require mini/micro USB cables or adapters/docks.
Review the specifications for your tablet to ensure the correct cable is being used;
there is no specific pin out for Star USB Printers.
4. When connecting multiple devices using a USB hub, the recommended cascade
connection is maximum one stage.
The maximum number of devices which can be connected at the same time is 4.
Depending on Android device, the above message may appear the first time you interact (get
status or print) with the Star USB Printer.
To remedy this, enter the following code into the AndroidManifest.xml and device_filter.xml
file.
[AndroidManifest .xml]
<intent-filter>
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
</intent-filter>
<meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
android:resource="@xml/device_filter" />
[device_filter.xml]
<?xml version="1.0" encoding="utf-8"?>
<resources>
<usb-device class="255" subclass="66" protocol="1" />
<usb-device vendor-id="1305"
<usb-device vendor-id="1305"
</resources>
mobile printer
mobile printer
Bluetooth
All Star Bluetooth devices have each initial device name as a factory default setting, such as "Star
Micronics" and "DK-AirCash". When using multiple devices which have same device name, it is
useful to change the device name for identifying each device easily.
You can change the LAN/Bluetooth settings of Star POS devices such as a device name setting by
using the Star Setting Utility provided by Star Micronics. Please download it from Google play.
5. If use the PIN Code, enter the PIN number. The factory default for standard Star POS
Device is 1234. (Portable Printer only)
10
2. Tap Security.
11
12
13
14
15
16
Tip: The above error occurs if you attempt to reinstall the .apk from a different host.
To remedy it, delete the application on your Android device and rerun the app.
17
Port Name
USB
USB:
USB:Serial Number
Bluetooth
BT:
BT:Device Name
BT:Printer MAC Address
Notification
In case of using Bluetooth interface with PIN code setting, when you execute getPort method,
some terminals(*) require you to input PIN code again.
Even though you input it, the application fails getPort method and cannot print or cannot get
status.
In this case, please try the following countermeasure.
Change port settings from [portSettings = "portable;p";] to [portSettings = "portable";]
(*) We found this issue with Arrows Tab Wi-Fi FAR75A
(Android OS V.4.0.3, Japan model)
18
2. Tap the desired command type to access the samples for that mode. The mode chosen
results in which samples can be sent to the printer.
19
Line Mode Printers accept commands and print data line-by-line. The data is transferred to
the printer in small pieces, allowing developers to customize receipt output with commands
in any place they are needed. This mode alone can only make use of Device Fonts installed on
the printer, which can be less visually appealing than TrueType Fonts.
Raster Mode Printers receive all print data graphically, allowing them to natively support the
printing of engaging TrueType Fonts and output receipts at a lightning fast pace. Coding
Raster commands is more complicated than Line Mode commands, as Raster commands
require the entire receipt to be generated in graphical data before being sent to the printer.
20
2) USB:SN:<Serial Number>
Add the serial number after USB:SN: without brackets.
21
3. Tap the name of printer you want to connect to. The printers serial number and model
name are displayed at the same time.
(Some USB interface card cannot acquire the model name.)
22
2. Tap the interface type of the printer you want to connect to.
When tapping "Bluetooth", the port names of paired printers you can connect to are displayed.
23
There are three types of port details that can be used for Star Bluetooth Printers:
1. BT: If only one Star Bluetooth Printer is connected, using BT: with no parameters
will automatically communicate to the only printer connected.
2. BT:<DeviceName> Add the full device name after BT: without brackets. This is
case sensitive so ensure it matches exactly.
3. BT:<MAC Address> Add the printers MAC Address after BT: without brackets.
24
This setting shifts the Connection retry setting for StarIO between ON and OFF.
The retry time value is the timeout value specified in getPort method parameter.
When this setting is ON, a retry will be performed.
"portable;l" will be specified for the portSetting parameter of the getPort method.
When this setting is OFF, no retry will be performed.
"portable;" will be specified for the portSetting parameter of the getPort method.
25
26
StarIO (StarIOPort3.1.jar)
The file StarIOPort3.1.jar is a library that you can include into your Java projects to expose
StarIO methods.
Bluetooth, USB
StarIOPort3.1.jar (Default)
Bluetooth
StarIOPort3.1.jar (Default)
Android OS 2.1
Bluetooth
StarIOPort.jar
import com.starmicronics.stario.StarIOPort;
import com.starmicronics.stario.StarIOPortException;
import com.starmicronics.stario.StarPrinterStatus;
27
28
Android OS V2.1:
Include the legacy library: StarIOPort.jar
Upon including this library, the source code of the StarIO SDK application must be modified.
29
Port Name
Port Settings
USB
USB:
USB:Serial Number
portable;
Bluetooth
BT:
BT:Device Name
BT:Printer MAC Address
portable;
portable;l
Retry ON
portable;d[value]
portable;u
30
timeout is a millisecond timeout controlled internally and is used for communication in the
APIs (this parameter guarantees that all of the below APIs will complete in a bounded amount
of time, but does NOT guarantee the exact timeout length)
When [Data timeout function setting] is used in the portSetting parameter, it
should be at least 3 seconds longer than the time specified for the data
timeout function. If it is set to less than 3 seconds, the timeout time of the
endCheckedBlock method will be controlled internally to be 3 seconds longer
automatically.
31
getPort is what you will be using to open the port to the printer. Using one of the valid
inputs for portName and portSettings as mentioned previously before this, you can pass your
connection string into the StarIO class so that it will correctly set its private variables.
//The following would be an actual usage of getPort:
StarIOPort port = null;
try
{
port = StarIOPort.getPort(portName, portSettings, 10000);
}
catch (StarIOPortException e)
{
//There was an error opening the port
}
IPort is a part of StarIO and this will allow you to create a port handle. The above
example shows the port being created and set to null then being assigned the actual port
hook on the following line that contains getPort.
Always use a try, catch when using getPort. If the port cannot be opened
because of connection problems, your program will crash unless you use a
try, catch like the above example.
32
When getPort fails a StarIOPortException is thrown. Please repeat the operations mentioned
in article 2 and 3 below (see getPort Retry Flow):
getPort Retry Flow
1. getPort fails
(StarIOPortException is thrown).
2. Wait for certain time (e.g. 500ms)
3. Execute getPort again
4. When getPort is successful, go to
procedures such as printing or
getting status.
(Remark)
The number of attempts to execute getPort to obtain a port handle depends on the Host
device(Android Device). Some devices have a higher failure rate than others, and may require
additional attempts to getPort. Please decide based on tests conducted with your Android
device.
33
This sample shows, get connected Bluetooth devices and output to log.
searchPrinter detects not only Star portable printers but also any Bluetooth
devices. To use original name, just search specific pritners.
34
This method reads data from the device. Only use this if you really need to read raw
bytes from the printer.
Do not use this method to read raw status.
Use RetreiveStatus for getting status.
Parameters:
readBuffer
offset
size
Returns:
The number of bytes that were actually read. Under some interface types, this
function will succeed even when no data was read in. Your application should call this
function a limited number of times until the expected data has been read in or until
an application determined retry threshold has been reached.
Throws:
StarIOPortException
35
Parameters:
port StarIOPort type representing a previously initialized port.
36
This method writes data to the device. Use this to print to the printer, send commands,
etc. The following is an example of how to use this method:
Please keep in mind this is the simplest way to send data to the printer.
The SDK has code in printToPrinter that is more complex than this but that code block will
show you how to verify data transmission to the printer whereas this code is just dumping it:
//Set a byte array to send to the printer
//command = { A, B, C, D, Feed 3mm, Full Cut}
Byte[] command = new Byte[]{ 0x41, 0x42, 0x43, 0x44, 0x1B, 0x7A, 0x00, 0x1B, 0x64, 0x02 };
try
{
port.writePort(command, 0, command.length);
}
catch (StarIOPortException e)
{
//There was an error writing to the port
}
Parameters:
writeBuffer
offset
size
Throws:
StarIOPortException
37
This method retrieves detailed status from the printer with StarIO.
Returns:
StarPrinterStatus structure giving the current device status
Throws:
StarIOPortException
This method uses a class structure that is included with StarIO called StarPrinterStatus
This structure gives the printer's status in both boolean and binary form.
Create the StarPrinterStatus object in your project by doing the following:
StarPrinterStatus status = port.retreiveStatus();
if (status.offline == false)
{
if (status.blackMarkError == true) {
//There was a black mark error
}
if (status.compulsionSwitch == true) {
//Cash drawer is open
}
else {
//Cash drawer is closed
}
}
else {
//If true, then the printer is offline.
}
38
Contents
Type
Detail
blackMarkError
boolean
compulsionSwitch
Compulsion SW
boolean
coverOpen
Cover Status
boolean
cutterError
Auto-cutter Error
boolean
etbAvailable
boolean
etbCounter
ETB Counter
int
headThermistorError
boolean
offline
ONLINE/OFFLINE
Status
boolean
overTemp
boolean
presenterPaperJamError
boolean
presenterState
Presenter Paper
Position
int
raw
byte[63]
rawLength
raw length
int
raw length
receiptPaperEmpty
Paper end
boolean
receiptPaperNearEmptyInner
boolean
receiveBufferOverflow
Receive Buffer
Overflow
boolean
unrecoverableError
Non-recoverable Error
boolean
Unrecoverable error : Head Thermistor Error, Autocutter Error, Electric Voltage Error and etc.)
voltageError
39
boolean
SMT300
SMS210i
SMS220i
SMS230i
**
**
SMT300i
SMT400i
compulsionSwitch
mPOP
coverOpen
cutterError
etbAvailable
etbCounter
headThermistorError
offline
overTemp
raw
rawLength
receiptPaperEmpty
presenterPaperJamError
presenterState
receiptPaperNearEmptyInner
receiveBufferOverflow
unrecoverableError
voltageError
* JP Model only
40
throws StarIOPortException
This method is used in combination with endCheckedBlock and checks the completion of
printing. To check if the whole data is completely printed, you need to run this method just
before sending print data and endCheckedBlock just after sending print data.
Returns:
Throws:
StarIOPortException
41
throws StarIOPortException
Returns:
Throws:
StarIOPortException
42
try
{
port = StarIOPort.getPort(portName, portSettings, 10000, context);
//Start checking the completion of printing
StarPrinterStatus status = port.beginCheckedBlock();
//Printing
byte[] command = PrinterFunctions.createPrintData(paperWidthInch);
port.writePort(command, 0, command.length);
//End checking the completion of printing
status = port.endCheckedBlock();
if (status.offline == true) {
//If true, then the printer is offline.
}
}
catch (StarIOPortException e)
{
Log.d("StarIOSample", "An timeout error has occurred during printing.");
}
finally
{
if (port != null)
{
try
{
StarIOPort.releasePort(port);
}
catch (StarIOPortException e) {}
}
}
43
getFirmwareInformation
public Map<String, String> getFirmwareInformation()
throws StarIOPortException
This method gets a model name and firmware version of the printer.
It returns Map<String, String> as an acquisition result.
Returns:
Gets a model name from the return value by setting the Key to ModelName.
Gets a firmware version from the return value by setting the Key to FirmwareVersion.
Throws:
StarIOPortException
Note:
If it failed to get information, it returns an empty string.
44
getStarIOVersion
public Static synchronized String getStarIOVersion ()
Returns:
StarIO Version
45
SMBluetoothManager Class:
SMBluetoothManager Class specifies various settings of the Bluetooth interface.
It can not be used with SMPort Class.
Constructor
StarBluetoothManager
public StarBluetoothManager(String portName, String portSetting, int timeoutMillis,
StarBluetoothManager.StarDeviceType starDeviceType)
throws StarIOPortException
Parameters:
portName
portSetting
timeoutMillis
46
Method
open
public void open()
This method is used to open connection to the star Bluetooth device.
Get the current settings by loadSetting method after conducting open method.
Throws:
StarIOPortException
loadSetting
public void loadSetting()
This method gets the value specified from the star Bluetooth device.
Throws:
StarIOPortException
close
public void close()
This method is used to close communication with the star Bluetooth device.
Throws:
StarIOPortException
apply
public void apply()
StarBluetooth device is set to the value specified by the following methods.
-
setBluetoothDevice
setiOSPortName
setAutoConnect
setPinCode
setSecurityType
Throws:
StarIOPortException
47
getBluetoothDeviceName
public String getBluetoothDeviceName()
This method gets the Bluetooth device name which was acquired by the loadSetting method
or specified by the setBluetoothDeviceName method. Use this method after calling the
loadSetting method or the setBluetoothDeviceName method.
Returns:
BluetoothDeviceName
setBluetoothDeviceName
public void setBluetoothDeviceName( string BluetoothDeviceName)
This method sets the Bluetooth device name of at least 1 character, with a max length of 16
characters.
To change the Bluetooth device name, execute the apply method after the
setBluetoothDeviceName method.
Parameters:
BluetoothDeviceName
Throws:
StarIOPortException
Valid characters:
0-9 a-z A-Z ; : ! ? # $ % & , . @ _ - = Space / * + ~ ^ [ { ( ] } ) | \
48
getiOSPortName
public String getiOSPortName()
This method gets the iOS port name which was acquired by the loadSetting method or
specified by the setiOSPortName method. Use this method after calling the loadSetting
method or the setiOSPortName method.
Returns:
iOSPortName
setiOSPortName
public void setBluetoothDeviceName( string iOSPortName)
This method sets the iOS port name of at least 1 character, with a max length of 16
characters.
To change the iOS port name, execute the apply method after the setiOSPortName method.
Parameters:
iOSPortName
Throws:
StarIOPortException
Valid characters:
0-9 a-z A-Z ; : ! ? # $ % & , . @ _ - = Space / * + ~ ^ [ { ( ] } ) | \
49
getPinCode
public String getPinCode()
This method gets the PIN code which was specified by the setPinCode method. Use this
method after calling the setPinCode method.
Returns:
PinCode
setPinCode
public void setPinCode( string pinCode)
The method sets the PIN code of 4 characters for SM-L200 and that of at least 4 character,
with a max length of 16 characters for other Star Bluetooth devices.
To change the PIN code, execute the apply method after the setPinCode method.
Parameters:
PinCode
Ex. 1234
Throws:
StarIOPortException
Valid characters:
50
getAutoConnect
public boolean getAutoConnect()
This method gets the value specified of Auto Connection which was acquired by the
loadSetting method or specified by the setAutoConnect method. Use this method after
calling the loadSetting method or the setAutoConnect method.
Returns:
true
false
setAutoConnect
public void setAutoConnect( boolean autoConnect)
Ex. false
51
getSecurityType
public StarBluetoothManager.StarBluetoothSecurity getSecurityType()
This method gets the Bluetooth security type(SSP or PIN Code) which was acquired by the
loadSetting method or specified by the setSecurityType method. Use this method after
calling the loadSetting method or the setSeurityType method.
Returns:
StarBluetoothManager.StarBluetoothSecurity
setSecurityType
public void setSecurityType( StarBluetoothManager.StarBluetoothSecurity securityType)
This method sets the Bluetooth security type(SSP or PIN Code) of star Bluetooth device.
To change the Bluetooth security type, execute the apply method after the setSecurityType
method.
Parameters:
securityType
Ex. StarBluetoothManager.StarBluetoothSecurity.SSP
getPortName
public String getPortName()
This method gets the port name specified by the StarBluetoothManager constructor.
Returns:
portName
getPortSetting
public String getPortSetting()
This method gets the port setting specified by the StarBluetoothManager constructor.
Returns:
portSetting
52
getTimeoutMillis
public String getTimeoutMillis()
getDeviceType
public String getDeviceType()
This method gets the star Device type specified by the StarBluetoothManager constructor.
Returns:
StarBluetoothManager.StarDeviceType
isOpened
public boolean isOpened()
53
2. Select Line Mode Commands or Raster Mode Commands. When a dot printer is used, the
screen will jump to the corresponding Line Mode command page.
The difference is detailed here.
54
55
Line Raster
Automatically detects which Star Micronics Printers are connected to the network. Tap the
printer to connect to it. This feature is documented in greater detail here. USB printers do
not support this feature.
56
Line Raster
Line Raster
Displays rules for manually entering the printers port data into the PortName field.
Manually entering port data is unnecessary if Port Discovery is used.
57
Line Raster
Line Raster
StarPrinterStatus
58
offline
other
Line Raster
Prints a premade sample receipt in the chosen command type and the chosen language.
Select the samples width and tap OK to print it. This part of the source code is heavily
commented to demonstrate how receipts can be fully customized.
When using Line Mode commands, printing in Russian and Simplified Chinese
is not supported with SM-210i, SM-S220i, SM-S230i, SM-T300i and SM-T400i.
When using Line Mode commands, Simplified Chinese will be supported from
firmware version 1.1 for SM-L200.
59
Line
Configure 1D Barcode
ESC b n1 n2 n3 n4 d1 ... dk RS
n1 = Barcode Type
0 = UPC-E *
1 = UPC-A *
4 = Code39
5 = ITF
2 = JAN/EAN8 *
6 = Code128
3 = JAN/EAN13 *
7 = Code93
8 = NW-7 *
60
Line
QR Code
Select QR Code
There are 5 commands below that are very important to printing a good QR Code.
(1) Set QR Code Model #
ESC GS y S 0 n
ESC GS y S 1 n
ESC GS y S 2 n
ESC GS y P
This is the order in which commands need to be sent to print the QR Code:
QR Model + QR Correction Level + QR Cell Size + QR Data + Print QR Code
Refer to the Line Mode Programming Manual for a listing of all QR Code commands.
Note: 2D Code samples are not available for Raster Mode in this application. It is recommended to
send barcodes graphically to the printer when using Raster Mode.
61
Select PDF417
Please visit page 3-120 in the Line Mode Spec Manual for more details on PDF417
(1) Set PDF417 barcode size
ESC GS x S 0 n p1 p2
ESC GS x S 1 n
ESC GS x S 2 n
ESC GS x S 3 n
ESC GS x D nL nH d1 d2 dk
ESC GS x P
This is the order in which commands need to be sent to print the PDF417 barcode:
PDF417 Size + PDF417 ECC + PDF417 X-dim + PDF417 Ratio + PDF417 Data + Print PDF417
Refer to the Line Mode Programming Manual for a listing of all PDF417 commands.
Note: 2D Code samples are not available for Raster Mode in this application. It is recommended to
send barcodes graphically to the printer when using Raster Mode.
PDF417 are not supported by dot printers.
62
Line
*English screen
63
Upperline
ESC _ 1 = on
Upside-Down
SI = on
Character Expansion
Height Expansion
ESC h n
Width Expansion
ESC W n
Left Margin
ESC l n
0 n 255
Alignment
Left [Default]
Center
Right
ESC GS a 0
ESC GS a 1
ESC GS a 2
Note: Raster Mode receives graphical data only so this sample is not compatible. For a data
formatting example in this mode, refer to Raster Graphical Text Printing.
64
Raster
Raster Mode converts all print data into image data and then outputs it to the printer. This
enables Star Printers to print at high speeds, regardless of outputting receipts with only text or
text and logos/coupons. As there are many options on how to customize output in Raster Mode,
refer to the StarPRNT Programming Manual for a listing of all Raster commands. These commands
are also conveniently listed right on the Android device by tapping the Help button on the screen.
Using Compression API method may improve through put.
Note1: Line Mode cannot process graphical data so this sample is not compatible. For a data
formatting example in this mode, refer to Text Formatting.
Note2: If send large amounts of raster data command, use beginCheckedBlock / endCheckBlock
method before / after sending data by writePort method for preventing data detective.
Detail refer to the "printBitmap" method in the "PrinterFunctions.java".
65
Raster
Use the dropdown box to select one of four different sample images to print via Raster Graphics.
Note: The images in this sample are pre-formatted for 80mm wide receipts. If the printer in use is
smaller or wider than 80mm, the image will not be automatically scaled.
Raster Mode converts all print data into image data and then outputs it to the printer. This
enables Star Printers to print at high speeds, regardless of outputting receipts with only text or
text and logos/coupons. As there are many options on how to customize output in Raster Mode,
refer to the StarPRNT Programming Manual for a listing of all Raster commands. These commands
are also conveniently listed right on the Android device by tapping the Help button on the screen.
Using Compression API method may improve through put.
66
67
Bluetooth Setting
Line Raster
Connects to the Bluetooth device which is specified for PortName and changes various
settings of the Bluetooth interface.
The values applied with this method are effective after turning the device
off and on and paring again.
68
USB Setting
Line Raster
Connects to the USB device which is specified for PortName and changes various settings
of the USB interface.
The values applied with this method are effective after turning the device
off and on.
69
70
Additional Resources
This section will share resources that will help you develop good software with StarIO.
Please get the programmers manual for Star Portable Printers from the link below.
Star Micronics Developers Network
Browse Star Micronics FAQs, ask a question, look up information, etc.
The Developers Network gets you access to:
71
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
NUL
SOH
STX
ETX
EOT
ENQ
ACK
BEL
BS
TAB
LF
VT
FF
CR
SO
SI
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
10 DLE
11 DC1
12 DC2
13 DC3
14 DC4
15 NAK
16 SYN
17 ETB
18 CAN
19 EM
1A SUB
1B ESC
1C FS
1D GS
1E RS
1F US
50
51
52
53
54
55
56
57
58
59
5A
5B
5C
5D
5E
5F
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_
72
20 (space)
21
!
22
"
23
#
24
$
25
%
26
&
27
'
28
(
29
)
2A
*
2B
+
2C
,
2D
2E
.
2F
/
60
61
62
63
64
65
66
67
68
69
6A
6B
6C
6D
6E
6F
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
30
31
32
33
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
70
71
72
73
74
75
76
77
78
79
7A
7B
7C
7D
7E
7F
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
Release Date
SDK Package
Version
Apr. 17 2015
3.14.0
- Initial Release
Aug. 31 2015
3.15.0
73
Update