This post contains affiliate and direct links to the products used.
There are certain classes of projects that come up over and over again, particularly in the world of embedded, hobby, and IoT projects. When prototyping or figuring out what’s needed for a project a collection of “pre-canned” components ready to drop into a design are handy: rather than breadboarding each project from the ground up, just drop in the pre-built components you need and save some time, troubleshooting, and frustration.
What Should be Pre-Canned?
Whatever you use a lot. Things like LEDs, NeoPixels or DotStars, various sensors and encoders, and so on can benefit from having a prototype-ready setup. A motor board pre-wired for external motor power that sits neatly on the desk is a lot easier to work with than a loose motor running wild–when you’re ready you can substitute a project-specific motor and circuit solution, but to get the basics of the project running, it doesn’t need to be wedged into its final resting place.
Wiring up a bookshelf with DotStars? Have a few strips to use for prototyping. Vet the drive circuitry, switches and modes, etc. before working on the final project. Trying out a lizard cage environmental sensing system? Drop in your sensors, maybe even replace some sensors with a bank of potentiometers to test limit settings during development, and write most of the code before putting it in place.
An Example: DFPlayer MP3 Board
The DFPlayer Mini (affiliate; direct link) is cheap and effective. They communicate via TTL serial to the host and can drive a 3W speaker. Since they’re serial-based they’ll work on any system with a serial port (including software serial on the Arduino). They’re our go-to device when we need canned sounds. (With the obvious caveat that if we’re using something that already has MP3 support, like an RPi, we probably would not use it!)
We use them primarily under the Arduino, Feather, and ESP ecosystems, enough times, that we figured we should just build a board that eliminates a few breadboard wires and components, so we can just drop it in to a system and hook up a few jumpers: power, serial, speaker, and (optionally) the “BUSY” signal. The basic circuit is simple; a 1kΩ resistor on the DFPlayer’s RX pin (running to the host’s TX pin), and if we include an LED indicator for the BUSY signal we throw in a 4.7Ω resistor to be safe.
First we dropped everything into a mini-breadboard, just to get an idea of what we were dealing with size- and component-wise. We knew we would end up with a header for the pins we’d use the most: VCC/GND, the speaker, and RX/TX. We almost never use the BUSY line; for our prototype we dropped an LED and resistor onto the board for debugging–for the board, however, we brought it out to the header.
We also took a small 8Ω 2W speaker we picked up on Amazon (direct), 3D printed a small case for it, and super-glued it on to the twee breadboard. It’s basically drag-and-drop hardware. The serial cable is a two-pin connector on one end, two single-pin connectors on the other, in case RX and TX aren’t adjacent on the controller. The power cable is two-pin on both ends, assuming some form of power rail or adjacent pins.
Note 1: This version of the board is for 5V systems. We’re whipping up another version that has a level shifter on it so it can be used with either 5V or 3.3V systems, something that comes up a lot more these days as we’ve largely shifted (ha!) away from the older Arduino platforms in favor of
Note 2: This circuit represents a common embedded use of the DFPlayer: controlling via serial. The DFPlayer can also be controlled via switches (with no controller)–this circuit doesn’t address that at all.
The board for this will be available on our online store (and probably Amazon) and we’ll update this post when that’s actually up-and-running–only so many hours in a day, unfortunately.
Drag-and-drop hardware can speed up project prototyping a lot. By using vetted, pre-canned circuits we save some initial prototyping headaches, keep our breadboards that much cleaner, and get to solving the actual problems that much quicker.
Give it a whirl–if you have a chunk of hardware you find yourself using over and over, throw it on to a dedicated breadboard or etch out your own board and see what you think–and let us know if you’ve done something similar!