This project started last summer when I was sniffing traffic from the NPR One iOS app with wireshark. After logging a bunch of requests, I thought it might be possible to create a simple radio using a Raspberry Pi, since I'm unable to get a decent FM signal from WYPR or WAMU.
While testing out the endpoints, I spotted a link to NPR One public API docs in the error response. The project was pushed forward by the availibily of great API docs, and a bunch of application development and design documentation at the NPR One Developer Center. Since the NPR One API docs were written using swagger, it didn't take much work to develop a full Node.js API client for NPR One by using swagger-client to connect to the API.
From there, I used the Node.js API client to create a simple NPR One command line interface that supports both keyboard and MPR121 touch controls with the new adafruit-mpr121 Node.js package. This was all integrated into a hand carved enclosure, which can be seen below.
We will not be covering enclosure design in this tutorial, but the Ruiz Brothers created an amazing 3D printed enclosure for this project.
The NPR logo is a registered trademark of NPR used with permission from NPR. All rights reserved.