[clug] Brookstone Rover 2

Stephen Gibson Stephen.Gibson at anu.edu.au
Thu May 29 18:35:25 MDT 2014

I obtained a Brookstone rover 2 spy tank (*), via flybuys, as I thought 
that it might be neat to use it to survey under my house, where there is 
insufficient space for a person to crawl/enter.

It arrived, and I played with it using the available Android app. The 
interface is crap, with screen slide levers providing all or nothing. 
The tilt interface, although novel (IMO), had no easy to find stop 
position. I could not even drive the rover inside the house. This could 
be the fault of my rooted Aldi Onix phone, or me the user, but appears 
to be a common issue for other users.

I sent Brookstone an email about the app, but have not received a reply.

No worries, the rover users wifi to communicate with the android phone, 
I figured that I could snoop the wifi to determine the commands sent to 
control the rover. However, quick check on the web revealed that someone 
had already done this task, which was much more involved than I could 
have imagined, and had written an open source python interface for a PS3 
game controller!



The amazing thing, from my perspective, was the clever decoding. I would 
have had no hope:
(1) The wifi communication was encrypted.
(2) The Andriod app was decompiled, to reveal the access 
username/password AC13/AC13, and control commands.
(3) The camera used the manufacturers interface.

Details, are in the blog posting of the above link.

I don't currently have a PS3 controller to test driving, but the 
interface connects and reports the battery level (another issue). I plan 
to buy a cheap PS3 controller, and also to hack the python code for a 
simple keyboard interface.

I think that this fantastic demonstration of open source development.

I hope that in writing this I have diverted too much from 'offical' CLUG 
related topics.


(*) Yes, I know, I should build my own raspberry controlled tank, but 
there are only 24 hours in each day ...

More information about the linux mailing list