../../../../_images/seeed_grove.png

Seeed Studio Grove Interconnect Shields

Bridle supports a couple of different shields carrying Seeed Studio Grove System [15] connectors. Please download and read through the Preface - Getting Started [20] and Introduction to Grove [21] before use the product. Also have a look on the SiPEED Wiki page about the Grove standard interfaces [22].

Grove Base Shield

The Grove Base Shield [23] is an Arduino Shield that breaks out the Arduino pins to Grove connectors. Once you plug the Base shield on the Arduino, you will be able to plug a Grove module to one of the Grove connectors on the Base Shield. All I/O ports of the Arduino are exposed and adapted into Grove connectors which include digital I/O, analog I/O, and specialized ports (I2C, SPI, UART).

Versions

There are three versions, but nowadays only version 2 should be used actively. Here find the comparison between various versions of Grove Base Shield:

Parameter

Base Shield V2.1

Base Shield V2.0

Base Shield V1.3

Base Shield V1.2

Release Date

Aug 2015

Mar 2014

Aug 2012

Oct 2011

Operation Voltage

3.3V or 5V

3.3V or 5V

5V only

5V only

Operation Temperature

-25℃ to +85℃

Grove Connectors

16

16

16

22

Digital Ports

7 +1 (UART)

7 +1 (UART)

7 +1 (UART)

14

Analog Ports

4

4

4

5

UART Ports

1

1

1

1

I2C Ports

4

4

4

3

SPI Ports

1

Digital Ports:

see Grove Digital Layout [16]

Analog Ports:

see Grove Analog Layout [17]

UART Ports:

see Grove UART Layout [18]

I2C Ports:

see Grove I2C Layout [19]

SPI Ports:

The Grove System [15] does not specify an SPI port. The port listed here was therefore only provided exclusively and without standardization on the very first shield.

Grove Base Shield for XIAO

The Grove Base Shield for XIAO [24] is a plug-and-play Grove extension board that breaks out the Seeed Studio XIAO [14] pins to Grove connectors. Once you plug the Base shield on a XIAO board, you will be able to plug a Grove module to one of the Grove connectors on the Base Shield. All I/O ports of the XIAO board are exposed and adapted into Grove connectors which include digital I/O, analog I/O, and specialized ports (I2C, SPI, UART).

Versions

Currently there is only one version known:

Parameter

Base Shield for XIAO V1

Release Date

Apr 2020

Operation Voltage

3.3V / 3.7V (LiPo-Battery)

Operation Temperature

-40℃ to +85℃

Grove Connectors

2 x 4 (breack-off)

Digital Ports

5 +1 (UART) +2 (I2C)

Analog Ports

8 (shared with digital)

UART Ports

1

I2C Ports

2

SPI Ports

1 (PCB or 2 Grove Conn.)

Digital Ports:

see Grove Digital Layout [16]

Analog Ports:

see Grove Analog Layout [17]

UART Ports:

see Grove UART Layout [18]

I2C Ports:

see Grove I2C Layout [19]

SPI Ports:

The Grove System [15] does not specify an SPI port. The port listed here is either the Flash SPI bonding pad area on PCB bottom side or the signals shared with on the Grove connectors for D8/A8 until A10/D10.

Supported Grove Base Shields for XIAO

Grove Basic Kit for Raspberry Pi Pico

The Grove Basic Kit for Pi Pico [25] comes with an carrier board for Raspberry Pi Pico that breaks out the Raspberry Pi Pico pins to Grove connectors. Once you plug the Shield on the Raspberry Pi Pico, you will be able to plug a Grove module to one of the Grove connectors on the shield. Most of all I/O ports of the Raspberry Pi Pico are exposed and adapted into Grove connectors which include digital I/O, analog I/O, and specialized ports (I2C, SPI, UART).

Versions

Currently there is only one version known:

Parameter

Shield for Pi Pico V1

Release Date

Jan 2021

Operation Voltage

3.3V or 5V

