OUR NETWORK:TouchSmart Community TechLore Sling Community MyOpenRouter MediaSmart home See all... About UsAdvertiseContact Us

 
Learn about scoring Forum's Raw Score: 1365520.0
September 24, 2008 08:17 AM

Categories: Other WowWee Robots

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

Member Avatar

RetroPlayer

  Member
Joined: 03/07/2008

I have gotten quite a bit of work done on a program to edit the roboremote files, including adding new devices (if you know the remote code details.)

There are three relavant files and so far, I have finished one: robots.uir, this is where the product information is stored including details about its remote format. I have an add new device function, the ability to edit any of the fields, and also the ability to change the display order.

I am next starting on the actual device UIR files. This is where all the actual commands are stored for the different categories. I have not entirely decided how I want to handle this section and will probably need some feedback.

The third section, which I haven't started yet, but will probably be the easiest of all is the RCF editor. This is the action scripts saved by the roboremote program. Each line is an action, and the entries look like this:

RoboRaptor,Backward,10

That's just robot name, function name, and wait time. Adding and removing functions as well as shifting the playback order is about all there is to it. The wait time could maybe be handled a little better from an editor, but not too much that can be done.

Anyway, the device UIR editor is probably going to take the most amount of work and I am wondering if there is any intrerest in this at all. If so, please help out with some feedback and maybe some suggestions for what you would like to be able to do with the roboremote.

Thanks,

Retro

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

September 24, 2008 8:42 AM

This is the robots.uir editor so far.

September 24, 2008 8:54 PM

Retro I guess you just can't stop your self from programming now, Hehehe
I would love to see what you have as I have already found the stuff you have already got, But I just have not had the time to write the program. You layout looks pretty good for now.

Jax

GWJax, To Hack and make mods on robots is a life style and comes natural and not by choice. If a robot has a screw to open it then it must be opened!

September 24, 2008 9:00 PM

Oh ya plus Ive been working on the ChatterBots as well. I have the FairyGod Father and will be doing some mods to it like adding dual speakers with an amp attached to it. The speakers will unfold from the side of the chair. I was going to anamate the face but there is very little room for the mod but I still may remake the head and aminate it soome how. Plus I'll be making a program like the one you have here to edit the sound files and motions of the ChatterBots. But that is down the line.

Jax

GWJax, To Hack and make mods on robots is a life style and comes natural and not by choice. If a robot has a screw to open it then it must be opened!

September 25, 2008 12:46 AM

Keep us up to date on both your projects guys (RetroPlayer + GWJax). Sounds like fun.

My Rovio Blog for Rovio Fanatics

September 25, 2008 5:36 AM

What do you think of the chatterbots, Jax? I had considered getting one, but none of the styles have really appealed to me. They basically just "talk" out of the box, right?

Also, are you saying you would like to see the source code for the roboremote editor? I can email it to you if you would like it. I am just getting started on the functions editor, and finishing up the rcf editor right now. I am a little stuck on figuring out how I want to do the functions editing. One feature I really want to add is the ability to create all combinations of remote commands like I did for the Elvis head. So, yeah, if you would like to see the source code and maybe provide some suggestions or ideas, I would like that.

I know you are pretty busy right now, as am I, but I have been finding programming a little zen-like for me right now. Sounds odd, but I don't watch TV or really play video games, so this is kinda my way of "vegging out."

September 25, 2008 5:43 AM

Will do, Roschler. Hopefully I can get a couple of these smaller programs I have half-finished done and released. It does provide more incentive for me to do it when others express an interest, though. :)

BTW, was it you that was asking about the roboremote dlls? I have pulled all of the export function names out of the koiuir.dll But, I haven't figured out how to call them yet. I am not entirely sure that the DLL is dotnet. The roboremote program is definitely, but the internals of the main DLL driver just look like standard C style to me. Looking into the functions was how I figured out what some of the unused entries in the uir files are for.

September 25, 2008 7:00 AM

a littlt FYI about the .exe file it is written in C++ I tied to decomple it in C and it did not work, as you know C++ cannot be decompiled like C can else I would have had the source code for it by now.

And YES please e-mail your code and I'll start working on you form an adding to it..
thanks Jax

GWJax, To Hack and make mods on robots is a life style and comes natural and not by choice. If a robot has a screw to open it then it must be opened!

September 25, 2008 7:13 AM

RetroPlayer,

Don't worry about the DLL's. Nocturnal in his usual cleverness monitored the "conversations" that the WowWee software has with the Roboremote. Turns out the Roboremote registers itself as an HID device just like the WiiMote does so I can use the HID service layer to talk to the Roboremote; just like I do with the WiiMote and Robodance. He even gave me a breakdown on the needed initialization and command transmission data packets. I already ran a quick one command test with my V2 and it worked.

My Rovio Blog for Rovio Fanatics

September 25, 2008 7:19 AM

