jump to navigation

RocketBaby woes…. 5 December 2007

Posted by David Wilson in USB Missile.
trackback

Efforts to get the Missile Launcher software working with the new Dream Cheeky Launcher – RocketBaby – have not been successful. 

Unfortunately I do not have one of these launchers and making slight code changes at the USB driver level and sending them offshore for overnight or 1, 2, 3 days turn around is proving to be very frustrating. 

I really need someone to send me one of the launchers! 

The launcher does move, uncontrollably at this stage, the issues are occurring when I’m trying to get feedback from the launcher on its status.

Attempts in this space are causing the software to lock up. I did find a very good USB web site last night and have been doing more reading on the “readPipe”, and I’m now awaiting feedback from off shore. 

Being able to get hold of one of these launchers would significantly speed up development for the enjoyment of all.

What would also possibly help is if anyone else, maybe in the Linux community, has some code that will drive one of the DreamCheeky “RocketBaby” Rocket Launchers. 

usbVendorID: 2689(0xa81) usbProductID: 1793(0x701)

Device Name: Rocket Baby 

Advertisements

Comments»

1. Rob Hall - 6 December 2007

David, I installed USB Missile Launcher NZ on my Macbook Pro running Leopard 5.1, and now the system voice has a terrible “static” component.

Any ideas about files that need to be restored to the previous version to get rid of this undesirable outcome?

I love the controller but not the noise.

Thanks, Rob

2. David Wilson - 6 December 2007

Err, hi Rob.

That doesn’t sound right….

Here’s a test.
You can remove the application by simply throwing it in the trash…
AND
from the “/system/library/extensions” directory, the following files need to be thrown out as well.

drwxr-xr-x 3 root wheel 102 28 Jan 2007 USB Missile DreamCheeky.kext
drwxr-xr-x 3 root wheel 102 28 Jan 2007 USB Missile Launcher.kext
drwxrwxr-x 3 root wheel 102 18 Nov 21:25 USB Missile RocketBaby.kext

Note: you may not have the file “USB Missile RocketBaby.kext”

After doing this you will need to reboot.

So the only “system” type thing that I do at installation time is to put in the files listed above and their presence is picked up when the machine is rebooted. Things will only make a difference if you have a launcher connected. The kext files in this case don’t have any code in them, they are essentially only plist’s and tell the OS to go away.

Hope that helps, let me know how you get on.

3. Patrick - 12 December 2007

Works fine for me… I haven’t looked at much of your code, but I modified the simple control app to work, just plugged in the vendor and product numbers, and this:

void MissileControl(UInt8 controlBits)
{
IOUSBDevRequest request;
UInt8 reqBuffer[1];

reqBuffer[0] = controlBits;

request.bmRequestType = USBmakebmRequestType(kUSBOut, kUSBClass, kUSBInterface);
request.bRequest = kUSBRqSetConfig;
request.wValue = 0x0200;
request.wIndex = 0;
request.wLength = 1;
request.pData = reqBuffer;

(*missileDev)->DeviceRequest(missileDev, &request);
}

works fine sending it the 1-byte control codes you mentioned.

I’m not sure how earlier versions worked but for this one, each command will just keep a motor turning until it hits it’s endpoint or you send a 0x20 which stops the whole system.

I’ll do this properly when I get home tonight, need to implement a read thread for getting the status. And the status works the same for each motor reaching it’s endpoint – not just the firing motor – ie all the way left, and the status comes back as 0x04, and then you should send a 0x20 (this learned from watching what the windows app does with a bus analyzer).

Oddly, I was able to claim this device in userspace without having to load a kext to claim it from hid.

Hope that helps, I’m going to implement all of this properly tonight, let me know if you want it, or if you’d rather figure it out yourself.

4. Dustin Kick - 12 December 2007

This is a project:

http://scott.weston.id.au/software/pymissile/

that is supposed to control the launchers using libusb. I’ve been having trouble with my MacPorts (including its libusb installation), so I’m reinstalling all my MacPorts stuff.

5. Dustin Kick - 12 December 2007

Patrick, I just tested your mod on a Powerbook G4 17″. Works the way you described. Did you get anything to fire the missiles?

6. David Wilson - 12 December 2007

These are the control codes for the launcher…

// 01 – down
// 02 – up
// 04 – left
// 08 – right
// 10 – fire
// 20 – stop
// 40 – request status
//
// 1. To fire, Send 0x10
// 2. The motor keeps working now, keep sending 0x40 to ask for status (say, every 100~500ms)
// 3. If 0x00 received, then the missile is not fired.
// 4. If 0x10 received, them missile is fired.
// 5. If the missile is fired, send 0x20 to stop it.

7. David Wilson - 12 December 2007

The piece I have not been able to get working is the “ReadPipe”.

– David

8. Dustin Kick - 16 December 2007

Here’s another project you might get some good info from.

http://sourceforge.net/projects/usblauncher/

9. ABE Masahiro - 19 December 2007

Your blog helped me make this Perl module. Thx!
http://search.cpan.org/~pen/Device-USB-MissileLauncher-RocketBaby-1.00/

10. John Perkin - 20 December 2007

I’ve got a RocketBaby, infact I’ve got access to a few… I’d very much like it to work on my Mac.

Where do you want it send/what do you want me to do?


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: