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 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.
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.
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
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.
- With the tool built, now is the time to start the connection process. In the terminal issue the following command.
- 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.
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.
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.