doc/help/File-Transmission.md
Serial Studio can send files to a connected device using plain text, raw binary, or industry-standard transfer protocols (XMODEM, XMODEM-1K, YMODEM, ZMODEM). It's handy for uploading firmware, configuration files, scripts, or any other data to an embedded target over an active connection.
Availability. File transmission is currently in the nightly build. It ships in the public release starting with version 3.2.8. The toolbar entry appears in commercial builds only; GPL builds compiled from source do not include it.
flowchart LR
File["Local File"] --> SS["Serial Studio"]
SS -->|Plain Text / Raw Binary| Dev["Connected Device"]
SS -->|XMODEM / YMODEM / ZMODEM| Dev
Dev -->|ACK / NAK / ZRPOS| SS
| Mode | Error detection | Block size | Pause/resume | Best for |
|---|---|---|---|---|
| Plain Text | None | Line-based | Yes | Human-readable config files, AT commands |
| Raw Binary | None | 64-8192 B | Yes | Simple binary uploads without protocol overhead |
| XMODEM | CRC-16 | 128 B | No | Legacy devices, small files |
| XMODEM-1K | CRC-16 | 1024 B | No | Legacy devices, larger files |
| YMODEM | CRC-16 | 1024 B | No | Files where the receiver needs the filename and size |
| ZMODEM | CRC-32 | 64-8192 B | Crash recovery | Large files, unreliable links, modern firmware loaders |
Click the File Transmission button in the toolbar while a device connection is active. The dialog closes automatically if the connection drops.
Sends the file line by line as text. Each line is terminated with a newline. A good fit for sending scripts, AT command sequences, or configuration files to devices that process text input.
Configuration:
Behavior:
Sends the file in fixed-size binary blocks with no framing or error checking. Use this when the receiver expects raw bytes and handles its own integrity checks.
Configuration:
Behavior:
A classic byte-oriented protocol that sends data in 128-byte blocks with CRC-16 error detection. The receiver initiates the transfer by sending a C character to request CRC mode.
Configuration:
Protocol flow:
C (CRC mode request).Notes:
Identical to XMODEM but uses 1,024-byte blocks instead of 128-byte, which cuts protocol overhead for larger files.
Configuration:
Extends XMODEM-1K with a metadata block that carries the filename and file size, so the receiver knows what it's getting before the data arrives.
Configuration:
Protocol flow:
Notes:
A streaming protocol that doesn't wait for per-block acknowledgment, which makes it much faster than XMODEM/YMODEM on high-latency or high-throughput links. It uses CRC-32 for stronger error detection and supports crash recovery.
Configuration:
Key features:
During an active transfer, the dialog shows:
The bottom section of the dialog has a scrollable activity log with timestamped events: block transmissions, acknowledgments, errors, retries, and completion status. It keeps the most recent 200 entries. Click Clear to reset it.
All settings are saved automatically and restored between sessions.
| Setting | Applies to | Range | Default |
|---|---|---|---|
| Transmission interval | Plain Text, Raw Binary | 0-10,000 ms | 100 ms |
| Block size | Raw Binary, ZMODEM | 64-8,192 bytes | 1,024 bytes |
| Timeout | XMODEM, XMODEM-1K, YMODEM, ZMODEM | 1,000-60,000 ms | 10,000 ms |
| Max retries | XMODEM, XMODEM-1K, YMODEM, ZMODEM | 1-100 | 10 |