Internet Controlled car responsiveness

Hi, I would like to show you my last project: http://purposefulscience.blogspot.com.es/2013/07/internet-controlled-arduino-car.html it is a car controlled from internet using GSM shield, it sends photos continuously but I can't get better period than 10 seconds per photo (3KB), I think it is too much as the modem allows 85Kbps. Do you have any idea of where can I improve the time to send?

The code and the details are in the blog, it just send the picture using POST to a web server, so there is not more overhead than the HTTP headers.

Does it take 10s to send it? Or, does it take 10s to receive the photo that was sent?

(I still remember sitting at my monochrome monitor waiting 10-30 **minutes* for a pixelated b/w picture to download over my 300 baud modem...)

It takes 10 seg for the picture to be viewed at the web, the web is refreshing the panel every 1seg.

So there are about 10seg for

  1. reading the picture from camera serial (38400bps)
  2. Sending to modem (don't know default baud rate, I didn't set any specifically)
  3. sending through GPRS 85Kbps
  4. Saving to disk in web server

Well, it often takes that long to send a small photo to my printer...on my own network. 10s to post & download anything online through GSM seems pretty quick to me. Also, the 85Kbps modem data rate is an "ideal" maximum rate. Real-life situations will usually be some fraction thereof.

That aside, your Arduino only has 2K of SRAM. Even though photo is tiny, it's more than Arduino can hold in memory at once.

You could try something like this — http://hackaday.com/2011/09/05/upgrading-ram-in-an-arduino-mega/

Not sure how much it may help, but can't think of much else right now.

Good luck!

I don't know whether it will be of any use to you, but I remember seeing a GSM camera (don't remember whether it was a shield, but it was definitely Arduino compatible) that could be commanded to send images directly via GSM. I don't remember the details, but perhaps it would be possible to configure this to send a video stream, in which case your latency would be massively reduced. Even if it could only send a sequence of still frames, it would probably cut the latency quite a bit by taking the slow serial transfers out of the equation.