During the winter of 2021-2022 I built a haptic box, drawing on some insights, skill, and material garnered in the making of the maple box and Pathside Box. On this page you’ll find reflections on and documentation of my build process. This build, like most of mine, was experimental, but I hope that it offers enough insight for future builders. If you have any comments or questions, I would love to hear from you.

This page discusses the physical assembly. Notes about assembling the code are on this page. The resources associated with the build can be found on GitLab.

Overview: What is this thing?

Haptic Box and a plant

A haptic box is a wooden box built for sonic feedback in the tactile register. I designed this one to run a purpose-built feedback composition while being flexible enough for other uses (characterful output, input, filter, feedback instrument, etc) and also repairable and extensible. Hardware features include:

Haptic Box cross section

Gathering Components

The box uses the following components. Some are fairly common, many can be substituted.



Mystery softwood offcut for the panels

I made this box from wood I had ready access to. The spine is hard maple I had previously bought from a nearby syrup making family (bought as a rough-cut 2in × 6in × 8ft board), and the panels are an unknown softwood (probably cedar) from an offcut of a bannister (roughly 2in × 9in × 6ft). If I hadn’t found the offcut, I would have sourced some other softwood, as the maple used in maple box was very stiff. Additionally, this maple was very difficult for my fledgeling hand-tool woodworking skills and in the future I’ll opt for something somewhat softer (though the hardness does mean the box is quite sturdy).

The cut list is below.

The Preamp

Piezoelectronic transducers require a preamp or a buffer primarily in order to match their impedance with line-level inputs, as well as to provide extra gain.1 There are a number of designs available online, I chose to build a two-channel version of Richard Mudhar’s low-noise hi-Z piezo preamp.2 I used a stereo version of Scott Helmke’s mint-box piezo buffer in the Maple Box, but I chose the Mudhar preamp for this project because it offers more gain and better noise performance. The Mudhar preamp is very clean-sounding but its components are a bit more expensive and it sounds pretty ugly when it clips. The Helmke buffer is quieter, more coloured, and clips more pleasantly.

The preamp circuit (annotated version)
The underside of the preamp during soldering

The schematic on Mudhar’s website is for a single piezo pickup, so I had to modify it to work with two. The resulting circuit is basically the same as running two of the preamp from the same power supply (though I omitted the duplicate filter capacitor). I’m waiting on a reply from Mudhar about whether I’m allowed to publish the schematic for this simple dual version here.

I’m happy with the sound and performance of the preamp, though there were a few things I would have done differently when building. Mainly, I would have laid it out on the stripboard, labelled the terminals and marked the positions of the components, then removed everything before cutting the board to size and drilling the mounting hole. I didn’t cut the board beforehand and was pretty lucky that it didn’t break! Otherwise, the build was pretty straightforward.

The Box

The box is a book shape open on the bottom edge with external dimensions 51cm long × 22.6cm high × 12.5cm wide. The “spine” extends beyond the bottom panels to provide feet. I used box joints on the spine which is reflected in the cut list dimensions.

Diagrams of the box and a cut list

The box ended up a little bigger than expected in order to meet my design criteria. I wanted symmetrical broad surfaces for the vibrations, large enough to accommodate an entire hand. The box needed to house all the electronics, which took up quite a bit of space (especially accounting for the room that connections take up). I also wanted to keep the internals accessible for maintenance, upgrades, and maybe even temporarily removing the hardware for use in other projects. As big as it is, access is still constrained, so potential future designs will need to address that issue.

Cut List

The Build

Resawing the panel

Since my workshop is quite small, I was limited to using hand tools for this project (and all of my others). I won’t launch into some paean extolling the virtues of working without electricity (which wouldn’t mean much since I don’t have much experience working with power tools anyway), but I do think it’s worth reflecting on. I absolutely did suffer due to this: a single resawing operation took most of an afternoon, after which my back and wrists ached and I coughed from inhaling sawdust – and I did three of them. But spending that much time in close contact with the material surely results in increased familiarity with and attachment to it.

Dimensioning the boards with hand tools meant planing the rough-sawn boards to square, cutting to width, resawing to the correct thickness, planing the resawn face, and then cutting to length. This was quite labour intensive, particularly as the maple I used was difficult to work with (it was very hard, twisted and cupped, and had a few knots).

The resawn panels

I used box joints to join the three pieces of the spine. Box joints are sturdy enough to give structure and not as complicated as dovetails. Like much of my other woodworking skills, I had learned these from watching instructional videos like Paul Sellars’s. I had cut box joints for the maple box and was eager to try again. The result was about the same: fine from a distance. The dry fit shows some overhang in the joint fingers which I cleaned up afterward with a plane.

Dry fit of the joinery

Before glueing up the joints, I prepared the sides to hold their respective hardware. The Raspberry Pi and amps I planned to mount with standoffs, so I drilled small recesses to epoxy them in after the glue up, making sure to position these with enough room that the wiring wouldn’t rattle against the vibrating panels. The switches and jacks needed holes drilled through one side as well as recesses, as the side was too thick to screw on the washers that would hold them in place. I dug out the recesses with a chisel. I labelled the jacks and switches using a lettering punch set my dad and I found in his workshop.

Lettering on the side with holes for jacks and switches

