Hi Jack, looking back I remember you and Al did take the first giant leap to modularize the code.? From the single-file SDR Convolution Receiver project, to multiple files.
?
I've done two different "modularizations", first the conversion of the magnetic loop controller to Pi Pico and then T41EEE (still in progress).
Both of these projects rely on the Adafruit GFX library.? It's not at the lowest of levels, but it's pretty low level.? Graphics updates are always slow and painful.
?
Regarding modularizing the display code, you can't really take that very far.? The problem is that the display gets involved in so many things.? "Decoupling" is difficult.
Certainly things can be improved, but it's tough to make progress when the display is so involved in almost everything, in one way or another.
The Pi Pico loop controller uses inheritance to try to clean up and reduce redundancy in the display code.? I think that helped, but only incrementally.
?
Looking at the compiler outputs posted here, it looks like the first priority for V12 code is efficiency.? Not much stack or even heap is left free.? I'm surprised it runs without stack crash.
?
--
73 Greg KF5N