View Single Post
Old 05-01-2014, 05:14 PM   #10 (permalink)
radensb
Base Member
 
Join Date: Jan 2014
Location: California
Posts: 148
Drives: 09 Nissan 370Z GM M6
Rep Power: 6721
radensb has a reputation beyond reputeradensb has a reputation beyond reputeradensb has a reputation beyond reputeradensb has a reputation beyond reputeradensb has a reputation beyond reputeradensb has a reputation beyond reputeradensb has a reputation beyond reputeradensb has a reputation beyond reputeradensb has a reputation beyond reputeradensb has a reputation beyond reputeradensb has a reputation beyond repute
Default

Its been a while since I updated this, but I have made enough progress in my free time to complete a prototype that I currently use during daily driving. I have put together some snapshots to illustrate.



The system operates as follows:
  1. Power up. Fetch stored Bluetooth address of previously attached device. If there is no previously attached device, enter discovery mode and wait for a connection.
  2. Once connected, open an A2DP audio and AVRCP control link to the device, then send the Play command to start the media player and receive the current song metadata (track name, artist, album, length).
  3. Send the Next Track command to start a new track and capture its metadata.
  4. Construct the appropriate iPod formatted metadata response commands.
  5. Begin responding the the Z iPod interface connection requests via the 30 pin connection, including the metadata response commands when needed.

Once the initialization is complete, the system will unlock the iPod interface control on the screen and allow the audio to pass through to the stereo. Media control is passed to the connected BT device via the iPod interface. The iPod commands are decoded and translated into BT multimedia commands. The resulting metadata is translated back into iPod command format and sent when requested to update the onscreen display in the car. To control the remote BT player:
  1. Use the stereo controls in the dash or on the touch screen to play pause, or change tracks.
  2. Use the steering wheel controls to send play, pause, next, or previous track commands.

I currently use the prototype to play static and streaming audio in my car via Bluetooth. The display currently shows me:
  1. Track name
  2. Artist
  3. Album
  4. Elapsed time
  5. Number of track changes

So far, I have not had any problems with it operating with the other systems. When I get a phone call, It automatically sends the pause command witch causes my phone to pause the current track and answer the phone, then resumes play once the call is hung up just as you would expect it to do with an actual iPod connected.

I am currently adding a feature that will allow the audio to be transferred via a cable from the phone headphone jack to the iPod interface instead of the BT interface if desired to overcome the limitations of 16 bit BT audio quality. Personally, I think the quality is just fine, but others may be more picky. (I consider myself to be picky!) The idea is that with this configuration, only the AVRCP control link will be established if there is an audio cable detected. That way, the user gets the direct audio feed but can still control it via the car's various interfaces via the BT.
radensb is offline   Reply With Quote