Skip to content

Releases: npat-efault/picocom

Release 3.1

01 Feb 09:28
Compare
Choose a tag to compare

This is a minor release of picocom with mostly bug fixes, a few improvements, and a few new features. In no particular order:

  • Added the --raise-dtr and --raise-rts options, for symmetry with --lower-dtr and --lower-rts (see manual page for details)

  • Added custom baudrate support for FreeBSD, OpenBSD, and DragonflyBSD (in additions to Linux and MacOS that were already supported)

  • Better build support for custom baudrates. Now custom baudrate support is enabled by default for some systems (for Linux, kernels > 2.6.0, x86, and x86_64, for Intel Macs with macOS / OSX >= 10.4, and for some BDSs).

    You can always explicitly enable custom baudrate support for other systems (see Makefile) and you can explicitly disable it, even for the systems it is automatically enabled for (again, see Makefile).

    To see if custom baudrate support is enabled in your build, run picocom with the --help command-line option.

  • Other small improvements and several bug fixes that are not listed here. See the commit logs for details.

As always, feedback, corrections, suggestions, and patches are welcome. Open issues here or email me.

Release 3.0

25 Dec 19:40
Compare
Choose a tag to compare

This a major release of picocom adding several new features, improving aspects of its operation, and fixing bugs.

The new features and most important improvements are listed below (in no particular order). For more details on the new command-line options and commands, see the picocom manual:

  • Added the --logfile command line option. For more, see discussion in issue #24, as well as the manual.

  • Added the --lower-rts and --lower-dtr command-line options. These options lower (reset) the respective modem control lines of the serial port, as soon as picocom starts and the port is configured. For more details, see the manual as well as this discussion.

  • Added the --initstring (or -t) command line option. This option can be used to send an initialization string to the serial port when picocom starts.

  • Added the --exit-after (or -x) command line option. Causes picocom to exit if it becomes idle for the specified time.

  • Added the -exit (or -X) command line option. Causes picocom to exit immediately after opening and configuring the serial port.

  • Added the --quiet (or -q) command line option. Suppress output from picocom that was not explicitly requested by the user. Errors and command responses are still printed.

  • Added the --no-escape (or -n) command line option. Disables the escape character. If given picocom will never enter command mode.

  • Added the --hangup (or -u) comand line option. If given together with --noreset, picocom will not reset the serial port to it's original settings on exit, but it will clear the modem control lines (typically DTR and RTS) to signal a modem hangup.

  • Added the [C-g] command that toggles the state of the RTS modem control line.

  • Added the [C-w] command (write hex) that pompts the user for a string of hexadecimal values to be converted to binary and sent to the port.

  • Added "to hex" character mappings (???hex), which replace characters with their hexadecimal representation. For more see issue #75, and the INPUT, OUTPUT, AND ECHO MAPPING section in the picocom manual.

  • Standard input can now be a non-tty (e.g a file or a pipe). Useful in some occasions for doing trivial non-interactive stuff.

  • Changed the way picocom handles reading zero-bytes from the standard input. Now picocom waits for the output queue to be transmitted before exiting, or waits to become idle before exiting (if the --exit-after option is given). See the new section EXITING PICOCOM in the manual for details.

  • Picocom's serial port output queue is now dynamically growable. You can still set an upper limit when compiling picocom, or allow it to grow as much as your system's memory allows. Usueful, for example, for doing huge copy-pastes. See issue #33.

  • Custom baudrates are now also supported for OSX (not only Linux). See PR #62.

  • Fixed some minor backwards compatibility issues. Now you can use command-line options compatible with 1.x. For more details see issue #69, and PR #70.

  • Now SIGINT, as well as SIGTERM, can kill picocom. May be useful when the standard input is not a tty.

Several other smaller improvements and bug fixes were made that are not listed here. See the commit logs for details.

As always, feedback, corrections, suggestions, and patches are welcome. Open issues here or email me.

Thanks for using picocom, and merry Christmas!

Release 2.2

04 Oct 17:05
Compare
Choose a tag to compare

This is a release with minor improvements and bug-fixes. Functionally it's almost the same as Release 2.1.

The most important change is an improvement to read-buffering which can noticeably reduce CPU load under high baudrates.

See the commit logs for details on other minor fixes.

As always, feedback, corrections, suggestions, and patches are welcome. Open issues here or email me.

Release 2.1

15 Oct 21:33
Compare
Choose a tag to compare

This is a minor bug-fix release. Functionally it's the same as Release 2.0.

See the commit logs for details on the specific fixes.

As always, feedback, corrections, suggestions, and patches are welcome. Open issues here or email me.

Release 2.0

25 Aug 18:21
Compare
Choose a tag to compare

