Streaming Performance

I know that this is a tough one but the question does need to be covered at some point. The question is, what kind of streaming performance can one expect from a Spark Core? For example, the Kickstarter page promoted the use of the Spark Core to send “video feeds” but exactly how much data and how fast can the Spark Core stream out data across a WiFi network? Can it really be used for streaming video, can it be used for streaming audio, if so at what quality etc? Should be a fun answer :slight_smile:

2 Likes

I would be interested in having also this kind of information :slight_smile:

Best Regrads,

Hey guys - it’s a great question and to be honest it’s something we haven’t tested yet. We expect that it should be able to handle 1-2Mbps, because that’s what I’ve seen in other conversations regarding similar Wi-Fi modules. However we’re still in build phase and not yet on to testing phase, so unfortunately I can’t give you any hard answers yet.

We will be doing lots of testing to produce detailed specs for bandwidth, power consumption, RF performance, etc., but most of this testing won’t be completed until closer to September.

OK, thanks, I look forward to it :slight_smile:

So I’m wondering if the answer to this is now known? Thanks.

@Dad we still haven’t done rigorous tests here, mostly because our speeds are still improving as we make tweaks, so it doesn’t make sense for us to invest time in tests until our code stabilizes. The current limitation on speed is based on the speed of the SPI bus, which we are working on speeding up and testing the effects.

Thanks for the reply @zach. I understand. Perhaps the creation of such a test and running it now as a baseline would be of value. This way you will know if streaming throughput is improving or taking a negative hit from your other tweaks. Streaming video / audio is going to be highly desirable to many Spark users I suspect. Thanks again.

Definitely of value, but we’ve got some bugs to fix first… I’ll add it to our backlog!

1 Like

Can anyone make a streaming video test from a webcam just using Spark Core? I dont have my core with me yet. So It will be nice to have some knowlegde about how to stream data with Spark Core before mine is arrive.

Thanks.

The best streaming performance I’ve seen with the CC3000 so far was 30KB/s, but that was an Adafruit breakout with an Arduino Uno. I have much higher expectations of the Spark Core, but it’s probably going to take some experimenting and customizing to achieve. Since the whole system is balanced to give all users all features, your performance takes a hit for any given feature. The potential for speed is there though, we just have to unlock it.

2 Likes

Is there an update to this question? I would like to stream high quality audio through the spark. Should be possible right?

In my very basic tests, I was able to stream data in the 30-60KB/s range, I’m sure performance could be better with more fine grained optimizations. I think the low end ~30KB should be enough for a basic audio stream, but it might be tricky, and I don’t want to over-promise. :slight_smile:

Maybe we should do a core-transfer-speed competition?

Thanks,
David

Hi Dave,

I am looking at the Spark for a senior design project. What I have in mind is using the spark to relay information to my Teensy micro controller and play sound through a shield. I know I can’t get the necessary bit rate for high quality audio with just the Spark, hence another controller for buffering. I am extremely lost right now and I am just looking for the right platform to begin. I am not very familiar (not familiar at all) with TCP/UDP and other IP’s but there is a UDP class in the documentation. Could you possibly point me in the right direction and what I need to know about networking to continue/begin this project?

Hi @chad,

Sure, I can try to help!

###10,000 ft view:

TCP / UDP are ways of sending messages between devices on a network. It’s up to you to determine what goes inside those packets, but the two protocols behave differently. TCP does a lot of work to make sure what you send arrives in the same order that you sent it, and that it all gets delivered. UDP doesn’t care as much about that, but it’s good for broadcasting messages especially when you can stand to lose a few packets (like an audio stream).

###Getting started

The easiest way to get started is to grab an example and get it running, and then try to modify it to do what you want.

Here’s a really basic TCP server that can run on the core that happens to pretend to be a webserver: https://community.spark.io/t/tiny-webserver-code/3297

If you’re just getting started with network programming, and / or programming in general, I might recommend playing with networking code in an environment like Node.js. This will let you experiment quickly, and get a feel for how things might work, and from there you can take those concepts to other projects. A quick Googling led me to a good example / book here: http://chimera.labs.oreilly.com/books/1234000001808/ch02.html

Hope that helps!
Thanks,
David

2 Likes

HI,
I am actually working on a robot project, where I have to continuously stream data to the laptop from 3 sensors. The data rate mentioned in this thread is about 30-60KB/s. But the actual performance of the wifi module, is much more(4MB/s). Is there any method to increase this rate.
Thanks
Saketh

1 Like