Introduction: MiniClipMP3Hack
Mini Clip MP3 player
So this Lazy Old Geek (L.O.G.) recently bought some Mini Clip MP3 players from Aliexpress.com. When I bought them, they were about $1.20 USD. They play MP3 files put on a micro SD card in stereo. They actually work pretty good. Charge them up, plug in a micro SD card and some headphones, turn it on. It automatically starts up.
One of the reasons I bought them was to create a binaural beats player. So my first goal is to control this Mini Clip MP3 player with an Arduino.
Step 1: Take It Apart
Ok it’s easy to take apart, take an Xacto knife, run it along the edges and lift.
On the PCB, you will see five metallic domes that match up to the front panel buttons, Vol+ Vol-, Pause, Prev and Next. The way these work is when the dome is pushed down, the metal makes a switch connecting the outer ring with the center. These metal domes are held in place with some clear tape.
There’s only one IC on the PCB. It’s probably an AC1187, the number printed on the IC is apparently just a date code. Only other components are a capacitor, an LED, power switch, micro SD adapter, and battery.
So my goal is to control my player with software, the same as the buttons do.
The third picture shows the button side of the PCB with the tape and domes removed. What I was hoping for was that all of the outer rings were tied to ground so it would be easy to interface with an Arduino. That is not the case.
Step 2: Revised Design
After some searching I found a schematic on some Russian site that appears to be accurate.
Comments on the schematic:
The AC1187 appears to be a custom microcontroller.
The LiPo battery is connected to the AC1187 VBat pin. VDDIO is apparently a 3.3V output called VCC. DACL and DACR are audio outputs.
Schematic ??: According to this schematic, it looks like the power switch needs to be on to charge the battery. I don’t believe that is the case. At this point I don’t care.
Well for my binaural beats player, what I most care about is controlling the volume. These players automatically start playing, so I could stop it by removing power. If you look at the schematic, both Vol+ and Vol- are tied to Vcc. so I was thinking maybe I could use a digital signal to pin3 or pin4 to ground. Unfortunately, I looked at those pins with an oscilloscope and they’re a 3.3V signal with negative going spikes. I tried to use some resistors but it didn’t work.
I am terrible at analog circuit design. Well, my friend, a fellow-Instructabler from New Zealand, suggested using a PNP transistor. I had some 2N3906s so I tried them and they seemed to work.
Not so good: I tried a similar scheme for Prev, Next and Pause but couldn’t get it to work.
I also tried to switch power with a 2N3906 but it didn’t work. So searching the Internet, I saw a design using a P channel MosFET. Well, unfortunately, the only one I had on hand was an SMD part, AO3401. So I had to modify one so I could breadboard it.
Well, my breadboard seemed to work. Attached is my schematic and the Eagle Cadsoft schematic.
Attachments
Step 3: Implementation
TIP: Most all rechargeable devices using USB to charge have LiPo batteries which are about 2.8v to 4.2v in them and the circuits operate at 3.3v.
This includes this Mini Clip MP3 player. For my Arduino I selected a 3.3v Pro Micro also purchased from Aliexpress.com so I would have compatible voltages.
Modifications to the AC1187 MP3 PCB:
Remove tape and button dome strip.
Unsolder the LiPo battery.
Connect a wire to where the negative terminal of the battery was connected. This will be the ground wire.
On the button side, connect two wires to the K1 pins. The outer ring is Vcc, the inner dot is AC1187 pin 3.
Connect one wire to the outer ring of K2, this is AC1187 pin 4.
Connect the four wires to a male header, Vcc, Gnd, Pin3 and Pin 4.
I breadboarded the schematic onto a protoboard.
The Arduino sketch (MP3controller.ino) for the 3.3v Sparkfun Pro Micro is attached.
To test, put some MP3 files onto a micro SD card, insert it into MP3 player, connect some headphones into MP3 player. Load MP3controller.ino on Pro Micro.
Now you should be able to control the volume with the VOLDN and VOLUP buttons. Yes, I know I could’ve done the same thing with the original pushbuttons but this is proof of concept that I can control power, Volume Up and Dn with an Arduino.
Attachments
Step 4: Conclusions and Tips
So, this works pretty good.
Normally, I would make this into a PCB but I haven’t decided on design for my binaural beats player.
Another problem I had was when I was testing this setup, I disconnected the micro USB cable from my Pro Micro and the whole connector came with it. I am OLD, my eyes are bad, fortunately with my magnifying glasses, I was able to solder it back on. I decided to hot glue the connector to the PCB.
I learned something about MP3 files (at least for some of them)
I bought three of these players, while testing them out, I found a rather strange occurrence. When I took my microSD card with MP3 on it, from one to another, it started playing the same track from the previous. Apparently it remembers the track number and stores it somewhere on the MP3 file, probably the metafile. And further testing, it appears that the last volume level is also stored.