This is a major new release of Picocom. Although there are not many immediatelly visible changes, almost all parts of the program have been improved and enchanced. Several bugs have been fixed. The most important changes are listed below (in no particular order).

  • The "change-databits" command-key has been reasigned (from C-b to C-i); to make room for the new command "set baudrate" (C-b, see below), and for some symmetry with the new "set stopbits" command (C-j)
  • The short option letter for the --parity command line option has been changed from -p to -y; to leave -p for the new --stopbits command-line option (see below).
  • The default name for the history file has been changed to: '.picocom_history' (in the user's home dir).
  • The default input buffer size TTY_Q_SZ has been increased to 32KB. You can change it by editing the Makefile if you wish.

The following are improvements and new features added to picocom:

  • You can now select between 1 or 2 stopbits for the serial port, either via command-line option (--stopbits) or via command (C-j).
  • Added new command (C-b) that allows you to enter a baudrate numerically. This is particularly useful if you have compiled-in the "custom baudrates" feature (see below), as it allows you to enter arbitrary baudrate values. The old baud-up (C-u) and baud-down (C-d) commands are still available.
  • Added command that prints a list of all available command-keys (C-h or C-k).
  • It is now possible to disable the send- and receive-file commands (C-s, and C-r) by supplying an empty string as the argument to the --send-cmd and --receive-cmd options, respectively. When both commands are disabled, picocom no longer forks or executes any external programs.
  • Picocom no longer uses /bin/sh to run external commands for file-transfer operations. Parsing the command line and spliting it into arguments is now performed internally by picocom, using quoting rules very similar to those of the Unix shell. Hopefully, this makes it impossible to inject shell-commands when supplying filenames and extra arguments to the send- and receive-file commands.
  • Much improved serial-port settings handling and reporting. Whenever a port-setting is changed (baud-rate, parity, flow-control, etc) by a command, the serial port attributes are re-read, and if found different from the requested value, both values are displayed (first the requested, then the actual in parenthesis). The show-status command (C-v) also re-reads the actual terminal attributes and displays both: the requested values and the actual terminal settings (if they differ). This way C-v is able to "see" changes made to the serial-port outside of picocom (or changes made from within picocom but silently ignored by the serial port driver---which happens).
  • The show-status command (C-v) also displays the current status of the modem control lines (DTR, DSR, DCD, RTS, CTS, and RI) if available. This feature is, at the moment, only available on Linux. Patches for other platform are welcome.
  • Picocom is now more clever regarding its output (writting to the serial port) pacing. It no longer calls write(2) to send (overly) large chucks to the tty in a single gulp. It limits the amount of data write(2) can send to the tty on a single call, based on the port's baud rate. This way no huge output buffers (relative to the baud-rate) accumulate, and they don't take "forever" to drain.
  • Added support for setting custom (arbitrary) serial-port baud rates. With this compiled-in you can, for example, set the serial-port's baudrate to 42000 bps, or 1234 bps, or other such arbitrary values. Custom baudrates can be set either through the command-line option (--baud), or using the new command "set baudrate* (C-b). Currently this feature only works on Linux (and requires kernels > 2.6). By default the USE_CUSTOM_BAUD feature is NOT compiled in. You have to comment-in the respective lines in the Makefile and recompile picocom to enable it. Patches for other platform are welcome.
  • Added compile-time option (NO_HELP) that allows you to compile picocom without including any help stirngs. This makes picocom harder to use, but saves a few kilobytes. This option is diabled by default.

Several other smaller improvements, and bug fixes are not listed here. See the commit logs for details.

As always, feedback, corrections, suggestions, and patches are welcome. Open issues here or email me.

Release 1.8

08 Aug 15:37
Compare
Choose a tag to compare

This release:

  • Adds support for the "linenoise" library, which allows line-editing and path completion when entering filenames for receive- and send-file operations. Support can be compiled-out if you wish. See Makefile.

  • Allows you to cancel a file-transfer operation, while entering a file name, by pressing C-c. This works with linenoise support and without.

  • Adds support for more high baud-rates. Baud rates now supported are:

    Standard:

    0, 50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600,
    19200, 38400, 57600, 115200,
    

    HIGH_BAUD:

    230400, 460800, 500000, 576000, 921600, 1000000, 1152000, 1500000,
    2000000, 2500000, 3000000, 3500000, 4000000,
    

    Now every baudrate above 115200 is compiled-in only if the respective macros are defined in the system header files. This should allow picocom with HIGH_BAUD support to compile cleanly for more systems.

  • Input-buffer size (TTY_Q_SZ) now defined in Makefile, and defaults to 1024.

  • Adds support for locking using flock(2) (now default). Old-style UUCP-lockdir code is maintained. Preferred locking style is selected via the Makefile.

  • Debian's xmltoman is now used to format the manpage.

  • Other minor fixes. See the commit logs for more.