The front panel

A project log for NFC Bose Wave Player

An NFC-enabled music player designed for kids to be able to pick their songs, built the hardest way possible

gilphilbertgilphilbert 06/30/2021 at 15:530 Comments

Before I went ahead and started designing PCBs (my first instinct), I thought I would take a closer look at the front panel board.

The original front panel board, with the FPC connector at the bottom and the connector to the buttons board (top center) removed. More on that later.

Other than the VFD, there's little here really. Great, this should make this board easy! There's an IC under the display that, presumably, drives the VFD - and a handful of discreet components that support them. There's a connector at the very top that's perfectly placed to line up with the front panel board, which slots directly to this board - board to board. That's going to be fun. The front-panel board is an odd shape with cutouts and has mounting holes that hold it in place. I'm going to have to measure it very carefully.

I'm going to replace the VFD (which is no use to me) with an OLED. Measuring it, a 2.8" SPI OLED will do. I've had a good experience with BuyDisplay's range of EastRising displays, so I'll be using their White 2.8" SPI OLED. It's driven by the SSD1322 chip, which I've used on previous projects. With the ESP32, the excellent U8g2 library from olikraus will work well with this display. I'll just have to work out how to connect the replacement front panel board to the main board. The existing connection is a flexible cable (FPC) so I may just use the same.

Now is the tough bit. I looked at the top panel (with the buttons). It uses 10 connections for 17 buttons. At first, this was a complete mystery to me. Some sort of encoding, obviously. Through the rust of my mind, a memory from high school electronics came to me. I knew this. I'd done this before, but it was... some... years ago. How did this work? Then it came to me, it was probably a matrix. I started measuring the pins and connections between them. Sure enough, putting a multimeter across the various pins (two at a time) revealed then when a button was pressed, two pins would short. Definitely a matrix. Good, at least I'm not totally losing my memory. After spending hours reading the inputs from various buttons, I've got a sort of ugly table working that shows me the cross points where the buttons meet.

After spending some time staring at it, color coding it and drinking coffee, I've split it into four columns and five rows. If you're not up to speed with button matrices, they're worth a quick read. They reduce the number of connections used in return for a little complexity. One pin actually doesn't do anything. Nonetheless, that's 9 pins... that may seem like only a few, but given the other pins I'm going to need there's no way the ESP32 will have nine pins spare and there aren't any simple off-the-shelf matrix ICs that I can find. Looks like this board just got more complicated.