Jump to content
bradnic

30 pin bluetooth dongle with AVRCP 1.3 or greater for ID3 tag support?

Recommended Posts

Software update using a micro SD card is often the easiest way with modern CPUs.

 

Definitely a point, and I have done such things in the past. I just wasn't planning on such a complex construction here. Having an SD card implies more interfacing, and way more software, having to deal with a file system even...

But if you have some simple chip with enough capabilities, and an interface already in place, I would definitely consider it.

Share this post


Link to post
Share on other sites

I think an SD interface is easier to implement than USB,but I might be wrong.  Simon was doing work with an ARM Cortex, he came to the conclusion that an SD card software update would be the easiest - I think actually running directly from the SD card.  So the main unit itself just has a boot loader and all the OS and software are on the SD card.

Share this post


Link to post
Share on other sites

I think an SD interface is easier to implement than USB,but I might be wrong.  Simon was doing work with an ARM Cortex, he came to the conclusion that an SD card software update would be the easiest - I think actually running directly from the SD card.  So the main unit itself just has a boot loader and all the OS and software are on the SD card.

 

There are microcontrollers who have serial ports and USB port already built in, along with about 128K of flash and around 16K of RAM. Plenty for my needs, but you will not run a traditional OS, with a file system, and SD card interface and all that on such a chip.

And it all comes in a 28 pin package...

I was just researching a bit, and it seems they do have the ability to be setup to reprogram using USB. I need to read up some more, but in essencei check out the 32-bit CPUs at microchip.com

 

  Johnny

Share this post


Link to post
Share on other sites

To sum up my current state:

 

I have a development setup where I today can control my phone from my car. I get both track, artist and album information. Both from Android phones and iPhones. And both with the built-in player as well as with apps like spotify.

The development environment is done with a normal computer and various equipment to hookup bluetooth and the ipod interface.

AVRCP 1.4 browsing almost works. I have some issue when reading large lists on my stereo, but I'm working on fiixng that.

 

Android phones only support AVRCP 1.3, so that is a limitation I can't get around. But current track info works fine.

 

I've started on the schema for the "final" product, but I have not finished that yet. And then I need to get PCBs done. The software I'm writing now will mostly be uasble in the end solution as well, but it will be an embedded CPU instead of a normal computer. I've found a bluetooth module that I'm using, which means all parts are already figured out, and known to work good enough for my needs.

The size of the final thing will be about the same size as other bluetooth 30-pin modules, so it won't be large. But I can give a report once I'm that far along as well.

 

  Johnny

I made an account to post this because I am using a Viseoo Tune2Air WMA1000 in my car and was searching around for why I could not get any song text displayed with my android phone. I don't have a BMW but it looks like you are trying to make a bluetooth to 30pin ipod dongle similar to the Tune2air?

If so, count me as another person interested in this.

Maybe you can start a crowdfunding campaign? You might want to look here https://www.facebook.com/video.php?v=524123540990839 for more people unhappy that the Tune2Air does not support song text with android. Although it is a bit old...

 

Also here: http://forum.xda-developers.com/xposed/modules/mod-spotifyavrcp-bluetooth-track-info-t2548922/post48565483#post48565483 even though this is even older...

Edited by timmyt

Share this post


Link to post
Share on other sites

I made an account to post this because I am using a Viseoo Tune2Air WMA1000 in my car and was searching around for why I could not get any song text displayed with my android phone. I don't have a BMW but it looks like you are trying to make a bluetooth to 30pin ipod dongle similar to the Tune2air?

If so, count me as another person interested in this.

Maybe you can start a crowdfunding campaign? You might want to look here https://www.facebook.com/video.php?v=524123540990839 for more people unhappy that the Tune2Air does not support song text with android. Although it is a bit old...

 

Also here: http://forum.xda-developers.com/xposed/modules/mod-spotifyavrcp-bluetooth-track-info-t2548922/post48565483#post48565483 even though this is even older...

