Squeeze

You inherited a telemetry data logger from a colleague who left the team. It works correctly: it stores sensor readings across four channels (TEMP, PRES, HUMD, LGHT) and prints a summary with count and average per channel.

The problem? It is grotesquely wasteful with RAM. Oversized buffers, duplicated tables, unnecessary copies, and wide types where narrow ones would do. On a memory-constrained MCU, this is unacceptable.

Your job: reduce the static RAM footprint without changing the output. The firmware must produce exactly the same telemetry report, but fit in far less RAM.

Your optimized firmware must print a report byte-identical to what the starter produces today for the built-in test data, same banner lines, same per-channel count/average lines. Run the starter first and capture the baseline before you start cutting.

The firmware's static RAM (.data + .bss) is measured directly from the compiled image. There is a RAM budget, and the current code blows past it. Find and eliminate the waste.

Loading the interactive arena.