Hi: I notice that some shields (data logger for instance) don't include stacking headers nor suggestion for their use.
I understand that stacking headers are like a (vertical) bus with ALL conductors carrying through each shield without interference. So my basic question is: Can I use stacking headers in place of the non stacking headers (data logger shield say Ok) for any shield assuming the header bus design is universal?
Is there any kind of industry standard applicable here?
Thanks
Robert
Shield Stacking
Moderators: adafruit_support_bill, adafruit
Please be positive and constructive with your questions and comments.
- adafruit_support_bill
- Posts: 88093
- Joined: Sat Feb 07, 2009 10:11 am
Re: Shield Stacking
Yes, you can use stacking headers on any shield. Signals and voltages on all pins will be passed straight through.
What you need to look out for is GPIO pin conflicts between shields. The i2c bus pins can be shared - as long as all i2c devices have different addresses. The SPI pins can be shared, but each device will require one dedicated GPIO pin for a 'chip select'.
What you need to look out for is GPIO pin conflicts between shields. The i2c bus pins can be shared - as long as all i2c devices have different addresses. The SPI pins can be shared, but each device will require one dedicated GPIO pin for a 'chip select'.
- tultalk
- Posts: 64
- Joined: Thu May 14, 2020 7:00 pm
Re: Shield Stacking
No std. Gues you have to evaluate:
The SD Card shield v3.0 makes use of pin 10 as a chip select. Please be sure other stacked shields do not make use of that same pin. See v4.0 of this shield for a version that uses pin 4.
These next lines were user added: This shield works fine for the Arduino Mega 2560, you just have to make the appropriate connections. 4or10 ->53, 11->51, 12 ->50, and 13 ->52. This arrangement works fine so long as you make sure not to assign anything else to those pins.
The SD Card shield v3.0 makes use of pin 10 as a chip select. Please be sure other stacked shields do not make use of that same pin. See v4.0 of this shield for a version that uses pin 4.
These next lines were user added: This shield works fine for the Arduino Mega 2560, you just have to make the appropriate connections. 4or10 ->53, 11->51, 12 ->50, and 13 ->52. This arrangement works fine so long as you make sure not to assign anything else to those pins.
- adafruit_support_bill
- Posts: 88093
- Joined: Sat Feb 07, 2009 10:11 am
Re: Shield Stacking
That comment is valid for older shields and older processor boards.These next lines were user added: This shield works fine for the Arduino Mega 2560, you just have to make the appropriate connections. 4or10 ->53, 11->51, 12 ->50, and 13 ->52. This arrangement works fine so long as you make sure not to assign anything else to those pins.
Current generation shields follow the Arduino V3 header layout. V3 and newer Arduino and compatible processors follw a standard for the SPI and i2c buses. SPI can be found on the 2x3 pin ICSP header and i2c has dedicated SDA and SCL pins.
The location of these signals on pre-V3 boards will vary depending on the processor. Most older vintage shields are designed for compatibility with the original Atmega 168 and 328 based Arduinos.
- tultalk
- Posts: 64
- Joined: Thu May 14, 2020 7:00 pm
Re: Shield Stacking
Hi:
Thanks for response. I am using UNO R3 and data logger shield from you. Both within last 2 months. Should I assume compatibility? What identifying marks on Data Logger can I use to verify latest version?
Thanks
Robert
Thanks for response. I am using UNO R3 and data logger shield from you. Both within last 2 months. Should I assume compatibility? What identifying marks on Data Logger can I use to verify latest version?
Thanks
Robert
- adafruit_support_bill
- Posts: 88093
- Joined: Sat Feb 07, 2009 10:11 am
Re: Shield Stacking
The Arduino R3 header standard was introduced in 2010, and we updated the logger shield shortly after that. So anything purchased from us in the last 12 years is almost certainly R3 compatible. You can verify this by the presence of dedicated SDA and SCL pins next to the AREF pin on the header closest to reset button.
- tultalk
- Posts: 64
- Joined: Thu May 14, 2020 7:00 pm
Re: Shield Stacking
Off topic again. Bought some ESP-WROOM-32 boards. Am concerned because the pinout does not agree with Arduino UNO (attached). Looking at Adafruit Airlift. What exact chip is on this board and does it have 4mb memory?
Additionally, there appears to be much more "stuff" on the WROOM-32 board than on the Adafruit board.
Additionally, there appears to be much more "stuff" on the WROOM-32 board than on the Adafruit board.
- Attachments
-
- ComparisonPinOut.pdf
- (23.29 KiB) Downloaded 6 times
- michaelmeissner
- Posts: 1821
- Joined: Wed Aug 29, 2012 12:40 am
Re: Shield Stacking
Shields are only work within the same family. Off the top of my head some of the common shield families include:
As others have mentioned, if you find an Arduino shield designed more than 10 years ago, it may not support running on either 5 volts or 3.3 volts. The original boards using AVR microprocessors (Uno, Leonardo, etc.) ran at 5 volts, but the more modern Arm based systems like some of the Metro boards and the newer Arduino boards run at 3.3 volts. If you connect a 5 volt device to a board that runs at 3.3 volts, you likely will fry the board.
As a minor note, the Arduino shield pinout is not at 0.1" spacing. This means you can't stick a shield into a breadboard. Evidently this was a mistake in the original design, but in the years since then all designs for a compatible shield have had to replicate this spacing.
The feather subsystem is made for stacking. You can solder either stacking headers (headers have long male pins soldered to the board and have female headers to stack another board), solder just male headers, or solder just female headers. There are doubler, tripler, and two quad breakout boards that allow you to use multiple boards without stacking the boards (and you can combine say a feather with stacking headers and a tripler). A few feather micro-processors and a few feather wings have options to buy the board with headers already soldered into the board.
With the feather system, there are multiple different microprocessors that use the same pinouts. Some of these microprocessors support things like Wifi and Bluetooth directly, so you wouldn't need a feather wing to add that functionality.
The QT PY BFFs are not really designed to stack more than one board.
- Arduino Uno and descendents (including Adafruit Metro)
- Adafruit Feather (shields are called feather wings)
- Adafruit QT PY and Seeed XIAO (shields are called BFF's)
- Rasberry PI Pico (shields are called PiCowBell)
- Adafruit Circuit Playground
- PJRC Teensy
- Adafruit ItsyBitsy (while there is a common layout, I'm not aware of ItsyBitsy shields)
As others have mentioned, if you find an Arduino shield designed more than 10 years ago, it may not support running on either 5 volts or 3.3 volts. The original boards using AVR microprocessors (Uno, Leonardo, etc.) ran at 5 volts, but the more modern Arm based systems like some of the Metro boards and the newer Arduino boards run at 3.3 volts. If you connect a 5 volt device to a board that runs at 3.3 volts, you likely will fry the board.
As a minor note, the Arduino shield pinout is not at 0.1" spacing. This means you can't stick a shield into a breadboard. Evidently this was a mistake in the original design, but in the years since then all designs for a compatible shield have had to replicate this spacing.
The feather subsystem is made for stacking. You can solder either stacking headers (headers have long male pins soldered to the board and have female headers to stack another board), solder just male headers, or solder just female headers. There are doubler, tripler, and two quad breakout boards that allow you to use multiple boards without stacking the boards (and you can combine say a feather with stacking headers and a tripler). A few feather micro-processors and a few feather wings have options to buy the board with headers already soldered into the board.
With the feather system, there are multiple different microprocessors that use the same pinouts. Some of these microprocessors support things like Wifi and Bluetooth directly, so you wouldn't need a feather wing to add that functionality.
The QT PY BFFs are not really designed to stack more than one board.
- tultalk
- Posts: 64
- Joined: Thu May 14, 2020 7:00 pm
Re: Shield Stacking
Hi
Thanks for response. I had just assumed that any board stating Arduino compatible meant physically (stacking).
I was just alarmed at the Wroom 32 pin layout which seemed to make no sense as to why thepin designations would be so different.
Robert
Thanks for response. I had just assumed that any board stating Arduino compatible meant physically (stacking).
I was just alarmed at the Wroom 32 pin layout which seemed to make no sense as to why thepin designations would be so different.
Robert
- adafruit_support_bill
- Posts: 88093
- Joined: Sat Feb 07, 2009 10:11 am
Re: Shield Stacking
Not familiar with that product. But companies have been known to 'bend' standards as they see fit.Bought some ESP-WROOM-32 boards. Am concerned because the pinout does not agree with Arduino UNO (attached).
Looking at your list:
* NC means no-connection. R3 compliant processor boards do not use this pin and shields should not be dependent on it. It is reserved for future use.
* IOREF is an output pin from the processor which establishes the operating voltage. It is an input pin for all shields and a compliant shield will assure that all signal levels comply with that reference voltage.
* Analog and Digital IO pins - Naming convention for these can (and do) vary depending on the function of the board. That is not a problem.
- tultalk
- Posts: 64
- Joined: Thu May 14, 2020 7:00 pm
Re: Shield Stacking
I will return them. I have some Adafruit Air Lift WIFI shields to use instead
I had just assumed that there was some industry organization that standardized these things.
Of course Chevy heads don't fit Ford blocks.
Thanks
Robert
I had just assumed that there was some industry organization that standardized these things.
Of course Chevy heads don't fit Ford blocks.
Thanks
Robert
- tultalk
- Posts: 64
- Joined: Thu May 14, 2020 7:00 pm
Re: Shield Stacking
In getting ready to use the Adafruit shield on the Arduino UNO I noted:
Digital I/O
UNO Adafruit
TX->1 Pin1 RX<1
RX<-0 Pin2 TX->0
Am I missing something?
Robert
Digital I/O
UNO Adafruit
TX->1 Pin1 RX<1
RX<-0 Pin2 TX->0
Am I missing something?
Robert
- adafruit_support_bill
- Posts: 88093
- Joined: Sat Feb 07, 2009 10:11 am
Re: Shield Stacking
The transmitter (Tx) of the processor connects to the receiver (Rx) of the shield and visa versa.
- tultalk
- Posts: 64
- Joined: Thu May 14, 2020 7:00 pm
Re: Shield Stacking
Mia Culpa, Mia Culpa
Thanks
Robert
Thanks
Robert
Please be positive and constructive with your questions and comments.