I’ve also looked at ARMs, but only for a couple of projects. Here’s one I hope to be able to get to some day soon (like in the next four years, which for me really is about as close to soon as I get):
A Slocum or SPRAY glider is an autonomous underwater vehicle that can cross hundreds to thousands of miles of open ocean while using almost no power. It really is a glider in that once the buoyancy is set, it angles onto a glide path and as it sinks or rises, it moves forward. A typical setup has a glider starting a dive by taking on ballast and going into a shallow dive. Once it reaches depth it blows its tanks and starts to surface. Once it surfaces, it sits long enough to recharge the onboard batteries, pick up a GPS location, place a satellite call to dump its location, status, data from the dive, pick up any changes in task or programming, etc. Then it begins the next dive. They’ve been in use for a number of years, and are a pretty mature technology.
So here’s where someone like me comes in: I’m in a local robot club. We’ve got a number of builders who might be interested in taking a look at something deep in the ocean, say 500m down and a few hundred miles away. I don’t own a boat and couldn’t afford one. But I COULD build something that would take itself out there, collect data, come back, and tell me all about it.
An 8-bit AVR wouldn’t entirely do the job. There’s just too much going on. But they’d do a good job of managing discrete parts of the task. For example, have an 8-bit AVR handling data collection and have it put itself into a low power sleep mode as much as possible. Have another one handling vehicle control, and likewise put itself to sleep once it’s on a good glide path. Have another one handle the GPS receiver and turn it off when the glider’s underwater, sleep when it’s not active, etc. And have an ARM to handle the phone conversations when it surfaces. The ARM would spend most of its time asleep or powered off, but when the craft surfaced it would more or less drive the show.
And yeah, having Linux running on it has some appeal. Here’s why: Being able to re-flash the 8-bit processors in-situ and in operation would be a huge huge boon. I can’t count how many times this has been done to space probes, and at times that’s been the thing that saved a mission. Not to say it couldn’t be done otherwise, but with a Linux host sitting there with hard-wired cables to each of the 8-bit processors, it’s a matter of running avrdude and flashing the 8-bit. Those tools exist. It wouldn’t require developing new ones. Lots of appeal there.
Why not develop my own? Joe already mentioned something that explains why: I’m not a hardware guy. I’m not much of a software guy, either. So if I can get something off the shelf that does what I want, I’m all over it.