{"id":1583,"date":"2014-04-08T12:59:23","date_gmt":"2014-04-08T12:59:23","guid":{"rendered":"https:\/\/raspberry-projects.com\/pi\/?p=1583"},"modified":"2025-12-03T15:28:02","modified_gmt":"2025-12-03T15:28:02","slug":"compute-module-overview","status":"publish","type":"post","link":"https:\/\/raspberry-projects.com\/pi\/pi-hardware\/raspberry-pi-compute-module\/compute-module-overview","title":{"rendered":".Compute Module Overview"},"content":{"rendered":"<h4>Hardware<\/h4>\n<p>In simple terms the RPi Compute Module is a Raspberry Pi Model A without PSU etc circuitry, connectors and with a 4GB Flash IC instead of the SD card socket.<\/p>\n<p>On the\u00a0PCB:<\/p>\n<p style=\"margin-left: 40px;\">BCM2835 processor with 512Mbyte of RAM (as used on the Raspberry Pi)<\/p>\n<p style=\"margin-left: 40px;\">4Gbyte\u00a0eMMC Flash IC, instead of the SD card used on the Raspberry Pi (when comparing costs bear in mind this is an extra cost for the RPi).<\/p>\n<p>Connector:<\/p>\n<p style=\"margin-left: 40px;\">All remaining processor interfaces are available to the user via the connector pins, so many more\u00a0GPIOs\u00a0and interfaces are available compared to the Raspberry Pi.<\/p>\n<p style=\"margin-left: 40px;\">There are 46 free GPIOs. They can be used as general I\/O or configured as I2C\/SPI\/PCM\/UART\/PWM\/GPCLKs etc like the (more limited) subset on the Pi.<\/p>\n<h4>Schematic<\/h4>\n<p><a href=\"http:\/\/www.raspberrypi.org\/wp-content\/uploads\/2014\/04\/RPI-CM-V1_1-SCHEMATIC.pdf\">http:\/\/www.raspberrypi.org\/wp-content\/uploads\/2014\/04\/RPI-CM-V1_1-SCHEMATIC.pdf<\/a><\/p>\n<h4>Physical<\/h4>\n<p>67.6x30mm<\/p>\n<p>Approx 7g.<\/p>\n<p>Fits into a standard DDR2 SODIMM connector (as used for laptop memory).<\/p>\n<h4>2nd Camera Interface<\/h4>\n<p>The Compute\u00a0Module gives access to the second camera interface of the\u00a0BCM2835. \u00a03D camera systems become possible.<\/p>\n<h4>USB Boot Interface<\/h4>\n<p>The \u2018USB BOOT\u2019 interface is there to get\u00a0data onto the on-board Flash. The Compute Module can read its boot code over USB as a slave using provided\u00a0software which runs on a Raspberry Pi that acts as a host.<\/p>\n<p>You can force the module to boot as a slave over USB and therefore have full control of the Flash, even if you have corrupted it and it won\u2019t boot normally (i.e. you won&#8217;t &#8216;brick&#8217; it).<\/p>\n<h4>PCB Requirements<\/h4>\n<p>The Compute Module IO Board is 6 layers, but only because they had to route out all\u00a0the interfaces in a convenient fashion. A 4 layer board is likely to be sufficient for many projects.<\/p>\n<h4>Power Requirements<\/h4>\n<p>VBAT<\/p>\n<p style=\"margin-left: 40px;\">BCM2835 SMPS that generates the processor 1.2V core voltage. It can be powered from ~2.5-5V (various batteries will give you this including a single cell li-ion).<\/p>\n<p>Unconfirmed by us as yet &#8211; from the schematics, looks like you need to provide at least VBAT, +1V8 &amp; +3V3 to the compute module\u00a0(and +2V5 if you want to use composite video).<\/p>\n<h4>Analog Input<\/h4>\n<p>The\u00a0BCM2835 does not have any analog\u00a0input pins so a ADC is still needed for analog inputs.<\/p>\n<h4>eMMC Speed<\/h4>\n<p>Forum question: How does the flash memory compare in speed to a class 10 SD Card?<\/p>\n<p style=\"margin-left: 40px;\">Our internal testing shows it is definitely at the upper end of the speed scale. eMMC is also specifically designed and optimised for embedded filesystems.<\/p>\n<p style=\"margin-left: 40px;\">Difficult to compare to a class 10 SD card as all SD cards speed are dependent on the internal Flash controller implementation (note that some class 10 cards are in fact slower than lower class cards when used in a Pi as they are only optimised for large streaming writes \u2013 perfect for your camcorder, not so good for a filesystem which has lots of small random reads).<\/p>\n<h4>High Speed Data Interfaces<\/h4>\n<p>The Broadcom SoC doesn\u2019t support SATA,\u00a0PCIe\u00a0or Gigabith Ethernet.<\/p>\n<p>Forum question: Would it be possible to connect a SATA controller to the compute module and get reasonable I\/O performance?<\/p>\n<p style=\"margin-left: 40px;\">The USB is the only high speed data interface which the BCM2835 has. It has very high speed video ports (CSI and DSI) each can run ~1 GBITS\/sec physically. However getting those to transport data is difficult and will not give you the full 1G bandwidth. But it is not impossible\u2026<\/p>\n<p>Forum question:\u00a0The single USB bus of the Raspberry Pi is a bandwidth choke point if you want to use a Pi as a NAS. With the extra I\/O pins exposed by the Compute Module will it be possible to connect a gigabit ethernet controller and possibly some additional storage controller directly to the BCM2835? Can the ARM core in the BCM2835 handle higher speed peripherals?<\/p>\n<p style=\"margin-left: 40px;\">In the short term, no. In the longer term if Broadcom release more information about some of the undocumented interfaces then maybe<\/p>\n<h4>Cost<\/h4>\n<p>Raspberry Pi Model B = $35<\/p>\n<p>Compute Module (same processor and same\u00a0amount of RAM but also has 4GByte Flash) = $30.<\/p>\n<p>Bear in mind the foundation view this product as a way to help people who want to use the RPi in bespoke products,\u00a0but also as a revenue generator for the foundation to carry out their core aims in the education market. \u00a0The Raspberry Pi remains the core product of theirs &#8211; this is simply\u00a0a spin off which can generate more income to promote education and help commercial users at the same time.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hardware In simple terms the RPi Compute Module is a Raspberry Pi Model A without PSU etc circuitry, connectors and with a 4GB Flash IC instead of the SD card socket. On the\u00a0PCB: BCM2835 processor with 512Mbyte of RAM (as used on the Raspberry Pi) 4Gbyte\u00a0eMMC Flash IC, instead of the SD card used on [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[87],"tags":[],"class_list":["post-1583","post","type-post","status-publish","format-standard","hentry","category-raspberry-pi-compute-module"],"_links":{"self":[{"href":"https:\/\/raspberry-projects.com\/pi\/wp-json\/wp\/v2\/posts\/1583","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/raspberry-projects.com\/pi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/raspberry-projects.com\/pi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/raspberry-projects.com\/pi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/raspberry-projects.com\/pi\/wp-json\/wp\/v2\/comments?post=1583"}],"version-history":[{"count":10,"href":"https:\/\/raspberry-projects.com\/pi\/wp-json\/wp\/v2\/posts\/1583\/revisions"}],"predecessor-version":[{"id":4001,"href":"https:\/\/raspberry-projects.com\/pi\/wp-json\/wp\/v2\/posts\/1583\/revisions\/4001"}],"wp:attachment":[{"href":"https:\/\/raspberry-projects.com\/pi\/wp-json\/wp\/v2\/media?parent=1583"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/raspberry-projects.com\/pi\/wp-json\/wp\/v2\/categories?post=1583"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/raspberry-projects.com\/pi\/wp-json\/wp\/v2\/tags?post=1583"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}