Roschler, do you mind sharing some info for us please.. Or Anakin you can shine some light on it as well or is it on your site? Either way good job N.
Jax

GWJax, To Hack and make mods on robots is a life style and comes natural and not by choice. If a robot has a screw to open it then it must be opened!

September 25, 2008 7:24 AM updated: September 25, 2008 10:31 AM

**** deleted by GWJax due to non permission from Nocturnal from a private site****

Sorry Nocturnal I'll let you repost it if you like.

Jax

GWJax, To Hack and make mods on robots is a life style and comes natural and not by choice. If a robot has a screw to open it then it must be opened!

September 25, 2008 10:09 AM updated: September 25, 2008 10:09 AM

Generally speaking its polite to ask someone before reposting something in public they posted in a private setting.

This would be a good time to point out that the remote can send apparently send IR signals faster than is safe for the hardware (LED burn out). Initially I think Wow Wee said 300ms between signals, but the new RoboRemote software actually uses a minimum of 100ms.

RoboGuide - Your guide to hacking all things WowWee

September 25, 2008 10:16 AM

You will probably have noticed RetroPlayer the initialization string is similar to to details contained in the robots.uir file. At the time I had no reason to investing it further (since it was doing what I wanted).

RoboGuide - Your guide to hacking all things WowWee

September 25, 2008 10:54 AM

