Skip to content

Conversation

@JPHutchins
Copy link
Collaborator

This removes the 4,096B serial MTU default that Intercreate tends to use internally for fast FW updates or file transfers, and removes the 1,024B UDP MTU.

As more people are using smpmgr, the assumption that users would like to default their USB transport for fast upload/download is leading to preventable frustrations. Some devices, like iFixit FixHub, will see FW upgrade upload speeds drop from ~50KBps to ~10KBps with these defaults (users can provide --mtu 4096 to fix), but we don't expect regular users to be impacted since the vast majority use iFixit-provided SW for FW upgrades. That SW knows the correct buffer sizes for fast USB transfers.

To get better "out of the box" compatibility, this PR defers defaults to smpclient, which in turn gets its transport defaults from Zephyr's upstream default KConfigs: https://docs.zephyrproject.org/latest/kconfig.html.

Here are some related issues and discussions:

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR removes hardcoded MTU defaults (4,096B for serial and 1,024B for UDP) from smpmgr to improve out-of-the-box compatibility. Instead, it defers to smpclient's upstream defaults based on Zephyr's KConfig values.

  • Changed the MTU parameter from required integer to optional, allowing None values
  • Removed hardcoded 1,024B MTU for UDP transport initialization
  • Updated help text to clarify that smpclient upstream values will be used as defaults

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
smpmgr/main.py Modified MTU option to accept None and updated help text
smpmgr/common.py Updated Options class and removed hardcoded UDP MTU
Comments suppressed due to low confidence (1)

smpmgr/common.py:65

  • The function still references options.mtu in the serial transport case (not shown in diff), but the MTU type has changed to int | None. This could cause issues if the serial transport code path doesn't handle None values properly.
        typer.echo(

@JPHutchins JPHutchins merged commit 4b9c271 into main Aug 11, 2025
9 checks passed
@JPHutchins JPHutchins deleted the fix/mtu-defaults branch August 11, 2025 20:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants