Porter v3 introduced a couple of new features to address feedback from my v1/v2 beta testers and from my own personal experience using it as a practice tool. My number one point of feedback was to please add a volume control. I also personally wanted to be able to play along with songs I'm trying to learn, or a generic backing track when practicing improvisation. Adding volume control was straightforward - just replace the headphone amp's feedback resistor with a pot(entiometer). Adding the capability to play along with music was a little more tricky.
I didn't have space in the enclosure for another input jack, so I started looking into ways I could get the USB port to multitask for me. Having done some work with USB-C in my consulting job, I was aware of an Audio Adapter Accessory Mode that would transmit analog audio over the USB data lines. I only needed half an excuse to move to modern, always-plugs-in-the-right-way USB-C, and that was it.
However, this change also required that I add a separate pre-amp to the design, because I didn't want the audio to be filtered in the same way as the instrument signal. So I added a Texas Instruments OPA1671IDBVT, which is a nice low-noise, low-distortion, rail-to-rail, low-ish-power, single-supply audio op amp (and it's only a buck!). The headphone amp generates its own mid-supply bias, which I borrowed to bias the op-amp as well. I also tied the op-amp's negative supply to the same shutdown line I used to control the headphone amp power state. This wasn't strictly necessary, but seemed like a neat trick that could save some power (the line is active-high, which would "shut down" the op amp by making its supplies equal.)
Here's what the v3 schematic looked like:
And here's what it looked like as I was getting ready to build up some test units to share with friends (note the 3D printed board in black, next to the Hammond enclosures):
At the time, it seemed like Audio Adapter Accessory Mode was well-supported. I found a TI app note demonstrating a reference design for audio adapter support, and figured I was on the right track. Unfortunately, I never got it to work. I later learned that support for this particular feature was kind of a mess, and eventually got deprecated. So it looked like I was moving back to micro USB for v4. There are plenty of micro-USB-to-3.5mm cables available, which use the D+/D- lines as the right and left audio channels, respectively.
I also had been thinking more and more that the input impedance really needed to be higher than 100k to avoid affecting the guitar's tone. I wanted to target at least 499k, based on what I had seen in other pedal and amp designs. The easiest way to do that without introducing unreasonably large resistors (I would have needed 1.5M ohm for a gain of 3) was to move to a non-inverting configuration.
Thinking some more about the user experience, I decided that the automatic power-on/off just might not be intuitive enough. I replaced the 100k volume pot with a 10k pot that had a built-in switch, which would cut the battery power when turned fully counter-clockwise, and apply power (with a tactile "click") when turning up the volume. That seemed natural and familiar enough. There wasn't a 100k version available, but thankfully the presence of a pre-amp allowed greater flexibility in choosing resistor values for the headphone amp. That brought me to the following v4 design:
I thought for sure this would be the final revision of Porter... until one of my testers found a problem! It turns out it was possible to make the headphone amp clip when using certain pedals that increased the output level, or with a hard strum of all the strings. I'll share how I solved it in the next post!
(Bonus pic: Porter v4 test build)
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.