OUR NETWORK:TechLore Explore3DTV MyOpenRouter MediaSmart home TiVoCommunity See all... About UsAdvertiseContact Us

 
Learn about scoring Forum's Raw Score: 1.79184E7
October 3, 2008 01:40 PM

Categories: Rovio

Rating (1 votes)
  • 1
  • 2
  • 3
  • 4
  • 5
Rate This!

Member Avatar

RobosapienPet

Member
Joined: 10/18/2006

Rovio acts like a web server. Your computer's browser connects to that web server and the Rovio provides web pages for the user interface (with changing content, like the current camera image)

 The default main webpage provides the full screen user interface using JavaScript "http://{IP_ADDRESS}/index.htm"
(replace {IP_ADDRESS} with your Rovio's IP address, eg: 10.x.y.z or 192.168.x.y typically)

For mobile devices, iPhone/iPod/WinCE, it automatically redirects to "http://{IP_ADDRESS}/mobile/index.htm"
This is a stripped down version for smaller screens

The webpage is selfcontained on the web server (Rovio), including all images
(eg: "http://{IP_ADDRESS}/img/titlebar/titlebar_left.gif")

NOTE: The current camera image can be accessed directly by:
http://{IP_ADDRESS}/Jpeg/CamImg.jpg
----

The rovio.js JavaScript explains how much of the glue works
http://{IP_ADDRESS}/lib/rovio.js (edit with any text editor)

It uses something called "Prototype and Scriptaculous", a combination of useful JavaScript libraries
http://www.stevekallestad.com/blog/prototype_and_scriptaculous_compressed.html
("combined prototype and scriptaculous" version)

Most of the functionality is performed in .CGI scripts (see rovio.js), some with URL args (eg: "&blah=1") or http request POSTed args.

Camera features:
"http://{IP_ADDRESS}/Cmd.cgi + POSTED_ARGS" is the main one, which can call other .CGI functions
Functionality is VERY similar to this camera:
http://www.canvision.net/product/product_pt300_eng.html
http://www.canvision.net/support/pt300-cgi/CmdList.htm (some don't apply)
There are others, "GetData.cgi" for getting camera data, "Change???.cgi" for changing settings (resolution, frame rate, volume, etc), "Reboot.cgi" to reboot, "GetWlan.cgi" for settings, ... (there are others, look at the "index.htm" source as well as "rovio.js")

Robot features (movement etc)
"http://{IP_ADDRESS}/rev.cgi + POSTED_ARGS" is for robot control. See "rovio.js"

I could go into more detail, but it is relatively easy to figure out by examining the two HTML files (regular and mobile) and the "rovio.js" file.

-----
More advanced hackability:
The web server on the Rovio does not support browsing folders, or provide 'ftp'. This means there is no (easy) way to browse the entire file system.
There is a firmware update feature. Since there hasn't been a firmware update, the format used and the possibilities of hacking it are TBD.

Bottom line, it looks like they joined their robot control to an existing web cam (not unlike the way RS Media was put together)

Discussion:    Add a Comment | Comments 31-45 of 61 | Latest Comment | « Previous 1 2 3 4 5 Next »

December 19, 2008 11:04 AM

> Do you think WowWee will eventually give us access to upload JS files into Rovio?
You should be able to do that today, but the process is tedious (ie. must reflash/reupload the patched firmware). Overkill since you only want to change one webpage file, and you are forced to reupload everything.
-------

New CGI scripts in latest firmware update beta:

dump_cgi.cgi -- lists CGI scripts and other URLs
DropData.cgi
GetUPnP.cgi
GetVNet.cgi
ScanWlan.cgi
SendHttp.cgi
SetUPnP.cgi
SetVNet.cgi

December 28, 2008 3:34 PM

Someone mentioned adding some of this into a browser some how.

I am not taking it on but someone could always use GreaseMonkey for firefox... also one you can modify the page using GUI with a application called playapus, maybe those would help?

I'd think theoretically you could select the audio and output it into Firefox that way too?!?

December 28, 2008 5:10 PM

RobosapienPet said: > Do you think WowWee will eventually give us access to upload JS files into Rovio? You should be able to do that today, but the process is tedious (ie. must reflash/reupload the patched firmware). Overkill since you only want to change one webpage file, and you are forced to reupload everything. ------- New CGI scripts in latest firmware update beta: dump_cgi.cgi -- lists CGI scripts and other URLs DropData.cgi GetUPnP.cgi GetVNet.cgi ScanWlan.cgi SendHttp.cgi SetUPnP.cgi SetVNet.cgi
Hi,
 How did you find this out? Are you using TelNet or SSH to access the webserver?
 Thanks,
Rich

December 29, 2008 10:03 AM

> flowersrj said: 

> How did you find this out? Are you using TelNet or SSH to access the webserver?

Unfortunately Rovio doesn't support either. The Rovio server software does have "FTP" capabilities inherited from eCos, but they aren't turned on in the Rovio build.

To examine fully what Rovio can do (and which GPL software they are pirating to do it ;-< ;-), you need to disassemble the firmware. See other posts on this topic if interested.

NOTE: the "dump_cgi.cgi" script is new in this release. This gives you a quick overview of the possible CGI commands.

December 29, 2008 5:55 PM

Thanks for the information. I was hoping it was easier then having to have a disassembler.

Rich

January 2, 2009 9:32 PM

I haven't explored all of these in-depth yet, but I haven't seen them listed elsewhere, so I thought I would share. These are mostly for testing/debug, but may contain a few nuggets.

/testpage.htm - (Looks like some sort of vanilla diagnostics page for SQA/Manufacturing.)
/waypoint.htm - (Low level web interface, haven't explored the inner-workings yet, but may be interesting, has a goofy results box that is too small, but you can cut&paste the full contents elsewhere)

Note also, all of the htm pages on the Rovio are gzip compressed, so you can download them as waypoint.htm.gz as well for example.

Also a couple of these are new in beta (DS), others have been there, but I haven't seen them otherwise listed in the forums.

/mobile/ds.htm - (Small formats useful for the DS, and other low-bandwidth needs)
/mobile/ds2.htm
/mobile/iph.htm - (ipod touch interface is fun to toy with, albeit a bit touchy ;).
/mobile/facebook.htm - (Just what we need, a bunch of mobile, globally distributed spybots to become infected via FB).

...RB

January 2, 2009 10:54 PM

RoboBrain said: /mobile/facebook.htm - (Just what we need, a bunch of mobile, globally distributed spybots to become infected via FB). ...RB

Just so long as the connection indicator lights don't turn red when connected with V.I.K.I's facebook page.

 You mean they do turn red!?   Run AWAY!

(and watch I-Robot if you don't get the reference)

ScottE -- collecting and building robots for 40 years - details in profile

January 4, 2009 2:10 AM updated: January 4, 2009 2:45 AM

Has anyone figured out how to use the update to update the firmware? I'm reading the manual they have online and am a little lost, this isn't my field :) I seem to have bricked my Rovio with the latest update, using the CGI commands I've confirmed I'm stuck in the 5.33 firm ware from Dec 16th. No amount of restoring (via CGI or Rovio's resore program) is getting it off, I think my only option is to upload the old stable firmware through CGI.

Thanks!

January 4, 2009 7:45 AM

Run AWAY!


Or the Monty Python reference? :)

-- roschler

Nanabot - And One Robot To Rule Them All The under $100 game playing, conversational robot

January 7, 2009 4:29 PM

Is there a way i can click a link and have it auto login to the rovio? i am thinking of interfacing the "current camera image" feature into something but i have to have it auto login.

January 7, 2009 4:42 PM

Aeroworks said: Is there a way i can click a link and have it auto login to the rovio? i am thinking of interfacing the "current camera image" feature into something but i have to have it auto login.

You could use the http://user:pw@rovio/ URL, but then of course you'd be exposing your password in your source code.

January 7, 2009 11:27 PM updated: January 7, 2009 11:52 PM

If anyone wishes to mess around with the JS or craft their own html files for manipulating their rovio (without disabling XSS in IE) and/or using Firefox, you could use a reverse proxy to override specific files.  I've implemented one for my own testing using Perlbal (Perl Load Balancer).   You just need to install perl and the Perlbal module from CPAN.  It works fairly well, I've done the same with Squid+Apache in the past, but Perlbal is quick and easy with this config below.  The options you need to change for your environment should be self explanatory.

As you can see the config serves some files from a local directory and proxies all others to rovio.  I pulled down all the *.js files in this case because I've identfied bugs in there I needed to fix.  You could remove the .js pattern if you only want to create *.html files.  (Rovio's files are .htm, so I can see both with this setup..)

 Enjoy...

...RB

# ------------ perlbal-proxy.conf

LOAD vpaths

CREATE SERVICE site
  SET role           = web_server
  SET docroot        = /srv/www/htdocs/rovio
  SET dirindexing    = 0
ENABLE site

CREATE POOL rovio
       POOL rovio ADD 192.168.[YOUR_NETWORK].18

CREATE SERVICE rovio_proxy
       SET role            = reverse_proxy
       SET pool            = rovio
       SET persist_backend = off
       SET verify_backend  = off

CREATE SERVICE proxy
  SET listen         = 0.0.0.0:8000
  SET role           = selector
  SET plugins        = vpaths
  SET persist_client = on

  VPATH /.*\.html       = site
  VPATH /.*\.js         = site
  VPATH .*             = rovio_proxy
ENABLE proxy

January 11, 2009 1:38 AM updated: January 11, 2009 1:57 AM

Is there a URL command which will tell the rovio to drive forward/backward until a command is given to stop? I have been looking through the API and the way they say to do it has me spamming the forward command LOTS of times to get a smooth forward movement.

Currently i am using:

Http://domain.com/rev.cgi?Cmd=nav&action=18&drive=1&speed=10

This just moves it maybe an inch or so.

January 30, 2009 10:11 PM

Hey, here is a very dumb question...it just eludes me!

I am controlling my rovio directly via scripts. But every time I "start" it asks for the Rovio password and login.

I know there must be a way to pass the password and login programmatically as part of cgi script but can't find it in api!

Thanks!

January 30, 2009 10:23 PM updated: January 30, 2009 10:25 PM

What kind of scripts? If using Perl, check the LWP modules. If Python, check urllib2.

For just plain urls, try http://user:pass@hostname/ but that's not overly secure ;)

Edit = I'm sure other scripting languages have similar libraries, but I don't know 'em.

Watch out, don't step in the anthropomorphization.

Discussion:    Add a Comment | Back to Top | Comments 31-45 of 61 | Latest Comment | « Previous 1 2 3 4 5 Next »

Add Your Reply

(will not be displayed)

Email me when comments are added to this thread

 
 

Please log in or register to participate in this community!

Log In

Remember

Not a member? Sign up!

Did you forget your password?

You can also log in using OpenID.

close this window
close this window