Operation Temperature

-25℃ to +85℃

Grove Connectors

10

Digital Ports

3 +2 (UART) +2 (I2C)

Analog Ports

3

UART Ports

2

I2C Ports

2

SPI Ports

1

Digital Ports:

see Grove Digital Layout [16]

Analog Ports:

see Grove Analog Layout [17]

UART Ports:

see Grove UART Layout [18]

I2C Ports:

see Grove I2C Layout [19]

SPI Ports:

The Grove System [15] does not specify an SPI port. The port listed here is an simple 2x3 pin header.

Supported Grove Basic Kit for Raspberry Pi Pico

Utilization

Laced Grove Signal Interface

All Grove Interconnect Shields provide their specific interface for general signal mapping, the Laced Grove Signal Interface.

Following mappings are well known:

  • grove_gpios: GPIO mapping

  • grove_pwms: PWM mapping

GPIO mapping

This is the GPIO signal line mapping from an Arduino Uno R3 [9] or Arduino Uno R2 [10] header bindet with arduino-header-r3.

Attention

On the MIMXRT1010-EVK, resistors R793, R795 and R800 must be fitted for proper use. The Laced Grove Signal Interface overwrites the default settings of the board on the Arduino UNO R3 header and completes the missing PAD assignments for the signal lines D4, D5 and D9.

phandle index to shield –>

Signal : Meaning

seeed_grove_base_v2

seeed_grove_base_v1

<&grove_gpios 0 …>

D0: UART-RX

<&grove_d0_header 0 …>,
<&grove_uart_header 0 …>
↳ <&arduino_header 6 …>
<&grove_d0_header 0 …>,
<&grove_uart_header 0 …>
↳ <&arduino_header 6 …>

<&grove_gpios 1 …>

D1: UART-TX

<&grove_d0_header 1 …>,

<&grove_uart_header 1 …>
↳ <&arduino_header 7 …>
<&grove_d1_header 0 …>,
<&grove_d0_header 1 …>,
<&grove_uart_header 1 …>
↳ <&arduino_header 7 …>

<&grove_gpios 2 …>

D2

<&grove_d2_header 0 …>

↳ <&arduino_header 8 …>
<&grove_d2_header 0 …>,
<&grove_d1_header 1 …>
↳ <&arduino_header 8 …>

<&grove_gpios 3 …>

D3

<&grove_d3_header 0 …>,
<&grove_d2_header 1 …>
↳ <&arduino_header 9 …>
<&grove_d3_header 0 …>,
<&grove_d2_header 1 …>
↳ <&arduino_header 9 …>

<&grove_gpios 4 …>

D4

<&grove_d4_header 0 …>,
<&grove_d3_header 1 …>
↳ <&arduino_header 10 …>
<&grove_d4_header 0 …>,
<&grove_d3_header 1 …>
↳ <&arduino_header 10 …>

<&grove_gpios 5 …>

D5

<&grove_d5_header 0 …>,
<&grove_d4_header 1 …>
↳ <&arduino_header 11 …>
<&grove_d5_header 0 …>,
<&grove_d4_header 1 …>
↳ <&arduino_header 11 …>

<&grove_gpios 6 …>

D6

<&grove_d6_header 0 …>,
<&grove_d5_header 1 …>
↳ <&arduino_header 12 …>
<&grove_d6_header 0 …>,
<&grove_d5_header 1 …>
↳ <&arduino_header 12 …>

<&grove_gpios 7 …>

D7

<&grove_d7_header 0 …>,
<&grove_d6_header 1 …>
↳ <&arduino_header 13 …>
<&grove_d7_header 0 …>,
<&grove_d6_header 1 …>
↳ <&arduino_header 13 …>

<&grove_gpios 8 …>

D8

<&grove_d8_header 0 …>,
<&grove_d7_header 1 …>
↳ <&arduino_header 14 …>
<&grove_d8_header 0 …>,
<&grove_d7_header 1 …>
↳ <&arduino_header 14 …>

