wireless video transmission with arduino

hi all once again :slight_smile:

I started one other thread that can be found here: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1289089043, if you were interested :slight_smile:

eventually, in this project, I would like to take a stab at wireless video transmission with, you guessed it, arduino. I have only just started looking into this, and really haven't got that far yet, but suspect that it might be somewhat more involved/difficult to do than controling one servo. So, I will continue looking into it, but in the meantime, thought I might pop the question to the community, and see what comes of it..

cheers,

-Mike :slight_smile:

-btw, objective: transmit video from a glider, so it can be piloted rc, from the perspective of the hypothetical real pilot.. I should post this also on the rc-universe forum..

ah, this might be the answer: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1284426410/3, any others, please let me know!

and another good one: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1280351090/9

finally: wireless video transmission, with arduino? - RCU Forums

Mike have you actually read those threads? They all say it can't be done.

Swapping your Vespa for a roller skate. :wink:

Hi Mike,

Doing even low quality video is beyond the capabilities of the Arduino as Richard points out.

However controlling a photocamera is done before, e.g. http://www.instructables.com/id/Hacking-A-Keychain-Digital-Camera-for-Arduino-Cont/ In a similar way you might control an (inexpensive) videocamera, but the Arduino will only be there for control purposes. Might be a nice project.

@Richard :

... house-moving business. But I only have a Vespa motor-scooter...

brick by brick :wink:

I just have to say, in my present frame of mind, that i only just finished reading about the vespa scooter, and I am laughing my head off :slight_smile: ... I will finish reading what you have written now.. :smiley:

hehe.. ya. in my own defence, note that I also posted in this thread: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1280351090/15 My bad, I should have posted that same post in this thread as well. sigh. :slight_smile:

some more research has turned up this: http://www.edimaeg.com/camera.htm . seems to be a good description of what I want. however, no price is listed, the guy who mentions it on the rcuniverse site says the ups delivery fee was 100 us. and I can't see any contact info on the site.

so, my question becomes: if somebody (probably not me, I have too little such experience?) was to design an arduino 'ultra-mega' capable of doing this, is there enough demand out there to make it a worthwhile venture?

...

three (at least) concepts: processing power, memory, band-width.

where do things stand? ie, were we to compare these three properties of a 'normal arduino', uno, or mega, for example, how would they compare to the corresponding values necessary for this hypothetical system to work?

.. tried to get data from the edimaeg site into this post, but gave up. might try again later.

...according to these folks: Bandwidth estimation for wireless video transmission | IEEE Conference Publication | IEEE Xplore 100 - 500 kbps is required..

and the bandwidth of the arduino is:... http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1262895738 .. unknown until the complexity of the program is known.

ok, now we are getting somewhere!: http://fpvpilot.com/default.aspx

and, fyi, I got the search term 'FPV' from here: FPV Camera and Goggle Video Resolution - HELP! - RCU Forums

ah! http://www.dpcav.com/xcart/product.php?productid=16480&cat=0&page=1&featured

seems like the prices start at ~200.. Cannot Find Product...Searching

ok. so, I think we have established that the market exists, and that I don't have to put a laptop in my glider. next question. and this next question dives right at the core principle of arduino.. : now that we know that the tech exists, and is relatively small, and relatively in-expensive, is there any motivation for develloping an arduino version of it? I think so, but if you were to ask me what my reasons were, at best I would take time to answer, at worst I would flounder. As I see it, there are two main motivations for open-source: 1) if something doesn't work quite the way you want it to, you can change it. 2) if something breaks, you can fix it yourself. 3) if you can do it yourself with in-expensive components that are available, and the total cost of these components is much lower than the price you would ordinarilly pay, you save money.

so.. the 'do it myself', or 'understand thuroughly how it was done, don't just buy it, plug, and play' part of me would like to see an arduino version of this tech. the pragmatic part asks the very resonable question, why bother when the system involved costs at most ~2x the cost of controlling 2 servos wirelessly with arduinos?

NO Arduino, past or present is capable of anything remotely resembling full-frame OR full-speed "video".

"Full-stop" as they say in BrEnglish.

Now which part of that did you not understand?

chill dude :slight_smile: I totally understand! see my extended post above :smiley:

.. just in case it is not clear, my question boils down to, would it be possible, or even desirable to create a -future- arduino capable of doing this :slight_smile:

-mike :slight_smile:

-ok, gotta get going. chat again later!

If you mean "desirable" for Arduino,

yes.. that is what I ment.. the idea of it being desirable for atmel never entered my mind, though I suppose it should have.

But the whole concept of "Arduino" does NOT seem to be in the direction of high-speed, high-level digital signal processing (DSP). Other companies specialize in that market.

hm.. given what you said above, the question must be asked: what do you think the direction of arduino then to be? and why? obviously, it would seem, you can't speek for the arduino leadership, but it seems equally likely that you have your own impression, and I would be very happy to hear it! :slight_smile: it would help me a great deal in placing arduino amoung all the other technologies out there..

thank's!

... oh, and ya, this:

There are microcontrollers (several) out there right this moment that already do that. They just aren't Arduino/Atmega.

...absolutely begs the question: which microcontrollers are these? of course I could do a search, and find them eventually, once I had figured out what to look for, but I probably wouldn't bother, given what I already found above. But it sounds like you might be able to name a few off the top of your head? it would be much appreciated!

-mike :slight_smile:

