I'm trying to figure out how to interface a microcontroller with a cheap MP3 player that used snap domes for buttons. I do not have a datasheet for anything on the MP3 player board, because I can't find any reference to the main IC's model number on Google. The front of the board looks like this:

Circuit Board of the MP3 Player

I scoped the inner and outer snap dome pads to see how they were configured, and got some strange results.

The Top, Middle, and Right pads behaved how I expected: The outer rings scoped as ground and the inner circle scoped at 3.3 volts.

However the Left and Bottom pads were strange: Both the inner and outer pads were at 3.3 volts. Notice these buttons have pads look different from the other 3. Also The MP3 Player worked fine before I took it apart, and I was gentle in dismantling it so I don't think I damaged it.

I'm wondering what to make of the signals from these two pads. It doesn't seem like pressing the two buttons (and closing the circuit between the two pads) would do anything because they are at the same potential. Is there something I'm missing? Thank you.


The buttons are likely configured as a scanned array. The microcontroller continuously scans the rows (or columns) and reads back the other "dimension".

Did you look at the nodes with an oscilloscope, or just voltage readings with a meter? It is quite common to find really tricky circuits used in these gadgets to minimize the pin count on their microcontroller to shave a few cents off the cost.

Another possibility is using a resistor array where different buttons produce different voltages which the microcontroller can read. None of these would be appparent from high impedance probing. But measuring the waveform or the voltage while the switch is closed may give a bigger clue to how it works.

The typical way of interfacing to an array like this is to put a FET across each switch and drive the gate from your microcontroller. That simulates pushing the button and closing the switch.

  • \$\begingroup\$ Thank you for the answer. I will try testing the terminals with a scope tomorrow. What am I looking for to confirm if it's a scanned array? Also I'm pretty unfamiliar with FETs - source connects directly to inner pad, drain connects directly to outer (or vice versa), and gate connects directly to the microcontroller? \$\endgroup\$ – MichaelK May 17 '16 at 3:51
  • \$\begingroup\$ If it is a scanned array, you should see pulses rather than DC voltages. If it is a resistor array you will see different DC voltages. Be sure to test with each switch closed to see the true behavior of the circuit. Yes, connect the Source and Drain to each switch. Be sure to connect the ground of the remote gadget to the ground of your microcontroller circuit. \$\endgroup\$ – Richard Crowley May 17 '16 at 4:08

The PREV button outer ring goes to pin 24 of the AX2027M, but also has a via in the middle - which suggests it also goes to something else. But what, and why? To find out you should trace the circuit.

Follow the tracks from the MCU to the buttons and all other parts. A multimeter set to continuity test will help find where the tracks go (hold one probe to a contact point, then rake the other probe over all exposed contacts until you hear the meter beep).

With a circuit diagram and knowledge of the CPU pin functions you should be able to figure out how it works.

  • \$\begingroup\$ Wow, I guess I was looking at the wrong thing. I figured that was the board number, I was looking up the number on the IC. Thanks! I don't have a circuit diagram and the traces are pretty hard to see, but I'll probe around a little bit more \$\endgroup\$ – MichaelK May 17 '16 at 13:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.