Mr Blog... Mr Blog... Log on to Mr Blog... Blogging website.

"The blog is named in honor of a TV ad jingle for a certain Chinese fast-food chain here in the San Francisco Bay area, particularly well-known in the Silicon Valley."
RSS Subscribe to RSS

iSpykee - Open-source Spykee for iPhone

I finally finished making my previously mentioned iPhone hack for Spykee into a form I could release for public consumption.  It’s still not perfect, but at least I’ve removed external dependencies so it can be installed without too much difficulty.

Spykee wifi rbot interaface for iPhone and iPod Touch

Spykee wifi robot interface for iPhone and iPod Touch

Basically you run the “controller” software on your LAN (the same LAN as the Spykee robot) and then use your iPhone to control and interact with your Spykee robot from anywhere.

The “controller” software is available as open-source and can be used on Mac OS X or Linux/UNIX systems. As far as I know, this is the first release of an open-source implementation of the (binary) Spykee protocol. This software is provided in “C” under the BSD license, so it could be used as a basis for other home-grown Spykee applications, including motion detection, stealthy audio snooping etc.

iSpykee currently supports moving the robot, by touching areas of the video image: left, right, forward, and back; changing the robot motor speed (”Turbo mode”); turning the headlight on and off; taking a snapshot of what Spykee is seeing; turning “Video surveillance” (motion detector) mode on and off. It also supports a “low bandwidth” mode that can be useful when using iSpykee from a slow network connection (such as Edge).

Please check it out and join the iSpykee Google Group.


Posted on : Mar 15 2009
Tags:
Posted under iphone, mac, mobile, software development, telepresence |

Spykee iPhone Hack

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/


Posted on : Nov 20 2008
Tags:
Posted under iphone, mac, mobile, software development, telepresence |

Spykee wi-fi robot - first looks

I saw the Spykee robot at Costco and so I went home and researched what it was all about.

Then I decided to run back to Costco and pick one up before the US supply runs out. It was $229.99

Spykee was created by a French company, Meccano and is being distributed in the USA under the Erector brand.  The robot has been available in the UK and Europe for some time - it was at one time called Spyke, but probably as a result of some trademark issues, now is called Spykee.

The basic idea is that the robot connects via wifi and therefore can be controlled either locally on the same wi-fi network, or remotely from any IP address.  It’s sort of a remote-controlled webcam that you can drive around.

It’s supposedly a kid’s toy, but I’m not sure it’s going to be all that fun for kids, frankly. It’s very cool, and I hope to do some fun (and perhaps even interesting) stuff with it, but here are a few of my gripes:

  1. The building process is overall poor. The instructions are terrible.  The fasteners that Meccano provide with it are really junk and awful for load bearing - I substituted my own nylon screws with nuts to end the thing falling apart at the slightest touch/bump.
  2. Meccano support sucks. Well actually, it just doesn’t exist at all. The toy doesn’t come with a CD or printed manuals. You have to download them.  But the catch is that Meccano doesn’t seem to know how to operate either a web server or a mail server. Their web server takes users to the UK site with no links back to the US site, for reference, you can get to the US site by manually entering this address in your browser: http://www.spykeeworld.com/US/
  3. As I note, they can’t run a mail server either, apparently, because mail to the address they list for support bounces (and it has been this way for a long time, according to forums around the net).
  4. The robot looks like it has arms that move, but the entire body of the robot is just a frame to hold the webcam. It serves no function and doesn’t do anything (cannot be moved via remote control). The “active” parts of the robot are the base with the tracks and CPU etc. and the webcam “module” which also houses the LED light and microphone.  The rest of it is inanimate, just for show.
  5. The Spykee is not very autonomous. It only does things while one is connected to it from the “console” software. You can’t activate a function, then log out, and expect it to do anything (like act as a surveillance camera).
  6. There is no web interface - the only way to connect to the robot and interact with it is to use a specific binary application (Mac and Windows supported). So that app has to be installed on any computer you want to use to interact with Spykee and those computers have to be a Mac or Windows PC (i.e. no iPhone or othe such).
  7. The name has the word “Spy” in it, but Spykee is not very stealthy. It’s not going to sneak up on anybody (It’s LOUD).
  8. You can theoretically talk beween the remote PC and somebody near the robot, but it doesn’t work very well, at least not on the Mac version. It has horrible delay and no echo handling, so is near useless.  If you mute the mic on the PC side, you can use this feature to listen to sounds near the robot, but it’s hard to interact.
  9. The manual says the software is “open source” but it is nowhere to be found (people keep saying it will be released, but there’s no dates anywhere that I’ve found).

There’s a good YouTube video out there listing some of the above and a few other criticisms here.

I got Spykee because it supports the Mac. The other wifi robot, Rovio, only works with Windows.

