element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
    About the element14 Community
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      •  Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Raspberry Pi
  • Products
  • More
Raspberry Pi
Blog Raspberry Pi Compute Module - Getting Started
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Raspberry Pi to participate - click to join for free!
Featured Articles
Announcing Pi
Technical Specifications
Raspberry Pi FAQs
Win a Pi
GPIO Pinout
Raspberry Pi Wishlist
Comparison Chart
Quiz
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: biglesp
  • Date Created: 26 Jun 2014 3:40 PM Date Created
  • Views 2959 views
  • Likes 3 likes
  • Comments 14 comments
Related
Recommended
  • raspberry
  • compute
  • raspberry_pi
  • raspberry-pi
  • raspberrypi
  • pi_compute_module
  • raspberry_pi_compute_module
  • raspbian
  • module

Raspberry Pi Compute Module - Getting Started

biglesp
biglesp
26 Jun 2014

image

 

The Raspberry Pi has become a firm favourite in the maker community and there are many thousands of projects that use the Pi including many professional products. But the form factor of the Pi, while being ideal for makers and hackers the world over is not so ideal for industrial applications or professional products. But to address these issues, the Raspberry Pi Foundation has released a new board, The Compute .

 

The Compute is a small SODIMM shaped PCB that provides the full Raspberry Pi environment from a device roughly a quarter of the size of the original Raspberry Pi.

So you might be thinking, "Why such a radical redesign and why hasn't there been a spec bump?" Well both are valid questions. The change of form factor is a conscious decision by the Foundation, and the lead for the Compute project, James Adams.

SODIMM is a cheap and common form factor which enables developers to easily integrate the Compute into any project. As for the subject of a a “spec bump” well there is no real need. The Pi is a stable development platform for educators, commercial and industrial applications and the Foundation is trying to provide a mature and feature rich hardware platform and software stack in the long term.

The Compute Module, as in the SODIMM, is nothing without an expansion PCB board and the Foundation have kindly provided a development board in the shape of the Compute Module Input Output board, or CMIO for short.

Looking around the CMIO we can see a single USB 2.0 port and two micro USB ports. To use the CMIO with a keyboard, mouse and wifi dongle we will need a powered hub. The two micro USB ports are for 5v power and USB “On The Go”, often shortened to OTG. The only way to install an OS on the Compute is via the OTG port, and we'll come to this later. Other ports include an HDMI port for connecting to a monitor. Interestingly the CMIO comes with 4 expansion ports on the perimeter of the board. These are CAM0, CAM1, DISP0 and DISP1. These ports enable the board to work with two of the official Raspberry Pi cameras and the soon to be released official Raspberry Pi display. The Compute Module Development Kit comes with adapters that enable the camera and display to be used with the CMIO as they are not the same size as those on the original Raspberry Pi.

 

image

 

What can the Compute be used for?

The Raspberry Pi is a wonderful platform to work with, and the GPIO is a great addition enabling anyone to easily work with hardware. But the original GPIO only has 26 pins with which we can work, for the average user this is more than enough, but did you know that the Raspberry Pi BCM2835 system on a chip (SoC) can support 120 GPIO pins? It's true and the CMIO breaks out ALL of these pins for us to play with. From these 120 pins the user can adapt 45 pins to meet the needs of their project. The remaining pins are reserved for power, 1V8, 3V3 and 5V and Ground (GND). The use of I2C and SPI is also available via the GPIO in the same manner as the standard Raspberry Pi. The Compute is the ideal platform for GPIO based projects and this is clearly its specialist area. Possible projects based on this board are limitless, in much the same way that the Raspberry Pi has found a home in many projects. I see the Compute as a tool to enable larger scale projects, for example large scale robotics and sensor based projects. The massive increase in the number of GPIO pins makes this possible but the lack of Ethernet connectivity may put some people off.

 

image

Installing an OS on to the Compute.

Typically a Raspberry Pi requires an SD card to store the operating system, mostly Raspbian. But as the Compute has an on-board 4GB of eMMC this is no longer required, but the trick is how do we get our OS on to it? Well with the Compute Module firmly inside the CMIO we need to download a copy of Raspbian (dated 20/6/2014 or greater) and then extract the image to our computer. At the time of writing only a Linux host system can be used to flash the eMMC of the Compute, you can of course use your spare Raspberry Pi.

 

  • On the CMIO you will see a jumper marked “J4” USB SLAVE BOOT ENABLE, make sure that this is set to “EN”.

 

  • On your Linux computer ensure that the date and time is correct. If necessary use the following command in a terminal.

 

