Back in 2015 [Ben Wang] attempted to re-invent the protoboard with the Perf+. Not long afterward, some improvements (more convenient hole size and better solder mask among others) yielded an updated version which I purchased. It’s an interesting concept and after making my first board with it here are my thoughts on what it does well, what it’s like to use, and what place it might have in a workshop.
The Perf+ is two-sided perfboard with a twist. In the image to the left, each column of individual holes has a bus running alongside. Each hole can selectively connect to its adjacent bus via a solder bridge. These bus traces are independent of each other and run vertically on the side shown, and horizontally on the back.
Each individual hole is therefore isolated by default but can be connected to one, both, or neither of the bus traces on either side of the board. Since these traces run vertically on one side and horizontally on the other, any hole on the board can be connected to any other hole on the board with as few as two solder bridges and without a single jumper wire.
It’s an innovative idea, but is it a reasonable replacement for perfboard or busboard? I found out by using it to assemble a simple prototype.
Choosing a Test Project
I chose a fun idea with a low component count that I call the Laziness Defender. It is a kind of modern-day, automated Boss Key.
The Laziness Defender is a motion sensor that, once armed, wirelessly sends an
alt-tab to a paired computer when it senses motion. A user places it anywhere within Bluetooth range, aims it towards their work area’s ingress point, presses the “arm” button, and enjoys an automatic (and silent)
alt-tab to swap their solitaire game out of view the instant someone comes to invade their personal space.
No need to keep one hand hovering above
alt-tab and one eye on the hallway! Being that vigilant is a lot of work, and if a person wanted work, they’d be working instead of watching videos online.
Motion sensing is handled by a surplus PIR sensor which accepts 9-12V DC and provides a normally-closed switch that opens when motion is sensed. (These are common in security systems, where the alarm is a normally closed loop that any one of the sensors can trigger by opening it.) The wireless sending of
alt-tab is done with an Adafruit EZ-Key, which accepts 3-16V and acts as a Bluetooth keyboard. I configured it to send
alt-tab when an input pin is pulled low.
A controller is also needed, because simply coupling the PIR sensor to the EZ-Key doesn’t do the job for two reasons: one is that the PIR sensor’s output pulse is too long; it leads to auto-repeat on the triggered keypresses. The second problem is that the unit should not send an
alt-tab every time the sensor sees motion; that leads to uncontrolled behavior. The hardware must only be permitted to trigger when it has been explicitly given permission to do so. Also, to avoid having to fiddle with different voltage levels, everything should run on 9-12V DC.
If I were building this for someone who knew what an Arduino was – but not much else – then I’d probably use an Arduino to allow them to easily tweak and fine-tune the prototype’s behavior. But that’s not the case, so an LM556 will do everything that’s needed. The 556 is two 555 timers in a single DIP package. The first 555 is configured in bistable mode like a set-reset latch. This is used to let the PIR sensor trigger things only once, and require manual re-arming via an “arm” button press before it will trigger again. The other 555 is configured in monostable mode as a one-shot timer; once triggered by the PIR sensor via the first timer, it handles pulling the EZ-Key’s input low for only about a quarter of a second, avoiding the whole auto-repeat keypress issue. After triggering, nothing more happens until the “arm” button is pressed again.
Assembly using Perf+
The Perf+ board was populated with:
- A 2.1mm center positive power supply plug for 9-12V input from a wall adapter
- An LM556 and a variety of capacitors and resistors (most of them 0.1uF and 10k for simplicity’s sake)
- An Adafruit EZ-Key (which acts as a Bluetooth HID keyboard)
The PIR sensor is connected via 4 wires (two for power, two for the normally-closed activation switch.) The Perf+ board is mounted like a “backpack” to the PIR sensor.
The prototype Laziness Defender was assembled by diving straight in; in other words, tested on a breadboard then hacked together from the schematic like a junk-box project as though I were using normal perfboard or busboard to quickly get something working. I attempted to use the Perf+ for all the signal routing, which I did with the exception of two capacitors soldered directly to the LM556 pins because by then, I would have had to do some pretty convoluted connections to make them work and I was already running into problems keeping track of things on the Perf+ board.
There is an open-source tool called Perfy which allows visualizing and laying out connections to generate plans of where to solder, bridge, and cut on a Perf+ board, but I didn’t find it very useful for assembling a project in an ad-hoc manner.
What I Learned
The Perf+ did allow me to construct a prototype without using a single jumper wire. Wires can take up a lot of space. No wires means a smaller, cleaner looking board.
- Connections made via Perf+ are not very visual, and I found the board much harder to troubleshoot as a result. Tracing a signal’s path visually was a lot more work than it would have been with perfboard or busboard.
- Tracing a signal’s path is sometimes impaired by not being able to see underneath any installed components.
- I found it useful to mark the board for some common signals. One of the first things I did was hook up and mark the +V and GND bus lines with a marker for easy identification later. I would have appreciated a small white square of silkscreen beside the identification numbers/letters that I could color-code with a dab of a marker.
- I installed the DIP on the horizontal trace side, and I wish I had cut the horizontal traces between opposite pins under the DIP before I soldered it in, or at least installed the DIP on the vertical bus trace side. Since the pins on opposing sides of the DIP almost never need to be connected to each other, it would have made more sense to have 14 shorter bus traces (one for each pin) instead of 7 long ones across pairs of pins. Once I soldered the DIP onto the horizontal bus side, I could no longer reach the bus traces to cut them because they were under the DIP. This is one of the reasons I ended up soldering two small capacitors directly to the DIP’s leads, it was just so much easier that way. This was itself a learning point.
- Having good lighting and magnification handy was very important. I never had trouble making a solder bridge when I needed one, but my eyes are not what they used to be, and I often needed magnification to ensure that pads were only bridged where it was intended.
- Having solder wick handy to remove bridges was invaluable. Magnification was still needed to verify the bridge was completely removed.
- Excessive heat applied to one side of a hole can un-bridge a solder jumper on the opposite side.
- Whenever possible, align components to be connected directly orthogonal to one another so the connection between the two can be done with a single bus line. It’s not too bad to visually trace connections along one bus line, but as soon as you need to flip the board to follow it onto the other side it gets much harder to track.
- Cutting bus lines worked well enough with a sharp utility knife. Magnification was invaluable for confirming the trace was cleanly and completely cut.
Where Does the Perf+ Fit?
The Perf+ may have a place as an alternative to a PCB for small quantities of finished units that are not expected to need any changes or rework. The result is wire-free and clean-looking, which may be worth the added effort of planning the layout and connections with a tool like Perfy.
The Perf+ can also be used as a straightforward perfboard alternative with the added bonus of making simple bus connections very easily. Knowing when to stay away from complex routing on Perf+ in favor of the occasional jumper wire (or point-to-point soldering direct to leads) absolutely makes things easier to troubleshoot or modify later.
I love to see innovation in prototyping tools. The Perf+ and its system is simple and effective, but gives you more than enough rope to hang yourself. Making all of a board’s connections with Perf+’s built-in traces and solder bridges is possible, but even in my relatively simple board it quickly became too complex to easily follow. It makes more sense to play to Perf+’s strengths only when it clearly benefits you and your design.