blob: 047827236e82032fc0acdf7cbfef5eebce1c3d2d [file] [log] [blame]
cliechti22978142009-07-21 01:58:11 +00001==========
2 pySerial
3==========
4
5Overview
6========
Chris Liechti418262d2015-10-01 23:25:17 +02007
cliechti22978142009-07-21 01:58:11 +00008This module encapsulates the access for the serial port. It provides backends
Chris Liechti418262d2015-10-01 23:25:17 +02009for Python_ running on Windows, OSX, Linux, BSD (possibly any POSIX compliant
10system) and IronPython. The module named "serial" automatically selects the
11appropriate backend.
cliechti22978142009-07-21 01:58:11 +000012
cliechti5134aab2009-07-21 19:47:59 +000013It is released under a free software license, see LICENSE_ for more
cliechti22978142009-07-21 01:58:11 +000014details.
15
Chris Liechti19688bf2016-05-06 23:48:36 +020016Copyright (C) 2001-2016 Chris Liechti <cliechti(at)gmx.net>
cliechti22978142009-07-21 01:58:11 +000017
cliechti8e814dc2009-07-30 22:19:08 +000018Other pages (online)
cliechti22978142009-07-21 01:58:11 +000019
Chris Liechti90570b92015-08-04 03:32:02 +020020- `project page on GitHub`_
cliechti4cb94662013-10-17 03:17:50 +000021- `Download Page`_ with releases (PyPi)
Chris Liechti2c278a82016-05-02 23:51:59 +020022- This page, when viewed online is at https://pyserial.readthedocs.io/en/latest/ or
Chris Liechti418262d2015-10-01 23:25:17 +020023 http://pythonhosted.org/pyserial/ .
cliechti22978142009-07-21 01:58:11 +000024
Chris Liechti418262d2015-10-01 23:25:17 +020025.. _Python: http://python.org/
cliechti5134aab2009-07-21 19:47:59 +000026.. _LICENSE: appendix.html#license
Chris Liechti90570b92015-08-04 03:32:02 +020027.. _`project page on GitHub`: https://github.com/pyserial/pyserial/
cliechti4cb94662013-10-17 03:17:50 +000028.. _`Download Page`: http://pypi.python.org/pypi/pyserial
cliechti22978142009-07-21 01:58:11 +000029
30
31Features
32========
cliechtiec4ac1b2009-08-02 00:47:21 +000033- Same class based interface on all supported platforms.
34- Access to the port settings through Python properties.
35- Support for different byte sizes, stop bits, parity and flow control with
cliechti5134aab2009-07-21 19:47:59 +000036 RTS/CTS and/or Xon/Xoff.
cliechtiec4ac1b2009-08-02 00:47:21 +000037- Working with or without receive timeout.
38- File like API with "read" and "write" ("readline" etc. also supported).
39- The files in this package are 100% pure Python.
40- The port is set up for binary transmission. No NULL byte stripping, CR-LF
cliechti22978142009-07-21 01:58:11 +000041 translation etc. (which are many times enabled for POSIX.) This makes this
42 module universally useful.
Chris Liechti90570b92015-08-04 03:32:02 +020043- Compatible with :mod:`io` library
cliechtia2d8f962009-08-10 23:59:27 +000044- RFC 2217 client (experimental), server provided in the examples.
cliechti22978142009-07-21 01:58:11 +000045
46
47Requirements
48============
Chris Liechti90570b92015-08-04 03:32:02 +020049- Python 2.7 or newer, including Python 3.4 and newer
cliechtiec4ac1b2009-08-02 00:47:21 +000050- "Java Communications" (JavaComm) or compatible extension for Java/Jython
cliechti22978142009-07-21 01:58:11 +000051
cliechti5134aab2009-07-21 19:47:59 +000052
cliechti22978142009-07-21 01:58:11 +000053Installation
54============
55
Chris Liechtid389f8a2016-07-11 23:32:21 +020056pySerial
cliechti22978142009-07-21 01:58:11 +000057--------
cliechti5134aab2009-07-21 19:47:59 +000058This installs a package that can be used from Python (``import serial``).
cliechti22978142009-07-21 01:58:11 +000059
cliechti4cb94662013-10-17 03:17:50 +000060To install for all users on the system, administrator rights (root)
61may be required.
62
63From PyPI
64~~~~~~~~~
Chris Liechtid389f8a2016-07-11 23:32:21 +020065pySerial can be installed from PyPI::
cliechti4cb94662013-10-17 03:17:50 +000066
Chris Liechtid389f8a2016-07-11 23:32:21 +020067 python -m pip install pyserial
cliechti4cb94662013-10-17 03:17:50 +000068
Chris Liechtid389f8a2016-07-11 23:32:21 +020069Using the `python`/`python3` executable of the desired version (2.x/3.x).
cliechti22978142009-07-21 01:58:11 +000070
Chris Liechti1770e502016-08-11 23:43:55 +020071Developers also may be interested to get the source archive, because it
72contains examples, tests and the this documentation.
73
cliechti22978142009-07-21 01:58:11 +000074From source (tar.gz or checkout)
75~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Chris Liechtid389f8a2016-07-11 23:32:21 +020076Download the archive from http://pypi.python.org/pypi/pyserial or
77https://github.com/pyserial/pyserial/releases.
cliechti22978142009-07-21 01:58:11 +000078Unpack the archive, enter the ``pyserial-x.y`` directory and run::
79
80 python setup.py install
81
Chris Liechtid389f8a2016-07-11 23:32:21 +020082Using the `python`/`python3` executable of the desired version (2.x/3.x).
cliechti5c72e4d2010-07-21 14:04:54 +000083
cliechti22978142009-07-21 01:58:11 +000084Packages
85~~~~~~~~
Chris Liechti1770e502016-08-11 23:43:55 +020086There are also packaged versions for some Linux distributions:
cliechti22978142009-07-21 01:58:11 +000087
88Debian/Ubuntu
Chris Liechtid389f8a2016-07-11 23:32:21 +020089 A package is available under the name "python-serial" or similar. Note
90 that some distributions may package an older version of pySerial.
cliechti22978142009-07-21 01:58:11 +000091
cliechti22978142009-07-21 01:58:11 +000092.. _PyPi: http://pypi.python.org/pypi/pyserial
93
94
95References
96==========
cliechti86e87872009-07-21 13:32:45 +000097* Python: http://www.python.org/
cliechti86e87872009-07-21 13:32:45 +000098* Jython: http://www.jython.org/
cliechti5134aab2009-07-21 19:47:59 +000099* Java@IBM: http://www-106.ibm.com/developerworks/java/jdk/ (JavaComm links are
100 on the download page for the respective platform JDK)
101* Java@SUN: http://java.sun.com/products/
cliechti22978142009-07-21 01:58:11 +0000102* IronPython: http://www.codeplex.com/IronPython
103* setuptools: http://peak.telecommunity.com/DevCenter/setuptools
104
105
106Older Versions
107==============
Chris Liechti1770e502016-08-11 23:43:55 +0200108Older versions are still available on the current download_ page or the `old
109download`_ page. The last version of pySerial's 2.x series was `2.7`_,
110compatible with Python 2.3 and newer and partially with early Python 3.x
111versions.
112
113pySerial `1.21`_ is compatible with Python 2.0 on Windows, Linux and several
114un*x like systems, MacOSX and Jython.
cliechti22978142009-07-21 01:58:11 +0000115
Chris Liechtid389f8a2016-07-11 23:32:21 +0200116On Windows, releases older than 2.5 will depend on pywin32_ (previously known as
Chris Liechti1770e502016-08-11 23:43:55 +0200117win32all).
cliechti6066f842009-07-24 00:05:45 +0000118
Chris Liechti1770e502016-08-11 23:43:55 +0200119
120.. _`old download`: https://sourceforge.net/projects/pyserial/files/pyserial/
Chris Liechti90570b92015-08-04 03:32:02 +0200121.. _download: https://pypi.python.org/pypi/pyserial
cliechti6066f842009-07-24 00:05:45 +0000122.. _pywin32: http://pypi.python.org/pypi/pywin32
Chris Liechti1770e502016-08-11 23:43:55 +0200123.. _`2.7`: https://pypi.python.org/pypi/pyserial/2.7
124.. _`1.21`: https://sourceforge.net/projects/pyserial/files/pyserial/1.21/pyserial-1.21.zip/download