Location: Denmark
BEOTOOTH 5500 : A Datalink Bluetooth Receiver
63 replies
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?
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.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 !
Location: France
My B&O Icons:
From 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...
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...
I 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.
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.
Location: France
My B&O Icons:
Location: France
My B&O Icons:
This is very cool!
Location: Minnesota, USA
My B&O Icons:
Hello 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.
Location: France
My B&O Icons:
Please Log In to Reply
You must be logged in as a BeoWorld member to post replies to forum threads.
or
Join BeoWorld
Register to access the forums, reference material, and exclusive member benefits — including our monthly prize draw.
Become a Member