Giter Club home page Giter Club logo

esp32compositevideo's People

Contributors

bitluni avatar cwei avatar erenard avatar marcel303 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

esp32compositevideo's Issues

Binary image

Please add a binary image we can directly flash on ESP32 using the flashtool.

rtc.h not found.

I have installed the esp32 requirements and i get an error on compile for this:

AudioVideoExample:3:21: error: soc\rtc.h: No such file or directory
 #include <soc\rtc.h>
                     ^
compilation terminated.
exit status 1
soc\rtc.h: No such file or directory

An anybody help?

Do you have ideas for color?

Hello

I read the comments on your Youtube page.

I'm curious to know if any of those comments have given you ideas that might lead to the display in color?

thanks

Flashing image on car / FPV screen

Hi Bitluni,

I have posted this on your Patron as well, I hope you don't mind me posting here too.

I have tried the Composite video on my -ordinary TV- and it works perfectly but when I try it on a car monitor device like this one: https://www.amazon.co.uk/gp/product/B0056WJP1M it shows the image but flashes on and off about twice a second, would you have any idea why this would be?

I have also tried a FPV screen and had similar results.

Thanks for any help or advice.

Anthony.

Esp32-Cam as an input source for composite

Could the image2header conversion happen directly on the esp32 and so allow for example to convert the image from an esp32-cam directly to a composite tv or would that be too much processing for the esp32 to do that in real time?

(Sorry for asking this here but maybe someone has an idea how to do that :)

Small B/W TV Advice

I'm getting such a fussy signal on one of those small CRT TVs:
https://www.youtube.com/watch?v=3TDNHkneLm0
Playing around with VHold and whatnot, this is literally the best I can get it.

Does anyone have advice about what to try? Perhaps capacitors somewhere? Resolution change doesn't seem to help

It's weird because normal composite video feed from, say a raspberry Pi 1 / camcorder, etc is just fine so I can't imagine what's different with this?

5.8GHz FPV

I have used CompositeVideoSimple example as video source for 5.8GHz FPV transmitter, but it does not work correctly. The signal is there but it is somewhat unstable. I can see part of the image on one frequency, another part on another frequency, sometimes whole image for a few seconds. I have tried 3 different transmitters a none of them work and when I use common camera as a source the image is crystal clear. Tried to change PAL/NTSC, resolution but it does not help. Looks like something is out of sync. Can you recommend me some parameter I could try to change ? Thank you...

ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

D:_ARDUINO\LIB\ESP32CompositeVideo-master\CompositeVideoSimple\CompositeVideoSimple.ino: In function 'void draw()':
D:_ARDUINO\LIB\ESP32CompositeVideo-master\CompositeVideoSimple\CompositeVideoSimple.ino:75:26: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
graphics.print("hello!");
^
D:_ARDUINO\LIB\ESP32CompositeVideo-master\CompositeVideoSimple\CompositeVideoSimple.ino:76:34: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
graphics.print(" free memory: ");
^
D:_ARDUINO\LIB\ESP32CompositeVideo-master\CompositeVideoSimple\CompositeVideoSimple.ino:78:38: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
graphics.print("\nrendered frame: ");
^
D:_ARDUINO\LIB\ESP32CompositeVideo-master\CompositeVideoSimple\CompositeVideoSimple.ino:81:38: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
graphics.print("\n in hex: ");
^

ESP32-D2WD 2 megabytes flash RAM & resolution

Hello,

I read that the ESP32-D2WD has 2 megabytes of embedded flash memory.

Would this be usable as graphics memory for your ESP32CompositeVideo project or would it be too slow?

Not working with ESP32 Arduino Core >2.0.0 stable

I noticed that the compiler errors/warnings exist in version 2.0.0 of the esp32 core for Arduino IDE, but in versions 2.0.4, 2.0.3 (2.0.2 and 2.0.1 not tested), it just doesn't display anything. 2.0.0 still works though.

Ideas for how to synchronize to an external video source?

Hi,

I want to be able to synchronize this to an external video signal so I can generate an OSD overlay.

But the synchronization part is seemingly impossible!

I'm made a test circuit with an LM1881 sync separator and I have modified the composite output library so that the clock source for the I2S DMA is set to the APLL. I can then modify the APLL registers with rtc_clk_apll_enable() and have very fine frequency control over the I2S DMA output.

I then wrote a Phase Frequency Detector type PLL 'loop' in order to lock onto the external VSYNC signal. It compares the VSYNC pulse to when data is written I2S DMA and tries to get them into sync by adjusting the the APLL regs and hence the frequency that the data is pushed out.

I can get reasonably close to a 'lock' but no matter what I do there is always about 1 line of jitter which is not acceptable for drawing an OSD.

I also tried a 'dumb' solution where the external VSCYN simply triggers the function to write to the I2S buffer but this still jitters badly....