sudo date MMDDhhmm

 

Where MM = Month DD = Day, hh = hours and mm = minutes.

 

  • Once that date has been checked complete the following lines, remembering to press enter at the end of each line.

 

sudo git clone --depth=1 https://github.com/raspberrypi/tools

cd tools/usbboot

sudo apt-get install libusb-1.0-0-dev

 

This will clone a github repo that contains all of the files necessary to interact with the Compute.

 

  • Navigate to the directory where the git files were downloaded. We now need to make a tool which will enable our host machine to talk to the Compute module.

 

sudo make

 

  • With the tool built, now is the time to start the connection process. In the terminal issue the following command.

 

sudo ./rpiboot

 

 

  • Following the last command, your host computer will now wait for the CMIO to be attached, and to do that you will need to insert a micro USB to USB connection between the two. The micro USB connection will attach to the CMIO USB slave port and the standard USB connection will attach to your host computer.

 

  • Your host computer should now register that the CMIO has been successfully attached. We will now need to identify where the device has been mounted using the following command.

 

mount

 

Typically the device will be mounted as “/dev/sdX” where X is the letter associated with your Compute, but please ensure that you correctly identify the drive BEFORE running the next command.

 

  • With the drive associated to our Computer correctly identified we now need to copy the Raspbian image that we downloaded earlier to the eMMC of the Compute. To do this we will use a command called “dd”. This command will copy the image, piece by piece to the eMMC and will take around 10 minutes to complete. You will need to navigate to the location of the extracted image file that we downloaded earlier.

 

 

sudo dd if=raw_os_image_that_you_downloaded.img of=/dev/sdX bs=4MiB

 

 

Remember to change "raw_os_image_that_you_downloaded.img" to the name of your Raspbian image, and to change “X” to match the location of your Compute module.

Always double check BEFORE running this command as dd is fairly unforgiving if you choose the wrong drive.


  • Now that the operating system as been copied to the Compute we are free to unplug the USB from our host computer, but before we test our Compute, lets put the USB back in to the host computer to check that the process was successful.

 

  • The easiest way to check is via your file manager, two new drives should be made available, one of which will have a FAT file system, the other a Linux file system. If this is the case, congratulations your Compute is ready for action. If not, repeat the above steps to find any issues.

 

Now that they Compute is ready, remove the micro USB connection to your host computer, and return J4 to it's original position.

Connect up your HDMI, USB hub with peripherals attached, and finally power up the CMIO board.

 

Your Compute should now boot as per a typical Raspberry Pi sequence.

 

image

 

Who should buy the Compute?

The Compute is a marvellous piece of kit, but who is it really for? The initial price point indicates that this is a serious board for serious projects. This board is for those wanting to integrate the Pi technology into their project,for example the OTTO camera Kickstarter project has used the Compute to create a GIF camera in a unique form factor. By changing the form factor into something more streamlined, the Compute can be easily integrated inside many different devices.

The Foundation are keen for developers to create their own printed circuit boards (PCB) for use with the Compute, the SODIMM configuration, while not being compatible with the RAM expansion slots of laptops, is a standard form factor that is cheaply available, making this an ideal solution for future projects.


The details on how the Compute Module breaks out to the PCB can be found on the Raspberry Pi website and for more information on the Compute Module Development Kit head over to Element14's Community  page dedicated to the Compute

 

The Compute Development kit is a great platform to build your expansive Internet of Things (IoT) and sensory projects. Early adopters will already have a great foundation of projects, created for the original Raspberry Pi, at their finger tips.

 

image

  • Sign in to reply