In retrospect, recessing the standoffs wasn’t a good idea. I thought it would give more surface area for the epoxy to hold onto while also aligning the standoffs, but it fell short on both fronts. Epoxy seals better to flat surfaces and the standoffs didn’t really sit in the recesses because the drill bit left a curved surface. The standoffs for the amps seem to be holding up alright, but the Raspberry Pi fell off during transit and I need to find another way to mount it again.

The sides are too thick to mount the jacks
Recesses for the jacks and switches dug into the inside of the side
Glueing up the first joint of the spine

Eventually I did glue and touch up the joints. Because my joinery was imperfect, I used 90° clamps and also needed to fill gaps with sawdust and wood glue. Once these joints set, I cut the panels to the final length then glued the first panel and installed the mounting hardware for the electronics. I left the other panel off until after finally installing all the electronics.

Conduit pieces

In order to route the connecting wires across the inside top of the spine, some conduit pieces are needed. These can be made from scrap wood by planing one side flat, cutting into narrow slices, and drilling holes through for the wires. Be aware that the wires take more space than it seems and you need to have room for the plugs as well! Glue these at intervals along the inside top of the spine.

Final Assembly

This phase involved connecting and mounting the electronics, glueing on the second panel, and final touches like sanding and finishing the wood.

Haptic Box cross section

Connecting and mounting the electronics

Everything in this phase happened somewhat simultaneously since each aspect informed the others. There was more soldering, but thankfully the layout didn’t require any of it to be done in-place since all the connections are either pluggable on one end or attached to removable jacks or sockets. The diagram below (not to scale) illustrates the connections.

Connections diagram

There was a lot to consider about the placement of the transducers: three of four sides of each panel are fixed, the panels have knots, the weight of each transducer and piezo might have some effect on the sound, and so on. The YouTube channel Tech Ingredients discusses placement of contact exciters on speakers made of free-hanging synthetic panels in this video. Despite the differences in construction (mainly the fixed / free sides), I started with the suggested two-fifths placement, positioning a transducer two-fifths along the width and length, then the pizeo two-fifths from the opposite sides, then adjusted after some testing. I found the transducer and piezo to be very close together at two-fifths so I ended up moving them further apart. I swapped the position of the piezo and transducer for the opposite panel to add some variety.

With the transducers placed (but not yet mounted), I was able to settle on the assorted lengths of wire I’d use to make the connections. Choosing the lengths was non-trivial. As I discovered with the maple box, extra length of wire would rattle against the sides, but the connections needed to be long enough to remove and replace components during maintenance. To solve this, I tied coils of extra length to the conduits mounted on the inside top of the spine. Then I was able to solder the remaining connections.

Modifying the USB cable to include the switch was easier than it looked. USB 2.0 (the type this project uses) has four internal connections: two for data (green and white) and two for power (black for ground and red for +5V).3 I was able to cut the cable in half and splice the switch into the red wire (as well as some extra length to run the connection across the entire box).

Mounting the transducers was straightforward. The Dayton Audio transducers come with pre-applied adhesive which works quite well. I used a thin layer of silicone putty to affix the piezo discs to the panels. This material has the benefit of slightly dampening transients of sudden sounds which would otherwise clip at the preamp, is easy to remove (unlike the wood glue I used on the maple box), and is inexpensive and easy to find. It’s sold as ear plugs for swimming or for sound at drugstores; Mack’s is a popular brand but own-brand / no-name options are often available.

Close up of the mounted electronics

The other electronic components also mounted easily, though there was some finnicky work routing the wires around the standoffs and underneath some of the amps. I’m not sure this is a great solution and there are still some lingering noise issues I have to track down. Regardless, at this point I was getting quite excited because the end of the build was in sight.

Final glue-up and finishing

Glueing on the second panel

Back to woodworking. Some time had passed between glue ups and so the spine needed to be pushed out to square during the glue-up. I brought all my clamps to bear on the situation and it wasn’t a problem. After the glue set, I put a small chamfer in the edges of the panels and gave the whole thing a light coat of linseed oil (remembering to remove the nuts and washers on the connection hardware). Like woodworkers often say, even a light finish really brings out the natural colouration features of the wood. I was a little worried that it would accentuate the colour differences between the maple and the probably-cedar, but the maple actually darkened nicely and I don’t think anything got too yellowy.

Haptic Box and a plant

Next Steps

With the box built and ready to make some sound, I started to put it through its paces using the phono jack inputs and outputs. It’s quite a good feedback instrument, capable of noisy excursions, whistling along with birds, and more ethereal tones. For the haptic sound process, I needed to get code running on the onboard Raspberry Pi. Documentation of that work is found on the code page.

  1. Richard Mudhar writes about impedance matching and there is a wealth of knowledge on various musician forums like llllllll and talkbass. Murray Royston Ward shares resources on a more creative approach to preamp building. If you want to dig into the theory to design one yourself, this piezo sensors technical manual might be a good place to start. (Links last retrieved 2022-07-06).↩︎

  2. Richard Mudhar has a lower cost design using a FET (which I think means it should clip more pleasantly). Scott Helmke’s design is here. The Barcus Berry Preamp is mentioned frequently. Zach Poff gives some detail and schematics on a design by Alex Rice here. The Centre for Haptic Audio Interaction Research has a very simple JFET-based design which I haven’t yet tried. Instructables user backbeats has also contributed a JFET-based design intended for use as an acoustic guitar pickup. (Links last retrieved 2022-07-06).↩︎

  3. See here for more details on the pinout and here for images. ↩︎