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.jsonnow lives in its own repository and is re-generated automatically when new boards are added to CircuitPython. A new-updateboardsoption 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.jsonfile in the application folder (wheress.exeis 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.cfgfile in the application folder (wheress.exeis 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.jsonfile in the application folder (wheress.exeis located), so you can get rid of those pesky unwanted entries that you don't want SimplySerial ever trying to connect to automatically. See theREADMEfor information on the file format and available options. Thanks to @gufpewga for the suggestion. -
All of the new settings files (
settings.cfg,custom_boards.jsonandfilters.jsoncan also be placed in a.simplyserialproject folder. When SimplySerial is launched from a folder that contains a.simplyserialsubfolder, 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 acceptONandOFFas parameters (i.e.-forcenewline:OFF). You can still omit the parameter and the argument will behave as it did previously. -
noclearandnostatushave been renamed toclearscreenandstatus. The old forms still work for now, but should be considered deprecated and will likely be removed in a future release. -
The
-listoption now accepts an optional parameter indicating what to list.-list:allwill list all COM ports, including ones that have been filtered out.-list:settingswill show all of the command-line arguments loaded from the available settings files.-list:boardswill list all of the vendors and boards defined in the available board data files.-list:filterswill show all of the filters applied to the COM ports available on the system. -
New
-configoption 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
-exitkeyoption to change from the defaultCTRL-Xto another key of your choosing. Thanks to @TinFoilFox and @BlueBarks for suggesting this feature. -
New
-echooption to enable/disable local echo. Thanks to @sk-jame for the suggestion, and to @salvathor79 for contributing to the implementation. -
New
-bulksendoption 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
-titleoption to allow manually setting the window title. Thanks to @markeby for the suggestion. -
New
-txonenteroption to allow custom character sequences to be sent when theENTERkey is pressed. Thanks to @lefebvresam for the suggestion and @salvathor79 for contributing to the implementation. -
.msiinstallers 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
--encodingcommand-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]wherexxis 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
simplyserialfrom theextrasbucket. (The specific commands required have been added to SimplySerial'sREADME.) The-versioncommand-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
-nostatuscommand-line option.) -
Option to replace incoming CR with LF. Start SimplySerial with the
-forcenewlineoption 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
-noclearoption 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.jsonfile 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.jsondata 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:47365490535doesn'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, --versioncommand-line argument which displays the current version, installation type (user/system/standalone), installation path andboards.jsonversion.
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-configthrough 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.