Spykee iPhone Hack

November 20, 2008

At left you’ll see my first cut at a rudimentary Spykee mini-console for iPhone.  If you’re familiar with the standard PC or Mac Spykee console app, you’ll recognize many of the functions.

This app only implements a sub-set of the full PC and Mac consoles.  I basically wanted to get some minimal functionality working before going too crazy with the UI and more esoteric features.  Here’s what it will do:

(1) Move the robot, using the left, right, forward, and back buttons.  Each press of the button moves a fixed amount.

(2) Turn the camera LED light on and off.

(3) Tell Spykee to take a snapshot.

(4) Turn ‘Video surveillance’ mode on and off.

Most importantly, the app shows you on the iPhone what the Spykee is seeing. It does not stream video in this version. It updates the “viewport” image periodically when the scene changes (or on demand with the ‘Update’ button). This keeps bandwidth usage down and still gives you a view of what the robot is seeing — and it even works on slow Edge connections.

It’s got another feature to help when controlling Spykee from a slow iPhone connection, where using the ‘Resolution’ button, you can flip between a lower resolution (but much less data) image and the normal full resolution Spykee view. This, and other features of the app, are demonstrated in the video below.

I made a video to show that, while this is still a hack, and is not ready to distribute by any means, it does actually work in real life, with a live robot. If I just provided the above screenshot, there’s no way to tell if it’s just a mock-up.

The video shows some of the basic functions as well as limitations. Even with those limitations, it is pretty cool (if I do say so myself), to be able to sign in and view what Spykee is seeing from anywhere, with just the iPhone without lugging around a PC or Mac, and even on a slow Edge connection.

UPDATE: Finally released. See: http://mrblog.org/2009/03/15/ispykee-open-source-spykee-for-iphone/


