Skip navigation
2016

RaspberryPi_Logo.png

 

When the first Raspberry Pi was released in February 2012 it revolutionized the way makers around the world made things, and it completely changed the landscape of the development board world, and continues to do so even today. As of November 2016 there are seven different versions of the Raspberry Pi that are carried by Element14. While this is a major win for the maker world, it does create quite the challenge for anyone new to Raspberry Pi who might be trying to figure out what board they have because some of the boards are almost identical to each other at first glance. I hope this article will clear up the confusion for everyone, and help those reading this to get on with their projects.

 

Let’s take a moment to familiarize ourselves with the different single board computers that make up the Raspberry Pi family. As I mentioned in the first paragraph, we currently carry seven different development boards from the Raspberry Pi lineup, and I have created a table below that list the features of each board for quick comparison. Much thanks to Lui (lui_gough) for the original version of this.

 

Raspberry-Pi-Model-Table_sans_zero.png

 

Identifying the Raspberry Pi Model A, A+, B, and B+ Single Board Computers

 

Pi_Models_A_B.jpg

 

Early Versions of the Raspberry Pi featured the Broadcom BCM2853 SoC which was based on an ARM1176JZF-S CPU that was built on the ARM V6 32-Bit architecture. These boards, the Model A, A+ B, and B+, were all clocked to 700Mhz, and featured a Micro-USB connector for power. The less feature rich Model A boards can be identified by their lack of an Ethernet jack, with further identification being made by the shape of the board. The Model A is a rectangle, while the A+ is square in shape. Both the Model B and B+ boards are rectangular in shape, and do feature a single 10/100 Ethernet jack. Additionally, the Model B and B+ boards house an, at the time, impressive 512MB of SDRAM, with the Model A boards both featuring just 256MB of SDRAM. To further distinguish between these four early models, the Model A and B boards featured a yellow RCA Composite Video Connector and a full-sized SD card slot, while the A+ and B+ boards switched to a 4-pole 3.5mm jack and mico-SD card slot to save space. All boards should have their model screen printed on the front of the PCB. The model B+ also saw its Micro-USB port relocated to the side of the board alongside the HDMI port.

 

Identifying the Raspberry Pi 2 Model B Boards and the Raspberry Pi 3

 

Pi23.jpg

Discerning between the Raspberry Pi 2 Model B Version 1.1 and Version 1.2 is a bit harder to do because the physical layout of the board did not change, other than the Broadcom SoC being an updated model on Version 1.2. The easiest way to tell the difference between the two boards is to check the white screen print on the front of the board. Under the GPIO header pins, the boards model, and version number will be listed. If for some reason this information is missing, version 1.1 will feature a Broadcom BCM 2836 SoC, while version 1.2 will feature the Broadcom BCM2837 SoC. The Raspberry Pi looks almost identical to these two boards as well, and will also be easily identified by the screen printing on the front of the board. Note that version 1.2 of the Raspberry 2 Model B board features the same Broadcom BCM2837 SoC as the Raspberry Pi 3 Model B. If you are unsure of which of these two boards you have, you can as a last resort, check for two small copper pads under and to the right of the GPIO Pins. The pad on  the left will be a square, while the pad on the right will be a circle. If your board has these copper pads, it is most likely a Raspberry Pi 3 Model B.

 

 

Identifying Which Raspberry Pi You Have Without Looking At The Board

 

If by chance you do not have physical access to your Raspberry Pi and you still need to know which version it is, you can take the following steps to figure things out. From the terminal, enter the following command.

 

$ cat/proc/cpuinfo

 

This will spit out a string of numbers, and by comparing the last four digits to the revision number in the table below, you can determine the board, board version, RAM, and manufacturer quick and easily.

 

piversionchartnozero.png

 

Which Raspberry Pi Single Board Computers Does Element14 Stock?

 

As of November 2016 Element14 currently stocks the following Raspberry Pi boards as well as these kits and official accessories:

 

Single Board Computers

  Official Raspberry Pi Accessories

Raspberry Pi Getting Started Kits

Element14 RPI 3 + Mathworks Learn 2 Program KitElement14 RPI 3 + Mathworks Learn 2 Program Kit

Raspberry Pi 3 In A Box Starter KitRaspberry Pi 3 In A Box Starter Kit
Raspberry Pi 3 8MP Pi Camera Combo KitRaspberry Pi 3 8MP Pi Camera Combo Kit

Raspberry Pi 3 IBM IoT Learner KitRaspberry Pi 3 IBM IoT Learner Kit
Raspberry Pi 3 + Noobs Combo KitRaspberry Pi 3 + Noobs Combo Kit

 

 

