After a couple of miss-starts, I finally got the Sony ICD-UX70 mp3 player/recording working properly. It was necessary to use a transistor and relay for each of the functions.
I wrote code which can seek to a specific track using these transport functions. Since the AVR microcontroller must keep track of the current track, there will be a problem anytime the unit is turned off. It will be necessary to reset both the current track and the maximum number of tracks. It would be possible to add some EEPROM (or perhaps use some Arduino trickery) to make sure the track count isn’t lost. In any case, though, there are certain tradeoffs that occur when hacking external hardware.
Track Transition Speed
Each track transition takes 150ms. It doesn’t seem to be possible to drive the recorder any faster than that. It simply ignores the fake button presses. This means that seeking 20 tracks will take 3 seconds.
- Code to allow control recording functions (and increase the total track count each time)
- Code to control playback (very easy)
- There is an indicator LED on the unit which I hope I can detect using a photocell.This may be necessary in order to prevent the unit from getting confused. I want to prevent the microcontroller from executing new transport functions before recording or playback is finished.
I am helping a client prototype a new product which requires digital recording and playback functionality.
I’m assessing the possibility of using a high-quality digital voice recorder to serve as the heart of the system. Today, I bought two models (Sony ICD-P620 and Sony ICD-UX70) in order to see which would be the best fit for the application.
The P620 lists at $59.99 and the UX70 at $99.99. Both have the basic features I need in order to control them with a microcontroller (Arduino in this case):
- Small form factor
- REC button
- (optional) light that recording or playback are occurring so the microcontroller can know when to return to the first track
- STOP button
- Track Forward and Track Back buttons to navigate between tracks
- Quickly advance between tracks
- Microphone input (so it will be possible to locate a mic away from the case)
- Headphone output (for use with an external amplifier)
- Internal speaker
- High Quality Recording
Both models rapidly change between tracks — and beep to provide auditory feedback that the change has happened. This may or may not be useful for my application.
The ICD-P620 does not sound very good, though. It is certainly possible to understand speech recorded into it, but the playback has some digital artifacts which lead me to believe it is probably encoding the files in an 8-bit format. I have decided not to use it for this reason.
The ICD-UX70, on the other hand, sounds pretty good. It records files natively in the .mp3 format (192kbps on high quality). Now, I’ll take the next step: disassembly (or tear-down, if you like).