All Versions
37
Latest Version
3.5
Avg Release Cycle
272 days
Latest Release
339 days ago

Changelog History
Page 2

  • v3.0.b1 Changes

    October 19, 2015
    • list_ports: add vid, pid, serial_number, product, manufacturer and location attribute for USB devices.
    • ⚑️ list_ports: update OSX implementation.
    • list_ports: Raspberry Pi: internal port is found.
    • serial_for_url: fix import (multiple packages in list)
    • threaded: added new module implementing a reader thread
    • πŸ‘‰ tweak examples/wx*
    • posix: add experimental implementation VTIMESerial
    • πŸ†• new URL handler alt:// to select alternative implementations
  • v3.0.a0 Changes

    September 22, 2015
    • πŸš€ Starting from this release, only Python 2.7 and 3.2 (or newer) are supported. The source code is compatible to the 2.x and 3.x series without any changes. The support for earlier Python versions than 2.7 is removed, please refer to the pyserial-legacy (V2.x) series if older Python versions are a requirement).
    • ⚑️ Development moved to github, update links in docs.
    • API changes: properties for rts, dtr, cts, dsr, cd, ri, in_waiting (instead of get/set functions)
    • remove file FileLike class, add read_until and iread_until to SerialBase
    • 🚚 RS485 support changed (rts_toggle removed, added serial.rs485 module and rs485_mode property)
    • socket:// and rfc2217:// handlers use the IPv6 compatible socket.create_connection
    • πŸ†• New URL handler: spy:://.
    • URL handlers now require the proper format (? and &) for arguments instead of / (e.g. rfc2217://localhost:7000?ign_set_control&timeout=5.5)
    • βœ‚ Remove obsolete examples.
    • ⚑️ Finish update to BSD license.
    • πŸ‘‰ Use setuptools if available, fall back to distutils if unavailable.
    • πŸ’» miniterm: changed command line options
    • πŸ‘ miniterm: support encodings on serial port
    • 0️⃣ miniterm: new transformations, by default escape/convert all control characters
    • 🐧 list_ports: improved, added USB location (Linux, Win32)
    • ♻️ refactored code
    • πŸ‘ [FTR pyserial:37] Support fileno() function in the socket protocol
    • 🐧 Posix: [Patch pyserial:31] Mark/space parity on Linux
    • 🐧 Linux: [Patch pyserial:32] Module list_ports for linux should include the product information as description.
    • Java: fix 2 bugs (stop bits if/else and non-integer timeouts) (Torsten Roemer)
    • ⚑️ Update wxSerialConfigDialog.py to use serial.tools.list_ports.
    • [Patch pyserial:34] Improvements to port_publisher.py example
    • 🐧 [Feature pyserial:39] Support BlueTooth serial port discovery on Linux

    πŸ›  Bugfixes:

    • [Bug pyserial:157] Implement inWaiting in protocol_socket
    • [Bug pyserial:166] RFC2217 connections always fail
    • [Bug pyserial:172] applySettingsDict() throws an error if the settings dictionary is not complete
    • ⏱ [Bug pyserial:185] SocketSerial.read() never returns data when timeout==0

    πŸ›  Bugfixes (posix):

    • [Bug pyserial:156] PosixSerial.open raises OSError rather than SerialException when port open fails
    • [Bug pyserial:163] serial.tools.list_ports.grep() fails if it encounters None type
    • πŸ›  fix setXON
    • [Patch pyserial:36 / 38] Make USB information work in python 3.4 and 2.7
    • 🌐 clear OCRNL/ONLCR flags (CR/LF translation settings)
    • πŸ‘ [Feature pyserial:38] RS485 Support
    • [Bug pyserial:170] list_ports_posix not working properly for Cygwin
    • [Bug pyserial:187] improve support for FreeBSD (list_ports_posix)

    πŸ›  Bugfixes (win32):

    • [Bug pyserial:169] missing "import time" in serialwin32.py

    πŸ›  Bugfixes (cli):

    • [Bug pyserial:159] write() in serialcli.py not working with IronPython 2.7.4
  • v2.7 Changes

    October 17, 2013
    • Win32: setRTS and setDTR can be called before the port is opened and it will set the initial state on port open.
    • Posix: add platform specific method: outWaiting (already present for Win32)
    • Posix: rename flowControl to setXON to match name on Win32, add flowControlOut function
    • rfc2217: zero polls value (baudrate, data size, stop bits, parity) (Erik Lundh)
    • ⚑️ Posix: [Patch pyserial:28] Accept any speed on Linux [update]
    • Posix: [Patch pyserial:29] PosixSerial.read() should "ignore" errno.EINTR
    • OSX: [Patch pyserial:27] Scan by VendorID/Product ID for USB Serial devices
    • Ensure working with bytes in write() calls

    πŸ›  Bugfixes:

    • [Bug 3540332] SerialException not returned
    • [Bug pyserial:145] Error in socket_connection.py
    • ⏱ [Bug pyserial:135] reading from socket with timeout=None causes TypeError
    • πŸ“¦ [Bug pyserial:130] setup.py should not append py3k to package name
    • [Bug pyserial:117] no error on lost conn w/socket://

    πŸ›  Bugfixes (posix):

    • [Patch 3462364] Fix: NameError: global name 'base' is not defined
    • ⚑️ list_ports and device() for BSD updated (Anders Langworthy)
    • [Bug 3518380] python3.2 -m serial.tools.list_ports error
    • [Bug pyserial:137] Patch to add non-standard baudrates to Cygwin
    • [Bug pyserial:141] open: Pass errno from IOError to SerialException
    • [Bug pyserial:125] Undefined 'base' on list_ports_posix.py, function usb_lsusb
    • ⏱ [Bug pyserial:151] Serial.write() without a timeout uses 100% CPU on POSIX
    • [Patch pyserial:30] [PATCH 1/1]Β serial.Serial() should not raise IOError.

    πŸ›  Bugfixes (win32):

    • [Bug 3444941] ctypes.WinError() unicode error
    • 🏁 [Bug 3550043] on Windows in tools global name 'GetLastError' is not defined
    • 🏁 [Bug pyserial:146] flush() does nothing in windows (despite docs)
    • [Bug pyserial:144] com0com ports ignored due to missing "friendly name"
    • πŸ”§ [Bug pyserial:152] Cannot configure port, some setting was wrong. Can leave port handle open but port not accessible
  • v2.6 Changes

    November 02, 2011

    πŸ†• New Features:

    • 🚚 Moved some of the examples to serial.tools so that they can be used with python -m
    • serial port enumeration now included as serial.tools.list_ports
    • URL handlers for serial_for_url are now imported dynamically. This allows to add protocols w/o editing files. The list serial.protocol_handler_packages can be used to add or remove user packages with protocol handlers (see docs for details).
    • πŸ†• new URL type: hwgrep:// uses list_ports module to search for ports by their description
    • several internal changes to improve Python 3.x compatibility (setup.py, use of absolute imports and more)

    πŸ›  Bugfixes:

    • πŸ‘» [Bug 3093882] calling open() on an already open port now raises an exception
    • [Bug 3245627] connection-lost let rfc2217 hangs in closed loop
    • πŸ‘ [Patch 3147043] readlines() to support multi-character eol

    πŸ›  Bugfixes (posix):

    • [Patch 3316943] Avoid unneeded termios.tcsetattr calls in serialposix.py
    • πŸ‘ [Patch 2912349] Serial Scan as a Module with Mac Support

    πŸ›  Bugfixes (win32):

    • ⏱ [Bug 3057499] writeTimeoutError when write Timeout is 0
    • [Bug 3414327] Character out of range in list_ports_windows
    • 🏁 [Patch 3036175] Windows 98 Support fix
    • [Patch 3054352] RTS automatic toggle, for RS485 functionality.
    • πŸ›  Fix type definitions for 64 bit Windows compatibility
  • v2.5 Changes

    July 22, 2010

    πŸ†• New Features:

    • 0️⃣ [Bug 2976262] dsrdtr should default to False dsrdtr parameter default value changed from None (follow rtscts setting) to False. This means rtscts=True enables hardware flow control on RTS/CTS but no longer also on DTR/DSR. This change mostly affects Win32 as on other platforms, that setting was ignored anyway.
    • πŸ‘Œ Improved xreadlines, it is now a generator function that yields lines as they are received (previously it called readlines which would only return all lines read after a read-timeout). However xreadlines is deprecated and not available when the io module is used. Use for line in Serial(...): instead.

    πŸ›  Bugfixes:

    • βœ… [Bug 2925854] test.py produces exception with python 3.1
    • [Bug 3029812] 2.5rc2 readline(s) doesn't work

    πŸ›  Bugfixes (posix):

    • [BUG 3006606] Nonblocking error - Unix platform

    πŸ›  Bugfixes (win32):

    • [Bug 2998169] Memory corruption at faster transmission speeds. (bug introduced in 2.5-rc1)
  • v2.5-rc2 Changes

    January 02, 2010

    πŸ†• New Features:

    • πŸ“š Documentation update, now written with Sphinx/ReST
    • ⚑️ Updated miniterm.py example
    • πŸ‘€ experimental RFC-2217 client support (serial.rfc2217.Serial, see docs)
    • βž• add loop:// device for testing.
    • add serial.serial_for_url factory function (support for native ports and rfc2217, socket and loop URLs)
    • βž• add new example: rfc2217_server.py
    • βœ… tests live in their own directory now (no longer in examples)

    πŸ›  Bugfixes:

    • πŸ“œ [Bug 2915810] Fix for suboption parsing in rfc2217
    • Packaging bug (missed some files)

    πŸ›  Bugfixes (posix):

    • πŸ‘Œ improve write timeout behavior
    • 🐧 [Bug 2836297] move Linux specific constants to not break other platforms
    • πŸ“Š poll based implementation for read is in a separate class PosixPollSerial, as it is not supported well on all platforms (the default Serial class uses select).
    • πŸ”„ changed error handling in read so that disconnected devices are detected.

    πŸ›  Bugfixes (win32):

    • [Bug 2886763] hComPort doesn't get initialized for Serial(port=None)
  • v2.5-rc1 Changes

    July 30, 2009

    πŸ†• New Features:

    • πŸ‘ Python 3.x support (through 2to3)
    • compatible with Python io library (Python 2.6+)
    • πŸ‘Œ Support for Win32 is now written on the top of ctypes (bundled with Python 2.5+) instead of pywin32 (patch by Giovanni Bajo).
    • 1.5 stop bits (STOPBITS_ONE_POINT_FIVE, implemented on all platforms)
    • miniterm application extended (CTRL+T -> menu)
    • miniterm.py is now installed as "script"
    • βž• add scanlinux.py example
    • βž• add port_publisher example
    • πŸ‘ experimental RFC-2217 server support (examples/rfc2217_server.py)
    • βž• add getSettingsDict and applySettingsDict serial object methods
    • πŸ“Š use a poll based implementation on Posix, instead of a select based, provides better error handling [removed again in later releases].

    πŸ›  Bugfixes:

    • Improve and fix tcp_serial_redirector example.
    • [Bug 2603052] 5-bit mode (needs 1.5 stop bits in some cases)

    πŸ›  Bugfixes (posix):

    • [Bug 2810169] Propagate exceptions raised in serialposix _reconfigure
    • [Bug 2562610] setting non standard baud rates on Darwin (Emmanuel Blot)

    πŸ›  Bugfixes (win32):

    • [Bug 2469098] parity PARITY_MARK, PARITY_SPACE isn't supported on win32
    • [SF 2446218] outWaiting implemented
    • πŸ‘» [Bug 2392892] scanwin32.py better exception handling
    • [Bug 2505422] scanwin32.py Vista 64bit compatibility
  • v2.4 Changes

    July 06, 2008

    πŸ†• New Features:

    • ⏱ [Patch 1616790] pyserial: Add inter-character timeout feature
    • [Patch 1924805] add a setBreak function
    • βž• Add mark/space parity
    • βž• Add .NET/Mono backend (IronPython)

    πŸ›  Bugfixes (posix):

    • 🐧 [Bug 1783159] Arbitrary baud rates (Linux/Posix)

    πŸ›  Bugfixes (win32):

    • [Patch 1561423] Add mark/space parity, Win32
    • 🏁 [Bug 2000771] serial port CANNOT be specified by number on windows
    • examples/scanwin32.py does no longer return \.\ names
    • πŸ›  fix \.\ handling for some cases

    πŸ›  Bugfixes (jython):

    • The Jython backend tries javax.comm and gnu.io (Seo Sanghyeon)
  • v2.3 Changes

    June 19, 2008

    πŸ†• New Features:

    • iterator interface. for line in Serial(...): ... is now possible Suggested by Bernhard Bender
    • 0️⃣ sendBreak() accepts a duration argument. Default duration increased.
    • win32 handles \.\COMx format automatically for com ports of higher number (COM10 is internally translated to \.\COM10 etc.)
    • πŸ”§ miniterm.py has a new feature to send a file (upload) and configurable special characters for exit and upload. Refactored internals to class based structure (upload and class refactoring by Colin D Bennett)

    πŸ›  Bugfixes:

    • [Bug 1451535] TCP/serial redirect example "--help"
    • ⚑️ update VERSION variable
    • ⚑️ update wxSerialConfigDialog.py and wxTerminal.py compatibility with wxPython 2.8 (Peleg)
    • Check for string in write function. Using unicode causes errors, this helps catching errors early (Tom Lynn)

    πŸ›  Bugfixes (posix):

    • [Bug 1554183] setRTS/setDTR reference to non existing local "on"
    • πŸ‘» [Bug 1513653] file descriptor not closed when exception is thrown
    • FreeBSD now uses cuadX instead of cuaaX (Patrick Phalen)

    πŸ›  Bugfixes (win32):

    • [Bug 1520357] Handle leak
    • πŸ‘» [Bug 1679013] Ignore exception raised by SetCommTimeout() in close().
    • [Bug 1938118] process hang forever under XP
  • v2.2 Changes

    July 31, 2005

    πŸ›  Bugfixes:

    • [Bug 1014227]: property broken
    • [Bug 1105687]: serial_tcp_example.py: --localport option
    • [Bug 1106313]: device (port) strings cannot be unicode

    πŸ›  Bugfixes (posix):

    • [Patch 1043436] Fix for [Bug 1043420] (OSError: EAGAIN)
    • [Patch 1102700] fileno() added
    • ensure disabled PARMRK

    πŸ›  Bugfixes (win32):

    • [Patch 983106]: keep RTS/CTS state on port setting changes

    πŸ†• New Features:

    • dsrdtr setting to enable/disable DSR/DTR flow control independently from the rtscts setting. (Currently Win32 only, ignored on other platforms)