The Compute Module is a Raspberry Pi in a more flexible form factor, intended for industrial application.
The compute module contains the guts of a Raspberry Pi (the BCM2835 processor and 512Mbyte of RAM) as well as a 4Gbyte eMMC Flash device (which is the equivalent of the SD card in the Pi). This is all integrated on to a small 67.6x30mm board which fits into a standard DDR2 SODIMM connector (the same type of connector as used for laptop memory). The Flash memory is connected directly to the processor on the board, but the remaining processor interfaces are available to the user via the connector pins. You get the full flexibility of the BCM2835 SoC (which means that many more GPIOs and interfaces are available as compared to the Raspberry Pi), and designing the module into a custom system should be relatively straightforward as we’ve put all the tricky bits onto the module itself.
1GB of RAM per the article on the new one, the link you posted is to the old Compute module.
> The CM3 contains a BCM2837 pro-
cessor (as used on the Raspberry Pi 3), 1Gbyte LPDDR2 RAM and 4Gbytes eMMC Flash. Finally the
CM3L product is the same as CM3 except the eMMC Flash is not fitted, and the SD/eMMC interface
pins are available for the user to connect their own SD/eMMC device.
This lets you design devices with a fairly powerful CPU, but still stay within the bounds of cheap manufacturing (2 or 4 layer boards, >0.5mm pitch, 6/6mil traces, no BGAs).
These kinds of modules are enabling lots of new appliances that were too difficult to build before. I'm saying "these kinds", because lots are appearing, for example the Samsung ARTIK line or boards produced according to the 96boards.org standards.
Let's say that you're trying to create a fancy internet radio for mass production. You want to base it on linux. Instead of producing a PCB with a CPU and tons of support circuitry (hard) you can instead include a SODIMM-connector (easy) and plug in a RPI compute module.
You can get away with a much simpler design and lower production tolerances by doing this - enabling you to use less time and use cheaper production techniques.
I was always under the assumption that all-in-one minicomputers were for prototyping and hobbyist engineering. I reformat my Pi often for all the little things I want to try.
Presumably at a large scale there would be resources available to design and manufacture a completely custom board -- its the low scale applications this unlocks that make it exciting.
Rather than releasing this, I wish they had instead ramped up production (or something) of the Pi Zero.
It was supposed to be the "5 dollar Raspberry Pi" - but instead, due to some reason, you can't get an Pi Zero for $5 - or if you can, you are limited to "one per customer".
It feels similar to what happened a while back with the ATMega328P uC chip - they were being bought up in droves to such an extent that you couldn't get the IC thru Digikey and others (well, the DIP version - the SMT versions were almost totally unaffected).
It seems like something akin to ticket scalpers and the like buying all the tickets in a venue to sell them on to purchasers at a higher price; which is what I have seen on the Pi Zero - lots available on Ebay and other retailers, but for a much higher price than "5 dollars".
So people (apparently) are paying this extra cost, and that is what the "market" sets the price for the board. Even though it was marketed to be the "5 dollar Raspberry Pi" - it's true market cost is much greater (in some cases, you could only get the board with an extended "kit" of materials - driving the cost up and beyond that of a single bare Raspberry Pi 3).
My interpretation: The Raspberry Pi Foundation wanted to be able to point to a product, technically available for $5, as a point of comparison against some of the super-cheap Allwinner boards. I think the margins are probably thinner than the larger Pi hardware, and I don't think they've ever intended to make enough that they'd be available in arbitrary quantities.
That's my take exactly. They needed an answer to CHiP and Orange Pi stat. When everything is tabulated, I expect they actually lose a tiny bit on each one. I even suspect they called it the "Zero" because it was going to be sold for BOM+Assembly (thus netting zero).
Its an advertisement. Not a product. Giving them away in a magazine was brilliant.
I agree it certainly confuses the mission. I think the Pi-zero was a mistake for them and as a result they lose money on every one they sell (hence they really try to limit selling them individually, and "package" them with things they can raise the price of to maintain a net positive margin).
The compute modules are yet again another poke at the "hey we're a education charity, oh wait we're selling to industry." It is always amusing to me how companies discover markets that they didn't believe existed actually do exist, kind of.
One thing I didn't see in the connector is ethernet. I've been playing with the idea of building a small cluster and having all machines neatly stacked in a backplane that could act as an ethernet switch (maybe a KVM for HDMI/USB) instead of screwed together with board spacers and cables running around the setup would be awesome.
Yes, but having a proper ethernet on the edge connector would avoid the need for an RJ-11 and allow integrating a switch on the board hosting the CMs and prevent the usual mess with cables forming around the boards.
The Pi has a single USB OTG interface, and no onboard ethernet. On the regular Pis, that's sent to an on-board hub, which fans it out to the USB sockets and the USB-Ethernet chips. The Compute Module, on the other hand, doesn't include a hub and Ethernet chip, because not every application will need it, and probably more importantly, it can be set to boot off code it receives from a USB host. This is useful in debugging because you can start working on things with a very minimal number of connections, and also so you can rapidly reprogram it without having to reflash for every boot.
In general, the CM has a lot of support for I/O that is just not feasible with the package the regular PI uses. Things like the extra camera and display ports can be useful for computer vision packages, but would make routing on the normal board real difficult. By minimizing the extent of the breakout, they really do make the chip able to be considered in a lot more use cases.
Speaking of Raspberry Pi, what's the chance that we'll see a Raspberry Pi 4 within a couple of months with higher bandwidth I/O, like USB 3? The RPi 3 is mostly fast enough for most applications, but the slow USB (and ethernet over USB) makes it unsuitable for networking where any kind of bandwidth is required, like a simple NAS using an external harddrive.
I guess it comes down to what kind of chips Broadcomm has at the right price point, anybody here know if it's a possibility?
In the next few months? Zero. This year, there's the Compute Module 3, and the Pi 3A. Eben Upton said not to expect a Pi4 anytime soon.
The bcm2835 (in the Pi1) was chosen for convenience, because of the connections the developers had, and price. The 2836 and 2837 worked out because they were close to drop-in replacements, so when the chip costs came down enough to be affordable, the modifications were relatively minor. To move forward, they'll need to redesign the next board, and at the very least choose a different chip family that includes real USB host hardware.
I guess that's good and bad news. I would have liked a Pi 4 soon (the pattern seems to be new releases in February), but as far as I've seen it's probably good if they redesign the next version and use something more standard and modern. I guess they're still committed to Broadcomm though.
Maybe one of the chinese competitors is a better choice at the moment? I would like an Intel Atom based board, but that doesn't seem viable yet. Maybe they're too expensive, despite Aliexpress and other shops having lots of different Atom based tablets for not even double what a Pi costs.
If I recall correctly, the 2836 and 2837 were specifically designed for the Pi so they could be as close as possible to the original. Also, Eben Upton always insists that the next model isn't coming any time soon right up until the launch announcement.
There’s no DMA for USB. Meaning, every IP packet has to go through CPU, and the CPU isn’t that powerful.
Some people tested gigabit USB NICs with Pi 3. Different people measured 250-300 mbit/sec, way lower than USB 2.0 limit 480 mbit/sec. I think the CPU was the limiting factor there, not the USB.
Doesn't really need to be terribly efficient, good enough will do for the price.
One issue is that there's only one USB port on the board, and the external ports and the ethernet port are connected through a hub. So when you connect an external harddrive and try to transfer data over the network you end up with < 10 MB/s transfer speeds.
If Broadcomm decided to use DMA for their USB that would of course be ideal, but I don't know if they have any suitable products like that.
Of course 4K and h.265 video decoding would be welcome too for a lot of users.
Apparently, Raspberry markets their products as affordable but still useful. The features you’re asking for are currently way too expensive for that market.
Single-board computers with USB 3.0 and capable of 4K playback are available, but they cost $200 or more: Nvidia Jetson TK1, Inforce 6540, etc.
But that just begs the question: does Broadcom have any parts on the shelf such that, if they tweaked them and sold them to the RPi project at cost, they'd fulfill those requirements? Broadcom and the RPi project can do some things in conjunction that Nvidia, for example, cannot.
However I’m not much into the hardware design, I only write some embedded software for those things. Might be reasons why it’s still too expensive: if the chip requires too many layers in the PCB, too many external components (like RAM), too much electrical power so it needs better PSU and some cooling, and so on.
> One issue is that there's only one USB port on the board, and the external ports and the ethernet port are connected through a hub.
More than that: it's not even a USB host port. The silicon is some Synopsys IP called "DesignWare USB 2.0 OTG Controller". The driver implements host mode emulation.
Can rpi not do h265 decoding already? I thought Kodi was popular on the rpi. I was thinking about setting one up as a media player, but not if it can't do h265.
1. USB will never give you 480mbps of actual useful data. There is framing, ACKs, retransmits, high level protocol overheads, and such to consider. ~200-300mbps is just about what you'd expect from a USB network connection (depending on packet sizes tested)
2. Most USB controllers do DMA just fine. Maybe you're things of pci-e or firewire-like ability to do a direct write to host ram. That USB lacks (good). But actual DMA for packet data is part of any USB controller nowadays. Even in tiny microcontrollers.
I regularly get 50MB/s and sometimes a little more from HDDs through USB3 on a PC; that's probably the entire 480mbps once framing and protocol are taken into account
mass storage over usb has much less protocol overhead (you can x-fer 64K without any interruptions) network over usb has smaller frames and more framing. please see specs
You don't use these kind of CPU modules for the upgradeability but rather to save time and money - it contains most of the highly integrated components needed in a smart device. You only have to design a mainboard around it, containing the few components you need.
I find it rather curious that they opted to use it in a TV, considering that they probably have to place BGA components on the mainboard anyway, to drive the display. Using CPU modules mostly pay off in simple products (think: a couple of switches, LEDs etc).
It looks like NEC have swappable single-board-computer solutions that can be added to the back of the display to run the signage program. I suspect having a Pi is a great way to avoid all those photos of big signs with NT bluescreens on.
If I was purchasing these for a business, this would definitely be a consideration for me.
I don't get why you'd buy hardware that packages something with a 5-15 year life (the TV display) with something with a 2-5 year life (the compute capability). Integrating the compute both raises the cost and decreases the usable life. Lose-lose.
This is happening in the consumer space too with TVs, fridges, washing machines, etc. The people buying this stuff are going to feel burned in a few years when they realize they need a new TV not because there's anything wrong with the display, but because the software on it stopped getting updates a few years ago and doesn't have an app for the very popular NewFlix service, can no longer search YouTube because the API changed, and perpetually shows an error on part of the main screen because the service that provided content for that space no longer exists. If this hasn't already started, I'm sure we're on the cusp of it and it'll only get more prevalent as these things become more outdated.
> If this hasn't already started, I'm sure we're on the cusp of it and it'll only get more prevalent as these things become more outdated.
Apps on my previous Blu-ray player from just 2010 had been disappearing from the device for years, as the developers decided to stop supporting them. I replaced it because it started having trouble reading disks, but its utility had been falling for a couple years before that, one previously-supported feature at a time. It's one reason that I'm not planning on owning any smart devices in the near future.
> I find it rather curious that they opted to use it in a TV
Guess that NEC wants to market itself to the hacker space. Which is a marketing strategy that works for me - I'll be getting one as soon as they're available. I mean, a Smart TV running Debian? That's just plain cool.
I think this isn't really about marketing themselves to the hacker space, and probably more about not having to develop their own processing hardware. Depending how the pins are hooked up you could probably swap the compute module out for a stock one and run Debian, but the core focus will be on NEC being able to provide the software for digital signage alongside the hardware.
I've always been so confused by the smallish amounts of RAM available on rPi's.
Certainly, 1GB is more than enough for many applications. And obviously low cost is a primary requirement.But a rPi with more RAM would open up so many more use cases - databases, Redis instances, various caching applications.
If I'm not mistaken, there are quite a few other single-board computers (Beaglebone, Intel perhaps...) that offer more RAM. However, Raspberry Pis have a long lifecycle and excellent community, which is appealing.
I think this must be a very deliberate decision on their part. It would make sense to me, I guess: their mission is clearly to serve the education and hobbyist markets and that mission would be compromised if they create something that IT departments begin to buy in droves.
I just wish they'd put a damn real time clock and watch battery on the thing so it wouldn't lose time. It's like two chips... hell, I'd be happy to buy the battery myself.
It's too bad there's no logical way to redesign the module to allow it to talk to an external memory module, while keeping its simple SODIMM form-factor.
You could put some (much-slowed-down) memory on the SMI GPIO pins, though: you'd be able to access it "through" DMA to main memory, as if the CPU had a memory-banking architecture. (It'd probably only operate at a similar speed to that of eMMC, though; at that point, if you're running a regular OS, you may as well just put some Flash on the eMMC pins and tell the OS to treat it as a swap partition.)
I think the "idiomatic" thing to do here, though, is to not think of the rPi as a computer that needs more RAM, but rather as a fixed amount of RAM with some compute attached. Want more RAM? Plug more rPis into your board and cluster them together into a NUMA "backplane" of rPi "blades", like this:
Some applications—an RDBMS comes to mind—wouldn't distribute very well on such a setup, but Redis would run quite nicely (and concurrently!) Of course, there'd still be some restrictions: you'd not be able to have a single key with >1GB size. But if your data-set is a power-law distribution with the largest keys being <100MB, it'd work great.
Not yet, but I am currently evaluating using the CM in a medium volume (~200pcs) self-service kiosk product.
Due to the volume, I still might use a regular Pi3 and off-the-shelf add-on boards, because designing the motherboard (which will need ethernet hardware, PSU, RFID and touch interface) will take a large chunk from the budget.
The CM might only make sense for large volume products.
> The CM might only make sense for large volume products.
I'd also imagine products with hard physical constraints, either from connector placement or size alone. For example these fairly popular diy portable pi projects that seem to pop up here and there
I hadn't heard of Slice until this, and I watched the video. Have you used one? It was compelling until the part of manually adding content via USB. I assume with network connectivity that media could be loaded like that instead, but the video didn't make it clear, and it seems pretty lame to have to plug it in to load up.
No, I've not used one. I believe it's designed to be primarily an offline media player.
As the Pi sucks at I/O, the idea is that you mount the HDD directly over USB and transfer files to it from a regular computer. Network transfers would be very slow due to the Pi bottleneck.
That doesn't seem to be the point of these though. They seem to be intended to use in products (and it's still a bit too expensive and unreliable to make that feasible)
Indeed, it seems to have neither the combined BT/Wifi IC of the pi3, nor the antenna. I guess there was no way to do it and keep backward compatibility as the original compute module had one of the sdio interfaces brought out to the connector. On the pi3, one of the SDIO interfaces is brought to the wifi IC and the other one to the microSD socket. On this compute module, one is brought to the connector and one to the built-in eMMC storage. Presumably it's possible on the light version with no built-in storage to add a board/module that does wifi (can't add the chip directly because it only has an emmc footprint). Maybe they'll end up doing that later on, have a revision that has onboard wifi but no storage. I don't know how useful that would be though.
Unfortunately, there's two SD interfaces on the board, and the one that does eMMC (or the SD card on a normal Pi) can only do storage and can't do SDIO. The 2nd interface is used for the wireless on the Pi 3, but that one's brought out externally on the CM, so you can't really do that.
The answer is to put the wireless on the carrier board for the CM, of course, but that's awkward because of the regulatory requirements on wireless bits.
A little off topic, but any suggestions for which raspberry pi to purchase? This would be my first one and I am very excited about starting some sort of side project with it (using either Go or Python). I see a lot of starter kits on Amazon, but not sure what the difference is between them. Has anyone had any luck with these? Thanks :)
CanaKit and Vilros are the ones I see recommended most often. I went with this[0] Vilros one so I could choose my own sd card, and was pretty pleased with it since it had everything else I needed (already had a spare keyboard/mouse etc.)
I bought a "Cana Kit" recently. More expensive than many of the kits, but comes with a case, SD card, power supply, preinstalled software - everything you need to get started in about 5 minutes.
We have a great kit for people new to Raspberry Pi. It includes high quality accessories (like the official Raspberry Pi worldwide power supply) and a getting started booklet.
We also throw in our Blinkt! addon board so you can do some GPIO connected projects right away.
It's not the cheapest kit but we believe it is the best!
Scaleway has a 3 euro/month ARM baremetal (and Intel VPS) offering that is higher end than a raspberry pi 3, at least in terms of ram, network + storage -- didn't check CPU.
I use it currently. It's mostly good. They have SAN storage, so you are not limited by what's attached to the thing directly and you also get reliability. The control panel is mostly good. The boxes are speedy and bandwidth is good.
The bad: their ARM boxes don't get IPv6. At all. The VPS's get 16 IPv6 addresses, which is really dumb.
The badder: their ARM boxes and their VPS boxes can't be shut down. You can reboot them, or you can save their local state into block storage, which even for a small box takes many hours (up to a day in one instance for me). You also can't force-detach a volume from a box, so if say your box/VPS got borked, but you had a data volume you want to save, you are SOL.
IO has been a big problem for the Raspberry Pi and cheap ARM boards in general. Until a board comes out with gigabit ethernet* and SATA/USB3* you'll probably get better value for money with conventional mobos.
* Note: A couple boards already have better IO... but lack the amount of software support that the Pi gets. e.g. Mainline Kernel support
You can probably still find Allwinner A20 boards with real gigabit ethernet, SATA and mainline kernel support. I think graphics support is still a little limited though.
I have too, but I dream for more of an OQO style. I've wondered at some point how difficult it would be to get a quality case created that all the parts could go into.
The announcement post says there are breakout boards available:
> An updated IO breakout board (CMIO3) has also been launched, which will accept all three models. You can purchase yours from element14 or RS Components.
The Compute Module is a Raspberry Pi in a more flexible form factor, intended for industrial application.
The compute module contains the guts of a Raspberry Pi (the BCM2835 processor and 512Mbyte of RAM) as well as a 4Gbyte eMMC Flash device (which is the equivalent of the SD card in the Pi). This is all integrated on to a small 67.6x30mm board which fits into a standard DDR2 SODIMM connector (the same type of connector as used for laptop memory). The Flash memory is connected directly to the processor on the board, but the remaining processor interfaces are available to the user via the connector pins. You get the full flexibility of the BCM2835 SoC (which means that many more GPIOs and interfaces are available as compared to the Raspberry Pi), and designing the module into a custom system should be relatively straightforward as we’ve put all the tricky bits onto the module itself.
source - https://www.raspberrypi.org/products/compute-module/