blob: dc0d028870f7ba626c343e9420e6981a93802d3d [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 Liechtid3168892016-09-07 03:26:03 +020049- Python 2.7 or Python 3.4 and newer
50
51- If running on Jython: "Java Communications" (JavaComm) or compatible extension for Java
52
53For older installations, see `older versions`_ below.
cliechti22978142009-07-21 01:58:11 +000054
cliechti5134aab2009-07-21 19:47:59 +000055
cliechti22978142009-07-21 01:58:11 +000056Installation
57============
58
cliechti5134aab2009-07-21 19:47:59 +000059This installs a package that can be used from Python (``import serial``).
cliechti22978142009-07-21 01:58:11 +000060
cliechti4cb94662013-10-17 03:17:50 +000061To install for all users on the system, administrator rights (root)
62may be required.
63
64From PyPI
Chris Liechtid3168892016-09-07 03:26:03 +020065---------
Chris Liechtid389f8a2016-07-11 23:32:21 +020066pySerial can be installed from PyPI::
cliechti4cb94662013-10-17 03:17:50 +000067
Chris Liechtid389f8a2016-07-11 23:32:21 +020068 python -m pip install pyserial
cliechti4cb94662013-10-17 03:17:50 +000069
Chris Liechtid3168892016-09-07 03:26:03 +020070Using the `python`/`python3` executable of the desired version (2.7/3.x).
cliechti22978142009-07-21 01:58:11 +000071
Chris Liechti1770e502016-08-11 23:43:55 +020072Developers also may be interested to get the source archive, because it
73contains examples, tests and the this documentation.
74
Chris Liechtid3168892016-09-07 03:26:03 +020075From source (zip/tar.gz or checkout)
76------------------------------------
Chris Liechtid389f8a2016-07-11 23:32:21 +020077Download the archive from http://pypi.python.org/pypi/pyserial or
78https://github.com/pyserial/pyserial/releases.
cliechti22978142009-07-21 01:58:11 +000079Unpack the archive, enter the ``pyserial-x.y`` directory and run::
80
81 python setup.py install
82
Chris Liechtid3168892016-09-07 03:26:03 +020083Using the `python`/`python3` executable of the desired version (2.7/3.x).
cliechti5c72e4d2010-07-21 14:04:54 +000084
cliechti22978142009-07-21 01:58:11 +000085Packages
Chris Liechtid3168892016-09-07 03:26:03 +020086--------
Chris Liechti1770e502016-08-11 23:43:55 +020087There are also packaged versions for some Linux distributions:
cliechti22978142009-07-21 01:58:11 +000088
Chris Liechtid3168892016-09-07 03:26:03 +020089- Debian/Ubuntu: "python-serial", "python3-serial"
90- Fedora / RHEL / CentOS / EPEL: "pyserial"
91- Arch Linux: "python-pyserial"
92- Gento: "dev-python/pyserial"
93
94Note that some distributions may package an older version of pySerial.
95These packages are created and maintained by developers working on
96these distributions.
cliechti22978142009-07-21 01:58:11 +000097
cliechti22978142009-07-21 01:58:11 +000098.. _PyPi: http://pypi.python.org/pypi/pyserial
99
100
101References
102==========
cliechti86e87872009-07-21 13:32:45 +0000103* Python: http://www.python.org/
cliechti86e87872009-07-21 13:32:45 +0000104* Jython: http://www.jython.org/
cliechti22978142009-07-21 01:58:11 +0000105* IronPython: http://www.codeplex.com/IronPython
cliechti22978142009-07-21 01:58:11 +0000106
107
108Older Versions
109==============
Chris Liechti1770e502016-08-11 23:43:55 +0200110Older versions are still available on the current download_ page or the `old
111download`_ page. The last version of pySerial's 2.x series was `2.7`_,
112compatible with Python 2.3 and newer and partially with early Python 3.x
113versions.
114
115pySerial `1.21`_ is compatible with Python 2.0 on Windows, Linux and several
116un*x like systems, MacOSX and Jython.
cliechti22978142009-07-21 01:58:11 +0000117
Chris Liechtid389f8a2016-07-11 23:32:21 +0200118On Windows, releases older than 2.5 will depend on pywin32_ (previously known as
Chris Liechtid3168892016-09-07 03:26:03 +0200119win32all). WinXP is supported up to 3.0.1.
cliechti6066f842009-07-24 00:05:45 +0000120
Chris Liechti1770e502016-08-11 23:43:55 +0200121
122.. _`old download`: https://sourceforge.net/projects/pyserial/files/pyserial/
Chris Liechti90570b92015-08-04 03:32:02 +0200123.. _download: https://pypi.python.org/pypi/pyserial
cliechti6066f842009-07-24 00:05:45 +0000124.. _pywin32: http://pypi.python.org/pypi/pywin32
Chris Liechti1770e502016-08-11 23:43:55 +0200125.. _`2.7`: https://pypi.python.org/pypi/pyserial/2.7
126.. _`1.21`: https://sourceforge.net/projects/pyserial/files/pyserial/1.21/pyserial-1.21.zip/download