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

 
Learn about scoring Forum's Raw Score: 9032520.0
November 2, 2008 01:24 PM

Categories: Rovio Development

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

Member Avatar

RobosapienPet

Member
Joined: 10/18/2006

DISCLAIMER: not based on official specs (there aren't any). Culled from other posts on this forum and external info including http://www.deviceguru.com/mobile-robot-packs-wireless-web-cam/ 
This is an evolving document. Take it FWIW.

Main Processor — Marvell "PXA270M"
Clock frequency TBD (there is  a 24MHz crystal)
Main Memory — 8MB RAM; 2MB flash

There are at least two serial ports (UARTs)
/dev/ser0 is used as the "NS" serial port to communicate with the North Star sub-system.
/dev/ser1 appears to handle the "mcu" commands for motor control. They are sent to the motor control in the main body.

The robot's USB port can be used in two different ways. If you plug in the USB before turning on the robot, the 2MB flash drive will appear as an unformatted disk volume (NOT RECOMMENDED). If you plug in the USB after the robot is on, the USB provides a serial port connection which is required for the Rovio Setup process.

The ARM processor runs the web server, webcam, media streaming and general robot control.
It runs the open-source "eCos" operating system.
The media streaming server is based on a variant of the "spook" media streaming server ( http://www.litech.org/spook/ ). It uses the "RTSP" protocol ( http://en.wikipedia.org/wiki/Rtsp ) to stream video and audio from the Rovio webcam and microphone, to your PC. Sending audio from the PC back to the Rovio (to play on the robot's speaker) is done using a proprietary method (see GetAudio.cgi).
The WiFi features are based on the "libertas" library. It connects to special WiFi features inside the Marvell ARM processor.
These features are very hackable in the main program. The RAM memory can be directly accessed using special URLs.

At the current time, WowWee has not released any open source material, so low level hacking requires a fair amount of reverse engineering.
-----
Higher level programming is possible using special URLs from a PC program (either a standalone program, or special JavaScript inside a webpage). WowWee has released specs for most of the possible URLs:
http://www.robocommunity.com/download/14278/WowWee-Rovio-API-Specifications-v1.2/ (also available at the WowWee support site)
----
Inside the Rovio is a NorthStar (TrueTrack (tm)) detector to locate the robot in a room relative to a beacon. It is a separate module with its own Digital Signal Processor brain. It connects to the main CPU using a serial port.
Read more about NorthStar here: http://www.evolution.com/products/northstar/

The webcam camera is an OV7670 (although the firmware can handle other models). http://www.ovt.com/products/part_detail.asp?id=53

The audio codec and speaker driver is a WM8976 http://pdf1.alldatasheet.com/datasheet-pdf/view/98934/WOLFSON/WM8976.html
A 8051uC (WinBond W99100DG) appears to provide some periheral control. Details are sketchy.

Discussion:    Add a Comment | Comments 1-25 of 37 | Latest Comment | 1 2 Next »

November 2, 2008 1:43 PM

Your last point is interesting- can you tell what other models are usable? I've been thinking of how hard it'd be to swap out the lens for a larger diameter one, to let more light onto the sensor. A crude measurement was some 0.045-0.05" diam. for the existing Rovio lens. I have another from a Logitech webcam with a 0.125" diameter lens, with much more travel in the focusing dimension.

November 2, 2008 2:23 PM

> ... can you tell what other (camera) models are usable?
FWIW: There is code in the camera init for the following numbers/models.
2640, 7670 (that's the one in mine, OV7670), 9650, 7725, PO6030K
Google around for manufacturers (eg: PO6030K matches a "pixelplus" part). No guarantee they would work (it might be remnant code from some other product).
Others may be possible with an open source release. Might be tricky to hook up any replacement due to hardware issues.

November 2, 2008 4:20 PM

RobosapienPet said: >... Might be tricky to hook up any replacement due to hardware issues
RsP, have you opened yours already? If you do, could you post images of the camera board? I had mine open but forgot to take pix; I'm curious if there's any useful markings on the board itself (as to camera model).

November 2, 2008 5:36 PM

> could you post images of the camera board?
Not mine, but please refer to the excellent photos by 'tome'
http://www.robocommunity.com/forum/thread/14360/Inside-Rovio/
http://bgp.nu/~tom/pub/rovio/

November 3, 2008 10:13 AM

Unfortunately Tome didn't post pix of the camera board itself... mine bears the printing 'KOI-CM Board_001_V12'. Didn't find much of interest by googling that.

November 10, 2008 6:38 AM updated: November 10, 2008 6:39 AM

RobosapienPet said: Those four unsoldered holes look suspicious.

Just a thought, Rovio's firmware is under the belief it has two network connections, wlan0 and eth1

Edit : Doh! wrong thread.

RoboGuide - Your guide to hacking all things WowWee

November 11, 2008 2:10 PM

Can we use this for development?
http://msdn.microsoft.com/en-us/library/bb483088.aspx

For Technology News, Some tools and Information goto http://cmilian.spaces.live.com

November 12, 2008 11:22 AM

> Can we use (Microsoft Robotics Studio) for development?
Split into a separate thread:
http://www.robocommunity.com/forum/thread/14544/Rovio-URLs-v.s.-Microsoft-Rob...

January 6, 2009 8:42 AM

Hi there

Is it possible to read the data from the north star trough the computer program?
Or do we need to make some connections on the base station to get the data?

January 26, 2009 8:23 AM

Check the API - Get Report() - pg. 9 that's the command that gives it all up, unless your looking for nslib and sensor version - that's a seperate command.
The URL is ->
http://192.168.1.36/rev.cgi?Cmd=nav&action=1
If you logon to your rovio and navigate to this URL you'll see the NS data.

January 26, 2009 8:25 AM

Oops in the URL the IP is the one you configured, mine is 192.168.1.36.

May 25, 2009 4:37 PM

If it is an ARM9 processor, is it possible to wipe out eCos and install Windows CE 6.0? You would lose the Evolution/WowWee software and it wouldn't be able to find the charging station etc., but MSRS runs on Windows CE and you could start doing some really interesting things with this bot.

October 1, 2009 11:08 AM

I'm wondering how you know the rovio uses the eCos OS?
As far as GPL violations, I share your frustration.
I believe that you need to inform the actual copyright holders of the violation so they can pursue it. I would do it, but I haven't any proof of the violation, as all I've got is the binary.

Do you have a good disassember available for the PXA270M?

Thanks for your reports it's been helpful.

All things considered, a byte is 8 times smarter then a bit. If that were true, then a byte should only store numbers up to 8. Could it be that a byte is greater then the sum of it's parts?

October 6, 2009 9:55 AM

Not sure there is GPL violation they could get license from RedHat.
Looks like they use lots of GPL stuff anyway.

Best dissassembler is probably IDEA Pro from datarescue.
Free one can be found in gnu tools available in eCos distro, though it is a bare metal disassembler.

Anyway you'll need to extract code from Firmware image, it is a few zips buried in some archived format I don't know about.
I extracted some looking at PKZIP markers but wasn't able to go very far.

Chris

October 6, 2009 11:01 AM

RedHat cannot arbitrary license GPL software that is not theirs. I also didn't see any mention of RedHat in the copyrights.

The bin doesn't appear to be compressed to me.

All things considered, a byte is 8 times smarter then a bit. If that were true, then a byte should only store numbers up to 8. Could it be that a byte is greater then the sum of it's parts?

October 6, 2009 12:48 PM

Before being GPL'ed by RedHat it was under different license, they may still have licensable versions, though i think they used last GPL version.
License on ecos site has also mention of exception to GPL.
Daesn't look like simple 'GPL' imho.

Firmware contains an arm bootstrap that apparently expands zipped stuff, most important one is CameraTest.bin. You can see the PKZIP markers a few bytes before if you look for this name with an hex editor.
I extracted what's between the markers in FW5.02b4 and unzipped stuff to get plain CameraTest.bin program, it contains lots of strings that seems to indicate this is the heart of the system.

So it confirms what was found already by RobosapienPet on older version:
http://www.robocommunity.com/forum/thread/14168/Rovio-technical-USB-and-firmw...

Chris

October 6, 2009 1:41 PM

That redhat stuff is way back in 2002 I don't think it was compatible with current hardware, though I may be wrong.
Why do you think that the os is eCos?

All things considered, a byte is 8 times smarter then a bit. If that were true, then a byte should only store numbers up to 8. Could it be that a byte is greater then the sum of it's parts?

October 6, 2009 2:53 PM

Code in CameraTest.bin contains references to eCos stuff like /dev/haldiag, even some file paths like:
D:\IPCam_W99802\WPA_IPCam\Source\Host\libeCos\src\devs\eth\arm\w99702\v2_0\src\wlan\wlan_wext.c

It seems to confirm it's based on eCos, don't know what version.

Chris

February 17, 2010 3:04 AM

As said in the top of the thread, the webcam camera is an OV7670

I tried looking at the brief introduction of OV7670 on the link. It said "high sensitivity for low-light operation", but it is obviously not matching what Rovio's performance shows.

Is it any possibility that the software control of Rovio or the hardware config is something wrong so that the video is poor regarding to brightness?

I tried downloaded the full datasheet of OV7670, and will try to understand it. Though I have experience of electronic engineering, I did not touch camera chips any.

Any other ones have interest on this?

RovioBrighter - brighter your Rovio!
http://www.robocommunity.com/download/17526/RovioBrighter/

March 4, 2010 2:34 PM updated: March 4, 2010 2:37 PM

Yes !

I would love to know what other camera options we have, the current camera is way to dark. So I think it is worth looking into !

Maybe they have a newer cmos chip that can be exchanged with the current.

April 15, 2010 3:23 PM

I was poking around their data-sheets, the 1MP OV9655 seems to have the same form factor as the VGA OV7670. Any one fancy picking one up?

April 16, 2010 9:51 AM

That maybe a good pick, I also have to take a look at the datasheet if the inferface is also the same... and voltage etc.... :)

Any idea what the price would be ?

Cheers.

April 16, 2010 12:54 PM

Now that this (http://www.robocommunity.com/forum/thread/17515/Fix-of-the-Rovio-brightness-c... ) is available is there really a need to replace the camera?

April 16, 2010 4:40 PM

@Mannyman: Yes, because it still looks awful. :-p

Actually, I've found the video looks vastly better using RovioDirect (sans-patch) then a web browser. Not sure why. I may try seeing if I can pull the IR filter off.

April 26, 2010 12:34 AM

I found out some other settings for OV7670 which may improve the quality of the image, such as the AGC value, the curve of gain, etc. As the brightness finding, I doubt some other setting may not be optimized either.

I think another option worthwhile doing is to migrate an IR camera in so that it is turned to be night sight.

RovioBrighter - brighter your Rovio!
http://www.robocommunity.com/download/17526/RovioBrighter/

Discussion:    Add a Comment | Back to Top | Comments 1-25 of 37 | Latest Comment | 1 2 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