The developer has already said (a) he's not trying to get rich and  ( b ) he's doing it as a 1-man operation (read: making oodles of them would be long wait and that never works well in my experience; someone starts bad mouthing because of the wait, etc. etc.)

Edited by spiicytuna

Share this post


Link to post
Share on other sites

I made an account to post this because I am using a Viseoo Tune2Air WMA1000 in my car and was searching around for why I could not get any song text displayed with my android phone. I don't have a BMW but it looks like you are trying to make a bluetooth to 30pin ipod dongle similar to the Tune2air?

If so, count me as another person interested in this.

Maybe you can start a crowdfunding campaign? You might want to look here https://www.facebook.com/video.php?v=524123540990839 for more people unhappy that the Tune2Air does not support song text with android. Although it is a bit old...

 

Also here: http://forum.xda-developers.com/xposed/modules/mod-spotifyavrcp-bluetooth-track-info-t2548922/post48565483#post48565483 even though this is even older...

 

Correct. What I aim to do is pretty much what the Tune2Air almost, but does not quite do. Yes, the device should work in general with any head unit. That said, my current test device is a Becker Car stereo. I'm happy to fix thing if there turns out to be any special quirks required for some units, as long as we can work out what they are.

Feel free to spread the word, as I personally are rather unhappy with Viseeo. I have two of their Tune2Air myself. Happy to sell them once I have my unit working.

(I alse have a few other similar devices from other manufacturers, but they do not even offer AVRCP 1.0 functionality, so they are even more useless.)

 

Crowdfuncind is not neccesary. I don't have any problems funding the development myself. If it turns out there is a huge demand for 'em, I guess I'm going to contact some company to make them. But I doubt that will happen.

 

 

The developer has already said (a) he's not trying to get rich and  ( b ) he's doing it as a 1-man operation (read: making oodles of them would be long wait and that never works well in my experience; someone starts bad mouthing because of the wait, etc. etc.)

 

Right. People will have to understand that I'm doing this on my own in evenings/weekends because I want it myself.

As soon as I have the first actual prototype working (not counting my development environment) I'll start taking actual orders. Right now I'm more just wanting to spread the word, and get some morale boost that makes me feel better sitting up all night long...

As well as also get some potential feedback, and tell other people that this is definitely doable, and Viseeo and other companies are ripping us off.

(Also, if someone actually already had a solution, I would be very happy to buy that instead of making it myself.)

 

  Johnny

Share this post


Link to post
Share on other sites

Ok, I understand. I made posts in those other places letting people know to come look here if they are interested.

I would think that Viseoo could just make a firmware update to support these features but I have no idea how difficult that would actually be.

Share this post


Link to post
Share on other sites

Ok, I understand. I made posts in those other places letting people know to come look here if they are interested.

I would think that Viseoo could just make a firmware update to support these features but I have no idea how difficult that would actually be.

 

Cool. Thanks. The Tune2Air speaks AVRCP 1.0, which gives you the ability to play/pause/skip. If you add AVRCP 1.3, you will get current playing track information. It is not that hard to do this, but it do depend on how much processing power the Tune2Air actually have. I have not opened one up to check what hardware is in there.

I have spoken with them, and it's hard to even get a straight answer out of them. Initially when I spoke to them, they claimed that it spoke AVRCP 1.4, which is just plain incorrect. After a while they just seemed to ignore me on that point. I also tried to point out that it was pretty unstable, and even made a video showing the problems (it's on youtube), and after that they instead just blamed my stereo, since it was "not factory installed". I tried pointing out that an iPhone works just fine, and it's the Tune2Air which isn't working right, but they never even tried to come up with any solution, and seemed to imply that I was the only one reporting any problems to them, and my problems was because of the aftermarket stereo (no matter that it fulfilles Apples requirements). (By the way, Tune2Air do browsing using the Apple AAP (or iAP) protocol, which is exactly the same on the iPod interface as over Bluetooth, so in short, they do not interfere with communications between the stereo and the iPhone, they just act as an intermediat between the cable and bluetooth.)

 

