Raspberry Pi 3 Model B in detail

Lead Image © claudia balasoiu, 123RF.com

The Third Pi

The Raspberry Pi 3 changes the game with its fast, 64-bit CPU and support for WiFi and Bluetooth.

The Raspberry Pi celebrated its fourth birthday on February 29, 2016, and, as befitted a leap year birthday, the Raspberry Pi Foundation surprised everyone with the release of a third-generation model of its popular nanocomputer [1]. The most important improvements for the new Raspberry Pi include a new 64-bit processor and integrated WiFi and Bluetooth. The price for the new model is unchanged at $35, but the question is whether the new model will satisfy the demands of the community. I decided to take a close look at the latest member of the Raspberry Pi family.

First Impressions

A quick glance at the Raspberry Pi 3 (RPi3) reveals a strong similarity to the RPi2 (Figure 1). The four USB ports, power supply jack, and 40-pin GPIO header are all in the usual place. The micro-USB port for power, the HDMI port, the audio and video connections, and the ports built onto the board for connecting a camera and display are all present. However, a closer look reveals some differences.

Figure 1: The Raspberry Pi 3 layout is essentially the same as its predecessor with a few minor details. Some enclosures made for an RPi2 will cover the LEDs on the RPi3.

The two LEDs, ACT and PWR, now light up next to the micro-USB port. The RUN header, which the Rasp Pi uses for rebooting, has found a new home next to the USB port. These components had to move because of the presence of the compact chip antenna. The accompanying Bluetooth/WiFi combination chip BCM43438 gives off a silvery shine on the underside of the board next to the microSD slot (Figure 2). By comparison, the chip responsible for the Xenon flash does not shine anymore. It is now coated in black, possibly because of an issue with the Xenon flash that appeared with the RPi2 [2]. Also on the underside of the RPi3, the user will see the 1GB of RAM carrying the ELPIDA label.

Figure 2: The chip responsible for the Xenon flash is now covered with a black coating.

One detail worth mentioning is the change in microSD slots. Instead of the earlier push-push microSD slot, the third generation Rasp Pi comes with a customary microSD slot that accepts an SD card without the need for a spring mechanism. This change prevents accidental ejection by mistakenly clicking on the card when inserting USB devices, which was a problem with models 2 and B+. One drawback to the new card slot is that it might be difficult to remove a card without an assist from the spring action.

The SMSC LAN9514 Hub chip separates a USB 2.0 port on the BCM2837 into four USB 2.0 ports and a 10/100Mbps network port. Thus, this well-known Rasp Pi bottleneck still exists. Even so, the WiFi and Bluetooth modules are mounted on their own ports and no longer need to share bandwidth with the remainder of the USB devices. Network boot is another interesting new feature (see the box titled "Network Boot.")

Network Boot

Previous Raspberry Pi models could boot via I2C, although this function was rarely used. The new BCM2837 chip now has a modified boot ROM, which makes it possible to start a system via the network (PXE/TFTP) or a USB bulk storage device. Under the newly modified approach, the system first tries to boot via I2C, then via a microSD card or USB, until it finally searches via a DHCP query for a boot medium on the network.

The Raspberry Pi Foundation's goals with the RPi3 were to achieve compatibility, maintain pricing stability, and meet the demands of the educational market. Users will have to look elsewhere for pricey goodies like additional working memory, a SATA connection, a gigabit Ethernet port, and USB 3.0.

WiFi and Bluetooth

The Broadcom BCM43438 WiFi/Bluetooth combo kit transmits only in the 2.4GHz spectrum and provides WiFi (802.11b/g/n standard with up to 72.2Mbps net throughput), Bluetooth 4.1 (Classic as well as Low Energy), and even an FM radio receiver, which is not enabled on the Pi. (See the box titled "No Radio.") WiFi and Bluetooth are implemented on the chip as completely independent capabilities. The only connection between the two functions concerns negotiating access to the antenna. The chip supports just a single antenna, so it doesn't support a MIMO configuration.

No Radio

The Broadcom BCM43438 WiFi and Bluetooth chip has an FM radio module, but you can't activate this function on the RPi3. The antenna pin necessary for activation is in an inaccessible location on the underside of the chip. The pin is surrounded by more important pins that absolutely require connection.

MIMO (Multiple Input, Multiple Output) is a process for using multiple sending and receiving antennae for wireless communication. MIMO systems can transmit considerably more data per hertz of bandwidth used than a single antenna system.)

The WiFi adapter for the RPi3 maxes out at a gross data rate of 72.2Mbps. Measurements of the net maximum data throughput of about 40Mbps are reported on various websites. In the test for this article, I used two RPi3 systems and connected them via WiFi, with one serving as a client and the other serving as an access point. The throughput measured by using iperf was approximately 38.5Mbps. Theoretically, this data rate suffices, even for streaming 4K videos, which only require up to 16Mbps in H.265.