<&grove_gpios 9 …>

D9

<&grove_d9_header 0 …>,
<&grove_d8_header 1 …>
↳ <&arduino_header 15 …>
<&grove_d9_header 0 …>,
<&grove_d8_header 1 …>
↳ <&arduino_header 15 …>

<&grove_gpios 10 …>

D10: SPI-CS

not wired

<&grove_d10_header 0 …>,
<&grove_d9_header 1 …>,
<&grove_spi_header 3 …>
↳ <&arduino_header 16 …>

<&grove_gpios 11 …>

D11: SPI-MOSI

not wired

<&grove_d11_header 0 …>,
<&grove_d10_header 1 …>,
<&grove_spi_header 2 …>
↳ <&arduino_header 17 …>

<&grove_gpios 12 …>

D12: SPI-MISO

not wired

<&grove_d12_header 0 …>,
<&grove_d11_header 1 …>,
<&grove_spi_header 1 …>
↳ <&arduino_header 18 …>

<&grove_gpios 13 …>

D13: SPI-CLK

not wired

<&grove_d13_header 0 …>,
<&grove_d12_header 1 …>,
<&grove_spi_header 0 …>
↳ <&arduino_header 19 …>

<&grove_gpios 14 …>

D14: A0 as GPIO

<&grove_a0_header 0 …>
↳ <&arduino_header 0 …>
<&grove_a0_header 0 …>
↳ <&arduino_header 0 …>

<&grove_gpios 15 …>

D15: A1 as GPIO

<&grove_a1_header 0 …>,
<&grove_a0_header 1 …>
↳ <&arduino_header 1 …>
<&grove_a1_header 0 …>,
<&grove_a0_header 1 …>
↳ <&arduino_header 1 …>

<&grove_gpios 16 …>

D16: A2 as GPIO

<&grove_a2_header 0 …>,
<&grove_a1_header 1 …>
↳ <&arduino_header 2 …>
<&grove_a2_header 0 …>,
<&grove_a1_header 1 …>
↳ <&arduino_header 2 …>

<&grove_gpios 17 …>

D17: A3 as GPIO

<&grove_a3_header 0 …>,
<&grove_a2_header 1 …>
↳ <&arduino_header 3 …>
<&grove_a3_header 0 …>,
<&grove_a2_header 1 …>
↳ <&arduino_header 3 …>

<&grove_gpios 18 …>

D18: (A4) I2C-SDA

<&grove_i2c_header 1 …>,

<&grove_a3_header 1 …>
↳ <&arduino_header 4 …>
<&grove_i2c_header 1 …>,
<&grove_a4_header 0 …>,
<&grove_a3_header 1 …>
↳ <&arduino_header 4 …>

<&grove_gpios 19 …>

D19: (A5) I2C-SCL

<&grove_i2c_header 0 …>

↳ <&arduino_header 5 …>
<&grove_i2c_header 0 …>,
<&grove_a4_header 1 …>
↳ <&arduino_header 5 …>

<&grove_gpios 20 …>

D20: ADC6 as GPIO

<&grove_gpios 21 …>

<&grove_gpios 22 …>

<&grove_gpios 23 …>

<&grove_gpios 24 …>

<&grove_gpios 25 …>

<&grove_gpios 26 …>

<&grove_gpios 27 …>

<&grove_gpios 28 …>

<&grove_gpios 29 …>

<&grove_gpios 30 …>

<&grove_gpios 31 …>

PWM mapping

Not all boards provide a dedicated PWM channel for the output of a variable average value of voltage or current over time on all digital lines. The corresponding mapping is always board or SOC specific. In addition to the PWM signal line mapping, the valid references to the PWM function units in the SOC or on the board are therefore also defined as Grove PWM Labels.

The following tables reflects the currently supported boards, but this list will be growing up with further development and maintenance. This list must not be complete.

This is based on the Bridle extended board Nucleo F303RE (BBE) and its arduino-header-r3.

