OLED display retrofit for Alpine head unit - Page 1
Forum section: electronics / repair

author: dinoman64
author_rank: Newbie
timestamp: October 15, 2020, 06:00:23 am
content: Hi guys! This is my first post here. My experience with electronics is pretty basic, so I was hoping some people here could give me some pointers for this project.I recently bought a new head unit for my car, a alpine with this super cool motorized face. The only issue is the OLED screen no longer works.The model specifically is the cda-7889, these used what they called at the time "OELD" displays, which appear to be just an early type of OLED.My only problem is, they don't make replacement screens anymore. I've already went ahead and removed the display module from the front pcb, the display has a controller board attached to it which appears to be using a epson s1d13305f00a1 LCD controller. The OLED panel its self has 2 ribbons, which I would assume one is for the X axis and one is for the Y, they each have some row drivers mounted on the flex. The display resolution is 200x64. I can post some pics of the pcb if anyone is interested.So, my only real option to get this working is to figure out how to make a standard OLED graphic display thats using SPI, to interface with the radio.This is why I'm coming to you guys for help. I have very little experience with things like this, the closest thing I've done to this is some tinkering with an Arduino and some Hitachi character displays.So if anyone is willing to point me in the right direction, or even help me tackle this project I'd really appreciate it!

author: DrG
author_rank: Super Contributor
timestamp: October 17, 2020, 02:58:30 pm
content: I do not have a solution for you. FWIW, here is how I would approach it...You have a CPU instructing the controller and the controller running the LCD. You have virtually no possibility of modifying any code. If you look at the controller's data sheethttps://datasheet.lcsc.com/szlcsc/1809141815_Seiko-Epson-S1D13305F00A1_C7614.pdfyou have at least an idea of how it is running the display. Getting hold of a technical repair manual (rather than just the operating manual) would be a help.This is not a trivial fix in my view.There are a lot of folks out there that are fixing these "near vintage" and "vintage" pieces and probably many more who want to get them fixed. Those communities and searches are where I would spend my effort at first. For example, even a cursory search found that the cable is a known problem with the displays. Can we assume that you KNOW the display is dead - e.g., it has been smashed?If so, you have two basic options: 1) find a compatible display and 2) salvage a compatible display.For the first option, you (or someone) need to understand the controller data sheet and how the display is meant to be hooked up. Then you are going to have to locate a display that can be interfaced to the existing circuitry and that fits the unit. This is not an easy task and that you are not finding anyone who managed to do that may be the best evidence for how difficult the task will be. But, maybe, you can find someone who has. To go it on your own with some limited experience with those ubiquitous 2 X 16 displays used with Arduinos and much simpler and more common controllers may not be a great deal of help - but I admire your gumption if you want to tackle that.The second option is where I might be putting my effort. Finding a broken unit, that has, or might have a working and compatible display, could be your best approach. Again, the communities where people are trying to get these fixed and the "bay" and the off the trail parts suppliers may be the way to go. For example, look at each one of the hits from a search using  the terms ' alpine biolite display repair ' Not expecting that the successful repair for $95 by Alpine, including replacing the display is still going to be an option, but there are many hits there that leadd to other hits and so on..Here is a faceplate for ahttps://www.ebay.com/itm/Alpine-CDA-9884-FACEPLATE-ONLY/363140759014?hash=item548ce03de6:g:ATcAAOSwq9BfdDi6for $30 any chance that the display is compatible?N/M no display on that.... any chance this one might have a salvageable display for yourshttps://www.ebay.com/itm/Alpina-Cda-d855/143782467526?hash=item217a1a57c6:g:w84AAOSwgVZfg1SGNo? OK, but you get the idea.Not real encouraging I guess, but that is my opinion, FWIW. Good luck and let us know how it is going.

