SerialWizard
A free tool from LCD Wizard - https://lcdwizard.com

Serial monitor, live plotter and ESP32 / ESP32-S3 / ESP32-P4 flasher.
Nothing to install: everything the app needs is inside the one program file.

GETTING STARTED
  Windows  Run SerialWizard.exe.

  macOS    Unzip, then drag "SerialWizard" into Applications.
           The app is not notarised by Apple yet, so the first time:
             - macOS 15 and later: open it once, then go to System Settings > Privacy & Security
               and click "Open Anyway".
             - macOS 12-14: right-click the app, choose Open, then Open again.
           The bundle is ad-hoc signed and sealed, so macOS can check it is intact; it is not yet
           signed with an Apple Developer ID, which is why the one-time approval above is needed.
           If macOS still says the app "is damaged", run this once in Terminal:
               xattr -cr "/Applications/SerialWizard.app"
           Serial ports appear as /dev/cu.usbserial-*, /dev/cu.wchusbserial-* or /dev/cu.usbmodem-*.

  Linux    tar xzf the archive, then run ./SerialWizard
           ./install-menu-entry.sh adds it to your application menu.
           Opening serial ports needs the dialout group (uucp on Arch):
               sudo usermod -aG dialout $USER      then log out and back in.
           The X11 session libraries must be present (they are on normal desktops):
               sudo apt install libice6 libsm6     (Debian/Ubuntu)
           Ports appear as /dev/ttyUSB* (USB-UART bridges) and /dev/ttyACM* (native USB).

CHECKING A DOWNLOAD
  SHA256SUMS.txt (published next to the downloads) lists the SHA-256 of every archive.
      Linux / macOS:  sha256sum -c SHA256SUMS.txt      (macOS: shasum -a 256 -c SHA256SUMS.txt)
      Windows:        Get-FileHash SerialWizard-*-windows-x64.zip   and compare with the list

SETTINGS
  Saved in SerialWizard.ini next to the program when that folder is writable, so a copy
  on a USB stick keeps its own setup. Otherwise: %APPDATA%\LCD Wizard (Windows),
  ~/Library/Application Support/LCD Wizard (macOS), ~/.config/lcdwizard (Linux).

MONITOR
  - Any baud rate, data bits, parity, stop bits and flow control; DTR / RTS switches.
  - Text (UTF-8), ASCII, Hex, Hex+ASCII, Decimal and Binary views; switching redraws what was received.
  - Clear-screen codes (ESC[2J, ESC c, form feed) clear the window; ANSI colours are hidden.
  - Ctrl+F (Cmd+F on macOS) search, F3 / Shift+F3 next and previous, Ctrl+L clear.
  - Export transcript saves exactly what the window shows (.txt), or the raw bytes (.bin).
  - Auto-reconnect when a USB device resets or is re-plugged.

PLOT
  Numbers are picked out of each line automatically:
      temp:23.5C, hum:41%        named series, units detected
      23.5 41 1013.2             plain columns
      time,volts,amps            a header line names the columns that follow
  Axes scale to the data; Auto layout splits series into lanes when their ranges differ.
  Record, then export CSV or a PDF report with chart, statistics and data.

MODBUS (RTU and TCP master)
  RTU uses the serial port and line settings in the sidebar; TCP talks to host:port (502 by default).
  Add reads (coils 01, discrete inputs 02, holding registers 03, input registers 04) with unit id, start
  address and count. Registers decode as U16, S16, U32, S32, F32, hex or binary, with word order
  ABCD / CDAB / BADC / DCBA and a scale factor. Addresses are 0-based protocol addresses
  (holding register 40001 = 0); the results also show the PLC-style number.
  Write a single or several registers (06 / 16) or coils (05 / 15); while polling, writes are slotted
  in between reads. Every frame is shown in hex in the traffic log, with CRC and exception checks.
  "Send values to the Plot tab" charts each value, so Modbus data can be recorded and exported too.
  To try it without hardware: choose TCP and click "Start a demo device on this PC".

FLASH (ESP32, ESP32-S3, ESP32-P4)
  Drop .bin files (or a build folder) onto the Flash tab. The bootloader, partition table, app and
  merged images are recognised from their contents and placed at the right offset; offsets that
  would break the board are refused before anything is written. Flash resets the board into its
  bootloader, writes compressed, verifies with MD5, then hands the port to the monitor so the first
  boot line is captured. For boards without auto-reset choose "Hold BOOT".

Fonts: Archivo and JetBrains Mono, SIL Open Font License 1.1 (see the licenses folder).