That is going to wrap up this article. If you are still having issues determining what version of the Raspberry Pi you have, leave a comment below, and one of our wonderful community members will surely be able to help. This post will be updated to include new board information when new versions of the Raspberry Pi become available. Thanks for taking the time to read this article, and we hope that it helped you figure out which board you have.

Introduction

Sometimes it is great to be able to see if things are hot or cold with a thermometer or other device. Multiply it by 64 and it is possible to get a graphical image of hot spots or detect humans for instance.

A thermopile array can be used to measure temperature from a distance and a special part from Panasonic called Grid-EYE happens to have 64 of them : )

Since the Sense HAT has 64 LEDs, I wanted to try them together : )

sense-hat-lit-rainbow.jpg

 

This is what is implemented:

system-overview-r2.png

 

For more experiments with the Grid-EYE and a review, see here: Panasonic Grid-EYE RoadTest - Review

 

What can you do with it?

The Grid-EYE is designed for detecting humans or objects that come into its field of view. It could be used for automatically turning on the heating when a human is detected, or automatically opening doors for instance. It differs greatly from the usual passive infrared (PIR) sensors used in alarm systems; they require movement whereas thermopile sensors will continuously detect objects while they remain in the field of view. By processing the images over time it is possible to see which direction humans or objects are moving. This could be useful for more intelligent automated doors or barriers, or for innovative electronic advertising that is triggered by human presence and actions.

 

In the brief time that I explored, it was possible to see people from a distance of five metres, and a 10 ohm resistor connected to an AA battery from about an inch away. By experimenting with the software it is possible to choose the spectrum of color that is desired for the particular temperature range of interest.

grid-eye-sense-hat-animation.gif

 

Grid-EYE usefulness for people detection (occupancy sensor) was explored in the Grid-EYE Review blog post.

 

Build Steps

The project is straightforward and simple, so in the interests of efficiency this report won’t have a lot of text!

To build this project, a Pi 3 and a Sense HAT is needed, and the Grid-Eye evaluation kit. I already had the Pi 3 and Sense HAT (and the associated memory card and power supply) as part of the Pi 3 IBM IoT Learner KitPi 3 IBM IoT Learner Kit reviewed here. The Grid-EYE evaluation board is available separately. The one I had (model AMG8832) is not available any more but there is a better performance AMG8834 Grid-EYE Evaluation ModuleAMG8834 Grid-EYE Evaluation Module that can detect humans up to 7 metres away.

 

The evaluation board contains the Grid-EYE, a pre-programmed microcontroller and Bluetooth Smart capability. Basically nothing needs to be done with the eval board except plug it into a power supply! The supply can be a 5V mobile phone charger or a PC USB port. The photo here shows the Grid-EYE evaluation board. It is about the footprint of a playing card. The Grid-EYE module itself is very small, about 12mm on its longest dimension.

grideye-annotated.jpg

 

Since the Pi 3 also has Bluetooth Smart capability, the Grid-EYE board connects to the Pi using this. This is great because it means that the imaging can be performed remotely.

The Pi 3 is responsible for translating the 8x8 array of values into colours and sending them to the Sense HAT’s display. The Pi 3 also runs a little web server so any web browser (e.g. PC or mobile phone) can be used to connect to the Pi and view the images live.

Check out the short video (1.5 mins) for some example capture.

 

 

Here are the instructions to build it. First, as root user (or prepend sudo to these commands):

 

apt-get install libbluetooth-dev
update-nodejs-and-nodered

 

Then, as normal user (e.g. pi or your username):

 

git clone https://github.com/shabaz123/grid-eye
cd grid-eye
npm install noble
npm install sense-hat-led
npm install rotate-matrix
npm install ioctl
npm install socket.io
npm install imagejs

 

Change the index.js file at grid-eye/node_modules/sense-hat-led using the index.js_mine file (which has been through the babel transpiler) using this command:

 

 

cp index.js_mine node_modules/sense-hat-led/index.js

 

 

The grid-eye/index.js file will need a modification, search for the line with the text progpath and set it to point to the grid-eye folder. The slash at the end is important. For example for me it says:

 

var progpath='/home/shabaz/grid-eye/';

 

That’s it! To run it, as root user (or prepend with sudo) type:

 

node index.js

 

Use a browser to navigate to http://xx.xx.xx.xx:8081/index.html

The code works but is just prototype quality and there is lots of room for improvement. It seems to work reasonably well but would benefit from some configuration options (things like temperature range are hard-coded).

My Raspberry Pi 2 was mostly disused, running a couple of Seti@Home threads.  It is out of date and the speed was always rather slow compared to the other machines in my home.  Some of it is because 1GB RAM is anemic in 2016 but some of it is because a MicroSD is a very slow storage device, even with tuning Linux parameters in configuration files like /etc/fstab.

 

