The Raspberry Pi Compute Module

Raspberry Pi cluster computers are old hat by now, and much to our dismay, we’ve even seen Raspberry Pis crop up as the brains of a few ill-conceived Kickstarter projects. The Pi was never meant for these applications, with the very strange port layout and a bunch of headers most people don’t need. The Raspberry Pi foundation has a solution for the odd layout of the normal, consumer Pi:  The Raspberry Pi compute module, a Raspi and 4GB flash drive, sans connectors, on an industry standard DDR2 SODIMM module.

This isn’t something you can plug into your laptop (yet; that’s just a BIOS hack away, right?), but the new format does allow for some very interesting projects. All the normal Raspi I/O – CSI and DSI ports, USB, HDMI, JTAG – and a whole bunch more GPIO ports – are broken out onto an I/O board for development. The idea is that anyone can develop a product for the Raspberry Pi, create a custom board with a SODIMM connector, and use the compute module as the brains of their project.

The compute module should cost about $30/piece in quantity 100, available in June. No word yet on how much the I/O board will cost, but we expect a few open source expansion boards to crop up shortly so anyone can create a very cool cluster computer based on the compute module.


42 thoughts on “The Raspberry Pi Compute Module

  1. (yet; that’s just a BIOS hack away, right?)

    Not even close. RasPi on a Mini PCI board would be very useful and pluggable directly into millions of laptops, though those slots have mostly been axed in favor of Mini PCIe.

    1. Tough call on which is better. The mini-pci would allow full integration with an existing mini-pci capable board. This includes most older laptops as well as a large number of embeded boards – the slot is typically used for wifi modules. However I have not seen a vertical mini-pci socket. All are horizontal. The ram socket is however available in both horizontal and vertical configurations, allowing you to build a very dense backplane. Would not be surprised if 100 of these can be stuffed into a typical tower case.

      1. Some lights out/remote management systems are pretty much an embedded computer sitting in a motherboard slot with a battery and a network connection. A raspberry pi (model B) could do perfectly adequate job in such a role.

    2. The compute board’s pin-out is much different from a standard SO-DIMM memory card, so even though it’s the same form factor socket, it’s not something you’ll fix with programming, whether that’s a BIOS hack or drivers or what ever. (Sigh. Too bad :-)

  2. A PCB with a 100 of these stacked up would look pretty cool, wonder if those RPi cloud hosts will do this? Quite a cool idea for a private server farm.

    I can see there being a few HTPCs, Perhaps a camera or camcorder.

    Wonder what the minimum you need to feed the module to get it booting and perhaps USB or at least UART for comms, just 3.3v?

    1. I don’t know why people are into these raspi “farms”… it’s like having farm of thousands rats with infrastructure overhead when you can just buy single few cows to get same amount of meat (and possibly host lots of virtual rats on them :-)

      1. If you did things right, you could actually reduce infrastructure. It wouldn’t be that hard to put about 16 of these, some 32-GB flash chips for disk, power switching circuitry and an ethernet switch to make an easily manageable set of machines. Just slap all this onto a cheap rack shelf along with a power supply, maybe a few fans, and, pow, a 16 low-power server in 1U of rack space.

        In my experiments, I’ve found that for certain applications a bunch of small, low-power boards have better up-time, better performance and a lower operational cost than virtualization. This would especially be useful for a dedicated server provider as some people just want a physical box out on the internet somewhere.

  3. It’s a cool product, the SODIMM form factor is an established phisical standard for industrial ARM boards. Unfortunately it still has the crap CPU and is single sourced.
    Of course nobody would build an array of these, it would be as powerful as a Celeron.
    It’s use is in industrial application were the Beaglebone with its connectors was better suited.

  4. This looks great. It means a whole host of hobbyist project can now drop in an embedded arm system using a standard socket! It makes a change from yet another form factor.

    I haven’t checked the pin out just yet. If some budding young hacker does get hold of one of these and notices that it will fit inside the memory slot of their laptop. Do you get magic blue smoke, or will it just make your bios beep angrily at you?

    Would be nice if they got a newer arm core in there at some point…

      1. There’s probably better way of doing it, if you’ve got access to hardware. Still, something where a GB or two of RAM is wired up to the PC as normal, but can also be accessed by the onboard Pi, would be good, you’d be right in at the lowest level there.

        Ideally that would be the only RAM in the system, though you could manage otherwise. Perhaps have a pair of evil Raspberry DIMMs. They could communicate through whichever method, they’d have the power to use the flexibility.

        Would be a GREAT debugger, as well as a next-generation Game Genie.

      2. or anti-evil,
        they could reformat the pinout and add real ram to the pi

        imagine the PC equivilent of ram HARDWARE-debugging in real-time.

        how else to catch some next-level virus at work and dissect it.
        …WITHOUT “asking the rootkit’s permission to “run” anti-virus…”

        instead emulate the ram with the help of real ram and run a modified A.V. on the raspi.
        then clock the host CPU/RAM at low enough speeds so the pi can keep pace, scaning every move made by any rootkit.

        this has been done on 8bit systems,
        but its been a while since ive heard anything about it being done on modern systems,
        in hardware.

        the thought of it reminds me of back in the day. i was browsing system ram using a system’s own cpu&software, (software debug) and when you get to the screen buffer strange things happen as you try to scroll down! (this was text mode screen)

        1. This application would be wonderful, yes this particular device doesn’t work. I could see a module for anti-virus other management functionality running on a separate coprocessing unit that wouldn’t affect processing speed of the primary system as beneficial.

    1. No, it would never work in a laptop’s RAM slot (even if you hacked your laptop’s bios), all you’d get is a dead laptop, a dead Pi and lots of blue smoke… What it DOES allow, is for denser cluster using SODIMM slots on a custom PCB rather than waste a ton of space… You could fit a 10 of these in the space of 2 normal Raspberry Pi’s stacked on top of each other, so a 50 Pi cluster turns into a 250 Pi cluster using the same amount of space, not to mention the money you’d be saving (~$15 a piece if you bought 100 of them, so for 250 Pi’s, you’d save roughly $6000) since there is no need for all the ports, headers and connectors, except for the master Pi that is controlling all the others.

      1. Except there’s not really a use for clustering Raspis. Certainly not for processing power, you can get much better MIPS per watt, per dollar, etc. And much faster communication between processors, previous Pi clusters have all used the onboard Ethernet. Which I think is routed through USB to the CPU. Which is of course terrible!

        Every problem a cluster can have, the a Raspi cluster suffers badly from. It’s no insult to the Pi, cos that’s not what it was designed for, it’s all the extra video and I/O stuff that makes it so useful. This module, I imagine, will mostly be useful for people who want to do their own layout for I/O, to use the Pi as the controller for a more complex circuit, while taking advantage of it’s video / sound benefits.

  5. It only uses the same connector of the RAM sticks, but it is absolutely not compatible. And it would not make any sense to be, since the average laptop is orders of magnitude faster. It is intended for people who can design a cheap carrier board tailored for their needs, but don’t have the quantities/expertise to design a full, high speed BGA ARM board.

  6. Why does it cost so much? It is a smaller, less complicated board than either version of the normal Raspis. I love the form factor and could see myself building this into some of my designs, but it would feel weird to pay more than the Raspi Model A to get a board with fewer components. It must cost less to build!

    1. I just noticed the integrated flash. That makes a little more sense. Also I forgot that there is a RAM size difference between the A and the B models.

      Okay, I guess I approve. You may proceed.

    1. You probably wanna put a new screen in though, even for it’s low native res, the Game Gear screen was AWFUL! That, and the enormous floodlight that required regular sacrifices to the gods of Nickel and Cadmium.

      Ah, the Atari Lynx, though. Beautiful machine. Sprite scaling and rotation, well above it’s time. If they’d launched it as a console, competing with the NES and Master System, it’d have wiped the floor with ’em! Could have stood up well against the SNES, a few years later. They got Wolfenstein 3D working on a Lynx! Just a 6502-based CPU, with some really clever graphics hardware.

      Again though, it died because late-1980s LCD screens were horrible and ugly, and needed fluorescent tube backlights, since nobody had invented anything better than the light bulb, by that time.

      I once had a pocket TV by Radio Shack that had a little sheet of electroluminescent plastic as a backlight. Worked well. Was black & white, and really tiny. I’d love one again now, if there were any signals left for it to pick up. Perhaps a USB tuner dongle and some ingenuity… Or maybe just wait for Samsung to bring out a TV wristwatch. The Japanese probably already have them. Shame Europe screwed up Mobile-phone digital TV.

    1. The IO Breakout board they show has two connectors labeled CAM1 and CAM2, so that sounds like a yes for at least 2. It would be nice to know if more cameras could be supported as I have a project that could migrate to a Pi if it was able to support 5 cameras.

  7. There’s been uCLinux cards in this form factor for ages. It is kinda nice to see an inexpensive one though. I think I’d prefer to see a micro-SD card slot rather than the 4gb flash or have a variant that has the SD card slot. The option of making a very slim device using this rather than a full RPi makes this a tidier solution to someone wanting to make like a handheld gaming device. The fine pitch of the socket is the only thing really getting in the way of some people though.

  8. I’ve considered using a SO-DIMM SoC solution for a specific application where size is a severe constraint but figured a board based on a Zynq-7000 was too expensive. Check out the specs, I bet it won’t be much better (except for the FPGA fabric, of course).

    1. Straight from the schematics : “BCM2835 will fail to boot from eMMC if EMMC_DISABLE
      _N is LOW and will therefore fall back to booting from USB.”

      Also the Videocore JTAG Interface is brought out on the SODIMM connector

    2. It might be a matter of plugging the thing into an expansion board with ports so it acts like a normal RasPi…do the normal setup procedure for whatever you want the module to do, pop it out of the expansion board, and plug it into whatever board you have planned for it.

    3. I’m not sure if you guys have noticed the “USB Boot” micro USB (of the two on-board). I’m thinking this one has access to the Flash, while the other micro USB is used for just power, maybe.

    4. Not sure about this Broadcom chip but chips from Marvell have a ROM in the SoC with a serial bootloader. After a tool on the PC side does a special handshake and uploads some binary blobs you can upload uboot or whatever to memory and then execute it.. once uboot is running you use it to bring up networking and then use that to download chunks of your flash image into memory and write them to eMMC, NAND.. I think that is fairly common as it’s used on production lines to “birth” boards.
      I have worked with some chips that don’t have that functionality or it’s only available to very select customers though. In those cases they put uboot on to the memory before mounting it and you have to be very very careful not to overwrite it. As long as uboot is intact you can replace your kernel and filesystems.
      I would be surprised if this doesn’t have tools to bring up blank boards. If it doesn’t it’s pretty useless.

  9. I used to work with a Toradex (go check it out) in my old work. These are wonderful and can cost 80$ each. They are SODIMM format and you can get a development board as big as a regular motherboard. There is all you need for integration so it should not be too hard to make a cluster of them.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s