Hacker News new | ask | show | jobs
by benjamincburns 4705 days ago
It depends on what you're doing. If you're making an internet toaster, go buy an arduino. If you're doing anything CPU intensive, or if you're not familiar with embedded systems tooling, cross-compilation, Yocto or similar build systems, Atom >> ARM.

I'll very happily pay $200 for this.

4 comments

Honest question, no snark - Why not gut out an elcheapo laptop's mainboard (Atom or AMD Brazos) and dedicate a usb port to an Arduino or something. You get the power of x86 along with the expandability (i.e. GPIO, SPI, I2C, etc) of a microcontroller chip.
I've done sort of what you suggest professionally on projects where design decisions are driven largely by per-unit cost. If the SoCs that do everything you need aren't cheap/available, go with the best-fit main microprocessor to handle the heavy lifting, and one or two cheap micros to fill in the missing pieces. It's also a good approach for when a part of your solution needs good strict real-time software.

However for low-volume and/or personal projects, dev cost/time often trumps hardware cost and heterogeneous systems have a whole host of secondary challenges. Specific to your recommendation, it's a more complicated power architecture, more components to enclose, more tooling to worry about (software and hardware), and I have to worry about how to synchronize and communicate between the SBC and the micro/arduino.

It's worth an extra $100+ to be able to focus my limited free time on solving the problem I want to solve rather than on "shaving yaks."

Ah got it. Thanks. I didn't think power would play a significant role, but if it does then I can see why.
It all depends. Are you running off batteries, or wall power? Does your system have idle time that it can take advantage of for power savings? Were the boards in question designed with features to allow for low-power sleep, etc? Are you working with analog? Do your boards have low noise supplies, or do they expect a low noise input source? Are you doing any high current or high voltage switching? Is power-coupled noise an issue? Are we doing any switching of mains power? Is safety an issue? Should we use isolated supplies? If so, how much isolation do we need?

Software folks, myself included, tend to drastically underestimate the complexity of power design...

There is a reason an entire branch of electrical engineering is devoted to it. A branch I am considering going back to.
> CPU intensive

it's a 1GHz single core CPU from 2010. While Atom might have some IPC advantage over ARM, I doubt that as a whole it would be competitive against high-perf ARM boards, like the ODROIDs (up to 1.7GHz quad-core, beginning at 89 dollars).

[Edit: In the embedded world "as a whole" rarely makes sense. Design takes a very top-down approach where only specific features of a hardware platform (those necessary for the OEM product/solution) are considered for value comparison. This is why most SoC vendors have so damn many chips in each of their SoC product families.]

It depends on the problem you're solving, how much time/effort you're willing to dedicate to your solution, and what type of solution you choose.

If you have an embarrassingly parallel problem that optimizes well for ARMv7, you're 100% correct. If you're working on a more serial solution utilizing libraries optimized for SSE, Intel cache heuristics, Intel pipelining techniques, or similar (many of which don't exist or have equivalent siblings on ARM), I'm betting on the single-core 1GHz Atom pony.

While I have great respect for Arduino, if you are looking to do something with networking, go buy a BeagleBone Black (or other cheap ARM linux board).
I was using a bit of hyperbole to illustrate the spectrum of choices. I think if you're building an internet toaster, you might want to reevaluate your priorities.

An internet connected microwave on the other hand... http://madebynathan.com/2013/07/10/raspberry-pi-powered-micr...

Yea, the use case is for software that isn't optimized for ARM / MIPS that uses SSE. Which is a real buttload of software.