Grove PWM Label

phandle index to shield –>

Signal : Meaning

seeed_grove_base_v2

seeed_grove_base_v1

<&grove_pwms 0 …>

D0: UART-RX

<&grove_pwms 1 …>

D1: UART-TX

&grove_pwm_d2

<&grove_pwms 2 …>

D2

<&pwm2 4 …>

<&pwm2 4 …>

&grove_pwm_d3

<&grove_pwms 3 …>

D3

<&pwm2 2 …>

<&pwm2 2 …>

&grove_pwm_d4

<&grove_pwms 4 …>

D4

<&pwm8 3 …> (compl.)

<&pwm8 3 …> (compl.)

&grove_pwm_d5

<&grove_pwms 5 …>

D5

<&pwm3 1 …>

<&pwm3 1 …>

&grove_pwm_d6

<&grove_pwms 6 …>

D6

<&pwm2 3 …>

<&pwm2 3 …>

&grove_pwm_d7

<&grove_pwms 7 …>

D7

<&pwm1 1 …>

<&pwm1 1 …>

&grove_pwm_d8

<&grove_pwms 8 …>

D8

<&pwm1 2 …>

<&pwm1 2 …>

&grove_pwm_d9

<&grove_pwms 9 …>

D9

<&pwm3 2 …>

<&pwm3 2 …>

&grove_pwm_d10

<&grove_pwms 10 …>

D10: SPI-CS

not wired

<&pwm4 1 …>

&grove_pwm_d11

<&grove_pwms 11 …>

D11: SPI-MOSI

not wired

<&pwm17 1 …>

&grove_pwm_d12

<&grove_pwms 12 …>

D12: SPI-MISO

not wired

<&pwm16 1 …>

&grove_pwm_d13

<&grove_pwms 13 …>

D13: SPI-CLK

not wired

<&pwm2 1 …>

<&grove_pwms 14 …>

D14: A0

<&grove_pwms 15 …>

D15: A1

<&grove_pwms 16 …>

D16: A2

<&grove_pwms 17 …>

D17: A3

&grove_pwm_d18

<&grove_pwms 18 …>

D18: (A4) I2C-SDA

<&pwm8 3 …>

<&pwm8 3 …>

&grove_pwm_d19

<&grove_pwms 19 …>

D19: (A5) I2C-SCL

<&pwm8 2 …>

<&pwm8 2 …>

<&grove_pwms 20 …>

D20: ADC6

<&grove_pwms 21 …>

<&grove_pwms 22 …>

<&grove_pwms 23 …>

<&grove_pwms 24 …>

<&grove_pwms 25 …>

<&grove_pwms 26 …>

<&grove_pwms 27 …>

<&grove_pwms 28 …>

<&grove_pwms 29 …>

<&grove_pwms 30 …>

<&grove_pwms 31 …>

Programming

Grove Base Shield

Set -DSHIELD=seeed_grove_base_v2 or -DSHIELD=seeed_grove_base_v1 when you invoke west build or cmake in your Zephyr application. For example:

  1. Grove Base Shield V2 on MIMXRT1060-EVK or MIMXRT1060-EVK (BBE):

    west build -b mimxrt1060_evk@B/mimxrt1062/qspi -p --shield "seeed_grove_base_v2" -d build/helloshell-seeed_grove_base_v2 bridle/samples/helloshell
    west flash -d build/helloshell-seeed_grove_base_v2
    
    west build -b mimxrt1060_evk@B/mimxrt1062/qspi/bbe -p --shield "seeed_grove_base_v2" -d build/helloshell-seeed_grove_base_v2 bridle/samples/helloshell
    west flash -d build/helloshell-seeed_grove_base_v2
    
  2. Grove Base Shield V1.3 or Grove Base Shield V1.2 on MIMXRT1060-EVK or MIMXRT1060-EVK (BBE):

    west build -b mimxrt1060_evk@B/mimxrt1062/qspi -p --shield "seeed_grove_base_v1" -d build/helloshell-seeed_grove_base_v1 bridle/samples/helloshell
    west flash -d build/helloshell-seeed_grove_base_v1
    
    west build -b mimxrt1060_evk@B/mimxrt1062/qspi/bbe -p --shield "seeed_grove_base_v1" -d build/helloshell-seeed_grove_base_v1 bridle/samples/helloshell
    west flash -d build/helloshell-seeed_grove_base_v1
    