Anyway, my software do work right, and handles all of this fine, and is working very stable. I have just spent another night experimenting and testing in my car, and I discovered a problem with the browsing function.

 

The response times to queries on the iPod interface seems pretty tight. Having an iPhone directly connected gives playlists and so on pretty immediately. AVRCP 1.4 Bluetooth browsing is somewhat slow when running against the same iPhone. Slow enough that my stereo actually times one before showing any results.

I don't see any proper way of solving this. I could cache data, but since the browsing normally means changing a folder and immediately reading out the contents of it, I don't really have time to cache things before it is needed. I would have to cache *everything*, which will take lots of memory.

 

So it might in the end not be possible to fake an iPod as far as browsing goes, using bluetooth. Right now I'm thinking that I might just skip the browsing function. Possibly just present no playlists, artists, albums and so on... Instead just give the songs with fake names such as "Track nnn", when browsing.

The current playing song and details works fine.

This would obviously only affect people who have phone that actually do support AVRCP 1.4 or newer, and would restrict their ability to browse the device.

 

What is peoples general feeling about that? Do people feel that browsing is an important feature, or is just current playing info enough?

 

  Johnny

Share this post


Link to post
Share on other sites

Yeah I noticed that from reading their comments here: https://www.facebook.com/video.php?v=524123540990839 they say:

We think Android phone may not transmit the data to tune2air like iOS does. Normally tune2air will transfer the data to the car once received it from the phone. As tune2air doesn't receive the music data from Android, tune2air transfers nothing so there is no music information displayed on the car screen.

and

Tune2air is following iOS protocol which doesn't support to display tracks etc. from Android devices.

and

We would like to let you know tune2air is using AVRCP1.4 which covers AVRCP 1.3.

 

I had thought before that the iPhone was using AVRCP 1.4 to transmit the song text data. I searched around for info about the apple accessory protocol but I could not find any information that said that this was used over bluetooth, only over wired connections. I am sure you know more about this than me anyways so I could just be wrong.

Share this post


Link to post
Share on other sites

Isn't ti fun, when they (Viseeo) don't even know themself what they are selling...?

Not much hope if getting this fixed when they don't even know what they are doing, or how...

 

Anyway, look at http://www.viseeostore.com/products/viseeo-tune2air-wma1000-blue.html, and down at the bottom you'll find "Supports Apple’s iAP over Bluetooth technology".

 

You just have to search the fine print everywhere...

 

If they actually had been using AVRCP, it would have worked with Android phones as well.

The ultimate silly thing is that they have implemented AVRCP 1.0, since otherwise Android phones would not have worked at all as far as control goes. And they produce some fake information for when you are using a non-Apple device.

 

  Johnny

Share this post


Link to post
Share on other sites

I don't know about the feasibility of doing this, but I am wondering if it would be possible to create a software solution to this problem. For example, to make an app that would detect android trying to send the song metadata via AVRCP 1.3 and then also send that data over bluetooth in the apple iAP format so that the tune2air would recognize it.

 

I couldn't find anything like this and I imagine that google would ban such a thing from the google play store because of licensing restrictions with apple or something.

For example, here is an app which sends android notifications out over bluetooth AVRCP: https://play.google.com/store/apps/details?id=com.github.grimpy.botifier&hl=en

Edited by timmyt

Share this post


Link to post
Share on other sites

I don't know about the feasibility of doing this, but I am wondering if it would be possible to create a software solution to this problem. For example, to make an app that would detect android trying to send the song metadata via AVRCP 1.3 and then also send that data over bluetooth in the apple iAP format so that the tune2air would recognize it.

 

I couldn't find anything like this and I imagine that google would ban such a thing from the google play store because of licensing restrictions with apple or something.

