Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

Home Forums Product Discussion & Questions BeoSystem Beosystem integrating networkplayer project

Viewing 19 posts - 1 through 19 (of 19 total)
  • Author
    Posts
  • #73046
    type81
    BRONZE Member

    It was around Christmas, free from work, high energy level.
    Endlessly scrolling on the internet, and bought me a Beosystem 7000 black edition with a nice set of Beolab 8000 speakers.
    Beomaster, Beogram CD and the rare black edition Beogram 7000 🙂
    Yes, the Beocord is missing. Still missing.. But maybe I don’t want a Beocord, for those 2 audio cassettes I have.
    I have also a 5500 set and a 5000 set which are both complete, but the Beocord is never playing in those sets.
    Maybe I need some more modern component, but it doesn’t exist. Some sort of networkplayer to lift the system into the new era.
    If it doesn’t exist, maybe I can create it myself. A new search on the internet learned me I am not the first, but let’s get inspired by what others did.

    My first inspiration: The Beomodern project by Henryk.
    Introducing BeoModern
    He created a real nice device, and it triggered me a lot. But it’s based on microcontrollers I have no knowledge of.
    So I decided to see if I can create something like this project but with the audio streaming software of Volumio on a Raspberry Pi.

    My requirements:
    – It has to integrate within the existing Beosystem ecosystem (5000/5500/6500/7000)
    – The Beomaster is the master, and has to stay the master. The streamer system has to listen to the Beomaster commands (ir remote commands also from the Beomaster)
    – It has to look like it was made by B&O
    – I want LED matrix screens in the same color as the rest of the system to show what the streamer is playing
    – Audio streaming from different sources (the more the better, Volumio helps me al lot)
    – Internal SSD harddisk for ripping music from my CD collection
    – A modular system. If a component fails, it has to be pretty easy to replace it.

    In the next few posts I will guide you through my journey of building this neat little device which is at 80% of completion at the moment.

    • This topic was modified 1 month ago by type81.
    • This topic was modified 1 month ago by type81.

    Location: Netherlands

    My B&O Icons:

    #73053
    Guy
    Moderator

    Looks good!  Looking forward to hearing more about the project! 😃

    • This reply was modified 1 month ago by Guy.
    • This reply was modified 1 month ago by Guy.

    Location: Warwickshire, UK

    My B&O Icons:

    #73061
    type81
    BRONZE Member

    First things first. How to listen to a Beomaster datalink? I didn’t have a clue.
    But happily you are rarely the first one to try and find something out.
    So a search on the internet pointed me to a project on Github.
    GitHub – toresbe/datalink: B&O datalink reverse engineering effort

    This project analyses the Datalink port with an Arduino. Just what I needed.
    A microcontroller which can control the system on the lowest level, and listen to the commands from “the boss”
    In my case I use the BL80 analyzer as starting point.
    A tape device on this ecosystem talks with the older BL80 standard, an AUX device talks over the more advanced BL86 standard.
    I want the Beomaster to think the device is a “Tape 2” device. So I can use the more basic BL80 standard.
    Let’s try. My good old Beomaster 5500 which I use for tests like this will be the test candidate.

     

    Location: Netherlands

    My B&O Icons:

    #73064
    type81
    BRONZE Member

    After a lot of testing with the remote control, the codes were making sense to me so I created a little sheet with the commands I am interested in.

    Now that I understand what the codes mean, I can try to do something with the received commands from the Beomaster.
    Let’s try to switch a relay as soon as we get code 0xAB.
    I need it to power on the Raspberry Pi with the Volumio streamer when we switch the input to Tape 2 on the Beomaster.

    Location: Netherlands

    My B&O Icons:

    #73066
    type81
    BRONZE Member

    Now we need a housing which gives the look and feel of a real B&O device.
    There was another Beomaster 5500 lying around in the most appaling state you can imagine.
    Full of scratches, all working internal components were transplanted into other 5500’s to give them a new life.
    All defect parts were put into this little old scratchy fellow. Time to take his internals of and use the housing for something nice.

     

    • This reply was modified 1 month ago by type81.

    Location: Netherlands

    My B&O Icons:

    #73074
    type81
    BRONZE Member
    As mentioned before, I want the system to be modular and parts need to be replaceable without a lot of soldering.
    Also, I don’t want hundreds of single wires from one to another component.
    Ideally there should be one connector with a flatcable on each part, and some sort of connecting board where all comes together.
    This meant I had to create a breakout board for the Arduino. I found a nice board on Amazon which could help me with this.
    Combined with a 10 pin IDC connector it ticked all the requirement boxes.
    Power can also be applied via this connector, so the huge power plug which normally supplies the voltage to a Arduino could be omitted.
    • This reply was modified 1 month ago by type81.

    Location: Netherlands

    My B&O Icons:

    #73079
    type81
    BRONZE Member
    Next: Create a baseplate which houses a standard universal grid PCB, and a Raspberry Pi.
    This baseplate is also mounted on the internal frame, and is not connected to the bottom plate of the Beomaster housing.
    The universal grid PCB will be the central PCB, to which all components will connect (ideally by a flatcable)
    In the background already a sneak preview of the testing of LED Matrix displays from the Raspberry Pi.
    The Raspberry Pi on the picture is not the Pi which will be the Volumio streamer, but this Pi will control the LED displays and talk to Volumio with API calls.
    Via this API calls we get the currect state of the streamer to project on the displays, but also sends commands to Volumio like start/stop/next etcetera.
    The first components are mounted on the print. A 40 pin IDC connector to the Raspberry Pi, a 20 pin IDC connector to the Arduino
    The power supply is connected to the PCB and the first relay is situated.
    Underneath the 40 pin flatcable you see 2 small PCB’s. Those are voltage translators.
    This is because the Arduino has a 5 volt GPIO voltage, and Raspberry Pi operates on 3,3 volt level.
    • This reply was modified 1 month ago by type81.
    • This reply was modified 1 month ago by type81.

    Location: Netherlands

    My B&O Icons:

    #73081
    kknyc
    SILVER Member

    wow, love this project, and hope to add streaming to my 5500 system. Subbed for inspiration👍

    My B&O Icons:

    #73093
    TK
    BRONZE Member

    Keep up the good work.  Looking forward to seeing the finished product.

     

    #73102
    type81
    BRONZE Member

    About the voltage translators.

    I took 2 KY-051 translators for the communication between the Raspberry Pi and the Arduino.
    It was my intention to talk over I2C, but for some reason I didn’t get it to work.
    So I made a simple solution with 5 GPIO pins. Simple set a binary code on those 5 pins, and use a 6th pin as ACT pin.
    As soon as the code is on the pins, toggle the ACT pin and the Python script on the Pi takes reads the binary code.

    with 5 bits I can send 32 different codes. That should be enough for my usecase
    I’m more a hardware guy than a software guy. So maybe there are much more simple solutions, this is what I got working.

     

    Location: Netherlands

    My B&O Icons:

    #73107
    type81
    BRONZE Member
    Now the really nice stuff, we want flashing lights 🙂
    The Beomodern project by Henryk was talking about HDSP2112 screens. Nice 80’s retro LED matrix screens.
    8 characters per screen, the possibility to position more screens next to each other and controllable with gpio pins on the Raspberry Pi.
    I found a really nice website with all info I needed to control the display(s) with Python.
    LED display HDSP-211x | Arno Welzel
    A little bit of experimenting gave me pretty soon a nice flashing disco.
    As you can see there a a LOT of wires. This was a bit of a headache. This would mean a huge flatcable to the frontpanel.
    Also, because of the 6 gpio pins from the Pi to the Arduino there were not enough GPIO ports left on the Pi to control 3 screens which I had in mind.
    It would be nice if I could control the screens with some sort of display controller which is small enough to be situated behind the frontpanel.
    My solution: A MCP23017 GPIO expander.
    This fellow is a I2C bus driven GPIO expander. When connected you get 16 extra GPIO ports per IC.
    I2C bus control is 2 wires (clock/data), and some wires for power supply of the IC and screens.

    Also, you can control different expanders on the same bus by addressing them different.

    I decided to give each of the matrix screens their own GPIO expander. This way I am able to control them independent, but also be able to cascade it to show longer text.

     

    • This reply was modified 1 month ago by type81.

    Location: Netherlands

    My B&O Icons:

    #73115
    Tignum
    GOLD Member

    So cool! Waiting to see your post about VU meters! 😁

    Regards, Johan

    Location: Netherlands

    My B&O Icons:

    #73121
    type81
    BRONZE Member
    • This reply was modified 1 month ago by type81.
    • This reply was modified 1 month ago by type81.
    • This reply was modified 1 month ago by type81.
    • This reply was modified 1 month ago by type81.

    Location: Netherlands

    My B&O Icons:

    #73131
    type81
    BRONZE Member

    Now that the screens are ready, they need to be connected to the Raspberry Pi.
    At the time I built the central connecting PCB, the idea was to create 1 large screen but this was impossible without the “tools”
    So I need to connect 2 screen PCB’s to the main PCB, but I anticipated for just 1.
    Creating a second socket would imply a complete redesign of the main PCB.
    I decided to create an intermediate PCB.
    Behind the front panel where normally the CPU of the Beomaster resides I had enough space to position this extra unforseen PCB

    Location: Netherlands

    My B&O Icons:

    #73137
    type81
    BRONZE Member
    • This reply was modified 1 month ago by type81.
    • This reply was modified 1 month ago by type81.

    Location: Netherlands

    My B&O Icons:

    #73141
    type81
    BRONZE Member

    So cool! Waiting to see your post about VU meters! 😁

    Regards, Johan

    Thought about it, but in my usecase it’s not that easy. The Pi which controls the screens doesn’t handle the music streaming.

    Location: Netherlands

    My B&O Icons:

    #73304
    type81
    BRONZE Member

    Your VU question triggered me to try. But the choice for using MCP23017 GPIO expanders behind the screens makes this nearly impossible.
    That I2C driven solution is simply not fast enough to process the fast screen changes.
    I had it sort of working but after 2 seconds the screens stop working.
    It would be possible if I redesign the screen PCB’s with a SPI driven solution but this would imply a full redesign of all my PCB’s.
    So for now I’ll stick to the curent design without VU meters

    Location: Netherlands

    My B&O Icons:

    #73323
    Tignum
    GOLD Member

    What you accomplished is really very cool!

    Johan

    Location: Netherlands

    My B&O Icons:

    #75425
    beosthlm
    BRONZE Member

    Really nice work so far! Love the look of those matrix LEDs! And impressive what you have got together so far. Keep up the good work!

    Location: Stockholm

    Favourite Product: BeoSound 9000

Viewing 19 posts - 1 through 19 (of 19 total)
  • You must be logged in to reply to this topic.