The microSD slot on the RPi3 now uses the second SDIO port of the SoC (Broadcom SD host). The advantage to this approach is that it offers more finely grained overclocking and thus greater SD speeds. Both SDIO ports work independently of one another, which means the entire bandwidth is available for the SD card and WiFi. To decrease the CPU load, AES encryption for the wireless network is performed on the BCM43438 in hardware.

The developers have optimized the wireless performance to the maximum legal level. Raspberry Pi creator Eben Upton was pleasantly surprised at how well the WiFi function worked, even with the Rasp Pi sitting inside of a Flirc aluminum case. The intrepid users among us who want to optimize reception further can modify a U.FL jack, which is a miniature HF plug connector, to equip the RPi3 with an external antenna. An extra antenna might not be necessary, though, because the RPi3 tested here maintained a connection to a router that was two stories above where the Rasp Pi was located.

TIP: Use the wavemon software package to monitor the quality and data throughput of the current WiFi connection.

Versions of Raspbian starting with releases from 2016-02-26 already support the WiFi adapter. To connect with wireless networks, the user merely selects the adapter from the Network menu and enters the appropriate password (Figure 3). The system stores the access data in the wpa_supplicant.conf file under /etc/wpa_supplicant/. If you prefer to work at the command line, you can use text-based tools such as wicd-curses to manage the WiFi configuration (Figure 4).

Figure 3: The graphical desktop in Raspbian comes with everything you need for setting up a WiFi connection to the router.
Figure 4: Text-based tools such as wicd-curses are an option for configuring wireless networking.

One way of localizing the settings is via the graphical desktop, starting with the Localisation tab in Preferences | Raspberry Pi Configuration and then clicking the Set WiFi Country button. Alternatively, you can edit the /etc/default/crda file and modify the last line with a setting for your regulatory domain [3]. You can also perform this configuration via raspi-config. European users can use correct settings to switch to channels 12 and 13, which are forbidden in the United States.

The new WiFi function offers many interesting possibilities for use with the Internet of Things. For example, you could set up a Rasp Pi with a camera module functioning as a monitoring device with access via WiFi. Alternatively, you could outfit a Rasp Pi with sensors on the GPIO and transmit measurements via WiFi, or you could equip a Rasp Pi with a unicorn HAT that is an RGB LED matrix display, mount the computer as a clock or a lamp on the wall, and control the device via WiFi. (See the box titled "HATS.") Another interesting idea for an application would be to connect a Rasp Pi temporarily to a network via a mobile hotspot on a smartphone for transmitting updates or measurement values.

Hats

HAT stands for Hardware Attached on Top, the designation used for add-on boards that are standardized for the Rasp Pi's 40-pin GPIO. The Rasp Pi can automatically load the drives needed for the added board on two dedicated pins reserved for an EEPROM. The EEPROM holds information about the drives that are automatically loaded via I2C.

The BCM43438 does not support the monitor mode needed for monitoring the WiFi function, but it does have an access point mode. See the box entitled "Access Point with Bridge-utils and Hostapd."

Access Point with Bridge-utils and Hostapd

You can easily adapt a RPi3 connected to a router with a cable to act as an access point for connecting WiFi devices to the LAN. First, add the lines from Listing 1 to the configuration file /etc/network/interfaces, taking care to use a pound symbol # to comment out all lines relating to WiFi0, which already exists.

Install the packages hostapd and bridge-utils (Listing 2) for the access point mode. After that, create the /etc/hostapd/hostapd.conf file and populate it with the content of Listing 3. The ssid variable refers to both the name of the WiFi generated by the Rasp Pi and the wpa_passphrase, the network key you will need to modify according to personal preferences. In the interest of security, the user should modify the rights to the file so that only the root user can read the file after it has been saved:

$ sudo chmod 600 /etc/hostapd/hostapd.conf

The last step is to enter the path to the configuration file in /etc/default/hostapd:

DAEMON_CONF="/etc/hostapd/hostapd.conf"

Now restart the Rasp Pi. The access point automatically begins to operate during the boot process.

Listing 1

Add to /etc/network/interfaces

allow-hotplug wlan0
iface wlan0 inet manual
auto br0
iface br0 inet manual
bridge_ports eth0 wlan0
bridge_fd 0
bridge_stp off

Listing 2

Access Point Packages

$ sudo apt-get update
$ sudo apt-get install hostapd bridge-utils

Listing 3

hostapd.conf

bridge=br0
interface=wlan0
ssid=pi3-hotspot
hw_mode=g
channel=7
ieee80211n=1
ht_capab=[MAX-AMSDU-3839]
wmm_enabled=1
country_code=DE
ieee80211d=1
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=pi3g.com
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Raspberry Pi Geek

SINGLE ISSUES
 
SUBSCRIPTIONS
 
TABLET & SMARTPHONE APPS
Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content