Home › Forums › General Discussion & Questions › BEOTOOTH 5500 : A Datalink Bluetooth Receiver
- This topic has 50 replies, 14 voices, and was last updated 2 months, 3 weeks ago by
pilatomic.
-
AuthorPosts
-
23 July 2022 at 17:05 #32476
deleted
5 November 2023 at 12:02 #50219Hello fellow B&O owners,
I have been working on this project on and off for quite a long time, even had to restart from scratch at one point when it turned out the hardware I had selected was a dead end, but it’s now becoming a reality. Let me introduce : the BEOTOOTH 5500.
Short version : It’s a Bluetooth receiver that happens to be very friendly with my Beomaster 5500.
Longer version : It’s a Bluetooth receiver that happens to be very friendly with my Beomaster 5500… by impersonating a Beocord 5500 tape player on the Datalink bus, and makes playing music from a phone / PC on a B&O system an experience as enjoyable as using any other B&O device from the same era.
Bluetooth related features :
- Support AAC audio codec for proper quality sound restitution.
- Can be paired with up to 6 Bluetooth devices (Only 1 connected at the same time).
- Pairing entered by pressing the button at the back. Long press unpairs all devices.
Datalink related features :
- Connects to a B&O system using the usual 7-pin DIN Datalink connector.
- Provides audio signals at the same level as other B&O devices.
- Communicates using the Datalink-80 protocol.
- Converts the Datalink commands from the B&O system to AVRCP (1.0) commands for the Bluetooth device.
- Notify the B&O system of link status (Bluetooth disconnected shows as “NO SOURCE”)
- Turns off the system after 5 minutes without Bluetooth link, or 15 minutes without audio activity on the Bluetooth link (Usually means no sound on a mobile device, but means another audio output selected on my Linux PC).
When paired with an AVRCP 1.3 Bluetooth device :
- Notify the B&O system of current playback state (Playing / Paused / Seeking)
- Shows the current track number and live elapsed time on the MCP5500.
- Automatically turns on the B&O system when playbacks begins (AVRCP Status shows “playing”. I did not want the system to turn on as soon as sound is available on Bluetooth, to prevent it happening for every notification my phone receives, and waking up the whole house by the same occasion).
Misc features :
- Powered through a standard USB-C connector (5V 100mA).
- Red LED at the back to show its status (Not connected / Pairing / Paired).
- Small form factor, making it easily concealable.
Missing features :
- Select track by entering track number. At the time being, it seems my phone does not support the AVRCP version (1.6) required to select tracks from their track number, despite claiming otherwise, so I was no able to implement that feature yet.
- Trigger pairing from a special code on the remote. I did not need that one in the end, as I only have 2 devices paired, but I could look into that.
Here is a video of it in action (Please excuse the blurriness of it, my camera is getting a bit old, and we have been so spoiled with perfect 1080p video on internet these last years that I even forgot that not every camera could film that way) :
https://www.youtube.com/watch?v=Swrvj8xP6Dk
I have tested its compatibility with both a Beomaster 5500 (Where I have it permanently plugged as TP1, the Beocord having been relegated to TP2, as only TP1 shows live status on the MCP5500), and a Beosystem 2500 (the latter of does not show any status info, just like it would happen with a Beocord 5500).
As of now I only have one working unit, as the first version PCB I designed ended up requiring a few more tweaks than I had hoped for. If there are enough members interested, I can have a look at producing a small batch of those with all the fixes implemented, so let me know if you want one.
5 November 2023 at 13:03 #50220That is highly interesting – thanks and congratulations on the result.
I see the benefits of using the 5500 and the panel, but it would potentially work with any B&O master/system with a datalink-based A.Tape input port…..as I assume.
Will be interesting to hear how high the costs will be and how many ‘subscibers’ you’d need, befor starting making a batch.
P.S.
The video is ok!MM
5 November 2023 at 14:02 #50221Absolutely stunning development. This is Beoworld! Thank you, tank you, thank you!
Except for the name… BeoTooth? Honestly, it scares me like an MLGWNL (whatever) box profoundly dug in my human body.
Jokes apart, you just made raise BM 5500 prices (jokes not so appart after all…).
5 November 2023 at 14:37 #50222Nice, congrats!
Which BT chip are you using?5 November 2023 at 15:11 #50223Very nice project ? thanks for letting us know about it. Unfortnuate that the status text is not shown on newer system ( I guess that it is other than the BS2500 where this applies?)
If it only is a hobby project and you dont want to be a manufactur /seller of these units an option could be to make the plans available for others to build it themeselves. I am aware that is not for everyone to do, and there might also be an issue with programming of the chip holding the software, but in the end it could save you some trouble, and worldwide distribution could be easier.
Depending on price I might be interested
5 November 2023 at 16:49 #50224VERY nice! I’d be surely interested in buying (either pre-made or kit-form, latter preferred) at least a couple!
5 November 2023 at 17:03 #50225Lovely, count me in as well if the price is right.
I still daily use pilatomic previous Beolnik 5000 upgrade project.
5 November 2023 at 23:49 #50226[…] it would potentially work with any B&O master/system with a datalink-based A.Tape input port…..as I assume.
Indeed. I have also tried it with a Beosystem 2500 where it works nicely, providing controls from the Beosystem and its remote, and automatically turning it on / off. Btw it works on A TAPE but also TP2 input (except that on the BM5500, you loose the live status display when using it on the TP2 port).
Absolutely stunning development. This is Beoworld! Thank you, tank you, thank you! Except for the name… BeoTooth? Honestly, it scares me like an MLGWNL (whatever) box profoundly dug in my human body. Jokes apart, you just made raise BM 5500 prices (jokes not so appart after all…).
Thank you for your enthusiasm, means a lot to me, as I tend to quickly lose my drive after completing a project, and often move to something else without talking much about it. Regarding the name, I know BEOTOOTH sounds a bit cheesy, but it does match the beo* pattern, and it’s cheesy enough that I shouldn’t get in trouble with B&O for using it. If you have a better name in mind, feel free to propose it, nothing is set in stone yet !
Nice, congrats! Which BT chip are you using?
I did a proof of concept about 2 years ago using an ESP32, but couldn’t get a reliable sound stream with anything other than the default SBC codec (which really isnt that good). I then attempted to pivot to Qualcomm chips, but they are really interested in small volume orders. I ended up using the Microchip BM83 module, which works quite well for my use case, except for its really arcane documentation !
[…] ( I guess that it is other than the BS2500 where this applies?) If it only is a hobby project and you dont want to be a manufactur /seller of these units […]
Indeed status display is only on the BM5500 as far as I know (not too familiar with the entire B&O lineup from that era). But control features works on BS2500, so they should work on any Datalink compatible device, and I have yet to test it with my BS9500 (which is currently in storage).
VERY nice! I’d be surely interested in buying (either pre-made or kit-form, latter preferred) at least a couple!
I’ll see what I can do regarding a kit but I think the only solderable item left would the wiring to the datalink connector. Would that still count as a kit for you ?
Lovely, count me in as well if the price is right.
I will try selling it with the same terms as my Beolink 5000 E-Paper kit, and see how it goes. I haven’t determined a price yet, as there are still some things that needs to change from my prototype, and things I have not taken into account, like proper machining of the connector slots in the enclosure (I really prefer not to show the back of the prototype enclosure, with its very DIY knife cuts), buying the proper screws (my random screws box won’t be able to provides another set of matching screws) and determining the actual assembly time required.
Thank you all for you interest ! I’ll keep you posted
6 November 2023 at 10:02 #50227I did a proof of concept about 2 years ago using an ESP32, but couldn’t get a reliable sound stream with anything other than the default SBC codec (which really isnt that good). I then attempted to pivot to Qualcomm chips, but they are really interested in small volume orders. I ended up using the Microchip BM83 module, which works quite well for my use case, except for its really arcane documentation !
Ah, interesting that it wasn’t reliable for you with an ESP32. Been using it myself for a couple of projects already and was always happy. Did you use their IDF SDK or the Arduino stuff?
Yes, I know those BM83 modules. Around for ages I think and come with a hefty price tag for what they are.
Was there a particular reason you just didn’t go with a Linux system? Things tend to be a lot easier then.
6 November 2023 at 10:08 #50228and things I have not taken into account, like proper machining of the connector slots in the enclosure (I really prefer not to show the back of the prototype enclosure, with its very DIY knife cuts), buying the proper screws (my random screws box won’t be able to provides another set of matching screws) and determining the actual assembly time required.
An idea to make it more simple for you could also be to just sell the working PCB and inform what enclosure you have used. I guess for many people doing the mechanical assembly themselves would be an ok compromise.
6 November 2023 at 13:18 #50229This looks like a great project. I’m looking for something like this with airplay 2 streaming – I guess that is a completely different technology to Bluetooth?
6 November 2023 at 14:26 #50230Ah, interesting that it wasn’t reliable for you with an ESP32. Been using it myself for a couple of projects already and was always happy. Did you use their IDF SDK or the Arduino stuff? Yes, I know those BM83 modules. Around for ages I think and come with a hefty price tag for what they are. Was there a particular reason you just didn’t go with a Linux system? Things tend to be a lot easier then.
The ESP32 is mostly okay (except that awful ADC !). I use it for other projects with the IDF devkit (not that Arduino rubbish), but here it came short on 2 points :
First : Connection stability, especially in bad conditions (mostly occurring here when my wool sweater generates a bit of static electricity, that was a guaranteed loss of link with he ESP32). Does not happen often, but losing link even for a few seconds every couple of hours is very noticeable on a audio stream.
Second : Not having a working implementation of a good audio codec (ESP-IDF only comes with the Bluetooth standard SBC codec, and you can definitely here the compression). Some third party have tried porting AAC, which kind of work when using the second CPU to perform the decompression, but it does still have some dropouts from times to times (maybe caused by bus contention due to having the 2 CPU working heavily on RAM data ?).
The BM83 are indeed very expensive for what they do, but they are typically targeted at this kind of low volume products, and the Bluetooth link has been rock solid since I switched to those (not even one unplanned link drop !). Interestingly, I had rejected those in my first search 2 years ago, as back then their firmware did not support AVRCP. It has been updated since.
Regarding using Linux SOC, it definitely was an option. I did not go that way mainly because I am more comfortable with bare metal development, and I do not trust the completeness of the Bluetooth Stack on Linux (AFAIK it is based on a old version of the Android BT stack), I don’t know if AVRCP is properly implemented. Also I like using the simplest tool for the job. And going with a module with integrated antenna almost guarantees EMC compliance by following good practice PCB design, that’s also a plus.
An idea to make it more simple for you could also be to just sell the working PCB and inform what enclosure you have used. I guess for many people doing the mechanical assembly themselves would be an ok compromise.
That’s actually a good idea ! I’ll keep it in mind !
This looks like a great project. I’m looking for something like this with airplay 2 streaming – I guess that is a completely different technology to Bluetooth?
Indeed Airplay is quite different AFAIK, as it requires a proper IP connection (WiFi).
6 November 2023 at 15:27 #50231From what I know there are no connectivity issues with ESP32. Actually its reception quality is pretty good for what it is. For stable operation it requires some external low ESR bulk capacitance. Also some supply rail filtering between ESP and the remaining system is good practice here. All the low cost dev boards you can get are a little short on this end…
Probably let’s not talk about compliance here. It will certainly vanish any fun on such projects. 😉
BlueZ is… well often there is just no way around it when using linux. Although for audio streaming bluez-alsa works pretty nice.
For that other project I was actually thinking about implementing the whole DL communication on the same FTDI chip that already handles the ML communication. It has some nice GPIOs that are more than fast enough to bit bang it. So that could be a nice single chip solution that entirely runs over USB…
6 November 2023 at 16:34 #50232I had made a custom PCB, and tried playing with the decoupling caps (both ceramic and tantalum, values from 10nF to 10µF), but it didn’t lead to any changes. The fact it only happens when radio perturbations are present lead me to believe that there might be an issue with channels scheduling and / or frontend AGC. (Either that, or my PCB had a very bad EMC susceptibility issue, but being such a simple project, I don’t find that too plausible). Also I did most of the test connected to my Linux workstation, so the issue might be there too. Anyway, I turned away from the ESP32 for that project when I could not get other codec working than SBC, and that was a deal breaker.
I’m not a big fan of bit-banging stuff, not with a full Linux running at least, but it seems you have more experience than me on that subject. My approach would be to delegate protocol handling to a small MCU, and have it communicate with the SOC using a local UART or any other dedicated bus. That way the SOC does not have to care about timings.
6 November 2023 at 17:01 #50233values from 10nF to 10µF
Had to use a good 100 uF electrolytic cap combined with 3x 22 uF and fine tuning of the buck converter feedback loop to get the ripple on that rail to an acceptable level. Anyway, as you said not of much interest here.
Somehow DL can only be bit banged. Of course offloading realtime tasks to a dedicated MCU would give best results. Nevertheless DL is so slow and looking to be tolerant enough that you can abuse it quite a lot. For me it works 100% reliable.
6 November 2023 at 21:16 #50234B3OHACK3R wrote:
[…] Somehow DL can only be bit banged. […]Indeed. I meant bitbanging from a SOC, rather than a dedicated MCU.
7 November 2023 at 13:09 #50235This is very cool!
4 December 2023 at 09:53 #50236Hello Beoworlders,
Weeks went by, and this project is now reaching completion. I have received the new PCBs, and got myself access to a small CNC machine to mill the back of the enclosure, so that I’m not ashamed anymore of showing that side of the device. I have also made properly sized labels (the previous ones were too small), and designed and printed a cable holder, that ensures any mechanical strain on the cable is transferred directly to the enclosure rather than ripping the wires off the PCB.
This version does support a USB firmware upgrade process, so that both the MCU and the BT module firmware can be upgraded later.
I also came up with a pricing scheme. My intent is to offer those mainly as kits, only requiring some beginners soldering skills to assemble it. A kit would include :
- A PCB fully programmed, missing the red LED.
- The red LED. (As it is easier to have it flush with the enclosure when soldering it after mounting the PCB).
- Around 80cm of 4 conductor cable.
- The DIN-7 connector.
- The enclosure with properly machined holes, and all screws.
- The cable holder part, with 2 zip-ties.
- The adhesive label.
- The pricing would be 80€ (ship. Excl) for a kit, and 115€ for a fully assembled device.
I still need to spend a bit of time tweaking some features, notably I am looking at a way to change the device Bluetooth name, so that you can have it match the system it is connected to.
Lastly, I have everything needed to build a few kits, except I need to order new enclosures, as I ruined the few I already bought honing my CNC machining skills (no wonder machinist is a real job, who would have thought !), and only the last one ended up living to my expectations.
Based of those 2 points, I expect to be able to provide the first kits in a few weeks. Please contact me in PM if you are interested.
While I work on those last details, here are a few up-to-date picture :
4 December 2023 at 14:07 #50237While I work on those last details, here are a few up-to-date picture :
Someone in love with tantalum caps? 😉
You could evaluate lowering the series resistance of the RC filter on the PCM5102 output a little. Otherwise you won’t be able to hit the THD+N value they are mentioning in the datasheet. Some TI reference designs are….
-
AuthorPosts
- You must be logged in to reply to this topic.