FlashBudget checks flash and RAM usage on every pull request and comments the size diff, symbol by symbol — so you never discover a blown memory budget three weeks before release.
On a resource-constrained MCU, memory doesn't run out gradually — it runs out on the exact commit nobody checked.
The build finally fails on the release branch, two days before shipping, and nobody remembers which of the last forty commits pushed it over.
A new dependency, a bigger buffer, a debug string left in — each one looks harmless in review because nobody sees the memory impact.
Someone could run size or nm by hand after every PR. Nobody does it every time. So it stops happening at all.
Add one step to your existing build that uploads the .elf or .map file after compilation. No firmware code changes required.
FlashBudget compares flash and RAM usage against the target branch, section by section and symbol by symbol.
A comment lands directly on the pull request, plus an alert if a configured budget threshold is crossed.
See exactly which function, struct, or constant grew — not just a total byte count.
Set a hard flash/RAM ceiling per target and fail the build automatically when it's crossed.
Track memory footprint over time across firmware targets, not just per pull request.
Different budgets for different boards or variants built from the same repository.
We're onboarding a first batch of embedded teams before public launch.