For example, here is an app which sends android notifications out over bluetooth AVRCP: https://play.google.com/store/apps/details?id=com.github.grimpy.botifier&hl=en

 

I did think about that, and tried searching for something, but came up emptyhanded. Apparently Applie requires some special chip with the Bluetooth connection, and that you sign all kind of NDAs to get it, as well as the full protocol spec. So it would appear that will not happen.

 

But that would still leave us with the Tune2Air, which for me just don't cut it. Having to turn my car off and on repeatedly for it to eventually be recognized just sucks.

Share this post


Link to post
Share on other sites

A short update. I have the software working ok (already rewritten it twice). But this is running on a laptop, but with bluetooth connection to a phone, and the ipod connector to my car stereo.

 

I have also decided on a CPU, and I have the components at home to build my first prototype (both CPU, ipod connector and bluetooth module). I need this in order to check that all signals are correctly routed, and levels look good. Also, I don't know what issues I might have with sound quality until I've tried a few things out. I've been a bit short on time, so I haven't been able to solder the prototype together yet. I hope to get that going in the next couple of weeks, along with getting my code running on the target CPU.

 

Too many other things distracting me from time to time. But just so that you know that this project is very much alive, and at this point I am not forseeing any actual issues. It's really just a question of time. Also, software upgrade over USB is a part that I have not really started looking into yet. That will probably be the last item to fix before this is "done".

Share this post


Link to post
Share on other sites

@bqt, how is your project getting along? I would be interested also if this would work in an audi A6 with mmi 3g.

Tune2air has been working quite stable for me though but I really would like to see track info and have a way to browse.

Have you looked at podmode? It seems to do what we are looking for, except that it judt recognises 1 bluetooth chip (the hc-05). forum.xda-developers.com/showthread.php?t=2220108

Share this post


Link to post
Share on other sites

Sad to say that I have had way too many other distractions, so progress have been really slow.

 

Status is that the software works fine on my development platform. However, that includes a laptop and various adapters. I have a CPU that I want to build this on, which will shring the whole thing down to a small PCB, but I have not had time to actually finish the prototype board with that CPU yet. Essentially, what is needed is a couple of days do finish the schematics, and then solder together the components. I have the most important compontents at home - CPU, iPod connectors, bluetooth module, power supply... What I need to finish is the passive components parts of the schematics. And once the prototype is running, I can finish the proper PCB and then get a few manufactured, and test that.

 

On the software side, my remaining concern is writing the code to be able to upgrade the firmware over USB, but that shouldn't really be a big problem. But I haven't started looking at that yet. For the prototype I'll just flash the CPU outside of the board, in a socket for that purpose.

 

And as far as the software goes, the only "problem" I have is that on my stereo, I cannot reliably browse media, as the stereo have a timeout on commands to the Pod which is a bit on the short side compared to how long browsing over bluetooth takes. But I've decided to ignore that problem for now. I like to have everything working right, but the phone I actually use do not support browsing anyway. The only phones that I've found that actuallyl supports browsing over bluetooth are the iPhones (using AVRCP 1.4). Android phones do not appear to support anything past AVRCP 1.3 in any phone I have examined. That said, I will actually sortof do browsing even on those phones, but you'll only see the current playlist, and you'll not see the track title names when browsing, but just "Track nn" in the list. I might work on that later as well, but that will again possibly hit timing problems on my stereo. That said, if someone else have a stereo without such strict timing issues (if my stereo would only give me about 1s more, all would be good), the browsing works fine.

Also, browsing is tricky, since the whole concept is done very differently in the iPod interface compared to the AVRCP 1.4 spec. iPod treats the music library as a database, where you can apply various selections, while AVRCP looks at it as a file system, where you have different paths to music. That means you cannot combine selectors in any random order. So there are probably a few cases where it will not give you the music you are searching for.

 