If you want to get into some faster processing then look here:-
http://www.skpang.co.uk/catalog/index.php?cPath=74&osCsid=7f8b521589af21f6a5daaba1349ff2e4
But while some of these are fast enough for real time video there are other things like the bandwidth of the transmitter to contend with. Google "ham tv transmitter"

simple awnser:

NO IT CAN'T BE DONE

Get one LPCXpresso 1768 or similar, or one STM32, those are 32 bits processors with DMA, and operating a 72Mhz or more, with a lot of goodies built in, they dont have a super simple high level functions to work with then, but if you really want full-speed video its the only way to go.

all right! now -those- posts were immensely helpful!

I am sure you can appreciate how useful all that information could be for people just getting into this!

...I can vaguelly remember the time when I first learned of the existance and purpose of micro-controllers.. I wanted to control a motor, a stepper, or a dc, or something.., and I went to the electronics store, and asked for their help. we ended up realizing that I had no knowledge of microcongrolers, and I left with a pic starter kit. later on, I stumbled accross another device I wanted to use, and those people recomended the arduino. another friend then confirmed that the arduino was very popular, and when I got one, yet another friend looked at the two boards and was emphatic that one was better than the other (arduino superior, when comparing those particular two boards).., just by looking at it! Obviously I then discovered the arduino website, needing to get the code for the thing. with my dad a proff of computer science, I have been listning to the gospel on linux/unix and open-source devellopment for the last 15 years, and so I quickly fell in love with the arduino. great. of course, I still had no idea what the actual capabilities of it were, hence these posts. now I know better :smiley:

we ended up realizing that I had no knowledge of microcongrolers

I love that line. :slight_smile:

:smiley: I like to think that I have -slightly- more knowledge than I did then :smiley:

thought there might be some lingering usefullness to posting these here:

http://www.nghobbies.com/cart/index.php?main_page=advanced_search_result&search_in_description=1&keyword=Fatshark+922+AE

.. full-immersion system, what more could you ask for, for about 140$ more?

and more relevant to this forum: Project Of The Month - November - TonyD - XArduino - XCore Exchange

if this turns out to be completely in-appropriate for what I want to do, I will doubtlessly find out quickly.

thought the links might be useful for somebody :slight_smile:

I like to think that I have -slightly- more knowledge than I did then

Judging from your posts - don't bank on it.

Do you understand that NONE of your examples use the microcontroller to run the video stream?

yes

Quote:
I like to think that I have -slightly- more knowledge than I did then

Judging from your posts - don't bank on it.

well, I do. (have more knowledge, that is)

what is also clear is that my efforts to help others interested in this topic (if there are or might be in the future), are resented. any further progress I make in this project I will refrain from posting.

I don't think your efforts are

resented

but it seems to have taken an inordinate amount of time for you to realise that they're irrelevant to the discussions here on the forum.

Please post - it may discourage others from keeping bringing up this issue.

that my efforts to help others interested in this topic

You are not helping others in the topic, you just keep posting totally irrelevant links. You are not exploring the requirements of your request and you are not engaging in any meaningful dialogue with other forum members.

any further progress I make in this project I will refrain from posting.

As you haven't made any progress yet it will be hard to tell.

This is a forum for Arduino related projects and ideas. Never ever is the Arduino going to be capable of this sort of thing. I think when you understand a bit more about "microcongrolers" you will blush with embarrassment about the hassling you have been doing.

but it seems to have taken an inordinate amount of time for you to realise that they're irrelevant to the discussions here on the forum.

I respectfully disagree. What I didn't realize was what was considered irrelevant (which still doesn't match my definition, but I digress), and the degree to which other users of the forums appreciate maintaining this relevance. Now I know better :slight_smile:

as for your request:

Please post - it may discourage others from keeping bringing up this issue.

perhaps you can appreciate the irony of it? anyway, let's bury the issue for now.

If, at some point in the future, I discover some technology, open-source or not, that has the capacity of interfacing 'satisfactorily' with arduino, extending the range of things it can do to encompass what has been discussed, I will post it here.

For god sake its a 8 BIT micro-controller with 2Kb of ram, it isnt enought even for a very smal 128x128 color lcd!

That's a very good point Senso - I don't think anyone has shown the simple arithmetic to illustrate the points made.

Taking the 128 square colour LCD.

Let's imagine 5 bit (each) RGB colour, and the pixels are packed, so a pixel can be stored in a 16bit word, giving just 32k colours.
128 * 128 * 2 = 32768 bytes per frame.

Assume a typical serial interface, requiring ten bits per transmitted byte (one start, one stop, eight data), that's 327 680 bits.
Per frame.
That's going to keep the UART busy.

OK, let's compress it, using something like JPEG.
JPEG works on 8x8 pixel blocks, typically on YUV, not RGB data, so we need to add the processor overhead of converting our 4:4:4 sampled RGB to 4:2:2 or 4:1:1 YUV.
This also means that we have to buffer at least eight lines of pixels, so 2048 bytes of buffer.
Now comes the discrete cosine transform, at its crudest a sequence of sixteen 8x8 matrix multiplies across all the rows and down all the columns (there are more effiicent implementations, but this is an illustration).
For each 8x8 block of Y, U and V.

Now we perform quantisation (division), run-length coding, and finally Huffman coding (awkward bit-packing), again, for each of Y U and V.

You may get a 10 to 1 compression, but it has taken a lot of processor time, on an architecture not suited to this type of operation.
You've also just made the data more susceptible to corruption by single bit errors, so make sure your serial link is robust.