I'm a hobbyist with little experience. Usually I play with Arduino Pro Mini or ESP8266. I can make them do simple things I want, but for obvious reasons I can't give them too many features at once.
E.g. if I try adding a OLED with configuration interface, or logging to SD card, or persistent variable storage and button debounce logic, to an existing program, it becomes too much for the device to handle.
Essentially, I'd like something no stronger than what I'm using, but with an order of magnitude (x20 or so) more FLASH and RAM, or something to the same effect.
What I've considered:
external memory: can't put code on it (?)
(on ESP8266) replacing the flash memory with a larger one: not enough
optimizations: not enough
multiple microcontrollers: doesn't scale well, takes up space, uses more power
upgrade to Raspberry Pi Zero, C.H.I.P., etc: overpowered, but best option so far
run all the logic on an external server: limited usefulness
So the question - is there a good (inexpensive, not needing many changes to existing software) product (device class) or technique that fulfils this need?
[EDIT] Further considered ideas:
- external SDRAM, loading code from SD card: time investment, and it's essentially a Pi Zero with a much weaker CPU
It seems the answer might be that if I'm looking for a relatively mainstream (easy and cheap) solution, I should accept the greater power usage and use an ARM computer. Can anyone confirm?
[EDIT2] Thank you all, I now have an uotline of available product tiers. The general thoughts I get are:
SRAM prices will put anything up to and including ARM Cortex M4 at a similar level, should choose by support quality and power usage
where power conservation isn't a concern, a small SBC will offer cheap resources