Do not incur the wrath of Nocturnal lightly. Lo, his robot minions are legion (the ones that aren't torn apart) and his soldering iron a vengeful agent of chaos! :)

I'll let Nocturnal answer your questions GWJax. If you've visited his vast WowWee robot archives on his Drupal site you'll know why he's the better authority here.

My Rovio Blog for Rovio Fanatics

September 25, 2008 11:02 AM

I have all the info I need roschler.. It just shows how some people like to hide their findings from others. But this is not what I'm about because I share everything I know and go further to help out our members when in need.
Jax

GWJax, To Hack and make mods on robots is a life style and comes natural and not by choice. If a robot has a screw to open it then it must be opened!

September 25, 2008 11:03 AM updated: September 25, 2008 11:04 AM

** double post **

GWJax, To Hack and make mods on robots is a life style and comes natural and not by choice. If a robot has a screw to open it then it must be opened!

September 25, 2008 11:17 AM

Its not from a private site. You took my post from a private forum on this site and posted it in a public one, Asking first is the polite thing to do. It has nothing to do with hiding things, as you SHOULD recall if you think back to WHY that forum was private.

RoboGuide - Your guide to hacking all things WowWee

September 25, 2008 11:17 AM

GWJax,

I've never seen Nocturnal do anything but try to educate and share knowledge. If he wanted it kept private I'm sure there is a good reason. Or maybe he just wanted to be asked. On the web there are a lot of people who just grab the hard work of others (you are definitely not one of them, I'm just making a point) and publish it without asking. This makes one sensitive after a while. I've had YouTube videos that I put weeks into just taken by people, had the ending credits chopped off, and then posted as their own. It just gets to you after a while.

Anyways, I hope this doesn't become a thread churner. I am so much happier reading about yours, Nocturnal, and Retroplayer's hacks rather than this kind of thing and all the hackers I've seen on this board are solid, decent (and talented) players. Remember, it's quite likely we'll all be buddies sharing a brew at a robot show some day. This industry looks like it's finally taking off.

My Rovio Blog for Rovio Fanatics

September 25, 2008 12:01 PM

Nocturnal said: Its not from a private site. You took my post from a private forum on this site and posted it in a public one, Asking first is the polite thing to do. It has nothing to do with hiding things, as you SHOULD recall if you think back to WHY that forum was private.

Yes I do recall what this thread group was for and it was determined after the product was on the market then we could share the data we found. Yes I was in the wrong from posting your post without asking you and with this said I deleted it from this thread. And again you too have posted something that was in the thread as well about the LED's speed that was informed to us buy the WowWee techs. So does this mean you are in the wrong as well for posting that since you too did not get approval from them to relay that information.. I guess we are both in the wrong but I was first with your work. I will not say Im sorry again because I have already did that and corrected that mistake.

I guess we have to do our modding and findings behind closed doors as that is where this thread is going. I am sorry to Retro for taking his thread off topic with this pedie debate. With that said I will not post again to the thread and will discuss this project via E-mail with Retro.

Jax

Jax

GWJax, To Hack and make mods on robots is a life style and comes natural and not by choice. If a robot has a screw to open it then it must be opened!

September 25, 2008 1:04 PM

You may have a point. I however relayed information that I know people who are not members of that forum have been told, you cut and pasted my post. To me there is a difference, but I can appreciate that you probably won't see it the same way.

I doubt we will have to be doing our modding behind closed doors (though another thread of retroplayers springs to mind about that), All I wanted was a little bit of common courtesy. You could have asked me, I would have said yes, and then we wouldn't be having this discussion. That is what bothers me.

Starting simply, transmitting 0x70 0x00 0x?? 0x?? 0x?? 0x?? 0x?? 0x?? will turn the IR receiver on or off. When enabled, the remote will send 0x33 0x0c 0x?? 0x?? 0x00 0x00 0x00 0x00, where 0x?? is the command received (for example 0x03 0xAA for V2 Stop). 0x33 appears to be a general acknowledge (could be a status code of some sort), I believe the 0x0C represents the number of bits received.

To have the remote transmit a signal, it seems you first have to initialize the hardware. by transmitting

0x10 0x8c 0x01 0x03 0x00 0x00 0x20 0x81
0x20 0x20 0x00 0x00 0x00 0x00 0x00 0x00

Although the software does this every time you click the play button, it only seems to be needed the first time. Once the hardware is initialized, you transmit a signal by sending the following

0x80 0x?? 0x?? 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00

The set of 0's is actually required, the signal won't transmit until its sent. 0x?? 0x?? is the IR signal, the format is slightly different though (for example 0x3A 0xA0 for V2 Stop).

Finally to program a sequence, you first send the following

0xAA 0xBB 0xBB 0xCC 0x00 0x00 0x00 0x00

0xAA is the position (see bellow for details), 0xBBBB is the total number of bytes to be program, 0xCC is the number of writes (num bytes / 8). Once that is done, you transmit the data to be stored 8 bytes at a time. After each write the remote will respond 0x33 0x?? 0x?? 0x?? 0x?? 0x?? 0x?? 0x??, the 0x??'s are normally all zero's, but after using the IR receiver, they were the last IR signal received. Positions are as follows.

0x40 Green - Up
0x41 Orange - Up
0x42 Red - Up
0x43 Green - Left
0x44 Orange - Left
0x45 Red - Left
0x46 Green - Down
0x47 Orange - Down
0x48 Red - Down
0x49 Green - Right
0x4a Orange - Right
0x4b Red - Right

Potentially, there could be some additional functionality hiding in here somewhere, but I haven't really looked yet.


Incidentally, I would have reposted this earlier, but the loud noises and smoke coming out of my electric water heater distracted me.

RoboGuide - Your guide to hacking all things WowWee

September 25, 2008 4:12 PM

Ha! I woke up to find all these responses to the thread and thought, "Wow! There must be a ton of interest in this program." Eh, oh well. Good information at the end of it all and it sounds like you guys sorted it out. :)

Jax, I will email the source code for the roboremote editor to you. If you think of any suggestions or ideas please post them here to fire up some discussions. I would like to have the initial program posted by the end of next week as I will need to get back to my other programs.

Speaking of which, I just bought a joystick for my PC (yeah, wierd that I didn't have one) so I could start working on adding that feature to the Elvis animator program.

September 25, 2008 4:37 PM

Nocturnal, thanks for that info. Still half-asleep, so I will need to digest it later.

I was aware that the remote was a standard HID device, but I had not put much investigation into that once I determined it probably wasn't going to work properly with Elvis.

It seems that the technology that the remote is based on is hardware and drivers from Koitech Industries and the hardware is much more capable than what is being used. The UIR format implies that the remote could take on just about any personality, but it is crippled by the roboremote software.

So, maybe it would be a good thing to get more direct access to the hardware.

September 25, 2008 9:48 PM

Even with more direct access to the hardware, you probably won't be able to get the RoboRemote to store IR codes for Elvis. You may or may not be able to convince it to transmit the codes by adjusting the init string, but the memory blocks don't store timing information, just codes.

Makes me wonder about the things that went on during development, perhaps the uir format came from somewhere else, or maybe the original design called for more flexibility, but reality intervened.

RoboGuide - Your guide to hacking all things WowWee

September 25, 2008 11:38 PM

@Nocturnal

A bit sleepy so maybe that is why I'm confused. How does WowWee store the delays between commands in a multi-command sequence stored in the Roboremote if the memory blocks don't store timing info?

Thanks.

My Rovio Blog for Rovio Fanatics

September 26, 2008 1:26 AM

*Laughs* Good point. I didn't document the storage format (I did look at it, I just don't appear to have written anything down), so I can't recall how it encoded the delays. I'll pull out the images of the internal memory I made and take another look later. What I meant though was I don't believe it stores the timing info for the IR signal.

RoboGuide - Your guide to hacking all things WowWee

September 26, 2008 1:30 AM

No, I'm wrong. I did document it.


First byte in the range is the number of IR codes in the block (160 (0xA0) max).
next byte is 0x00 (probably actually part of the IR code).
next 2 bytes are the IR code.
last byte is the delay (1 second is 0x0A).

for example...

03 00 05 AA 0A 00 05 10 0a 00 05 52 0a 00

is from the Orange / Up position, it has 3 ir codes, they are RS Media Stop (0x5AA), RS Media Quick Reset (0x510) and RS Media Vision On / Off (0x552), all with a delay of 1 second.

RoboGuide - Your guide to hacking all things WowWee

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