bitluni / ESP32Lib

http://bitluni.net/esp32-vga/
451 stars 79 forks source link

[Question] VGA to HDMI converter not working #72

Open jsbriantes opened 2 years ago

jsbriantes commented 2 years ago

I have this VGA2HDMI converter that I use to conect a 5" hdmi screen to a VGA source. It works good with my old laptop, and I can see the Windows 7 screen on the small display using this VGA2HDMI converter ( 800x600). I would like to use this small screen with ESP32 and this library. I have used basic demo example with an ESP32 and a TFT VGA screen with a direct wire connection (3bit mode), and It works good too. Also, advanced examples works good on the 17" screen. Now, I would like use the vga2hdmi converter, but It doesn't work. I have tried adding +5VDC to pin 9, but without success. I don't know the reason, but I have checked that ESP32 and VGA plug works good, and converter works good too. I was wondering if, perhaps, the ESP32 can't supply enough current to RGB pins or something else. Perhaps I would need to use I2C for the other pins. I know It is a very general question, but perhaps, someone has tried before, what I want.

jsbriantes commented 2 years ago

Researching more on this topic, perhaps the problem could be HSYNC and VSYNC that should be TTL signals and my VGA2HDMI converter doesn't work with 3.3V signals, while my old 17" vga screen accept this logic levels. I will try with a logic level converter for 3.3V to 5V.

jsbriantes commented 2 years ago

Failed test. It doesn't work. I don't know what else could I try.

dl9sec commented 2 years ago

Could it be possible, that the VGA2HDMI doesn't support the video mode you provide with the ESP32? Which VGA mode do you want to use (resolution@frequency)?

Regards, Thorsten

jsbriantes commented 2 years ago

These are the supported resolutions of VGA2HDMI device: 640x480@60/70/72/85Hz 800x600@60/70/72/85Hz 1024x768@60/70/72/85Hz 1152x864@75Hz 1280x720@60Hz ... up to 1920x1080@60Hz

This is the display: 5" hdmi 800x480 xpt2046 for Raspberry Pi 3/2 Model B/B+ & Banana Pi It's a very common display you could find it in many commerce websites. For example: https://es.aliexpress.com/item/1005001587506476.html?ds_e_product_id=es1005001587506476

I have checked it with my old laptop (sony vgn21 - Windows 7) with a screen resolution of 800x600 (60Hz), and It works good. Altough my laptop has a HDMI output, I have used VGA output and VGA2HDMI device converter to test it, with success.

dl9sec commented 2 years ago

Ok, and which resolution@frequency you want to output at your ESP32? Have you tried another, maybe shorter VGA cable?

jsbriantes commented 2 years ago

I want to use 800x600@60Hz. I'm using a very short cable, about 20cm, that works good with 800x600 old 17" TFT Screen. I don't know if the VGA signal is generated at this rate (60Hz) or less. There is no info about it in the main page of the project (only supported resolutions). Perhaps I could find it reading inside library files. But I think It should meet VGA standard and this should be the rate.

Thinking about the plug, GNDs for Red, Green and Blue are not connected (pin 6, 7 and 8). Should I connect it to common GND?. Perhaps it could be the problem, and the VGA2HDMI converter needs this lines connected to GND insted of N/C. I don't know. I will try it too.

dl9sec commented 2 years ago

Maybe there is the possibility at your 17" screen to check the VGA signal parameters (horizontal/vertical frequencies, ...). Possibly the VGA2HDMI isn't as tolerant as your monitor...

jsbriantes commented 2 years ago

The screen is ACER V173 Bb. I thought it could be H/V SYNC at 3.3V. HSYNC and VSYNC signals are a train of squared pulses of +5V and I was using 3.3V. Then I added a 3.3V to 5V level converter, but without success. Perhaps, as you said, H/V frequencies are not accurate enough from ESP32 and the VGA2HDMI converter can't sycronize it. I have no way to measure it (I don't have an oscilloscope).

fjmazur commented 2 years ago

I have same problem here.. I wait for a hdmi solution too.. Thanks

jsbriantes commented 2 years ago

I'm sorry but I haven't found the solution. I don't have an oscilloscope and then I can't take some measurements in order to know where is the problem. At last, I have moved to the new Raspberry Pi Zero 2W that has a HDMI builtin output and It's cheap. I think ESP32 doesn't have enough power (Mhz) to drive HDMI directly. You will need some additional hardware and the cost it has is more than the Raspberry Pi Zero 2W.

Gabryxx commented 2 years ago

I buy this adapter and work: https://www.amazon.it/gp/product/B09S6SNB7L/ref=ppx_yo_dt_b_asin_title_o03_s00?ie=UTF8&psc=1 I have made this connections (also pin 6-7-8 with ground of VGA connector): Schematic_esp32 vga_2022-05-06 And this is resolution that i use:

VGA3Bit vga; GfxWrapper gfx(vga, 400, 300); void setup() { vga.setFrameBufferCount(2);// DOUBLE BUFFER vga.init(vga.MODE400x300, 27, 14, 12, 32, 33);

All work good ( Serial, SPIFFS, SD, Wifi ) on ESP32 Dev Kit V1 if we use VGA3BitI.h (interrupt version) ...i dont test others drivers

And for Buttons i use ezButton library: https://github.com/ArduinoGetStarted/button

yo2ldk commented 2 years ago

I also need to convert from VGA to HDMI, if you find any solution..