29 Responses to Spykee iPhone Hack

  1. November 23, 2008 at 3:42 am

    Hey, that’s enormously cool. I’ve been making my Spykee public, people are zipping all over my house.

    How did you make this app – I haven’t seen any Spykee SDK yet. Did you sniff the packets and reverse engineer the protocol?

  2. walker
    November 24, 2008 at 12:19 pm

    would it work with the ipod touch
    and when would you be relesing this if you ever do,

  3. November 24, 2008 at 2:29 pm

    Hi Coljac, thanks for commenting.

    That’s cool that you share your Spykee. How can I see it?

    I have not found any SDK or docs yet either. Yes, I sniffed the net and simply cloned what the real app was doing for a few of the functions. I have not really reverse engineered the whole protocol. I don’t know what half the bits actually mean. I’m hoping Erector/Mecanno release an API and/or docs, so I can modify this code to use a supported approach.

  4. November 24, 2008 at 2:35 pm

    Walker, this is an embarrassing hack in its current state, not fit for public viewing. 🙂 It has a lot of dependencies, even for hackers and developers. As I mentioned, I’m hoping that Erector/Mecanno follows the lead of WowWee Rovio and releases an API and protocol specs. so that I can modify this app to use officially supported technologies (and perhaps add some more features that have been too hard to “crack” by hand). If they never do that, or don’t do it fast enough, I guess I’ll have to improve this app enough to release it as a documentation tool if nothing else. I believe it should work on iPod Touch.

  5. Walker
    November 26, 2008 at 9:40 am

    ok thanks,
    meccanno should release “API and protocol specs” (lol, i know nothing about that stuff) so that you can do this properly.
    i hardly use spykee because of the fact that i need to have a computer to access it, have you contacted Mecanno about this, maybe they can give you a bit of info

  6. November 26, 2008 at 3:38 pm

    Walker, I’ve tried to contact Mecanno but so far have had no success reaching them. Do you have good any ideas for how to contact them?

  7. Antonio
    November 29, 2008 at 5:10 am

    I’m a student that must use Spykee in own thesis.
    I managed to move Spykee, but I would like to know how take the camera images.
    Thank you.

  8. Stu
    December 8, 2008 at 4:24 pm

    I just bought a Spykee this very day, and I’m really impressed with it in general.
    I’m looking forward to when you release this program, as I have an Ipod Touch and am thinking about using it around the home (or when at work) over the Touch’s WiFi connection. Are you going to be releasing the iPhone source code for this app?
    You mention the Edge connection, but I’d have thought the WiFi connection from the iPhone would be a good starting point, does it work with the WiFi connection?
    Would be very cool to use the Touch/iPhone to control it with, but if I were working on it I would concentrate on the video streaming capture angle as its not really practical without at least 5fps.
    Still, a fantastic piece of work mind you!
    Aside from that, I don’t think they’re going to release a proper SDK as its quite niche – less than 1% of all Spykee owners will prob be making use of it. The indication in the manual, and on the websites suggest it will be nothing more than the source code (Open Source) but still, thats a start as I wouldn’t mind having a ganders at that myself. I bet its poorly documented! 😉
    I notice its an ARM9 CPU, with an 8bit microcontroller managing the motor. I’m thinking of adapting the firmware to add motor control to the head, but I’m not familiar with ARM9 code, and I’ve only dabbled with a version of Basic on the PIC chips. Would be a good way to start learning ARM development though!
    I sincerely hope though that they release both the Windows code and the ARM/uC code.
    Thanks for showing us your work!

  9. December 8, 2008 at 7:30 pm

    Hi Stu,

    Actually it looks like a substantial percentage of Spykee users have been asking Mecanno about the claimed source and/or SDK. $250-$300 is still a lot of money and a lot of the early buyers are clearly tech. types.

    And Spykee’s competitor, Rovio already has an API.

    As for Wifi, yes, the app works on Wi-fi. The reason I mention using it on EDGE is because making it work, in any practical sense, on a slow EDGE connection is much harder. and if it works there, it makes the app more interesting/useful.

    Hey, still images are better than nothing for now. It is pretty cool to call up and get a remote picture of what’s going on in the house, and then move around and get new views at different parts of the house – so having real-world experience with what I have working now, without streaming video, I dispute the statement that it isn’t practical. I don’t think streaming would ever be possible over EDGE, but it should be possible over wi-fi to get some kind of frame rate, even if pretty low-res. It may require a proxy though to remix the video into a lower bandwidth format than what the robot delivers normally. Don’t forget that live streaming is a lot different than playing a Youtube video. Think how long it takes for a Youtube video to start playing.

  10. Stu
    December 16, 2008 at 3:02 pm

    Thanks for your reply.
    In terms of practicality, I personally wouldn’t want to use him on the go, for starters, 3G/GPRS data rates in the UK (+elsewhere) can be prohibitively expensive, so I would generally use him on a wired connection from my work PC (or with your app, over our work WiFi connection on my iPod Touch), and if I were abroad or out of my home city, I would only use it from a freebie/cheap hotel WiFi connection or a lobby PC or something.
    One time I got stung for 1700 UK pounds (at the time about 3400 US dollars!) for using a 3G connection abroad, as a result, my use of 3G has been altered quite a bit!
    The hope is that the new 3G iPhone -may- allow full streaming, what with HSDPA – signal quality/contention rates allowing. But I only own an iPod Touch and wouldn’t buy a 3G iPhone.
    What frame rates do you achieve with your app over WiFi?
    Its interesting that frame rate you have reached so far over EDGE – I’ve seen something much like this in fact on the PC Spykee application, when I connected from work to my SpyKee at home, about 7 out of 10 times connecting to him, I see only about 1 frame every 5 or so seconds (0.2 fps!). The experience is similar to what you show in your video. Driving him is nigh impossible as he shoots off and ignores my ‘stop moving!’ instruction (lifting my finger off the UP key!). I notice though that you have good control over him with that frame rate.
    Is this particular frame a keyframe or something out of a simple stream?
    I’m not sure if my home WiFi connection is getting bogged down with interference, but the remaining 3/10 connection attempts, he streams just fine at hi-quality, and is easily drivable, this is from my work PC (which is wired ethernet).
    I’m in communications right now with Meccano tech support, my comments have been forwarded to the engineers. They’ve suggested I connect via port 9001, but I haven’t set that port up as forwarded on my router so I doubt that would help.
    Strange though that my WiFi connected SlingBox (not used at the same time as SpyKee) works just fine all the time, makes me think there might be a firmware malfunction in the Spykee or something.
    Yes an occasional update every so often is good for stationary surveillance and maybe turning left and right for different views, but I would only be banging him against walls and tipping him over! 😉
    Thanks again for showing us this brilliant little app, can’t wait to get my hands on it!
    FYI, this is now my THIRD SpyKee! My first had a dead battery out the box, the gearbox broke on my second SpyKee as I tried to drive him up a makeshift ramp (warning- he’s only got a basic plastic gearbox which isn’t up to much). Touch wood that the third one will survive. Luckily, my local Tescos where I bought him from aren’t being difficult as I repeatedly return them!
    How is your SpyKee holding up? Is it your first one still?
    BTW – Any ETAs on this app? Or have I just missed a recent posting?

    Thanks again!

  11. Gio
    December 22, 2008 at 2:32 pm

    Hello, sorry my english

    just my two cents: first… GREAT APP I WANT IT!!! 😀 😀 😀 (casually I’m a registered iphone dev so maybe we can exchange the device iD cof..cof… ’nuff said)

    Second… I own also a Rovio, using RovioDriver app for the iPhone it works like a charm: in 3G mode (3 euros/week here) the video stream is like any other standard DSL connection (aside resolution obviously, and a bit of lag in driving).
    In WiFi mode works exactly like my Mac (maybe because also my mac is in WiFi lol)
    In GPRS(EDGE) it seems more like a slideshow and I cant drive at this framerate (too dangerous).

    BTW RovioDrivers uses accelerators to drive the Rovio (aka: just rotate the iphone like a wii remote), i strongly suggest this feature, also because all the screen is used for the video 😉

  12. Sean
    December 24, 2008 at 10:14 am

    Hey app looks class, I know you said it’s not ready to be shared but there’s plenty of people who’d love to get this app!

  13. Tom Yates
    December 26, 2008 at 5:56 am


    I think you are really missing the fact that people want the source code to help work out what you have learned about the spykee protocol. The iPhone app doesn’t interest me in the slightest (as i don’t have one), we just want the source luke :). Can we have it, or at least a blog post of the partial spec?


  14. Allan
    December 26, 2008 at 10:51 am

    Tom, Here, here. I don’t have an iPhone – getting a Verizon/Samsung Omnia and would like to do the same – control the robot with my phone. Just need the protocol. Kudos on working through all the wireshark/ethereal stuff 🙂

  15. December 27, 2008 at 12:37 pm

    Hi Mrblog and hi all, we have created a Spykee Dev community for help developper to do apps for spykee

    great Job Mrblog , this is a pleasure if you join the coimmunity 😉
    Take a look to http://spykeedev.freehostia.com

    see you soon

  16. andy
    December 31, 2008 at 4:41 am

    where do you download it

  17. pjd
    December 31, 2008 at 12:15 pm

    perhaps you can help me!!! i have just put my spykke together and registered it. i down loaded the console application. both my computers pick up and connect to the spykee wireless connection however,when i open up the console and the connect box appears…….. my spykee is not showing up. i have reset the spykee several times and re-installed the console on both computers…. the spykee helpdesk seem to be otherwise occupied……any suggestions ?
    thanks in advance.

  18. P-Nico
    January 9, 2009 at 2:35 am

    Hello Mrblog,

    Congratulation for your web app, it will be usefull for a lot of people !!!! As I should receive a Spykee soon, do you have an idea when your app should be available ??

    best regards, and thank you for this app Nicky

    ps.sorry my english

  19. P-Nico
    January 22, 2009 at 4:23 am


    any news about your web app ?

    Best regards

  20. February 3, 2009 at 8:56 am

    I’ve just been distracted by other projects – and a little annoyed by the lack of news from Spykee in APIs and protocol specs. I’m still hoping to get back to this project again.

  21. azert
    February 24, 2009 at 1:54 am

  22. March 16, 2009 at 12:58 pm

    Well, I finally sprinted for the finish line and completed the work necessary for a first cut release. See: http://ispykee.toyz.org

  23. Laird
    April 21, 2009 at 3:19 am

    Wow – awesome work there dev! I’m wondering if once released for iPhone you’d be working on a version for Android phones? Pretty please?! Keep up the goodness. 🙂

  24. April 23, 2009 at 2:53 pm

    The iPhone version is out: http://mrblog.org/2009/03/15/ispykee-open-source-spykee-for-iphone/

    Android is a possibility. You can help by contributing:

  25. shanerooni
    August 19, 2009 at 4:39 am

    would you be able to create an application on the palm pre? the mojo sdk is public, and it would be nice to use my robot from my phone. i couldn’t pay too much, but i’d be willing to negotiate a fee for your time.

  26. August 22, 2009 at 9:27 am

    @shanerooni it looks like the version of Applewebkit on the Palm Pre doesn’t support the functionality of the iSpykee app. But we’ve only been able to test using the emulator (not a real device) so give it a try and let us know at: http://groups.google.com/group/ispykee/t/5cf98711253a1838?hl=en

Buy Me A Beer