Grove Base Shield for XIAO

Set -DSHIELD=seeed_grove_xiao_v1 when you invoke west build or cmake in your Zephyr application. For example:

  1. Grove Base Shield for XIAO V1 on Seeeduino XIAO or Seeeduino XIAO (BBE) or XIAO SAMD21 (Seeeduino XIAO):

    west build -b seeeduino_xiao/samd21g18a -p --shield "seeed_grove_xiao_v1" -d build/helloshell-seeed_grove_xiao_v1 bridle/samples/helloshell
    west flash -d build/helloshell-seeed_grove_xiao_v1
    
    west build -b seeeduino_xiao/samd21g18a/bbe -p --shield "seeed_grove_xiao_v1" -d build/helloshell-seeed_grove_xiao_v1 bridle/samples/helloshell
    west flash -d build/helloshell-seeed_grove_xiao_v1
    
    west build -b xiao_samd21/samd21g18a -p --shield "seeed_grove_xiao_v1" -d build/helloshell-seeed_grove_xiao_v1 bridle/samples/helloshell
    west flash -d build/helloshell-seeed_grove_xiao_v1
    

Grove Basic Kit for Raspberry Pi Pico 2

Set -DSHIELD=seeed_grove_rpipico_v1 when you invoke west build or cmake in your Zephyr application. For example:

  1. Grove Shield for Pi Pico V1 on Raspberry Pi Pico 2 (BBE) as RPi Pico 2:

    west build -b rpi_pico2/rp2350a/hazard3_0/bbe -p --shield "seeed_grove_rpipico_v1" -d build/helloshell-seeed_grove_rpipico_v1 bridle/samples/helloshell
    west flash -d build/helloshell-seeed_grove_rpipico_v1
    
    west build -b rpi_pico2/rp2350a/m33_0/bbe -p --shield "seeed_grove_rpipico_v1" -d build/helloshell-seeed_grove_rpipico_v1 bridle/samples/helloshell
    west flash -d build/helloshell-seeed_grove_rpipico_v1
    
  2. Grove Shield for Pi Pico V1 on Raspberry Pi Pico 2 (BBE) as RPi Pico 2W:

    west build -b rpi_pico2/rp2350a/m33_0/w/bbe -p -S "wifi-ip" --shield "seeed_grove_rpipico_v1" -d build/helloshell-seeed_grove_rpipico_v1 bridle/samples/helloshell
    west flash -d build/helloshell-seeed_grove_rpipico_v1
    

Grove Basic Kit for Raspberry Pi Pico

Set -DSHIELD=seeed_grove_rpipico_v1 when you invoke west build or cmake in your Zephyr application. For example:

  1. Grove Shield for Pi Pico V1 on Raspberry Pi Pico (BBE) as RPi Pico:

    west build -b rpi_pico/rp2040/bbe -p --shield "seeed_grove_rpipico_v1" -d build/helloshell-seeed_grove_rpipico_v1 bridle/samples/helloshell
    west flash -d build/helloshell-seeed_grove_rpipico_v1
    
  2. Grove Shield for Pi Pico V1 on Raspberry Pi Pico (BBE) as RPi Pico W:

    west build -b rpi_pico/rp2040/w/bbe -p -S "wifi-ip" --shield "seeed_grove_rpipico_v1" -d build/helloshell-seeed_grove_rpipico_v1 bridle/samples/helloshell
    west flash -d build/helloshell-seeed_grove_rpipico_v1
    

References