So, I decided to do something about it.  I have a 120GB USB 2 backup drive that is also a bit out of date, having been replaced with a slim USB 3 1TB drive.  But, it is still a cheetah when compared with a MicroSD.  Being cheap, I decided to simply use the 120GB drive rather than buy a new one.

 

Strategy: roughly, Transfer system disk from SD card to hard disk - eLinux.org .  I would have liked to followed the RPi3 strategy of booting directly from the USB drive (https://www.raspberrypi.org/blog/pi-3-booting-part-i-usb-mass-storage-boot/ ).  Unfortunately, that would become yet another "project" in itself due to RPi2 off-the-shelf firmware limitations (fixed, hopefully: https://github.com/raspberrypi/documentation/blob/master/hardware/raspberrypi/bootmodes/README.md ).  However, getting everything but /boot functions onto a USB drive will still be quite satisfying.

 

First, whether you are going with RPi2 or RPi3, keep in mind that a USB drive needs power.  The RPi2, as I learned the hard way [], does not have sufficient power for write-stability.  Get a powered USB hub if the drive does not have a power chord.  In my case, I have one of those USB Y-cables from the Pleistocene epoch so the green connector (data) plugs into the RPi2 and the blue/black connector (juice) plugs into one of my Intel PCs (yes, cheating to save money and space in my home office).

 

Okay, here we go:

 

1. Make sure that the USB drive is ready for copying the entire MicroSD-based root partition [/].  The drive is going to be reborn.  Did you save all the data that you want to keep somewhere else?

 

2. The simplest preparation approach is to install `gparted` if you do not already have it (Just as good as Windows Partition Magick and it is donation-ware! ).  On my desktop, `gparted` appears in the desktop menu under the category "Preferences" (Why not "System Tools"?).  Go figure.

 

3. Launch `gparted` from the menu.  Be careful because it is potentially dangerous but so is `gpart, `fdisk`, and `sfdisk`.  I am recommending this GUI to avoid manual calculations and minimize the chance for mishap.  Enter your `sudo` password.

 

4. From the drive list in the upper right, select the drive that Raspbian mapped your USB drive to.  Mine was /dev/sda.  Be careful.

 

5. Related to the selected drive, you will see a list of partitions and 0 or more line(s) stating "unallocated".  Click on Device > Create Partition Table.  If you see a no-can-do message that 1 or more partitions are "currently active", unmount them: Right click on a mounted partition and select "Unmount".  Once all of the partitions of this drive are unmounted, proceed to re-create the partition table:

 

See the "WARNING....." pop-up.

Select "msdos" and click "Apply".

 

6. The result of the previous step is a single line "unallocated".  Now, create a single ext4 partition which is a little bit larger than the MicroSD /dev/mmcblk0p2 partition:

 

Right click on the line "unallocated".

Select "New".

Enter the size in MiB.  My Jessie Pixel /dev/mmcblk0p2 partition was 14.9 so I entered 16.  We will enlarge this later.

Optionally, you can label the partition (E.g. "raspbian-slash").

Click "Add".

 

7. Commit changes by clicking on the little green check mark near the top of the GUI.  Exit from `gparted` when all of the commit screens are done.

 

8. Going to do a partition copy with `dd`.  Windows and Mac users have an equivalent tool.  For the sake of the example, I assume that your target partition is specified as /dev/sda1:

 

sudo dd bs=4M conv=noerror if=/dev/mmcblk0p2 of=/dev/sda1

 

# Go have a pint and kick back.  This is going to take a bit.

 

10. The previous step concluded perfectly.  Re-launch `gparted`.  Select the drive and the new partition.  Right click and select "Resize/Move".  You can extend the partition to the end of the disk.  Exit `gparted`.

 

11. sudo  YOUR-FAVORITE-EDITOR  /boot/cmdline.txt

Change "/dev/mmcblk0p2" to "/dev/sda1", assuming again that /dev/sda1 is the new partition on the USB drive.

Save and exit.

 

12. Disconnect the USB drive and reconnect it.  Note where it is mounted, say, /minister/silly-walks/usbdrive.

 

13. sudo  YOUR-FAVORITE-EDITOR  /minister/silly-walks/usbdrive/etc/fstab

Change "/dev/mmcblk0p2" to "/dev/sda1", assuming again that /dev/sda1 is the new partition on the USB drive.

Save and exit.

 

14. Reboot

 

Yes, I followed this to the letter.  My RPi2 is considerably faster in terms of disk I/O and, therefore, storage-dependent applications (all of them?).

 

Fallback: Power off.  Take out the MicroSD.  Edit it somewhere to reverse steps 11 and 13.  Re-insert MicroSD.  Power on.  You are back to where you were.  What went wrong?

 

Questions/comments?

Filter Blog

By date: By tag: