Electronics > Projects, Designs, and Technical Stuff

Digital FPV video for drone racing

<< < (24/28) > >>

ogden:

--- Quote from: Kilrah on January 22, 2019, 08:20:50 pm ---Normal fast high res displays (such as the ones with the common parallel 24bit RGB interface) of course take the data sequentially but also in order and at constant refresh rate, you can't just stop sending stuff while you wait for the next line or such, if you don't respect timings you get what is shown in the video above.

--- End quote ---

Right. So this is essentially how analog TV updates screen. Only difference is digital input and "infinite persistence" due to built-in frame shadow buffer for refresh purposes (LCD's with built-in controller). I was opposing TheDane who implied that you shall put whole frame into LCD and only then it can be shown, which is untrue:


--- Quote from: TheDane on January 22, 2019, 07:26:25 pm ---The sensor output is 'serial' - the display output is 'not'.  I hope you get where I am pointing at, as the screen has to be 'stationary long enough to show the entire picture', and then show the 'entire next picture long enough'

--- End quote ---

Marco:

--- Quote from: hexahedron on January 22, 2019, 05:13:11 pm ---Hey all, I have decided that I'm going to put this project on hold on my end. You guys have brought up so nsny good points that i had not considered that make this project damn near infeasible. Feel free to continue discussion, as I feel it is very constructive.

--- End quote ---

Not infeasible, just a lot of work. Lets say you go with the approach I suggest, here's roughly how ignoring unforeseen roadblocks I'd chop up the tasks :

- get preempt_rt and camera working on SBC and find out how to get low latency access to the framebuffer (unfortunately the H3 boards I mentioned before won't support a 60fps camera, just use a Raspberry Pi 3 for now)
- get EZ-USB and TLC7528 DAC working with SBC
- create monochrome NTSC signal from camera input, which is not that hard. Feed it to the transmitter and you can fly at this point
- get EZ-USB and AD9200 ADC working with laptop running Linux with preempt_rt (easy to convert to SBC later on, but save yourself the headache for now)
- connect the ADC to the appropriate trace in the receiver, decode monochrome NTSC and put it on screen

Then you are ready to start experimenting with encoding, FEC, multi-path correction and compression. Then at the end of the line you can port the work to a lower weight SBC or even a FPGA.

dmills:
Lots of confusion about how LCD display modules work.

The common graphics ones often have a few operating modes, typically you can have a microprocessor interface to a frame buffer, or an (often) 16/18 bit interface with Hsync and Vsync that may or may not involve the frame buffer depending on what you want to do, finally there is sometimes a microprocessor style option that also uses Vsync. MIPI, DSI and the like are basically Hsync/Vsync style interfaces just done over a serdes.

The tradeoff is that in non frame buffer mode you typically cannot do rotation in the screen itself, and quite a few of these screens are annoyingly setup for tall and narrow as their native scanning format. Obviously a rotation involves a frame of latency any way you cut it (and more typically two frames of latency).

For real low latency video there is still something to be said for a an old Sony BVM series grade 1 CRT....

73 Dan.

ogden:
Marco just described complex, multimillion $ worth SDR development project like it's nothing. In short: if you have to develop digital radio transceiver - better drop whole "Digital FPV" project right now. If you can live with "off the shelf" digital radio ASIC (or module), then video processing part can be tried by bunch of dedicated developers with loads of free time.


--- Quote from: Marco on January 22, 2019, 09:31:04 pm ---unfortunately the H3 boards I mentioned before won't support a 60fps camera, just use a Raspberry Pi 3 for now

--- End quote ---

It is good idea to start with widely available stuff - rPI, it's camera and WiFi dongle to use it as prototype development system. BTW some forum chat says that rPI camera can run faster than 60FPS. Using existing software solutions/libraries you can build proof of concept remote display - to get taste of that huge pile you will be digging through.


--- Quote ---Then at the end of the line you can port the work to a lower weight SBC or even a FPGA.

--- End quote ---

Right. I would plan FPGA from very beginning, use rPI just as development system for "low latency FPV video codec" and develop it with FPGA in mind. Video 480p or even 720p, >= 120FPS, camera with IMX219PQ or similar, FPGA (Zynq) for video compressor/decompressor, 5.8GHz 802.11ac (half-miniPCIe module) for transmission channel. When video development finished and it is worth to push radio latency into sub-1ms, *then* WiFi bells and whistles can be stripped down to just essential data transmission with minimal overhead, yet this alone is very complex task and most likely separate project on its own.

Marco:

--- Quote from: ogden on January 22, 2019, 11:21:36 pm ---Marco just described complex, multimillion $ worth SDR development project like it's nothing.

--- End quote ---

You would be using an existing transmitter and receiver, you aren't touching anything over 6 MHz. The ADC/DAC's I mentioned are 1$ parts ... this is more equivalent to a RTLSDR software project than anything else.

Neither the existing transmitter nor receiver really cares about the signal being NTSC, that's why the original idea had merit.

Everything is so much more difficult in FPGAs, starting from attaching the camera. There's no real light weight Zynq boards and designing one is a big undertaking in and of itself. If you're doing compression on the ARM, what's the point of a FPGA any more any way? FEC does 100s of Mb/s on these kinds of processors, where exactly do you see the need for FPGA at all? The only thing a FPGA makes a little more compact is attaching the DAC/ADC, since you can forego the EZUSB workaround.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

There was an error while thanking
Thanking...
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod