Overview
- VGA to LVDS converter with jumper-programmable resolution
- Dual-lane and single-lane LVDS support
- Has support for EN+ADJ inverter output
- Has a pin header for wiring up VGA signals
- 13 different resolutions supported:
Resolutions (ranked according to subjective preferability ;-P), plus jumper combinations for different LVDS modes :
- 1920x1200 (A+B+G for "2-6")
- 1920x1080 (A+C for "2-6", A+B for "1-8". A+C+G for "2-8")
- 1600x1200 (A+E+G for "1-8")
- 1680x1050 (A+D for "1-8", A+D+G for "2-6")
- 1600x900 (A+F+G for "1-8", B+G for "2-6")
- 1400x1050 (D+G for "2-6")
- 1440x900 (A+E for "1-8", C+G for "2-6")
- 1280x1024 (E+G for "2-8", A+F for "1-8")
- 1366x768 (B for "1-8", C for "2-6")
- 1280x800 (F+G for "2-6")
- 1024x768 (G for "6*2-1" (whatever that is), A+G for "2-8", E for "2-6", D for "1-8")
- 1024x600 (A for "2-6")
- 800x600 (F for "8-1")
Not all of the LVDS modes listed are actually correctly labeled - for instance, with 1280x800, it's listed as LVDS-2-6, but 1280x800 panels never actually seem to have a 2-6 connection, all of the panels I've encountered using 1-6 - and they're happily driven by the controller when using an 1-6 cable.
Surprisingly, approximately a third of all the panels I tested fail in some way when connected with a 2-6 cable - one had a fullscreen green image, a couple of them refused to work straight away, one would get filled with rainbow colors from top to bottom and not have any reasonable output. This is very weird because one doesn't usually expect the second LVDS lane pins to even be connected on the panel's LVDS connector in any way that'd impact anything at all - however, disconnecting half of the LVDS pins (on the MT6820 board's side) belonging to the second lane (that shouldn't even be sending anything) resulted in all panels working flawlessly. Since figuring this problem out would require me to unfold the controller PCB and possibly damage it in the process, I didn't bother investigating further, and just had half of the cable disconnected while working on these panels.
Hardware
- HX6810-A IC, no datasheet to be found so far, but please do keep looking =)
- Has an onboard W25Q40.V 512kb SPI flash that contains the HX6810 IC firmware
- 7 jumpers for configuration, they're 2mm jumpers, and every board seems to come with 3 - it's easy to lose them, so try not to!
- Has a connector for a 7-button+2-LED board, but comes with a 5-button+2-LED board, and the extra two button inputs don't seem to do anything when shorted to ground.
- There's a standard 2mm 30-pin header for the LVDS cable, the signals from it are also available on an unpopulated 1mm X-pin (TODO) FPC connector.
- The board expects a 5V input, and doesn't have a power input connector as such. It is commonly powered through the "inverter" connector. The inverter plug expects a 6-pin JST-PH cable.
- Onboard, 2 voltages are created using two linear regulators - 3.3V and 1.8V. 3.3V from the regulator seems to go to the controller and not the panel.
- 3.3V panel power seems to be created from 5V by chaining two SMA-packaged diodes together: Oh boy, does all of that not look good for power consumption.
- Board has a footprint for a PAM8403 speaker amplifier, so one can be soldered onto the board - but it is rarely populated.
Firmware
Yep, I did dump it!
- The board emulates an I2C EEPROM so that the signal source (PC/SBC/whatever) can read the EDID
- The EDIDs are stored on the SPI flash - from an SPI flash dump inspection, there's 14 EDIDs all in one location.
- There's also an EDID stored in a separate location, perhaps a "default" one? That makes for 15 different EDIDs.
- OSD strings are stored as null-terminated strings - so, if needed, one can change the OSD strings easily ;-P
- The board does generate extra EDID data for certain resolutions! It adds EDID extensions with, I'd guess, resolution information. I'm likely going to make a setup that'll go through all the resolutions while having the board connected to a VGA port, setting the jumpers with a PCF8574 board and power cycling the setup with a relay - and then see what data we can collect. Until then - I can't really tell a lot about EDID, other than say with certainty that I've had success editing the EDID data before, but now I'm not certain this will actually apply to every EDID combo there is.
- One thing is certain - the 15 EDIDs from the firmware are actually used by the firmware as the base for the new EDID, as most EDIDs I could get the board to output contain the "CNDLCD\x0a" string, which only appears in the firmware embedded inside the EDID blocks.
- However, the board outputs EDIDs that don't contain "CNDLCD\x0a" as the manufacturer name, for instance, when an AD (1680x1050 LVDS-1-8) combination of jumpers is used. First 128 bytes of such an EDID:
00000000: 00ffffffffffff00212301004686e386 ........!#..F... 00000010: 26150103a01e1761eae4de9e544a9723 &......a....TJ.# 00000020: 1c4c5400080081808140810001019500 .LT......@...... 00000030: 01010101010164190040410026301888 ......d..@A.&0.. 00000040: 360000c010000018023a801871382d40 6........:..q8-@ 00000050: 582c4500dd0c1100001e662150b05100 X,E.......f!P.Q. 00000060: 1b304070360032313400001e000000fa .0@p6.214....... 00000070: 00819981c081fc01010101950f0a01b1 ................
- The research continues. I shall upload the binary dump in the "files" category so that anyone can take a look at it.
- The firmware data does contain OSD strings that indicate there's a factory setting menu, just like on M.NT68676 boards. I haven't checked whether the M.NT68676 factory menu combination works on these boards, hopefully, it does.
- Settings (i.e. OSD language) are also stored in the same SPI flash - dumping flash, changing settings and then restoring the flash image also restores the previous settings. The address where the settings are stored isn't determined yet.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.