Monday, October 31, 2011


When I had the idea to use a slide projector for this project, I assumed that getting slides made was a similar process to getting digital prints made. I wanted to get digital photos made into standard 35mm slides. I soon realised that this is not a trivial thing to do. After going through many google searches and sending out a few emails, I could not find any shops in Australia that offer this service. Most of my searches ended up with places that will convert slides to digital, in my emails although (I think) I clearly stated what I wanted, most of them often me the reverse service (slides -> digital). There are still places in Australia that will take special slide film and develop it into slides. So one option would have been to buy some of this film, borrow / buy a film camera (I don't have one!), take photos of a printout or the screen and get them developed. It didn't sound like a great idea.

Eventually, I found some online services in the USA that will do this and ship to Australia for a reasonable price. After comparing many options on this web site, I went with Gammatech. They arrive quickly and they look great! Below is one of the slides (using the computer monitor while writing this article as the back-light).

Thursday, October 13, 2011

The slide projector

A key feature of my proposal was to project a rainbow on the wall when there is a high probability of seeing a rainbow. I chose to do this using a slide projector for two reasons - it seemed like a cool idea, and slide projectors can be found second-hand cheaply (as opposed to data projectors).

In my proposal, I estimated $20 for a slide projector after a quick look on ebay. After I was accepted, I started in earnest watching and bidding on slide projectors. I was surprised that many of them were going for much more than $20 (some up to $80-$150). The main requirement that I had was that it had some sort of remote control that I could replace with relays controlled by the arduino  / ADK.

Perseverance is usually necessary in these things, and I eventually did win one auction for $20 for a Kodak Carousel S-AU 28 slide projector, which I picked up from Gladesville (from a street with a beautiful view over the river!) The auction included the slide projector, several carousels, and a spare globe. The generous seller also gave me a projection screen to go along with it.

It was made in Germany, weighs a tonne but seems very solid (and works fine). I could not find a date of manufacture, however the Kodak slide projector history website says it was "supplied" from 1971-1974 and the list price was 240 pounds in 1971! Kodak still have a manual for it up on their web site. The same site announces also that Kodak stopped making slide projectors in 2004.

There is a 6 pin round DIN plug for the remote, as well as a weird 12 pin (2 parallel lines of 6 pins, never seen something like it) on the side which according to the manual allows "projector change-over and other control units to be linked to the projector". I'm guessing this could be a good way of switching the projector on and off (rather than using a relay on the 240V power in), whereas the 6 pin DIN will do the forward / back (this is what the supplied remote plugged in there does).

Tuesday, October 11, 2011

Getting an Android device to work with the ADK

One of the neat features of the ADK (Android Open Accessory) is that it doesn't require the phone to act as a USB host. When you connect a USB device, one device is the host (generally the computer) to which multiple devices can be connected. While some newer Android devices can act as a host (so you can plug in external hard disks, etc) , many older ones cannot.

With the Open Accessory protocol, the device you plug in (i.e. the arduino device) acts as the host so your phone does not need to be. Despite this, the phone can still act as the "master" and give commands to the device.

For the GDD open call, they stated that you need to have access to either the Nexus S, Nexus 1, or Xoom. Now I don't have any of these phones, but I searched a bit and saw that the latest Cyanogen mod ROMs with Android version 2.3.4 mod support Open Accesory devices. I had already rooted my phone (an LG GT540) and was running a port of Cyanogen mod.

Needless to say, once I received my Open Accessory development kit in the mail, I tried connecting it to my phone. Nothing happened. After performing many google searches and coming up with very little, I posted a question on some forums and on Stack Overflow. The answer I got there was that having the 2.3.4 Android is not enough, you also need a later kernel version (at least 2.6.35). I hadn't really realised until this point that the linux kernel version and the Android version were not necessarily related, in that while particular "official" Android releases were designed for a particular kernel, the ROMs that people produced were often made to run on earlier kernel versions.

So at this point, I needed to wait until someone ported 2.6.35 to my phone. I toyed with the idea of downloading some half-finished ports and trying to get one to compile, but realised I don't have that sort of time / energy available now. So I decided instead to get a device that is known to work.

The phones (Nexus S or Nexus One) were not that cheap and even second hand ones were at least a few hundred dollars on ebay. Eventually I saw that the Acer Iconia A500 tablet was on sale at Harvey Norman and Officeworks for $386 so I eventually bought one. I didn't really need another phone, I liked the idea of trying out a tablet, and hoped (still hope) that after the GDD, I should be able to sell the tablet second hand for only a small loss.

Anyway, to finish the story - the Iconia A500 is a great tablet, very fast and a beautiful screen. I can't really say that I need a tablet, I prefer taking my old netbook on the bus to work for emailing for the keyboard. The kids love it though, it is a good size for angry birds and good for taking photos. The tablet came with Android 3.1, and didn't work out of the box with the ADK. However, after rooting the device and installing a 3.2 ROM (a few days later the official upgrade came anyway), the device worked!

Monday, October 10, 2011


As part of an Open call for the Google developer day, I was selected to create a demonstration using the new Android ADK.

I have been working on an Android app to calculate the probability of seeing a rainbow (using your current location and weather). In this project, rather than displaying the chance of seeing a rainbow on the screen of the phone, it will instead be projected onto a wall. To keep the cost of this project reasonable, a slide projector will be used to project the image. The particular slide to present (e.g. a rainbow graphic, a sun graphic, etc) will be selected by advancing the slide projector appropriately, using the ADK - I will replace the advance switch on the projector remote with a relay controlled by one of the digital out connections on the ADK. The entire device (phone connected to an ADK connected to a slide projector) will also sit on a circular plastic disc. The orientation of the disc will be controlled by a stepper motor, with the stepper motor (and hence the orientation of the disc and the projector) also controlled by the ADK. This will allow the rainbow to be projected in the appropriate direction where one should look to see it (a rainbow is always observed in the opposite direction to the sun), feedback on the orientation will be provided using the compass in the phone.

You can read the proposal I submitted here

In this blog, I will detail my efforts at building the device. The GDD is in 28 days, let's hope it gets finished in time!!!