Demo

Background

I am electrical engineer by trade, but in my spare time I like to make custom toys for my kids, particularly my son Ethan. Ethan has autism and sensory needs, which make most store-bought toys challenging for him to play with appropriately. You can see details from a couple of my past projects on my other Hackaday project pages:

For the latest toy I’ve been working on, I wanted to use a Raspberry Pi Zero W to read an NFC tag as well as detect a number switch states, play stereo audio, and flash some LEDs. I couldn’t find any kind of breakout board or Raspberry Pi HAT that had everything I needed, so I made my own PCB. It worked really well and seemed perfect for a variety of DIY projects, so I decided to explore interest from the maker/kickstarter community. Building one was pretty expensive, but if there is enough interest, I can buy in bulk and get to a cost comparable to other NFC breakout options on the market.

About the name...I call this the NFC/Audio skirt as a play on the Raspberry Pi HAT standard. A Raspberry Pi HAT plugs in from the top. This doesn't work so well for a Raspberry Pi Zero where the breakout board is more than twice the size of the Pi. I made this board to plug in from the bottom, hence it's a "skirt", not a "HAT" (hilarious, I know).

Technical Details


NFC

I used the same NFC reader component and interface to the Pi as a couple of Adafruit products. As such, Adafruit's libraries and instructions can be followed exactly. If it's not clear, the demo video shows a plastic toy with an NFC sticker stuck to the back being detected by the NFC/Audio Skirt. These NFC stickers or cards can be purchased from a variety of sources, including Adafruit and Amazon. The PN532 NFC reader is compatible with all popular NFC tag types. The read range you get is dependent on the tag, but generally it will work at least 2-3" away, usually more like 4-5".

The NFC/Audio Skirt will come preconfigured to use the Pi's UART as the interface to the NFC reader. This is the simplest approach, but by swapping a couple of resistors on the board you can use I2C if you like (SPI is not supported).


Audio

The NFC/Audio Skirt includes two 3.2W amplifiers for stereo sound. The interface to the amplifiers is I2S, which is a common digital protocol for stereo audio. Using a digital interface means less noise/interference from nearby circuits. Adafruit provides simple instructions for making I2S the default audio output from the Pi.

Max volume from the amplifiers can be set with a couple of resistors. By default, the board will be configured for the nominal gain of 9dB. Max is 15dB.

Two screw terminals are included for easy connection to 4 or 8 ohms speakers (no soldering required)!


LED Drivers 

The 8-pin, single row connector at the top of the board is for the LED drivers. Each LED driver consists of a FET connected to a GPIO pin on the Pi. A resistor sets the current (brightness) of the LED. Simply attach an LED across adjacent pins of the LED connector and toggle the appropriate Raspberry Pi output to turn on and off.


GPIO Expander

The NFC/Audio Skirt uses up quite a few of the Raspberry Pi's GPIO. The included GPIO expander allows you use the Pi's two I2C pins to control up to 8 additional GPIO. Each individual I/O of the GPIO expander can be configured to have a pull-up or pull-down resistor if desired. Access the GPIO expander I/O through the 10-pin connector at the bottom of the NFC/Audio Skirt.


Power

The NFC/Audio Skirt can be powered through either the included barrel jack connector or the standard USB micro power interface on the Raspberry Pi (but not at the same time!). Bulk capacitors are included to ensure clean power to the Pi when using the barrel jack.


Mechanical

The dimensions of the NFC/Audio Skirt are 104 x 65 mm (4.1 x 2.6"). There are four mounting holes (one in each...

Read more »