Get Started with Altium Upverter, Sign Up Now.
You probably have a great idea that you tested using your Arduino, breadboard, and what looks like a bird’s nest of connectors, and it works great. Congratulations! If only a couple of ICs and additional circuitry could be added to your Arduino to make it look like a finished product. We have two choices here. First, you could make a custom board that might be more organized, but will require some time to design. You’ll also have to replicate Arduino’s functionality in your custom board, or you’ll have to clone an Arduino board.
Arduino shield design with expandable memory and an LCD display
The other option is to take all the additional components and make an Arduino shield. If you are lucky, you might be able to find an existing shield that will hold your additional components. If you’re more adventurous, you can create your own shield board that plugs directly into an Arduino module. Here’s what you need to consider in Arduino shield design and how to create a custom shield for your new product.
What is Arduino Shield Design?
Arduino shields are small circuit boards that sit on top of existing Arduino boards and contain additional components to boost the capabilities of the system. There are a number of capabilities you can add to an existing Arduino, such as Wi-Fi, Bluetooth, motor control, a camera, or other features. Arduino shields provide some important advantages:
- Stackable. The layout of a shield board will be compatible with a basic Arduino board, which means they can be plugged in straight away. Signals are sent from the GPIO pins or other MCU interface, and multiple shields can be stacked together to form a complex system.
- Inexpensive. Shields are relatively inexpensive to buy or design. For a small manufacturing batch, you’ll find that they are cheaper compared to custom PCB.
- Extensible. If you use a through-hole shield, you can add more components to the board or rework it as needed. Note that this is not generally the case with a custom shield, which is normally fabricated for a specific set of functions.
Arduino shields have the same form factor as that of a standard Arduino board. Power and ground pins are located on one eight pin header, the analog pins are placed on a six-pin header, and the digital pins are placed on the opposite side with an eight-pin and ten-pin header. An example footprint for an Arduino Uno shield is shown below.
Typical shield form factor for an Arduino Uno
Some Arduino shields are designed to use every pin, while some shields leave open pins. Shields generally communicate using SPI, I2C, or serial communication, and some use interrupts or analog inputs. If you’re buying a premade shield, you’ll find that not all of these modules are extensible. Some shields include an array of plated holes for soldering through-hole components, while others are designed for a very particular application and are not expandable. Take a look at Adafruit for some good examples.
Types of Arduino shields
There are hundreds of Arduino shields on the market these days, and going through each will turn this article into a lecture. Here are a couple interesting shields that might inspire your next design.
Connecting to the world
Arduino WiFi or Ethernet shield. As the name says, this allows your Arduino to connect to the internet through Ethernet or via WiFi. Arduino has retired the WiFi shield, but similar shields can be found from other suppliers or from tutorial websites. You can also build your own shield that provides both capabilities.
GPS shield. You can easily add GPS capabilities to an Arduino with a simple chip antenna. You could even clone an open-source GPS module and easily adapt it as an Arduino shield.
Music and Sound
MP3 player shield. You can turn your Arduino into an MP3 player by adding some speakers, a microSD card, and a headphone jack.
Music instrument shield, You can turn your Arduino into different digital instruments. You can generate an analog signal with a DAC on the shield board, and you can use other components to modulate this signal. You can also use UART to control other devices via MIDI.
Display and Touchscreen
LCD display or touchscreen shield. You can easily add a 16×2 character LCD display with controllable backlighting to your project. You can use two I2C pins on the Arduino board, which leaves plenty of pins left over for interfacing with other devices. If you want to include a touchscreen, an Arduino board can provide sufficient power for place a small touch screen with decent resolution (240×320 is typical). You can also add a microSD card for storing images and videos.
Relay shield. A relay shield allows you to bring automation to our home appliances. This type of board can contain multiple relay switches that can be individually configured as normally open (NO) or normally closed (NC).
Motor shield. The Adafruit link shown above includes a great example for a motor shield. If you ever want to build a robot (who doesn’t!), you can use the digital output to power a DC motor. You can also use the PWM output from the MCU to control a stepper motor.
Arduino shield design for a stepper motor control board.
Things to Consider in Arduino Shield Design
While there are plenty of shields you can create for a new product, there are some important points to consider when designing your own Arduino shield.
- Pin-out. The pin-out on your shield should match the pin-out on the MCU board. Pay attention to the datasheet for your Arduino model when designing your shield.
- Current rating. When powered with an external supply, the total current is limited from 500 mA to 1 A, depending on the exact model. Components connected on the shield board and wired to the power/ground pins will increase the total current used by the device.
- Supply voltage. Some Arduino boards use 3.3 V while others use 5 V. The components you add to your shield should be compatible with the supply voltage used with the MCU board.
- Through-hole vs. SMD components. Some shields come with an array of holes for through-hole components alongside some other functionality that is built into the board. You can certainly use these premade boards for your shield, but you will be limited to through-hole components. If you prefer SMD components, then you will be better off designing your own shield.
Design for Wireless Communication
If you add a Bluetooth, WiFi, GPS, or other wireless module to a custom shield as a chip antenna, you’ll likely need to include a ground plane in your shield board. Be sure to pay attention to your antenna manufacturer’s guidelines when working with your chip antenna. Unless your shield is much larger than your MCU board, your RF traces are unlikely to act like transmission lines, but you should still pay attention to impedance matching rules for your antenna.
Alternatively, you can use copper pour on your shield board to create your own antenna, such as an inverted-F antenna. This will provide a compact footprint compared to a larger rubber ducky antenna.
Arduino Shield Design in Upverter
Upverter® provides users with a simple yet powerful browser-based platform for designing boards from start to finish. You can easily pick from a vast range of existing open-source hardware projects to get started, or you can import Arduino shield templates from Eagle libraries available from Sparkfun or Adafruit.