Announcement

Collapse
No announcement yet.

Slider radio, updated

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Slider radio, updated

    New to posting to the forum here, hi all, I'm Jay. So I bought an 88 325is last year that is all stock except for the head unit. I like the convenience of Bluetooth as much as the next guy, but it's flashy and kind of distracting, and really, I just need a project on a car that I otherwise want to keep stock.

    So a few months ago I thought, wouldn't it be cool if one of the factory radios could have been designed with today's guts: looked the same, interfaced basically the same, but had Bluetooth input, preamp outputs, better EQ control, etc. I started looking around online and couldn't find anyone that's done such a thing, so that's usually when I decide it's time to do it :D This thread is to document the project. Warning: it gets nerdy and electronics-y, its E30 audio on the micro scale, and may not be of interest to everyone, but why not document?

    First question: Which radio do I start with? This one was obvious. For the right look and cool 80s gadgetry, the slider radio wins in my book:



    So the project basically boils down to reverse engineering the user interface of the factory unit, then using a new, programmable computer to control the user interface and drive a new audio system that includes BT input. The trick is that I only want to add functionality, I want it to behave as if it had BT input and better audio control from the factory, but have that coexist with the existing AM/FM/WB radio. Given that, I came up with this flow chart showing what hardware must be added and roughly how signal will need to flow:



    The idea is I'll insert myself between the original microcontroller (MCU) and the front panel, so that I now have ultimate control over the front panel, but have the ability to act in a passthrough mode to preserve existing functionality. My plan is to add BT as just another 'band' in the list you scroll through with the band button, triggering who is driving the front panel depending on the input source. IR slider and EQ controls will always be handled by me now, with replicated but extended controls like a 'SUB' level and 5-band EQ or so.

    I'm going to use a Raspberry Pi and an Arduino in conjunction, mainly because the Arduino is easy to program to do hardware-y things like take a voltage sample of a volume pot or control LEDs, whereas the Pi is a stout-enough mini-computer that runs Linux and therefore has Bluetooth and audio support. They'll communicate via serial port and the Pi will output to a USB sound card ultimately leading to a 4 channel amp. Also not drawn will be a sub channel output.

    On to the reverse engineering! I bought a nice CM5908 unit on ebay and tore in. I found that the display is mounted on its own circuit board that plugs into the motherboard, then all the front panel connection comes through a flat flex cable:



    Cassette deck removed and front panel unplugged, display also removed:


    My initial idea was to run ribbon cables out of the unit and house all my new guts outside the unit so that I kept every bit of original function. Somewhere early, I realized that that was going to be very difficult, and would be fixed by removing the cassette deck.. Doing so clears up enough room to put everything except the sound card in the original case, just running a USB cable out for that. That's the plan for now.

    First thing I tackled was hack the display. I needed to find a good place to break the connection between the original MCU and the display, inserting myself in the middle. Really the only place to do this is in the connection of the display's circuit board (PCB) to the motherboard. Here was my solution there:

    As it was, display is face down, white connector on the end plugs into the motherboard:








    After that, I was able to use the ancient data sheet for the Sanyo chip that drives the display along with the Arduino to successfully control it and write something brand new to its screen. First success!


    Hacking the main connector for the front panel was next. I made some breakout boards so I could wire out the pins to a breadboard in order to figure out what pins were doing what.

    Here I think I just found the LED control pins using the logic analyzer on the Mac.


    Turns out a single chip controls the slider LED bar and the LEDs for buttons 1-6 via some serial SPI data just like the display.

    I struggled for awhile at this point figuring out how the button presses were being read until I learned about multiplexed button arrays. Who knew? I still need to implement that but at least know the path forward now.

    Last on the front connector: the slider. I had no idea what to expect with this one as far as what and how that data was signaled to the MCU. Got out the oscilloscope and ended up finding a pin that has 4 little pulses being sent about every 20ms. Depending on where you put your finger on the slider, your attenuate one of the 4 sensors voltages.


    I had to learn about some analog circuitry to help me sample the peaks accurately, but I finally got that going last weekend. I also found where I can grab the regulated voltage from the volume pot for sampling.

    That's basically up to where I am today. All reverse-engineering is done, now I just need to make it all fit together and work :) First thing is to design and print a PCB that will mount in the enclosure on the old cassette mounting bosses and hold the Arduino and Raspberry Pi, analog circuitry, and all the routing wires. Then it essentially becomes a software project.

    More updates to come! Input welcome.

    #2
    This looks awesome. Can't wait to see how it turns out! Subscribed.

    Comment


      #3
      Looking forward to updates!
      Originally posted by kronus
      would be in depending on tip slant and tube size

      Comment


        #4
        I don't understand a lot of it, but I like it! Can't wait to see it finished!
        My Garage
        2001 Z3 2.5i Steel Gray/Black (Lexi)
        1988 325ix Diamond Schwartz/Black (Izzy)
        1989 325i Cirrus Blue/Houndstooth (Stitch)
        Feedback

        Instagram: Stone.Hopkins

        Comment


          #5
          oh man...so excited to see someone moving forward on this!

          Closing SOON!
          "LAST CHANCE FOR G.A.S." DEAL IS ON NOW

          Luke AT germanaudiospecialties DOT com or text 425-761-6450, or for quickest answers, call me at the shop 360-669-0398

          Thanks for 10 years of fun!

          Comment


            #6
            Nice job on writing to the LCD driver! I'm surprised there was a datasheet. That stuff can be a total hit or miss. Especially for chips that were made pre-interwebs.

            Although you're not the first person to consider this, I haven't seen much done (as Grandpa Luke said) - so congrats! With that, my idea was to fiberglass/abs/epoxy/filler over the cassette hole and use that area for USB, and aux ports - then just add a blue tooth to the output. Regardless what your do.....It would be a one-off thing and not reproducible for sale of course, almost no matter what you do.

            The one flaw I see with your plan (hope you don't mind some input) is that a Pi's boot up time is super, super slow. Even stripping out un-needed things at boot, you're looking more then 30 seconds, to even a few mins. I know it doesn't sound like a lot, but it's forever when you just want to hear music.

            I'd suggest dumbing it down, and just use the deck as a faux front end as a generic bluetooth player controller for a phone. Next track, back, volume up/down, artist, song display, and stuff like that.
            Last edited by george graves; 09-09-2016, 02:36 AM.
            Originally posted by Matt-B
            hey does anyone know anyone who gets upset and makes electronics?

            Comment


              #7
              Originally posted by george graves View Post
              Nice job on writing to the LCD driver! I'm surprised there was a datasheet. That stuff can be a total hit or miss. Especially for chips that were made pre-interwebs.

              Although you're not the first person to consider this, I haven't seen much done (as Grandpa Luke said) - so congrats! With that, my idea was to fiberglass/abs/epoxy/filler over the cassette hole and use that area for USB, and aux ports - then just add a blue tooth to the output. Regardless what your do.....It would be a one-off thing and not reproducible for sale of course, almost no matter what you do.

              The one flaw I see with your plan (hope you don't mind some input) is that a Pi's boot up time is super, super slow. Even stripping out un-needed things at boot, you're looking more then 30 seconds, to even a few mins. I know it doesn't sound like a lot, but it's forever when you just want to hear music.

              I'd suggest dumbing it down, and just use the deck as a faux front end as a generic bluetooth player controller for a phone. Next track, back, volume up/down, artist, song display, and stuff like that.
              Right now my plan is hung up because I cant seem to find such a thing as a "stepper motor emulator", as the BMW decks get all fussy when they dont see the tape motor moving

              Closing SOON!
              "LAST CHANCE FOR G.A.S." DEAL IS ON NOW

              Luke AT germanaudiospecialties DOT com or text 425-761-6450, or for quickest answers, call me at the shop 360-669-0398

              Thanks for 10 years of fun!

              Comment


                #8
                Originally posted by george graves View Post
                Although you're not the first person to consider this, I haven't seen much done (as Grandpa Luke said) - so congrats! With that, my idea was to fiberglass/abs/epoxy/filler over the cassette hole and use that area for USB, and aux ports - then just add a blue tooth to the output. Regardless what your do.....It would be a one-off thing and not reproducible for sale of course, almost no matter what you do.
                Cool! I figured I couldn't be the first to have this idea.

                Originally posted by george graves View Post
                The one flaw I see with your plan (hope you don't mind some input) is that a Pi's boot up time is super, super slow. Even stripping out un-needed things at boot, you're looking more then 30 seconds, to even a few mins. I know it doesn't sound like a lot, but it's forever when you just want to hear music.
                Thanks for the input. This was one of my main concerns. From what I've seen, I should be able to get the Pi's boot time down to < 20 seconds when it's all stripped down for headless mode. It's a downside, but I don't think 20 seconds is a deal-breaker, especially if I can automate the connect and play so I don't have to actually wait for it. Most modern units take 5-10 seconds to connect up anyway.

                The critical moment in the boot sequence is to get the Arduino to power up and be ready for SPI LCD data from the MCU when it writes the initial screen buffer. I think I'm good here luckily. This way the Arduino can sync its state against the MCU mode (security code/AM/FM/WB) and hold on to it until the Pi powers on and comes down asking for it. All the while, the Arduino rights something like "BOOT". Once Pi is up, it takes over.

                Comment


                  #9
                  Originally posted by jaysterling View Post
                  Cool! Thanks for the input. This was one of my main concerns. From what I've seen, I should be able to get the Pi's boot time down to < 20 seconds when it's all stripped down for headless mode.
                  I'd think the key is, If you can find a program that will pick up on playing the last song/playlist you left off at, 20 seconds might be "ok". For me, that would drive me crazy.

                  Originally posted by StereoInstaller1 View Post
                  I cant seem to find such a thing as a "stepper motor emulator"
                  The deck is looking to make sure the old school tape isn't getting "eaten" up by the deck, so looking at the two reels to see one is giving up tape, and one is reeling it up. If you grab one of those cheap Casset tape to AUX things, you'll see they have gears in them. Done and done.

                  There are two ways to approach this. Take over the entire deck as Jay is doing with smarts, or out smart it with cheap tech and a hammer.
                  Last edited by george graves; 09-10-2016, 02:13 AM.
                  Originally posted by Matt-B
                  hey does anyone know anyone who gets upset and makes electronics?

                  Comment


                    #10
                    You guys are awesome, keep up the great work!

                    Also, is there a way to disconnect the slider? Mine is possessed and goes back and forth all the time

                    Comment


                      #11
                      Originally posted by Michael Star View Post
                      Also, is there a way to disconnect the slider? Mine is possessed and goes back and forth all the time
                      disconnect? Try cleaning it with a q-tip with something (IPA, or super slightly soppy water)
                      Originally posted by Matt-B
                      hey does anyone know anyone who gets upset and makes electronics?

                      Comment


                        #12
                        I tried that and it did get better, it still likes to move around randomly. It just seems weird to me that the infrared can go bad like that

                        Comment


                          #13
                          I love this idea.
                          Subscribed.

                          Comment


                            #14
                            So I am looking at doing something similar but much much lamer. I made a post about what I was going to do here http://www.r3vlimited.com/board/showthread.php?t=394083 . I was directed to your post and I might need some help.

                            My problem is I am not smart. I am not so good at finding what chips are what and what the pin outs are. Any tips?

                            Comment


                              #15
                              Originally posted by Michael Star View Post
                              You guys are awesome, keep up the great work!

                              Also, is there a way to disconnect the slider? Mine is possessed and goes back and forth all the time
                              Actually, if you unplug it, it jumps around anyway because it's confused with no input pulses.

                              Originally posted by Colbatronbmwes View Post
                              So I am looking at doing something similar but much much lamer. I made a post about what I was going to do here http://www.r3vlimited.com/board/showthread.php?t=394083 . I was directed to your post and I might need some help.

                              My problem is I am not smart. I am not so good at finding what chips are what and what the pin outs are. Any tips?
                              Along the way I've been considering how you might do this project if you were a little more sane than me. I can't speak for other radios, but in the slider radio, there is a nice 3-pin connector that plugs into the cassette assembly and carries the stereo tape deck output to the rest of the board. If you look in the fourth photo I posted, the overhead shot of the stereo inside, you'll see the connector hovering above the orange flex cable. It has a red, white, and black wire coming into it. You can basically think of this as an aux input that you could (with a different connector) plug any 3.5mm cable into. The only issue is you need to trick the radio into thinking there is a cassette inserted, which causes the input to switch from radio to cassette. I know this has been done. You'd also need to power the BT dongle. 12V switched power can be sourced from the 5 pin connector originally used to power the cassette assembly (hovering near back left of deck in same picture).

                              Comment

                              Working...
                              X