author: dinoman64
author_rank: Newbie
timestamp: October 19, 2020, 05:54:37 am
content: First of all thanks for replying!I have scoured the internet looking for info on this fix. The replacement screen is no longer available, I contacted alpine and they told me they no longer repair that unit.The radio is notorious for this problem and units with working screens go for $700+ on ebay, not to mention they rarely come up, I waited about 7 months before the one I bought showed up for sale.As far as other units using the same screen, they also are rare and expensive. These screens will all eventually fail due to some inherent flaw.When I had a look at my screen, I made sure to test all the ribbon cables, and they all where fine. The glass display its self had image burn in and some strange wavy marks along the edge of one of the glass layers, looked like they where starting to separate. In addition to that the layer at the very back of the panel had a crack along the corner, not from rough handling, as it was like this when I removed the display. (possibly from extreme hot/cold environment of a car)From reading various forum posts by others who had this issue, the screen had gradually started to fade in brightness, and then would stop working completely. From this I assumed that it was most likely the display panel its self was the issue, not any flaw with the driver board attached to it, although maybe I'm wrong.Either way, I realized my only options where to live with it (as I'm doing now), keep looking for a working unit, or ideally find a way to make a standard 256x64 character OLED display work with the controller.I've seen IPS screen replacements for the nintendo gameboy, where there is some sort of microcontroller imbedded in the flex cable going to the display to essentially "translate" the data into something a modern ips display driver can use. (https://www.retromodding.com/products/game-boy-advance-ips-lcd)The display I've found that looks to be the same size is this:https://www.ebay.com/itm/White-Serial-SPI-Graphic-3-2-OLED-Display-Module-256x64-w-Tutorial-Connector/291185716166?_trkparms=aid%3D111001%26algo%3DREC.SEED%26ao%3D1%26asc%3D225074%26meid%3Ddd60c7c1b15641a2bf6efafb4932339a%26pid%3D100675%26rk%3D1%26rkt%3D15%26mehot%3Dnone%26sd%3D291185716166%26itm%3D291185716166%26pmt%3D0%26noa%3D1%26pg%3D2380057&_trksid=p2380057.c100675.m4236&_trkparms=pageci%3A2e1e635e-0d9a-11eb-bedd-be9ecfd31614%7Cparentrq%3A23d7b85a1750aaa32b86ab2cffd9b13a%7Ciid%3A1My main intention of posting here was hopefully to find someone who can provide me with some guidance for where I need to start and what I need to learn to accomplish this. If I was able to figure outHere's something I found that encouraged mehttps://hackaday.com/2018/08/29/faded-beauty-dmm-gets-an-oled-makeover/And finally, I will leave some pictures of the display, display controller pcb and front panel pcb for anyone interested:https://drive.google.com/drive/folders/1sSQ9V064ZPsKXdUjHGhnDyoOcCJq3RRn?usp=sharingThanks again!