Top Comments

  • biglesp
    biglesp over 11 years ago in reply to wmoritz +1
    Hello For those pins that you reference, you used the Broadcom pin reference to identify their position in the GPIO. The Compute CMIO uses the exact same pin reference, but lays them out in a more logical…
  • clem57
    clem57 over 10 years ago in reply to janpihlgren

    Looking at the output:

    1) You are running on a Pi2. Correct?

    2) The Pi compute module is on USB device 007 like you said.

    3) In the directions did you issue this?
       sudo ./rpiboot


    That will add the mount point we want.

    Issue the mount again and you will see device 007 or the compute module eMMC on your raspberry pi 2 as /dev/sd?


    If not double check the following:


    On your Compute Module IO Board:

    Make sure that J4 (USB SLAVE BOOT ENABLE) is set to the 'EN' position.     <<<<<<< This is very important!

    On your host system: (which is the RPi 2)

    Git may produce an error if the date is not set correctly, so on a Raspberry Pi enter the following:

    sudo date MMDDhhmm

    where MM is month, DD day and hh mm hours and minutes respectively.

    Clone the usbboot tool repository:

    git clone --depth=1 https://github.com/raspberrypi/tools cd tools/usbboot

    libusb must be installed. If you are using Cygwin please make sure libusb is installed as previously described. On the Raspberry Pi or other Debian based Linux:

    sudo apt-get install libusb-1.0-0-dev

    Now build and install the usbboot tool:

    make sudo make install

    Run the usbboot tool and it will wait for a connection:

    sudo rpiboot

    Now plug the host machine into the Compute Module IO Board USB slave port (J15) and power on the CMIO board. The rpiboot tool will discover the Compute Module and send boot code to allow access to the eMMC.

     

    I hope this explains your situation,

    Clem

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • janpihlgren
    janpihlgren over 10 years ago in reply to clem57

    Thanks for point to /dev/pts.

    Your suggestion cat /proc/cpuinfo gave the following:

    processor   : 0model name  : ARMv7 Processor rev 5 (v7l)BogoMIPS    : 38.40Features    : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm

    CPU implementer : 0x41

    CPU architecture: 7

    CPU variant : 0x0CPU part    : 0xc07CPU revision: 5

     

    processor   : 1model name  : ARMv7 Processor rev 5 (v7l)BogoMIPS    : 38.40Features    : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm

    CPU implementer : 0x41

    CPU architecture: 7

    CPU variant : 0x0CPU part    : 0xc07CPU revision: 5

     

    processor   : 2model name  : ARMv7 Processor rev 5 (v7l)BogoMIPS    : 38.40Features    : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm

    CPU implementer : 0x41

    CPU architecture: 7

    CPU variant : 0x0CPU part    : 0xc07CPU revision: 5

     

    processor   : 3model name  : ARMv7 Processor rev 5 (v7l)BogoMIPS    : 38.40Features    : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm

    CPU implementer : 0x41

    CPU architecture: 7

    CPU variant : 0x0CPU part    : 0xc07CPU revision: 5

     

    Hardware    : BCM2709Revision    : a01041Serial      : 0000000094bffbca

    I tried lsusb which gave:

    Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.

    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

    Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.

    Bus 001 Device 007: ID 0a5c:0001 Broadcom Corp.

    Bus 001 Device 004: ID 050d:1102 Belkin Components F7D1102 N150/Surf Micro Wireless Adapter v1000 [Realtek RTL8188CUS]

     

    I think that Device 7 is the CMIO.

    But where do I find the partition to install the OS (Raspbian)?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • clem57
    clem57 over 10 years ago in reply to janpihlgren

    devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000) is where the device is mounted, but it is not a real storage point. Just a place for characteristics. Enter to see the Pi compute module:

    cat /proc/cpuinfo

    Clem

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • janpihlgren
    janpihlgren over 10 years ago

    When I rote mount I get the following answer:

    /dev/root on / type ext4 (rw,noatime,data=ordered)

    devtmpfs on /dev type devtmpfs (rw,relatime,size=437856k,nr_inodes=109464,mode=755)

    tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=88432k,mode=755)

    tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)

    proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)

    sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)

    tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=176860k)

    devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)

    /dev/mmcblk0p5 on /boot type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro)

    /dev/mmcblk0p3 on /media/SETTINGS____ type ext4 (rw,nosuid,nodev,relatime,data=ordered,uhelper=udisks)

     

    I does not get any /dev/sdX. Which one of the lines is Compute Module ?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • Former Member
    Former Member over 11 years ago

    I had some problems installing it and I solved it updating and upgrading ubuntu after:


    sudo apt-get install libusb-1.0-0-dev

    just add:


    sudo apt-get update

    sudo apt-get upgrade

     

    Maybe it can be useful to anybody

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
<>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube