2
\$\begingroup\$

I'm looking for some advice as to the best way to achieve wireless video streaming from an OSLess embedded system we are building.

I have never done any work with WiFi before so all the help I can get would be appreciated.

Since we are looking to stream video we will need a high throughput connection on both the WiFi and interface ends of the device (we are looking for an add on module type solution). I have been researching on the web for a week or so now and haven't really had much luck.

our system is based on a Freescale i.mx 233 processor (USB and SDIO interfaces)

The possible solutions we have come up with would be:

  1. an SDIO Wifi N module (as SDIO seems to be the only interface fast enough (excluding USB), am I correct?)
  2. a USB stack with WiFi over USB class drivers allowing the use of a WiFi dongle.
  3. using a minimal RTOS that has support for WiFi over USB dongles

    • Whiznet provides SDIO modules that suit our need
    • Jungo USBWare has an OSLess WiFi over USB stack and class driver
    • Freescale provides the MQX RTOS that has an optional USB stack with the CDC USB class driver (as well as a few other minimal RTOS that provide this kind of support)

Whiznet has been very slow getting back to me with information (I don't even know there prices yet and they don't seem to sell through distributors which makes me think I won't have much luck with them)

I haven't even heard back from Jungo and I would rather stay away from USB if possible as it seems like an unnecessary complication.

I would like to avoid an RTOS as much as possible as we're doing some image processing and I would like to be in control of as much of the overhead as possible, though if there are no other solutions we will probably go down this path.

Does anyone have any experience doing a similar thing? What do you think, what's my best option and have I missed any?

It feels a lot harder than it seems it should be.

edit

We are looking at streaming video with an absolute minimum resolution and frame-rate of 320x480 @ 15FPS

\$\endgroup\$
  • \$\begingroup\$ is your video compressed? \$\endgroup\$ – Phil Frost Jan 9 '13 at 2:41
  • \$\begingroup\$ @Phil Frost: We will be adding compression, but have not decided on the compression yet as it will have to be a balance between image processing and compression (due to processing power) that we will have to tweak. So for now we are looking at finding a solution for our minimum resolution and FPS and anything extra we can get from compression will be a bonus. \$\endgroup\$ – matyoung89 Jan 9 '13 at 3:05
  • \$\begingroup\$ Well, without compression, and assuming a 24-bit color depth, your needed bandwidth is \$\frac{320 \cdot 480 \cdot 24 \cdot 15}{1000 \cdot 1000} \approx 55 \$ megabits per second, just for the video, to say nothing of protocol overhead. This will be difficult for WiFi to achieve at all except in interference-free, professionally designed environments with no bandwidth contention. \$\endgroup\$ – Phil Frost Jan 9 '13 at 3:12
  • \$\begingroup\$ @Phil Frost: That's a bit of a let down, I was thinking with USB modules advertise with speeds of 300mbps such as the ones listed at radi.com/modular71.htm it wouldn't be difficult to achieve 55mbps. We'll go sort out compression and I'll update my question when we get the final transmission throughput specs. \$\endgroup\$ – matyoung89 Jan 9 '13 at 5:43
  • \$\begingroup\$ @Phil Frost: What true bandwidth would be reasonable for WiFi? \$\endgroup\$ – matyoung89 Jan 9 '13 at 6:15
1
\$\begingroup\$

TI sells the CC3000 that is very much RTOSless. The stack and everything is on the chip/module, and you just need a driver that's about 6k of code, 3k of RAM (sometimes even less if you're willing to sacrifice throughput).

Last I saw, the Evaluation board which is just CC3000 (or booster pack for launch pad) was going for around $30.

\$\endgroup\$
  • \$\begingroup\$ Thanks for the quick response. I just had a look at it and the CC3000 seems to use an SPI interface, which from my research supports at most around 10Mbps. Correct me if I'm wrong but I'm not sure this would be suitable for streaming video? \$\endgroup\$ – matyoung89 Jan 9 '13 at 2:29
  • \$\begingroup\$ You're correct. Video is not going to be possible unless the datarate is small. CC3000 can do up to 4Mbps in real world. \$\endgroup\$ – Gustavo Litovsky Jan 9 '13 at 2:57
  • \$\begingroup\$ After looking into compression, this module could be used. So I have accepted it as the answer. Thanks. \$\endgroup\$ – matyoung89 Jan 9 '13 at 10:28
1
\$\begingroup\$

This thread is a bit old now, but Redpine Signals and BlueGiga make nice modules. Look for a clear well documented API. Many suppliers out there are overly cautious with their documentation for fear of revealing too much to their competitors.
SDIO is a nice interface that will take full advantage of the Wi-Fi potential throughput. If you need speed look at DMA. An RTOS is not a bad thing. I have successfully used FreeRTOS in the past and it saved me from writing many of the services it provides. The overhead is small in both memory and time for the scheduler to run.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.