I am looking for the cheapest microcontroller to run embedded Linux. what should I be looking at, which class of microcontrollers or microprocessors is compatible? is there a minimum system requirements (RAM, Flash, clock, etc)?
closed as off-topic by PeterJ, Bimpelrekkie, Dmitry Grigoryev, bitsmack, nidhin Jun 10 '16 at 9:01
This question appears to be off-topic. The users who voted to close gave this specific reason:
- "Questions seeking recommendations for specific products or places to purchase them are off-topic as they are rarely useful to others and quickly obsolete. Instead, describe your situation and the specific problem you're trying to solve." – PeterJ, Bimpelrekkie, Dmitry Grigoryev, bitsmack, nidhin
That totally depends on what you want to do with it, really.
I've run uClinux on an MMUless ARM7TDMI with 8 MB RAM -- but that will only run a kernel, a minimalistic init and dedicated services. If you are going for volume, 8 or 16 MB RAM, 32 MB Flash and some small ARM core are the minimum required, but you will need a lot of time shrinking the system to fit, so the expense for that needs to be offset by cheaper hardware.
In the middle, 64 MB RAM and 512 MB Flash with something that has an MMU (ARM9 and up, basically) gives you enough space to run a standard distribution like Debian, but you still need to compile your own kernel and bootloader. Less software effort, and the hardware should be cheap enough so anything below a million units is probably cheapest here.
Last but not least, there are readymade Linux systems that come with full vendor support, and generally have lots of memory, lots of flash, an eMMC disk, an SD card slot, PCIe slots for wireless cards, HDMI outputs and so on. These tend to be fairly expensive, but you can usually cross-compile your Linux applications fairly easily, and get set up in a week.
There are a few standard boards that are produced in bulk, like the Raspberry Pi and the Odroid boards. These are fairly cheap for the kind of specs they have, but the boards are larger than necessary for most embedded applications, and certainly more expensive in bulk than a custom-made board with just the required peripherals and the smallest CPU, RAM and Flash you can get away with (especially as the board isn't friendly to being used as a building block -- all interfaces are either fixed connectors on the edge, or unpopulated headers that need to be soldered in.
For a prototype or one-off, I'd definitely go with the Pi or one of its clones (which often have additional interfaces, so comparing here might pay off). For mass production, build your own PCB with a mid-range CPU with MMU, enough memory to run a standard system, enough flash to keep it and allow updates using the package manager, and just the peripherals you actually need.