I haven’t done anything with the Spykee yet except the “officially supported” things, which are actually pretty cool, but limiting.  I want to connect to the device directly with my own software, with web services etc. Unfortunately, the protocols are not released, nor is the supposed “open source software”, so this will require hardcore reverse engineering.  I haven’t spent any time on that yet, so I can’t provide any details yet.

In getting the remote control mode to work, you setup a name/password for your robot on SpykeeWorld.com and then connect from a remote place using that name. One thing I found out is that this name/password must be simple letters with no spaces or other punctuation. It will let you set a name with these characters, but when you try to connect, it won’t work (and the diagnostic “recipient not available” is not helpful).  I have been able to use the remote access (from outside on the Internet to the robot behind a NAT/firewall) with the robot sitting behind many different makes and models of firewalls and routers, and I even tried two layers of firewalls and that worked too, which surprised me.  I’m not sure yet how it gets through the NAT/firewall.

Like I said, I rushed out and bought it because I didn’t want to miss this wave of US shipments, but before you do the same thing, you might want to be aware of the above caveats.


Posted on : Nov 17 2008
Posted under mac, telepresence, video |

Going green with a Mac Mini

There have been rumors flying about for a long time that the Mac Mini was going to be discontinued by Apple. Now it’s looking like it might be here for at least a while longer, according to AppleInsider, who report that a new version is in the works.

I have been working on an elaborate post about my uses of the Mac Mini for a while, but now I’m deciding to just go ahead and blurt it out, in short and sweet form.

I have a “lab” of sorts where I test a lot of things on different OS platforms. Years ago, it consisted of several basic “tower” PCs running various versions of Linux and Windows. Those took up a lot of space, consumed a lot of power, and made a lot of heat. A few years ago I downsized to Mini-ITX platforms to save space and heat/energy.

Well a few months ago, I took this even further and configured a Mac Mini for the role:


Headless Mac Mini VMWARE Fusion server

I expected this to take quite a fair bit of work and time. It turns out I got all the OSs installed in virtual machines and all the software running in the VMs in just a few hours. I was impressed with both Mac OS X 10.5 and VMWARE. Now I’ve gone from five Mini ITX PC boxes, to one Mac Mini running several virtual machines under VMWARE Fusion. And that still leaves the Mac Mini itself available for whatever I wish. The box is running Mac OS X 10.5 Leopard, which now has better support for headless operation. The Mac Mini has no keyboard, mouse, or monitor attached, and lives happily tucked away in a closet.

The Mac Mini may not be all that green on paper, but it is far greener than the five systems it’s replacing. There is way less heat, and MUCH less power being consumed and it’s actually more convenient and more usable too.

In terms of space savings, it’s tremendous. Even with the smallish Mini ITX machines, we were still talking about something the size of a trash compactor or a small fridge. Whereas the Mac Mini would easily fit inside a single one of the Mini ITX boxes, with room to spare.

The VMWARE virtual machines are running some rather treacherous apps too and OS variants, and it all works. Apple has created more than a nifty desktop OS with Mac OS X. It turns out to be a pretty darned capable headless server virtualization platform too. Here’s a quick rundown of some of the tricks involved:

  • You’ll need to attach the Mac Mini to a keyboard, mouse, and display to get it set up the first time. Be sure to uncheck the “Open Bluetooth Setup Assistant at startup when no input device is present” option in the Bluetooth System Preferences, or every time your headless Mac boots it’s going to complain that it doesn’t have a keyboard or mouse.
  • Because this machine is a 24/7 server, I turn off Sleep in the Energy Saver control panel.
  • Add any VMWARE virtual machines that you want to start automatically when the Mac boots to the “System Preferences > Accounts > username > Login Items” for the account and set that account to “Automatically log in” at boot (under “System Preferences > Accounts > Login Options > Automatically log in as:”).
  • I run the Vine Server VNC server on the Mac Mini to enable any VNC client to remotely view or control the machine. This must also be added to the “Login Items” so it starts automatically when the machine boots.
  • I use Chicken of the VNC (and ssh) to remotely control the Mac Mini from other Macs. Linux or Windows VNC clients can also be used to remotely control the Mac Mini and that works fine too (it’s weird to see a Mac OS GUI on Windows).

While I was at it, in the native OS X system of the Mac Mini, I activated the Apache 2 install that comes with Mac OS X 10.5 along with MySQL server and a Wordpress install for good measure.

This all works very well. The only issue so far has been that some major OS updates kill the “headless” operation here because they pop up a dialog during the boot, BEFORE the user is logged in and therefore BEFORE the Vine VNC server is started, meaning no remote access. This sucks because in those cases I have to hook up a monitor/keyboard/mouse just to click ‘ok’ to let the update finish and let the machine reboot. This has only happened with one update so far, so it is an annoyance I can live with, but it would be nice if the mac update process eventually just timed out and completed the update unattended.


Posted on : Mar 25 2008
Tags: , ,
Posted under mac |
PhoneGnome
FREE calling
VoIP for the rest of us!