The Mazda MX-5 RF has a graphic LCD screen as part of the Instrument Cluster. I thought it would be cool to access it to show additional information on that screen. The LCD is 4.6″ with an FPC cable to the mainboard. The LCD is controlled by the graphic processor Yamaha YGV642, which would be the perfect option for customization. Unfortunately, Yamaha denied my request to share the datasheet and I could not find anything in the public domain. I decided to use an external graphics processor and implemented a video switch, to control the LCD. To accelerate development, I chose the Microchip development board and made a simple PCB with connectors and a video switch.
Of course, it is bulky, but I got immediate access to the LCD screen and can start work on software. The LCD screen has a resolution of 432×432 pixels with a simple RGB interface, 6 bits per color, with a 62 Hz frame rate. I was able to synchronize my processor with Yamaha, which allows me to insert a portion of my graphics and leave some untouched. My first test was the implementation of a digital counter.
The first project is the implementation of the digital speedometer. Current speed is available on the CAN bus, so it makes it easy to capture it using just one wire soldered to the mainboard, directly to the Rx output of the CAN receiver chip. Switching from “mph” and “km/h” is also available through CAN messages. I implemented this as well. The speedometer comes on screen after four clicks on the “Info” button, and the next click will turn it off. During the road test, I found that the digits switched too quickly when the speed was on the borderline of the next number. To avoid this I implemented a simple filter, averaging 32 samples. Now it is perfect.
The next project will be an implementation of an analog clock, which will show up when the engine is turned off and stay until you open the door or click the Info button to another feature.
The power reserve handle will show the battery’s voltage, which will be useful to see when the engine is off.
I will design a smaller single PCB with a microprocessor and FPC connectors to make installation simple. CAN bus is not present on the FPC connector, so one wire needs to be directly soldered to the mainboard. The software can be updated at any time via a USB cable.
Update 11/29/2023
Finally some progress with this project.
PCB with flex cable assembled. Added analog interface to connect external temperature sensor.
I can’t wait for this to come out. Never could figure out why Mazda doesn’t put a digital dash in this car. Had one in my ’89 Beretta and 2004 RX-8, but not in a 2019 MX-5!!
LikeLike
Pingback: We got MX-5 RF | Gadgets for my MX-5 Miata (ND)
Looking great!
What else can you read from CAN bus? Engine load, IAT?
LikeLike
anything, same as OBD scanners can do. It is just like an LCD display with the CAN interface.
LikeLiked by 1 person
I really miss having a HUD, like I had in my Mazda3. Aftermarket HUDs using OBD connections seem to suffer delays/update lags.
LikeLike
Pingback: Speed Correction Module | Gadgets for my MX-5 Miata (ND)
That would be awesome.
LikeLike
Hi, you’ve mentioned in the article that you’ve managed to change units km/miles via can messages… I have ND sport without central infotainment unit and there is no option to change units in an easy way…
Is it possible to share what must be change over canbus in order to switch units from imperial to metric ?
LikeLike
It is ID 0x9E byte 7 (starting from 0) bit 0x80
LikeLike
You are my savior ! 🙂 thank you !
As soon as I’ll make it I’ll let you know 🙂
LikeLike
Hi, are you still working on this? It’d be cool to use it to introduce external sensors (like oil temp) to display. I’m thinking of a kind of sport-/racemode screen that shows TPMS values, external sensors and other information that would be retrofitted with aftermarket displays like CanChecked and the like.
LikeLike
my board has provision for connecting analog sensor (thermistor) and i2C interface for external sensors.
Software is different story.
LikeLike
Hi! Do you have CAN ID for hard top ECU?
LikeLike
I don’t have any info for ECU (engine control unit ?)
LikeLike
Any updates on the development of this? The digital speedometer (MPH) is all I need!
I think this is much better than Speedometer ID7 infotainment hack that I currently use but had to glance on the infotainment screen.
LikeLike
Finally, it is getting ready for release. Probably in January, it will be available from store..
LikeLiked by 1 person
Hi,
I have sniffed a bunch of CAN-Requests sent out by the original Diagnostics software Mazda uses and compiled them in a spreadsheet, I din’t know if it’s usable to you in any way but I thought sharing is caring 🙂
https://docs.google.com/spreadsheets/d/1iQSK61T97ONzoTtwWTXx3xpV-D4veg7fk2V_ZLPkS3w/edit#gid=0
LikeLike
I have installed the cluster on a 124 from an RF. The cluster gives a few errors, like the i-on and roof module, not on the 124. Also, the animations are of an mx-5 LHD, so all the info, like open doors, is inverted as my 124 is an RHD. Is there a way to reprogram the cluster, eliminating the optional not preset, and reconfigure it at least as an RHD car? Saw a few attempts using Forscan, but unfortunately, it does not work on the Fiat, as it reads the Mazda modules but asks for a custom configuration that Fiat made. Any clues please?
LikeLike
Is there any plans to have this user reprogrammable without taking apart the dash? Would love to throw together some custom stuff for this 😅
LikeLike
Firmware could be updated via USB cable. Creating new software is another story. You can share your ideas via email info@mx5things.com
LikeLike