Commit f68c451
fix: correct firmware footprint to measured 27.6 KB flash / 0.6 KB RAM
The "~14 KB" DCP-layer footprint claimed across the README, paper,
firmware docs, and figures was never backed by a reproducible
measurement — the README even referenced a measurement script that
did not exist. This commit measures it properly and corrects every
public claim.
New: docs/paper/figures/measure_footprint.py compiles a baseline
empty Arduino sketch and the lamp example with the same FQBN and
differences them. Result, written to footprint_data.json:
baseline empty sketch : 266,740 B flash / 22,068 B globals
lamp example (w/ DCP) : 295,007 B flash / 22,712 B globals
DCP layer delta : 28,267 B flash / 644 B globals
= 27.6 KB flash / 0.6 KB RAM
So the DCP layer is 27.6 KB of flash, not ~14 KB. The "~14 KB" was an
optimistic pre-measurement estimate, most likely from before the
on-device HMAC-SHA256 path (DCPCrypto) was added. The flash figure is
above the original <16 KB design target; the target predates on-device
crypto and is not met. Reported honestly as such.
The RAM figure is the good news: 0.6 KB. That is the number worth
leading with — RAM is the scarce resource on an MCU, and for context
IoT-MCP reports 74 KB peak memory.
Corrected across:
- README.md: intro tagline, "Validated on real hardware" section,
footprint figure caption
- docs/paper/main.tex: abstract, footprint paragraph, fig:footprint
text + caption, and the IoT-MCP comparison (was "roughly 1/5 the
memory" — now the measured 0.6 KB vs 74 KB)
- docs/RATIONALE.md, firmware/esp32/README.md, firmware/esp32/src/DCP.cpp
comment, docs/QUICKSTART_VIDEO.md, .github/RELEASE_NOTES_v0.3.0.md
- CHANGELOG.md: new Fixed entry; dropped an unverified "~1 KB of code"
claim for DCPCrypto
- figures/README.md: footprint marked measured
fig_footprint() rewritten: was a 4-protocol synthetic flash+RAM matrix
with the DCP bar hatched as "target". Now an honest 2-bar static-RAM
comparison — DCP's measured 0.6 KB vs IoT-MCP's reported 74 KB peak
memory, the one RAM-vs-RAM axis the two projects can be compared on.
Flash is stated in text, not plotted: IoT-MCP reports no flash figure.
arch diagram device label "< 16 KB MCU" -> "commodity MCU".
social_preview hero stat "<16 KB firmware" -> "<1 KB of RAM".
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent 37e7d8d commit f68c451
18 files changed
Lines changed: 239 additions & 73 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | | - | |
| 17 | + | |
| 18 | + | |
18 | 19 | | |
19 | 20 | | |
20 | 21 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | | - | |
| 17 | + | |
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
31 | 46 | | |
32 | 47 | | |
33 | 48 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
13 | | - | |
| 13 | + | |
| 14 | + | |
14 | 15 | | |
15 | 16 | | |
16 | 17 | | |
| |||
80 | 81 | | |
81 | 82 | | |
82 | 83 | | |
83 | | - | |
84 | | - | |
85 | | - | |
86 | | - | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
87 | 91 | | |
88 | 92 | | |
89 | 93 | | |
90 | 94 | | |
91 | | - | |
| 95 | + | |
92 | 96 | | |
93 | | - | |
94 | | - | |
95 | | - | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
96 | 101 | | |
97 | 102 | | |
98 | 103 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
100 | 100 | | |
101 | 101 | | |
102 | 102 | | |
103 | | - | |
104 | | - | |
| 103 | + | |
| 104 | + | |
105 | 105 | | |
106 | 106 | | |
107 | 107 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
39 | | - | |
40 | | - | |
41 | | - | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
42 | 45 | | |
43 | 46 | | |
44 | 47 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
35 | | - | |
36 | | - | |
37 | | - | |
38 | | - | |
39 | | - | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
40 | 42 | | |
41 | 43 | | |
42 | 44 | | |
| |||
Binary file not shown.
Loading
Binary file not shown.
Loading
0 commit comments