author: uski
author_rank: Frequent Contributor
timestamp: October 19, 2020, 06:15:42 am
content: The way I would approach this is try to find a LCD module with a similar resolution (256x64 ?) that fits physically where the current non standard module is located.I would then interface a microcontroller between the microcontroller of the head unit and the new LCD screen to perform translation of the commands.Depending on how close the protocol here, it could be simple or harder, it really depends. But given the high processing power and speed of today's microcontrollers, I don't expect it will be a major issue.So, scout AliExpress for a proper LCD screen (in term of form factor). Prefer the LCD ones over I2C as they are faster and this will help with the translation.Then, study the datasheet of the original controller, learn its command set. Get a logic analyzer like a Saleae Logic 8 (if it's a serial interfae, or a Logic 16 (more expensive...) if it's a parallel interface, and look at what the head unit CPU is doing. Try to map the signals to the datasheet and understand what it does. Then build up from here.Depending on your experience it can take you a weekend or a month of work, can't tell, but it's definitely doable in my opinion, given that you have the datasheet of the original controller and that the resolution is pretty low.\PS: Found this :https://www.aliexpress.com/item/32833686161.htmlNot a direct compatible option clearly, but it seems like it is smaller than your screen so it should fit. Ultimately you want to make a PCB for it, with the microcontroller on it to do the conversion, and put that in your radio.First step :Get familiar with the controller of the original screen and hook up a logic analyzer. See the instructions and data flowing, understand it.Second step :Find alternatives on eBay/AliExpress like the one I show. Study the controllers, look at how they work. See how you can adapt the data (probably ignore the original init commands going to the original controller, and send hardcoded init commands to the new controller, then simply transfer pixel data)Third step :Make a prototype PCB to solder the new LCD/OLED display. Connect a microcontroller to it and display Hello World.Then connect your prototype PCB instead of the original controller to the head unit microcontroller (Don't fry it ! careful !)Then start working in translating the dataFourth step:It works ? Congrats, now make a small physical PCB to mount the new display in place of the old one, with the microcontroller on it and the pads where necessary to make assembly easySomething like this. Definitely a project, BUT if you do it well, you can even think about selling it, if there is demand for this. Good luck !

author: ledtester
author_rank: Super Contributor
timestamp: October 19, 2020, 06:48:07 am
content: Quote from: dinoman64 on October 15, 2020, 06:00:23 amHere is a video of the CDA-7889 in action:https://youtu.be/4SQW9DHnzikand here is the LCSC product page and datasheet for the s1d13305f00a1 controller:https://lcsc.com/product-detail/Driver-High-Current_EPSON_S1D13305F00A1_S1D13305F00A1_C7614.htmlhttps://datasheet.lcsc.com/szlcsc/1809141815_Seiko-Epson-S1D13305F00A1_C7614.pdfThe first thing to notice is that the display has a high update rate. Also, the controller datasheet states this:You will need a "beefy" microcontroller to implement the graphics capabilities of this chip and the firmware will be a challenge.Also, it uses a memory-mapped IO interface and the minimum clock frequency is 1 MHz. Even if you used a 72 MHz microcontroller, that would only give you 72 clock cycles to process each incoming byte.Your best bet is to find a replacement for the "LCD" in the controller's block diagram:You might be able to find a compatible LCD display to which you could add a backlight for improved contrast.

author: DrG
author_rank: Super Contributor
timestamp: October 19, 2020, 01:59:00 pm
content: Quote from: dinoman64 on October 19, 2020, 05:54:37 amYou have done some work on this. You have not mentioned if you have the schematic - if you do not, you can get it in the service manual for the unit 7998/7998R herehttps://manualzz.com/doc/1212290/alpine-cda7998rorhttp://www.bcae1.com/temp/ALPINE%20CDA7998R.pdfTake a look at the schematic, in particular, sheet 7/10 This shows you the signal lines that go to the display. It also names the display, but I found nothing in a search - couldn't be that easy eh?Along with the controller datasheet (in my first post) and the schematic - you need to program an mcu that will take those signals and drive another display? Easy PeazySeriously, I just don't know. I appreciate the effort and the advice given by others. If you did not have the schematic before you have it now and you will need it.edit: The service manual linked is for the 7998R - I don't know if yours is the 'R' or not, or what the difference is or if their is a service manual for the plain 7998. I thought when I was looking that they had one service manual for both, but I don't know where I saw that as it is not in the service manual that I can see now.

author: uski
author_rank: Frequent Contributor
timestamp: October 19, 2020, 05:40:34 pm
content: Quote from: ledtester on October 19, 2020, 06:48:07 amI think it is still worth hooking up a logic analyzer and looking at exactly what is going on.It could be the worst case scenario you are mentioning, but maybe they are using it at a lower frequency and maybe they are not using all the internal features.Only way to know is to start hacking.An ESP32 is cheap and operates at 240MHz. With carefully written code and, possibly, spot uses of assembly language, could be enough. Especially if GFX features like scrolling are not used and they cannot be directly translated to the new LCD controller (most can probably be !).I agree that itcouldbe challenging and using an FPGA instead could be the way to go. It is not necessarily more complex, but the required skillset is much more rare, making it effectively more complex in practice (I used to teach VHDL). But before getting there, hooking up a logic analyzer and doing some reverse engineering is what needs to be done. Then once the behavior of the system is known, a proper solution can be designed.This seems to be a standard 1-DIN head unit, why bother with this very specific model by the way ?I would understand if it was a car specific head unit that cannot be replaced, but it seems like any other 1-DIN radio would work ?With bother with this model ?

author: dinoman64
author_rank: Newbie
timestamp: October 19, 2020, 11:59:46 pm
content: Looks like I have a lot of learning to do hahaIll definitely look into getting a logic analyzer. I'm gonna study the data sheet a little more, I've already gone over the repair manual several times, while there is certainly useful information, there's not as much as I was hoping for.Believe it or not I actually called alpine's repair facility, and asked if they can provide any documents on the screen repair, since they don't offer that service anymore. Of course, the answer was no, at least I tried though.Thanks again to everyone who replied, Ill definitely keep you updated on what I do next.And as for why I want this unit in particular, just look at the way it works, the fact that the face is larger than a standard single din head unit, and it hides its self away is just too cool. Not to mention it fits in perfect in my vintage bmw, because of its discrete look when its powered off. That and the sound quality is excellent and the on screen graphics bring me right back to the early 2000s with that "futuristic" look.Full disclosure, there is a almost identical model to this radio that uses a VFD display, but because those don't have any problems they are outrageously expensive, and of course they don't look as cool.

author: DrG
author_rank: Super Contributor
timestamp: October 20, 2020, 01:33:23 am
content: If you succeed, you will be all the rage of the Alpine community. GL!

author: Rasz
author_rank: Super Contributor
timestamp: October 20, 2020, 02:27:20 am
content: >6800 and 8080 family microprocessor interfacesonly one address line, so you dont even need anything fancy likehttp://www.smbaker.com/raspberry-pi-virtual-floppy-for-isa-pc-xtat-computersreads:Status flag readDisplay data and cursor address readwrites:Display data and parameter writeCommand write17 commands>The S1D13305 series interface operates at full bus speed,completing the execution of each command within thecycle time, tCYC . The controlling microprocessor’s performance is thus not hampered by polling or handshakingwhen accessing the S1D13305 series>tCC Strobe pulsewidth 120nsso its up to 8MHz, might require CPLD.btw overclocked ESP32 has 2us latency for external interrupts, youd have to hand code assembly loop to constantly read data port.