Antes = firmware base configurado (jul/2026) · Depois = build otimizado (28-29/ago/2026) · números de build real (avr-size / avr-nm)
Menos código não foi o objetivo. Tiramos o que não servia para abrir espaço para o que melhora a máquina — por isso a FLASH caiu e a RAM subiu.
2 · Tiramos e reinvestimos
Cada barra é uma etapa medida por build (bytes de programa)
| Etapa | Δ FLASH | Δ RAM | Total |
|---|---|---|---|
| Base | — | — | 110.440 |
| Emergency parser ON / debug OFF | +844 | +13 | 111.284 |
| SDSUPPORT OFF | −14.440 | −1.181 | 96.844 |
| ARC + EEPROM_CHITCHAT OFF | −5.116 | 0 | 91.728 |
| 1/16 + vel. + S-curve + hybrid | +5.244 | +241 | 96.972 |
| LIN_ADVANCE + buffer 32 | +3.364 | +1.724 | 100.336 |
3 · O que mudou na impressora
4 · A RAM aumentou — de propósito
56% da RAM usada hoje é o buffer do planner.
O espaço liberado pelo SD permitiu dobrar o lookahead de 16 para 32 blocos. RAM livre não é necessariamente RAM bem utilizada.
5 · Até onde dá para empurrar o ATmega2560?
Eventos de passo por segundo (CoreXY, config atual) — escala até 16 kHz
A 200 mm/s a demanda já passa o teto — o Marlin agrupa pulsos (multistepping) para dar conta. Ligar shaping derruba o teto. Chegamos ao ponto em que a próxima otimização não é apagar outra feature: é trocar o orçamento computacional.
A BHX 401 não nasce de troca arbitrária de eletrônica — é o que o teto pede
| Mega atual | BHX 401 (nova) | |
|---|---|---|
| RAM livre | 2,7 KB | 54,7 KB |
| Teto calculado da ISR | ~11,5 kHz | ~78 kHz |
| Input shaping | compromete margem | cabe com folga |
Fontes: otimizacao-firmware-v2.md (etapas A→G, medido por build) · estudos/firmware/18-dados-otimizacao-mega.md · tools/baseline.sh — Basement Hacks, ago/2026