0
mirror of https://github.com/torvalds/GuitarPedal.git synced 2026-07-17 01:04:20 +00:00
Files
Linus Torvalds 229fdc3e07 Update the audio-jacks board
The old audio jack board actually works quite well, and I've used the
same board now in a few different form factors, which is a good sign.

However, I do want to try doing a stereo board, and the old one was
using mono audio jacks.  That was partly historical, but also partly a
size issue: the particular mono jacks I use are just smaller than the
stereo jacks I have.  And there are obviously fewer components in the
mono setup.

However, exactly because the form factor has worked fairly well, I felt
like I could avoid the whole separate TAC5112 board that I had used with
the (quite nice and compact, but a bit of a pain to route out of) BM28
connector.

The TAC5112 is actually easier to route on its own than using the codec
board - the advantage of that separate board was that I could then do
various test variations using it, and re-use the CODEC board when those
variations failed.  Which they certainly have done - I've tried a lot of
different form factors.

So now that I feel more comfortable with the form factor and think it
works, I might as well put the codec chip directly on the board, which
makes things easier and more compact.

As a result it's not a problem to fit the larger dual op-amp for
buffering the input signal, and the other extra analog components.

There are a few other changes than just switching to stereo jacks and a
dual op-amp.  The big one is that this uses the TAC5242 instead of the
TAC5112.  It doesn't do i2c for control, it's set up with hardware
strapping of five control pins instead.  I liked having i2c for testing
things, but again, now I basically know what my setup is.

The FFC cable still brings in i2c from the controller board, but now
it's only connected to the EEPROM.  And since that's the only thing it
is used for, I decided to upgrade it a bit - from a 2kbit EEPROM to a
64kbit one.

The 2kbit one worked fine, but I didn't expect to have as much config
data as I do.  For all the best kinds of reasons: there are just more
effects available, and right now one of the things holding more effects
back is literally "it becomes a pain to save the state".

The bigger EEPROM will need changes to programming, but not big ones: it
basically takes two bytes of address rather than one, and the page size
is larger.

The changes for stereo support are going to be a lot bigger.

(Assuming everything works - which is not given - the board *should* be
a plug-and-play replacement for the old board, in that it should work
with just ignoring the right channel, and the eeprom won't load and save
effects settings.  But for basic testing it should still come up even
with old firmware on the MCU board).

There are a few fixes to the board too: the previous board left IN-
floating on the codec, which was not correct.  I was confused by the
single-ended configuration: the _output_ is left unconnected, but the
input should have been connected to ground through a capacitor.

The miswiring appears to not have actually had any bad effect, but it
isn't what the datasheet says you should do.

Maybe that IN- wiring doesn't really matter - or maybe it made the input
a bit noisier than it should have been, but if so it wasn't noticeable.
Possibly because it's a guitar pedal, possibly because the front-end
op-amp buffer hid any issues the miswiring could have caused?

Another change is that this just uses a traditional voltage divider for
the initial signal biasing.  The switch to a TAC5242 made the MICBIAS
voltage no longer programmable, and as a result could no longer be used
to bias the op-amp input to close to the middle of the rail.

Hopefully none of the changes cause new issues.  The TAC5242 technically
has has a better noise floor, and maybe the wiring of IN- does matter,
so the new design is at least in theory an improvement in not just
capabilities but also in audio quality.  Not that I really have any
complaints about the previous design in that respect.

And "improvement in theory" might hit some nasty unexpected snag if I
screwed something up in the new version. I'll know in two weeks...

[ This also adds a new USB-C connector footprint - which this board
  isn't using, but I'm adding it as an option for a future MCU
  board. ]

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2026-06-26 20:23:25 -07:00
..
2026-06-26 20:23:25 -07:00