Slashdot Mirror


Embedded Linux Hardware Resources?

jessecurry asks: "I've recently come up with a conceptual Linux based piece of hardware and have been able to find a huge amount of information regarding getting Linux on to a device, but almost nothing about creating the device itself. I'd like to know if there are any books, online guides, or software that would help in designing a device that would accept some flavor of Linux. I really don't want to go 'off the shelf', but I need something that can at least display graphics, respond to positional input, and play sound. Also, is there a good place to have all of these components put together once I have a finalized design?"

12 of 37 comments (clear)

  1. Depends by Realistic_Dragon · · Score: 3, Informative

    On how many you want! The answer is very different even for 1 or 20, let alone two million.

    The RTAI mailing lists are a good place for this kind of question however, and handhelds.org has a lot of links to embedded Linux projects.

    --
    Beep beep.
  2. O'Reilly Book by compact_support · · Score: 3, Informative

    Some folks swear by 'em, some folks hate 'em. Check out http://www.oreilly.com/catalog/dbhardware2/ Covers a range of embedded devices from PICs to DSPs and talks about the various buses you'll see.

  3. Tail wagging the dog? by ClosedSource · · Score: 4, Insightful

    If you want to make something useful you should be concerned about what the device is supposed to do, how compact it is, how much it should cost etc. Whatever OS is selected (if any) it should logically follow from the goals of the project. Unless this is an academic or work experience building effort, the OS selected is just a detail. Otherwise, it's a bit like asking "how can I build an embedded systems that uses 2k resistors".

  4. Foolish by Andrew+Sterian · · Score: 2, Insightful

    You'll never be able to make something on your own as cheaply as an off-the-shelf system that's mass produced due to economies of scale. Focus on the end-product and don't get caught up on trying to do everything yourself. I'd buy an off-the-shelf hardware system.

    1. Re:Foolish by AuMatar · · Score: 2, Insightful

      But building it yourself is more fun.

      --
      I still have more fans than freaks. WTF is wrong with you people?
  5. Gumstix by dduardo · · Score: 3, Interesting

    Look at the gumstix: http://www.gumstix.org

    Their boards will do everything you've mentioned, they have good documentation, the schematics are under creative commons, and it runs Linux.

  6. Obvious - only existing chips... by kosmosik · · Score: 2, Informative

    Linux is an Operating System - it has drivers for *existing* hardware. It is really hard to write drivers (or modules in Linux-speak) for dealing with non-existing hardware - I see real problems with testing it. :)

    So obviously if you plan to build hardware that will run Linux you need to use existing chips that have support in Linux. On the other way you may be willing (but there is no economical point for you really) to design some brand new hardware - just make sure it is atractive so few linux-heads-devs will use it and also make sure you release full specification of it.

  7. Re:This is just the info I need... by Lord+Kano · · Score: 2, Funny

    PS: Anybody know a good inexpensive source for lubricated latex sleeves?

    Sounds like you need a fleshlight.

    LK

    --
    "Hi. This is my friend, Jack Shit, and you don't know him." - Lord Kano
  8. it's all been done before by joe_bruin · · Score: 2, Informative

    Get a reference board from one of the chip vendors. You'll find that they've generally already built a board that does anything you want to do and more. Then you can strip the features you don't want, and the design work is essentially done.

    In my experience, Cirrus Logic is very Linux friendly, with good driver support for their ARM processors and dev boards.

  9. Depends what you want by porkThreeWays · · Score: 2, Insightful

    There's like 4 levels of "embedded" systems. Depending on who you talk to, some of these don't qualify. But "embedded" has been unclear for the past few years.

    Lowest level - True microcontroller. AVR or PIC. They can easily display LCD graphics, MP3 chips exist for sound. If you can get away with a true microcontroller, DO IT! It isn't Linux, but the AVR line is heavily supported by the open source community. Some of the best developer tools for it are GCC based. It can also easily do DAC and ADC. Super cheap per unit costs (some systems under a dollar in high enough bulk)..

    Next level - Gumstix style system. Has a heavier OS, but much more hardware support. Also, you have the advantage of many premade libs for you to use. They usually use 200-400 mhz processors. Also have the advantage of much more storage. Can usually access CF and SD cards.

    Mini itx / Nano itx / PC 104- The manufacturing industry uses these a lot. Still solid state, but basically a small PC. REALLY small PC. Many times 1/4 the size of a laptop motherboard.

    PC - Some people consider limited resource PC's embedded. I generally don't, but that's me. The manufacturing industry uses these. Think shuttle pc or microatx.

    As I said before, depending your programming experience, it's almost always best to start lowest and go up. Your unit costs are cheaper. Devices use less power and not as hot. Much smaller. Etc, etc. Basically, all these things mean more profit to you.

    --
    If an officer ever threatens to taze you, say you have a pacemaker.
  10. one answer by ecloud · · Score: 2, Informative

    I'd take a wild guess that greater than 90% of Linux embedded systems use some kind of ARM processor. Since that design has been licensed far and wide, you can probably find a customized one with just the peripherals you are looking for, from some company or other (e.g. Phillips, Atmel, Freescale, etc. etc. - just search digikey or mouser for some ideas). It uses a 32-bit instruction set (good for Linux, and good for porting code in general), typically has an LCD driver on the chip, and you might even be able to find one with a DAC. For high-quality audio output, you can use a Wolfson DAC (again there are many choices depending on whether you need a headphone amp, ADC, line-in, mic pre-amp, mixer, how many channels etc.) The ipods tend to use these chips (the 2-channel kind with a headphone amp) so some of them are really cheap because of the economies of scale. For even better quality, the best is probably Burr-Brown (as used in the SlimDevices Squeezebox).

    As another poster suggested, you can do prototyping with a Gumstix. Just the display may be a pain with those because they use that teeny-weeny surface-mount Hosiden connector for most of the I/O lines, and you will probably need to build your own display adapter board. But they do have an audio daughterboard already. For something more expensive but a little more ready-to-go (as a prototype), check out the offerings from Arcom; I've used those as well. Or look for some other SBC (linuxdevices.com is a good place to search). You can develop software that way, make sure you know how to use all the hardware you're going to need, and in parallel be working on your final board design (suitably miniaturized if necessary, all on one board, and leaving off the features that you don't need).

    1. Re:one answer by yope · · Score: 2, Informative

      I'd take a wild guess that you're wrong. There are also a _LOT_ of embedded PowerPC and MIPS devices out there. Probably ARM is still in first place, but not by much. Many people nowadays tend to confuse "embedded-systmes" with handheld devices or PDA's. While PDA's still are considered embedded systems, in fact an ambedded system is almost about any piece of electronic that forms part of a device or machine, which contains some sort of microprocessor. That could be inside your microwave oven, a car, an industrial control system, your TV, your DVD player, etc... nowadays almost anywhere.
      The ARM cores excell in power-efficiency, that's why there is hardly any better alternative for battery-powered hand-held devices, but the vast mayority of embedded systems are NOT battery powered, thus other processor cores might be better suited. If you need a 32-bit processor with memory-management functions that is able to interface vast amounts of RAM/Flash (i.e. something that can run linux), there are other choices besides ARM: PowerPC, MIPS, Super-H, Infineon Tri-Core, etc... Have a look at the MPC5200, MPC8xxx or MPC8xx ranges of processors from Freescale (ex Motorola) for instance, they have an impressive set of on-chip peripherals that is not equalled by any ARM based processor AFAIK.