Anyone with an ideas, please help, I am stuck :(

***ERROR*** A stack overflow in task c has been detected.

Hello, just uploaded buth sketches (unmodified) from this repo onto my Sparkfun ESP32 dev board. It keeps rebooting, here is the serial monitor output:

ets Jun  8 2016 00:22:57

rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:952
load:0x40078000,len:6084
load:0x40080000,len:7936
entry 0x40080310
***ERROR*** A stack overflow in task c has been detected.
abort() was called at PC 0x4008a2e4 on core 0

Backtrace: 0x4008a0c8:0x3ffdad00 0x4008a2cb:0x3ffdad20 0x4008a2e4:0x3ffdad40 0x400872db:0x3ffdad60 0x40088a00:0x3ffdad80 0x400889b6:0xfefefefe

Rebooting...
(repeats)

I just got this program to play with it, but it doesn't work the first time.

Arduino version is 1.8.5. Not sure about ESP32 core version, but I downloaded that into Arduino/hardware manually. If I remember correctly, I downloaded it from the ESP32 Arduino core github.

You probably don't need this, but here are my upload settings:

Flash Mode: QIO
Flash Size: 4MB
Partition Scheme: Minimal (tried also with Default, same problem)
Flash Frequency: 80Mhz
PSRAM: Disabled
Upload Speed: 921600
Core Debug Level: None

I can't imagine there would be any recursive behavior or large stack allocations to cause this, so it seems pretty odd.

Unfortunately I just downloaded this and I have zero understanding of the code thus far.

Here is the zip I downloaded. The only modification I made was to the sketch name, just to make it more unique. I do not think that would be the problem though.
ESP32CompositeVideo-master.zip

No image on DVD car player screen

Hello,
I have no image on my DVD car player screen which has a composite input.
The FabGL library and ESP_8_BIT library both give me a correct output ("esp32-dali-clock" project works), but because I really enjoy the tutorials from your youtube channel I would like to stick to your library to develop projects on my esp32
I use latest version of arduino ide, and a esp32 devkit
I tried both PAL and NTSC, they both don't work.
Regards and thank you for all your work ! :)

Arduino 1.8.13 and 1.8.9 not compiling

Arduino: 1.8.9 (Linux), Board: "ESP32 Dev Module, Disabled, Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS), 240MHz (WiFi/BT), QIO, 80MHz, 4MB (32Mb), 921600, None"

In file included from /home/brad/ESP32CompositeVideo/CompositeVideo/CompositeVideo.ino:9:0:
/tmp/arduino_build_296062/sketch/Matrix.h:28:31: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
const float operator[](int i)
^
/home/brad/ESP32CompositeVideo/CompositeVideo/CompositeVideo.ino: In function 'void draw()':
/home/brad/ESP32CompositeVideo/CompositeVideo/CompositeVideo.ino:148:33: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
graphics.print("free memory: ");
^
/home/brad/ESP32CompositeVideo/CompositeVideo/CompositeVideo.ino:150:26: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
graphics.print(" fps: ");
^
/home/brad/ESP32CompositeVideo/CompositeVideo/CompositeVideo.ino:152:34: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
graphics.print(" triangles/s: ");
^
In file included from /home/brad/ESP32CompositeVideo/CompositeVideo/CompositeVideo.ino:11:0:
/tmp/arduino_build_296062/sketch/Mesh.h: In instantiation of 'Mesh::Mesh(int, const float ()[3], int, const short unsigned int ()[2], int, const short unsigned int ()[3], const float ()[3]) [with Graphics = CompositeGraphics]':
/home/brad/ESP32CompositeVideo/CompositeVideo/CompositeVideo.ino:40:141: required from here
Mesh.h:11:28: error: 'Mesh::vertices' will be initialized after [-Werror=reorder]
const float (*vertices)[3];
^
Mesh.h:10:7: error: 'int Mesh::edgeCount' [-Werror=reorder]
int edgeCount;
^
Mesh.h:18:3: error: when initialized here [-Werror=reorder]
Mesh(int vertCount, const float verts[][3], int edgeCount_ = 0, const unsigned short edges_[][2] = 0, int triCount = 0, const unsigned short tris[][3] = 0, const float triNorms[][3] = 0)
^
Mesh.h:16:34: error: 'Mesh::edges' will be initialized after [-Werror=reorder]
const unsigned short (*edges)[2];
^
Mesh.h:9:7: error: 'int Mesh::triangleCount' [-Werror=reorder]
int triangleCount;
^
Mesh.h:18:3: error: when initialized here [-Werror=reorder]
Mesh(int vertCount, const float verts[][3], int edgeCount_ = 0, const unsigned short edges_[][2] = 0, int triCount = 0, const unsigned short tris[][3] = 0, const float triNorms[][3] = 0)
^
Mesh.h:15:38: error: 'Mesh::triangles' will be initialized after [-Werror=reorder]
const unsigned short (triangles)[3];
^
Mesh.h:12:35: error: 'const float (
Mesh::triangleNormals)[3]' [-Werror=reorder]
const float (*triangleNormals)[3];
^
Mesh.h:18:3: error: when initialized here [-Werror=reorder]
Mesh(int vertCount, const float verts[][3], int edgeCount_ = 0, const unsigned short edges_[][2] = 0, int triCount = 0, const unsigned short tris[][3] = 0, const float triNorms[][3] = 0)
^
cc1plus: some warnings being treated as errors
exit status 1
'Mesh::vertices' will be initialized after [-Werror=reorder]

Arduino 1.0 stable. Crashes


rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:952
load:0x40078000,len:6084
load:0x40080000,len:7936
entry 0x40080310
***ERROR*** A stack overflow in task c has been detected.
abort() was called at PC 0x400882a4 on core 0

Backtrace: 0x40088088:0x3ffdc9d0 0x4008828b:0x3ffdc9f0 0x400882a4:0x3ffdca10 0x4008529b:0x3ffdca30 0x400869c0:0x3ffdca50 0x40086976:0xfefefefe

Rebooting...

progressive output instead of interlaced

The analog video standard can be "hacked", that instead of 480i/576i, 240p/288p image can be displayed. It works that instead of the image alternating between even/odd lines each frame, its always sent to even lines instead.
Could it this feature be added into this software? (Its currently running in 240p anyway, but the image is send as interlaced, so it flickers. the progresive mode could reduce the flickering a lot)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.