Releases: fasteddy516/SimplySerial
v0.9.0 Customization
It's been a long time coming, but this release has a ton of new features and significant under-the-hood changes. Most of these changes are the direct result of excellent suggestions and helpful issue reports from awesome users, so thank you to everyone who took the time to report, request and - in many cases - contribute code!
Enjoy the new release, and don't hesitate to report any issues you run into!
Notable Changes/Additions:
-
Auto-connect behaviour when running multiple instances of SimplySerial with multiple available COM ports has been corrected. Previously, a second instance would try to auto-connect to the same COM port as the first instance and just sit there waiting until the first instance closed and released the port. Now the second instance will detect ports that are in-use and move on to other unused ports.
-
boards.json
now lives in its own repository and is re-generated automatically when new boards are added to CircuitPython. A new-updateboards
option has been added to SimplySerial to check for - and optionally apply - updates. -
User-provided board data can now be provided by creating a
custom_boards.json
file in the application folder (wheress.exe
is located). The JSON structure is the same as inboards.json
, allowing you to add your own - or override existing - vendor and board data. -
The default settings used by SimplySerial can now be modified by creating a
settings.cfg
file in the application folder (wheress.exe
is located). Command-line options can be entered in this file - one per line - and will be automatically applied when SimplySerial is launched. -
The list of available COM ports that SimplySerial will use can now be filtered by creating a
filters.json
file in the application folder (wheress.exe
is located), so you can get rid of those pesky unwanted entries that you don't want SimplySerial ever trying to connect to automatically. See theREADME
for information on the file format and available options. Thanks to @gufpewga for the suggestion. -
All of the new settings files (
settings.cfg
,custom_boards.json
andfilters.json
can also be placed in a.simplyserial
project folder. When SimplySerial is launched from a folder that contains a.simplyserial
subfolder, these project-level settings will be applied in addition to the settings applied in the global files. -
All command-line arguments that previously had no parameters (i.e.
-forcenewline
) have been updated to acceptON
andOFF
as parameters (i.e.-forcenewline:OFF
). You can still omit the parameter and the argument will behave as it did previously. -
noclear
andnostatus
have been renamed toclearscreen
andstatus
. The old forms still work for now, but should be considered deprecated and will likely be removed in a future release. -
The
-list
option now accepts an optional parameter indicating what to list.-list:all
will list all COM ports, including ones that have been filtered out.-list:settings
will show all of the command-line arguments loaded from the available settings files.-list:boards
will list all of the vendors and boards defined in the available board data files.-list:filters
will show all of the filters applied to the COM ports available on the system. -
New
-config
option to include a custom command-line settings file in addition to the new global and project-level settings files. Thanks to @kunchuf for the suggestion and contributing to the implementation. -
New
-exitkey
option to change from the defaultCTRL-X
to another key of your choosing. Thanks to @TinFoilFox and @BlueBarks for suggesting this feature. -
New
-echo
option to enable/disable local echo. Thanks to @sk-jame for the suggestion, and to @salvathor79 for contributing to the implementation. -
New
-bulksend
option to improve performance when pasting large amounts of data into a SimplySerial session. Thanks to @svofski for the suggestion and @FH0 for contributing to the implementation. -
New
-title
option to allow manually setting the window title. Thanks to @markeby for the suggestion. -
New
-txonenter
option to allow custom character sequences to be sent when theENTER
key is pressed. Thanks to @lefebvresam for the suggestion and @salvathor79 for contributing to the implementation. -
.msi
installers should now run on Windows Server operating systems. Thanks to @psitem for the suggestion.
v0.8.0 - Unicode Support, Installation through Scoop and more
Notable Changes/Additions:
-
Unicode (UTF-8) Support. UTF-8 character sequences are now handled correctly, so bring on your symbols μ° , emojis 😍😎 and fancy borders ╔═╗! Unicode support is enabled by default, but can be disabled using the new
--encoding
command-line option:-encoding:UTF8
= Display UTF-8 encoded character sequences. (This is the new default.)
-encoding:ASCII
= Display all incoming data as 7-bit ASCII. (This is how incoming data was always displayed in previous versions.)
-encoding:RAW
= Display incoming printable 7-bit ASCII characters as-is, and display non-printable characters as[xx]
wherexx
is the hexadecimal byte value of the character.Thanks to GitHub user @aderusha for suggesting this improvement, testing changes and providing feedback!
-
Scoop Installer Support. SimplySerial can now be installed on the command-line using the Scoop Installer! If you're familiar with Scoop, just install
simplyserial
from theextras
bucket. (The specific commands required have been added to SimplySerial'sREADME
.) The-version
command-line options has been updated to recognize when SimplySerial has been installed through Scoop.Thanks to GitHub user @breakersun for the suggestion to add SimplySerial to a Scoop bucket, and @YDX-2147483647 for creating and testing the Scoop installer manifest, adding Scoop install instructions to the SimplySerial documentation and supplying the associated pull requests! Seriously - thanks to both of you for bringing Scoop to my attention. I had never heard of it before, but am a fan now, and am very happy to have SimplySerial included in the extras bucket!
-
Dynamic Console Window Title. The title bar text in a Console windows with a running instance of SimplySerial is now updated to indicate the connection state, connected device, etc. Received escape sequences that contain title information (such as the status bar introduced in CircuitPython 8) will also be processed and displayed correctly. (Processing of received title escape sequences can also be disabled using the
-nostatus
command-line option.) -
Option to replace incoming CR with LF. Start SimplySerial with the
-forcenewline
option to ensure that incoming data delimited with only a carriage return (no line feed) will be displayed legibly on a new line. -
Special handling for Function (F1-F12) keys. Function keys now send out their corresponding ANSI escape sequences when pressed.
-
Option to disable screen clearing. Use the
-noclear
option to prevent the console screen from clearing when a connection is established. -
Updated
boards.json
. The list of fully identifiable CircuitPython boards has been updated. -
Build Environment Update. SimplySerial is now being developed in Visual Studio 2022 Community Edition (as opposed to VS2019), and targets .NET Framework 4.8 (previously targeted 4.5).
v0.8.0-beta.1 - Unicode Support and more
This version adds support for Unicode (UTF-8) characters, updates boards.json
(based on boards supported in CircuitPython 8.0.2), adds port and status information to the console windows title, and a few new command-line options (--encoding
, --noclear
--nostatus
).
This is being released as a beta, and will get a full release (along with release notes!) soon, assuming no issues are reported.
v0.7.0 - Better Board Detection and More Baud Rates
Notable Changes/Additions:
-
New board identification system. The list of boards/devices recognized by SimplySerial now includes just about every official CircuitPython target device, and is contained in the
boards.json
file rather than being hard-coded into the application as it was in prior versions. -
Significantly improved CircuitPython board detection. CircuitPython boards are now detected based on the hardware description of their serial ports rather than USB vendor/product identifiers. This means that any board running CircuitPython should be detected correctly, even if the device is not included in the new
boards.json
data file. It also means that a device that is capable of running multiple environments will only be identified as CircuitPython if it is actually installed and running. -
Support for more baud rates. The baud rate can now be set to any arbitrary value instead of being limited to the short list of specific rates available in previous versions. (Bear in mind that being able to specify
-baud:47365490535
doesn't mean it will actually work; the serial port you're connecting to has to support whatever rate(s) you're trying to use.) Thanks to Github user @kalj for suggesting this improvement! -
Corrected default baud rate for CircuitPython devices to 115200 as recommended in this Adafruit guide. The default baud for non-CircuitPython devices remains at 9600.
-
Added
-v, --version
command-line argument which displays the current version, installation type (user/system/standalone), installation path andboards.json
version.
v0.6.0 - Cursor/Control Keys and Virtual Terminal Sequences
This version adds support for sending and receiving Virtual Terminal Sequences. This means SimplySerial can now interpret text colour and formatting sequences sent by connected devices, and supports sending the following special keys to connected devices:
- Cursor (Up, Down, Left, Right)
- Home, End
- Insert, Delete
- Page Up, Page Down
Note that - although this version stills runs on Windows 7/8, the new features are only supported on Windows 10. (Older Windows versions lack the required underlying features.)
Thanks to Github user @longwdl for suggesting this feature and helping to test the implementation!
v0.6.0-beta - Cursor Keys and Virtual Terminal Sequences
This version adds support for sending and receiving Virtual Terminal Sequences in Windows 10 (older windows versions do not support this feature). This means SimplySerial now supports cursor key functions (such as scrolling through command history), text colour/formatting sequences and more.
I have only been able to test these new features on a fully updated Windows 10 machine, and only on a couple of devices that make pretty basic use of VT sequences, so for now have released this as a beta version. If you try it and run into any problems, please report the issue here so it can be addressed as soon as possible. I am looking for feedback on these items specifically:
- How well does SimplySerial handle menu-based programs, like
raspi-config
through a Raspberry Pi serial console connection? - What happens when you try to run this version on older windows versions (Windows 8/8.1, Windows 7)?
v0.5.0 - Data Logging
This version adds the ability to log serial data to a file (in addition to being displayed on-screen as usual). There are two new command line arguments that can be used to control the new logging functionality:
-log:LOGFILE
where LOGFILE
is the name and path of the file you want to write to. If the file path contains spaces, it must be enclosed in quotation marks, i.e. -log:"C:\Path With Spaces\serial.log"
.
-logmode:MODE
where MODE
is OVERWRITE
or APPEND
. If no logmode is specified, SimplySerial will use OVERWRITE
mode by default.
Thanks to Github user @unwiredben for suggesting this feature and helping to test the implementation!
v0.5.0-beta.2 - Data Logging Improvements
This version improves the data logging mechanism by automatically flushing the log data buffer to disk if:
- it has been 2 seconds or more since the last serial data was received, or
- it has been 10 seconds or more since the last time the buffer was flushed
This should prevent situations where it takes a long time for data to be dumped to the log due to sporadic incoming data, or regular but very small chunks of incoming data.
Additionally, the SimplySerial version is now displayed as part of the standard help message (to make identifying the currently installed version easier.).
v0.5.0-beta - Data Logging
This version adds the ability to log serial data to a file (in addition to being displayed on-screen as usual). There were a fair number of under-the-hood changes required to implement this, so it is being released as a beta version first for anyone who wants to test the new functionality. If you try it and run into any problems, please report the issue here so it can be addressed as soon as possible.
There are three new command line arguments that can be used to control the new logging functionality:
-log:LOGFILE
where LOGFILE
is the name and path of the file you want to write to. If the file path contains spaces, it must be enclosed in quotation marks, i.e. -log:"C:\Path With Spaces\serial.log"
.
-logmode:MODE
where MODE
is OVERWRITE
or APPEND
. If no logmode is specified, SimplySerial will use OVERWRITE
mode by default.
-logbuffer:VAL
where VAL
is an integer value between 0 and 100000. This is the number of bytes of serial data that will be buffered before writing it out to the log file. If no logbuffer value is specified, SimplySerial will default to a buffer size of 4096 bytes.
v0.4.1 - Bugfix
This is a bugfix release to eliminate the unhandled exception error that could occur when a usb-serial device was disconnected.