Hardware - Shield

The shield plugs into the top surface of the Arduino, using several sets of pins. Putting this together (without bending or misaligning pins) can be tricky for blind users. So, sighted help would be helpful for the initial setup.

Let's take a tour of the shield. To get oriented, place the shield so that:

  • the pin headers and port sockets are facing you
  • the long axis of the shield runs from left to right
  • the pin headers are closest to the right-hand end

Bottom Edge

Let's navigate across the bottom edge, starting at the bottom-left corner.

VCC Switch

The VCC (i.e., supplied voltage) switch is a tiny metal box, about 0.1"H x 0.3"W x 0.1"D. It is located on the left-hand end of the shield and has a 0.1" long plastic stem, facing out toward the board's edge.

Sliding the plastic stem to the left sets the VCC to 3V3 (3.3 VDC); sliding it to the right sets the VCC to 5 VDC.

Note: Most Groves will work with either setting, but some will not. YMMV. In any case, make sure that the slider is pushed to the right or left, lest you supply the Groves with an intermittent or missing VCC.

Reset Button

The reset button is an even tinier box, sitting just to the right of the slide switch. The button faces toward the board's edge. Pressing it will reset the Arduino, causing it to restart the "Sketch" (program) from the beginning.

Note: The Arduino has its own reset button, near the top-left corner of its circuit board. However, having a reset button on the shield is convenient.

Power LED

The power LED is a tiny cylinder with a domed top. It is about 0.2" tall and 0.1" in diameter. It glows whenever the Grove Shield is receiving power.

Power Header

The power header is a narrow plastic box, about 0.5"H x 0.8"W x 0.1"D. The top of the header has eight holes that can accept pin leads, connecting them to a variety of DC voltage levels, etc.

Analog Header

The analog header is a narrow plastic box, about 0.5"H x 0.6"W x 0.1"D. The top of the header has six holes that can accept pin leads, connecting them to (nominally) analog inputs.

Right Edge

Now, let's navigate up the right edge, starting at the bottom-right corner.

ISP Pins

The ISP (in-system programmer) pins are located halfway up the right edge of the shield. The pins are about 0.4" tall and form a rectangular cluster with three rows of two columns. (Amanda says the ends feel like a six-dot braille cell. :-) It is unlikely that you will ever need to attach anything to these pins, but they make a very obvious tactile landmark!

Top Edge

Now, let's navigate across the top edge, starting at the top-right corner.

Digital Headers

Each digital header is a narrow plastic box, about 0.5"H x 0.1"D, with a series of tiny holes running along the top. The first header has eight holes; the second has ten. The holes can accept pin leads, connecting them to digital input, output, and communication lines.

Some of these lines can also generate digital signals that employ Pulse Width Modulation (PWM). These signals can be used as-is or integrated (summed) to produce an analog signal.

Left Edge and Central Region

The rest of the shield is occupied by 16 plastic-encased sockets, each of which is about 0.4"H x 0.4"W x 0.2" D. These sockets are used by the Grove System's "port" cables. Each socket has a ground pin, a power (VCC) pin, and two signal pins. The wiring of the signal pins depends on the socket, so it's necessary to plug cables into the appropriate type of socket. In general, there will be multiple sockets of a given type, do the software will need to know which socket is used.

The sockets for the analog ports are side-facing sockets which accept cables on the left edge of the shield. The other sockets all face up and form a rectangular cluster with three rows of four columns.

Unlike the pin headers, the port sockets do not provide access to all of the Arduino's lines. However, the access that they do provide is simpler and far easier to use (and the headers' lines are still available, if need be).

Analog Ports

The (side-facing) sockets for ports A0-A3 run up the left edge of the shield. The signal pins in each socket provide access to overlapping pairs of lines (A0/A1, A1/A2, A2/A3, and A3/A4, respectively). Each of these lines connects to one of the Arduino's built-in ADC (Analog-to-Digital Converter) circuits. For example, port A0 supplies access to these Arduino lines:

  • GND (ground)
  • VCC (power; 3.3VDC or 5VDC)
  • A1 (analog line 1)
  • A0 (analog line 0)

However, because the Arduino is nothing if not flexible, each of these lines can also be configured to be a digital input or output, with or without a pull-up resistor, etc. Also remember that some of the digital lines can be used to generate PWM-based analog signals. You can safely ignore this for now; just understand that the Arduino's lines aren't nearly as locked down as the labels might seem to indicate.


The UART (Universal Asynchronous Receiver / Transmitter) port provides access to the Arduino's UART circuit. It can be used for low-speed communication with a single digital device, using a low-voltage variant on the RS-232 protocol. The UART socket is located near the top-right corner of the shield, just below the first digital header. The port supplies access to these Arduino lines:

  • GND (ground)
  • VCC (power; 3.3 or 5 VDC)
  • TX (transmitted data)
  • RX (received data)

Digital Ports

The sockets for ports D2-D4 (running right to left) finish the top row; the sockets for D5-D8 fill the second row. Like the analog ports, each digital port provides access to an overlapping pair of lines (D2/D3, ..., D8/D9). For example, port D2 supplies access to these Arduino lines:

  • GND (ground)
  • VCC (power; 3.3VDC or 5VDC)
  • D3 (digital line 3)
  • D2 (digital line 2)

I2C Ports

The sockets for the I2C (Inter-Integrated Circuit) ports fill the bottom row. I2C is a multi-master, multi-slave, single-ended, serial computer bus that is used for addressable devices such as the LCD display. Each I2C port supplies access to these Arduino lines:

  • GND (ground)
  • VCC (power; 3.3VDC or 5VDC)
  • SDA (serial data)
  • SCL (serial clock)


This wiki page is maintained by Rich Morin, an independent consultant specializing in software design, development, and documentation. Please feel free to email comments, inquiries, suggestions, etc!

Topic revision: r3 - 17 Apr 2017, RichMorin
This site is powered by Foswiki Copyright © by the contributing authors. All material on this wiki is the property of the contributing authors.
Foswiki version v2.1.6, Release Foswiki-2.1.6, Plugin API version 2.4
Ideas, requests, problems regarding CFCL Wiki? Send us email