But apart from browsing, everything else works flawlessely.

 

Now, if I just had some time to finish building the hardware. :-)

Share this post


Link to post
Share on other sites

Oh, yeah. Forgot a few comments.

 

No, I had not seen podmode. Thanks for the link. Yes, it solves the same problem, but I'm not interested in going down that path. What they do is that they have a special app on the Android phone, which talks the iPod protocol for you. All good so far. But that means they need a serial port instead. So then you have both a special app, and special hardware needed. I prefer to only have the hardware, and then use any phone without having to do anything to it. Admittedly this gives other headaches and limitations, as I mentioned above.

Share this post


Link to post
Share on other sites

Many of us already have the tune2air, iirc you do too but we aren't happy with its limitations on Android. A software solution could be a quick and easy fix for all us tune2air android owners.

Share this post


Link to post
Share on other sites

Yes, I have the Tune2Air. And yes, I'm not happy woth it. Both the limitations with regards to anything non-Apple, but also because it is so damn unreliable. For me, it only manages to be recognized by the stereo about 1 time out of 3.

 

A pure software solution would be just fine. A combination of both hardware and software is just not what I want. If I need a hardware solution in the first place, then I want to solve the whole problem there, and then have any AVRCP/A2DP bluetooth device being able to use it.

 

  Johnny

Share this post


Link to post
Share on other sites

Not sure how you expected a hacked podmode to solve your problem. podmode expects a serial port. The Tune2Air do not look like a serial port.

If you were to rewrite podmode to instead talk the Apple proprietery iAP protocol, which is its own bluetooth profile, then you would be in business. However, as far as I can tell, Apple might have done some ugly tricks to prevent others from doing iAP over bluetooth without an additional chip from Apple which provides some kind of authorization.

But you should investigate that further, and if you figure it out, it would be cool.

 

  Johnny

Share this post


Link to post
Share on other sites

Yes. And that was/is using a bluetooth module that presents itself as a serial port. And then you just carry that serial port forward on the actual serial interface of the Ipod connector.

 

The thing is, Bluetooth is way more complex than you maybe understand. It's not just "transport bytes between two points". Bluetooth have different profiles, which provides different services. Bluetooth at the bottom end is a packet based protocol. It sends packets. So the serial port profile (SPP) gives you services that you need to communication with a serial port. Things like sending a byte, receiving a byte, changing modem control signals, and so on. The Apple iAP is indeed a serial port interface when we talk about how it appears on the 30-pin connector. However, when Apple did this for Bluetooth, they did not model it as a serial port, but instead have a interface which more directly maps to the actual messages that are exchanged in iAP.

And from the Bluetooth point of view, this is a different profile, with different functionality and a different interface. You cannot send/receive a stream of bytes over that thing.

And then you have Bluetooth profiles like AVRCP, which once more is different to a serial port, but in yet other ways. And you have A2DP. And HFP. And SAP. And PBAP. And a gazillion other Bluetooth profiles. A device can implement one or several profiles. But they are all unique, and you cannot connect a SPP client to an IAP service (for example). And you can have several different connetions active at the same time, between the same devices, for different services.

 

So the podmode looks at an Ipod interface as a serial port. Which works fine when you have the actual 30-pin connector. The Bluetooth solution they did is essentially just having a Bluetooth module that gives you a (remote) serial port, and then you connect that to the serial port of the 30-pin connector, and the whole Bluetooth inbetween is pretty much transparent.  (It's like extending the serial port over a wireless connection, but it's the same as if you were directly connected to the serial port that the Bluetooth module is connected to.)

 

Tune2Air do not present a serial port. If it would, it would not work with an iPhone, because the iPhone do not talk iAP over Bluetooth using the SPP profile. It uses the iAP profile.

Share this post


Link to post
Share on other sites

I guess I understand and building the custom bluetooth cable like in that thread won't work either because audi and BMW require the 3.3V accessory detect pin

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×