Reading
@Stevehose's
thread on the engine noise, with the plethora of diagnostic suggestions and successful outcome made me reflect on problem solving in general and a recent debugging journey I've been on. I debug and solve problems for a living, around the house, as a hobby, and for my wife, even though she really just wants me to listen. What is it about us that we voluntarily take new problems into our lives?
Skip all this if you're a purist.
Reminder, I've written an app that can display various information from the CANBus on a screen that I've mounted in the hole where the now-irrelevant tachometer used to be. Recently, I've had a problem with the edges of the round Chinese DisplayModule DM-TFTR34-359-2 display with DM-ADTTR-014 driver board sometimes fading away and ghosting images.
Unfortunately, a million things have changed since this worked. And even when it was working, we saw this same issue a couple of times. Things that have changed: the driver board (the power connectors broke off two old ones), the mount (changed and re-printed the 3D model to make it more shallow so it will clear the defroster duct), the buck converter and its location (I mounted it to the gauge cluster so I won't have to plug/unplug and break another board), the power wiring (I added a Molex connector for display power, clock, and instrument lights, which weren't previously connected), the HDMI cable (I moved the micro computer to the rear seat so a long cable was necessary), all gauge/computer related wiring (extended to rear seat), power, ground, etc. connections in back, etc. Way too many things to isolate the problem based on "what changed".
As the photos above show, the problem is intermittent and occurred on the bench when I setup a simulation of the entire setup (long extension wiring,etc.). At that time, I thought it was because the screen was pinched around the outside by the glass bezel. I removed and reinstalled with various gaskets and tightening and thought I'd fixed it, but, as you can see, it still happened even when removed from the cluster and sitting flat. Then I thought it was the amperage from my benchtop 12v power supply being too low. I changed to a drycell 12v battery and it worked so I thought I was good but it was really just the intermittent nature fooling me again.
I didn't know that at the time and had installed the cluster into the car but two weeks ago the problem resurfaced. I did a quick test with a different micro computer, a different HDMI cable, and a different power source and it worked. Then I plugged it all back in and it worked from the back. I wasn't happy with "self resolution" of the problem but ignored it until last weekend when I reinstalled the gauge cluster and the problem was back. I must figure this out because I don't want to install all of the dash until I know it is fixed.
In desperation, I contacted the manufacturer of the display and they suggested I connect a Windows PC to the display in order to rule out display config issues with the Linux-based micro computer I'm using. Not super-helpful but not a bad idea either.
I connected a laptop with a short HDMI cable and it looked fine. It is a bit hard to tell because the Windows resolution is all wrong for the square display but the rectangle that is rendered appears to be clear and bright on the left and right sides.
This would appear to rule out anything forward of the laptop:
- Display
- Display board
- Display mounting squeeze
- 5v Buck converter powering the display
- 12v Power feed to display buck converter
- Male to female HMDI adapter/extension plugged into the display (which short HDMI cable from PC was plugged into)
That leaves a bunch of possible problem areas (that I can think of):
- Long HDMI cable
- Micro-HDMI to Female HDMI adapter plugged into the micro computer
- Micro computer display configuration
- HDMI signal over a long distance
- 12v power or fuse block to buck converter
- 5v Buck converter powering micro computer
- Ground to buck converter
- Micro computer in the rear seat
I ruled out my app because it is the same app running when the problem presents itself or doesn't.
In hindsight, writing this up logically, I realize I chased a few red herrings along the way. I should've stopped and written this down sooner.
Figuring the HDMI cable to be the most likely suspect, I replaced the long HDMI cable and Micro-HDMI adapter with a single 6ft micro to HDMI cable from Amazon. This is one of the reasons I didn't work on the car all week -- I was waiting for the new cable. But I still had the faded edges. Furthermore, I used another of the same cable for the micro computer connected to the touch screen display behind the speaker, which works fine, so length doesn't appear to be the problem. That would appear to rule out #1 and #2.
Frustrated, I had an older model micro computer laying around, with a development operating system image SD card, the same short HDMI cable from the PC, powered by a USB hub. This worked. The edges were bright. Too many variables changed so no conclusion reached, other than micro computers in general don't appear to be the problem.
#3 was a concern. The display doesn't work at all on a micro computer without the proper configuration. I had that config already in the development SD card image but just to be sure, I pulled the SD card from the micro computer in the car and put it into the extra one. That also worked, which would appear to rule out #3.
But not entirely. In my research, I found some other settings such as hdmi_boost (which increases the amplitude and/or preemphasis of the HDMI signal) that I could try. Thinking that #4, the cable length, might be the problem, I changed the short HDMI cable on the extra computer to the original long one that I had already replaced, but that worked fine so I don't think I need to boost the signal and I think I've ruled out #4.
Moving on to #5, I put the SD card back into the original micro computer and attached my little 12v dry cell battery to the fuse block under the seat and my battery charger on the 12v battery in the trunk. 13.4v at the fuse block. I assume enough amperage. Still failed. Appears to rule out #5.
Moving on to #6, I unplugged the buck converter USB-C from the micro computer and used a USB-C-USB-2 cable to an A/C powered USB hub for micro computer power. Still failed. Appears to rule out #6, and #7 really.