Skip to content

v1: Update nanopb to 0.4.9.2 and regenerate protobuf wrappers - #993

Merged
tyeth merged 1 commit into
mainfrom
claude/nanopb-update-assets-579756
Sep 25, 2026
Merged

tyeth merged 1 commit into
mainfrom
claude/nanopb-update-assets-579756

Conversation

@tyeth

@tyeth tyeth commented Sep 16, 2026

Copy link
Copy Markdown
Member

Closes #920

  • Vendored nanopb runtime (src/nanopb/*, src/pb.h, src/nanopb/nanopb.pb.h) updated from a pristine 0.4.6 to the nanopb-0.4.9.2 release (includes the GHSA-p24j-vqcp-x988 and GHSA-9w99-4pfq-6396 decoder fixes).
  • src/wippersnapper/** regenerated with the 0.4.9.2 generator from current https://github.com/adafruit/Wippersnapper_Protobuf master protos. Compared with the previous 0.4.5-dev output: tags, sizes, init macros and field lists are identical; only additions are *_ENUMTYPE convenience macros. Cosmetic: no timestamp line, shorter include guards, proto comments emitted, .pb.c includes its header by bare name.
  • CI workflow now downloads nanopb 0.4.9.2 instead of 0.4.8. Since the vendored files match, that step is now a no-op and could be removed in a follow-up.

Companion: adafruit/Wippersnapper_Protobuf#218 bumps the generator submodule so future CI-generated wrappers match these files.

Local builds (PlatformIO): adafruit_feather_esp32s3 and raspberypi_picow succeed with no nanopb-related warnings; adafruit_pyportal_m4 result to follow in a comment if it differs.

@tyeth tyeth left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

LGTM, no real changes except we now get enum docstrings for free 🎉

@tyeth
tyeth requested a review from brentru September 16, 2026 16:55
@tyeth tyeth changed the title Update nanopb to 0.4.9.2 and regenerate protobuf wrappers v1: Update nanopb to 0.4.9.2 and regenerate protobuf wrappers Sep 16, 2026

@brentru brentru left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@tyeth Was this tested against IO Prod?

@tyeth
tyeth merged commit cfe5269 into main Sep 25, 2026
48 checks passed
@tyeth
tyeth deleted the claude/nanopb-update-assets-579756 branch September 25, 2026 17:59
@tyeth

tyeth commented Sep 30, 2026

Copy link
Copy Markdown
Member Author

Linked evidence here:

Details

All three jobs completed with successful esptool read-back verification, though my regex checks missed the version and IO-connection details. I'll now directly inspect the serial logs, boot_out dumps, and B0 verify transcript to confirm those.

Version verification checks out—beta.130 on baseline and beta.132 on the #993 build. Now I'll dig into the end of each serial log past "Registering hardware" to confirm IO registration and MQTT connection succeeded, along with the flash-verify transcript tails.

Both builds successfully connected to production Adafruit IO as tyeth_demo, registered, decoded the pin-configuration signal, and maintained a live MQTT session throughout. I'll now write up this evidence as a report, save it to memory, and summarize the findings.

Yes, the v1 firmware is now tested on real hardware against production IO, and it passes.

Result on the QT Py ESP32-S3 N4R2 (rpi-hil006), account tyeth_demo, io.adafruit.com:8883

job what esptool read-back version reported by the running board IO
A 96334361 flash beta.130 baseline full image, digest matched 1.0.0-beta.130 registered, configured, MQTT pings OK through the hold
B0 eda2375e read-back before upgrade app region at 0x10000 matches the beta.130 app image n/a n/a
B c162888b flash the #993 build full image, digest matched 1.0.0-beta.132 registered, configured, MQTT pings OK through the hold

The board provably held beta.130 right before the erase and provably holds the #993 image after it, and the running firmware's self-reported version moved from beta.130 to beta.132. On the #993 build the serial log shows WiFi join, TLS MQTT connect, the nanopb-encoded registration request published, the registration response decoded, the broker's pin-configuration signal message decoded through the oneof callback path, "Hardware configured successfully", and pings every 5 s until the window ended. Behaviour matches the baseline line for line.

hil-report-pr993.md

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.

Update to latest Nanopb

2 participants