Android controlled robot

I recently built an obstacle-sensing robot using the tutorial here, albeit with a few different parts. When I saw that in action, my 6-year old asked a fairly simple question, as their generation do –

Can I control it with the iPad?

That really got me thinking. I had purchased a 1Sheeld when it first launched on Kickstarter a while back, but never really did anything with it. The idea behind 1Sheeld is awesome – instead of buying different shields for the Arduino, you simply buy the 1Sheeld which interfaces with the your smartphone and makes it’s sensors, radios and IOs available to you on the Arduino.

This post is about this small little project. I have put a video together of the end result, and the instructions follow.



  1. An Arduino Uno, or equivalent.
  2. 1Sheeld
  3. A motor chassis kit. I used this one.
  4. A stepper motor controller module, like this one
  5. The usuals – jumper wires (plug – plug and plug – socket), breadboard


Step 1: Assemble the chassis

I won’t detail the assembly of the chassis here. This is fairly straightforward, and for the particular model I used, the instructions were found here. You may want to consult the instructions for your particular model.

Step 2: Connections

  1. Connect the 1Sheeld first. This just sits on top of your Arduino. A very good tutorial from the makers of 1Sheeld can be found here, and I would strongly recommend reading it or watching that video if this is your first experience with 1Sheeld.
  2. Connect the stepper motor. I don’t have a Fritzing diagram for this one, but will try my best to explain for the part that I used.


Essentially, connect the 2 wires of each of the motor to the ‘blue’ Motor A and Motor B respectively.

Connect the blue VMS and 5V to the 5V Analog pin on the 1Sheeld, via the breadboard. Similarly, connect the yellow ‘ENA’ and ‘ENB’ pins to the 5V Analog pin on the 1Sheeld, via the breadboard. You’ll need the plug-socket type of jumper leads for this one.

Next, connect blue ‘GND’ to the ‘GND’ analog pin on the 1Sheeld.

Finally, connect the yellow IN1 & IN2 pins to the digital 2 and 3 pins and the IN3 & IN4 pins to digital 7 and 8 pins respectively on the 1Sheeld.

Step 3: The Code

I overlaid the original code from here on top of the sample GamePad file from the 1Sheeld library. The code now looks like this:

Thats it. Verify & Upload. Remember to switch the 1Sheeld button to upload mode before uploading.



Integrating MailTags, Mail Act-On & Toodledo


I recently started using indev’s awesome MailTags & Mail Act-On plugins for Just a couple of months before that, I also signed up for Toodledo – a really neat task management web app. As one can imagine, a lot of emails are really the source for most tasks that one manages. This is especially true in my area of work (project management).

Toodledo provides a mechanism for importing mail messages into it. The problem is, you need to remember a special syntax to enter in your subject line. More importantly, its additional work that you can do without. If you use Mailtags, you are already assigning contexts, projects, due dates, and priorities to your email. Why duplicate the effort? Macs are about making you more productive anyways.

So I hacked together an applescript that integrated MailTags & Toodledo. With Mail Act-On, a single keystroke allows me to send one or multiple messages tagged with MailTags straight to Toodledo. Add Growl to the equation for notification of success / failure, and you are all set!!


  1. Sends a mail message with appropriate mailtags assigned directly to Toodledo.
  2. Puts a link to the message in the body of the task, so you can open the message directly within Toodledo (As long as you are visiting Toodledo on a Mac)
  3. Support for Context (Keywords), Folder (Project), Priority and Due Date as direct mappings.
  4. Support for other Toodledo fields through the Notes field in MailTags.
  5. Can act on multiple messages.
  6. Supports interactive mode – Edit the message before sending.
  7. If installed, notifies you of success through Growl.

My workflow:

  1. An email comes in
  2. I assign it a keyword (@followup, @Internet, @Work, etc) and a project. If required, a priority and a due date is also assigned. This is done using MailTags.
  3. Mail Act-On is configured to run an applescript (below) that duplicates this into a new message, modifies the subject to comply with Toodledo’s import syntax, and sends it out. My rule also archives the original message. Finally, a growl notification lets me know that its all done.
  4. Sometimes, I need to edit a message’s subject just before sending it. I have a variant of the above script that lets me modify it just before sending it.

Toodledo & MailTags Mapping

  1. Keywords in Mailtags – Context in Toodledo
  2. Project in Mailtags – Folder in Toodledo
  3. Due-date in Mailtags is the same in Toodledo
  4. Priorities:
    1. Very Low (Mailtags) = “-1. Negative” (Toodledo)
    2. Low (Mailtags) = “0. Low” (Toodledo)
    3. Normal (Mailtags) = “1. Medium” (Toodledo)
    4. High (Mailtags) = “2. High” (Toodledo)
    5. Urgent (Mailtags) = “3. Top” (Toodledo)


  1. The beauty of Toodledo & Mailtags is they can be used in different ways by different people. That, however, is a limitation of this script – I use “keywords” in MailTags as “contexts” in Toodledo. Also, you can only have one context, i.e., only one keyword assigned to a message in Mailtags for this script to work properly.
  2. Toodledo fields not supported directly – Goals, Tags, Start Date, Status, Length, and Due Time. MailTags doesn’t have these fields and hence its not possible. There is a work around however – If you need to add these, put them in the ‘Notes’ field in MailTags, in the special syntax that Toodledo understands. The script will take anything in the ‘Notes’ field of MailTags and assign it at the end of the subject, as is.
  3. While sending tasks via email, Toodledo does not support setting negative priority. So only tasks set with a Low Priority in MailTags will be set appropriately in Toodledo. You may still assign a ‘Very Low’ priority to a message; the script will simply ignore it.


  1. You probably already have these, but for the sake of completeness, I must add – Install MailTags, Mail Act-On & sign up to Toodledo.
  2. Note the special email address created for you by Toodledo. Check under ‘Import/Export/Sync’.
  3. Ensure the projects in Mailtags match your folder entries in Toodledo
  4. Ensure keywords in Mailtags match exactly to context entries in Toodledo
  5. Copy the following two scripts in your scripts folder (~/Library/Scripts) as ‘Edit & Send to Toodledo.scpt’ and ‘Send to Toodledo.scpt’ respectively.
  6. Edit the top section of both these scripts in Script Editor and change the email address to your toodledo one (step 2).
  7. Create a couple of rules in Mail Act-On as shown. The first rule for ‘Archive’ message is optional and is just my workflow. Yours may be different.
  8. Tag your email as required. Here’s an example: Message tagged with mailtags
  9. Thats all! Just select the message. Call the Mail Act-On rule (appropriately for either sending directly, or editing before sending) with the keystroke you assigned and that should be it!.

The scripts

Disclaimer – I am a novice with applescripts. I used various applescripts on Mac OSX Hints, etc as reference to compile this one. My gratitude to all of the authors of these applescripts for making it available online. Please let me know of bugs, and I will try my best to address them with my limited knowledge of applescripts.

There are 2 scripts for each mail act-on rule. The first will open the message compose window, that will let you fine tune the message before sending (Tweak the subject line, add an attachment, etc). The second will let you send the message directly to toodledo. You’ll be notified by growl in this case.

Download Script 1 – Edit & Send to Toodledo (Interactive mode)

Download Script 2 – Send to Toodledo (Non-Intercative mode)

Woot! Google Gears on Safari… finally!

Yay! Finally read the following on Google Groups..


We are excited to share a beta version of Gears for Safari with you!! We
would love for you to install it and test it and file bug reports so we can
polish it and find all the corner cases.

Thats awesome! Why do I care? Well, I’ll finally (hopefully) be able to use buxfer in an automated manner, so it can download my bank transactions automatically. I know Buxfer released something for Safari recently, but that still won’t work with one of my bank accounts.

Anyways, will definitely wait for Gears to move out of beta before I trust it with my online banking credentials.

Google Groups via Lifehacker

iPhone3G connectivity issues… Huh!?

Been reading a lot of the iPhone 3G  connectivity issues these days, especially at iPhone Atlas, like this. I do not think so many people could be wrong, but I am a bit skeptical, most probably because I haven’t experienced 1 bit of this problem. I kind of feel left out, although in a good way. Must be karma.

So I tried the tests as they mentioned, and I don’t know about someone else, but in my books, a download speed of 844 KBps is fantastic speed on 3G. Its fast enough to allow me to listen to streaming radio for most of the time during the day.

Again, this is not about my lawn is greener than yours, or Three is better than Optus. But I do think we as Australians might have kind of escaped the connectivity issues that the US is facing. The ‘inferior chip’ theory sounds good, but why does it affect some countries more than others? Meh.. what do I care?

Apple, Google top the list of customer satisfaction

Interesting survey this one. I am a big fan of Apple and Google, and am kind of not surprised at the results Afterall, it does not take a lot of effort to be better than Windows or MSN. But customer satisfaction is a lot more than being better than your competitors.

Personally, as a customer of both these products, I would rate them higher than their competitors, simply because they just work. They release features and updates that reflect a customer’s needs; the new feature releases are not too slow, nor are they that fast that I cannot keep pace with it.

Also worth considering:

  • What stops companies like these from being complacent, from continually innovating?
  • How do they sustain their culture?
  • Do surveys like these actually affect the way they move forward?

What.. No MMS?!?

Since opinions are dime-a-dozen, I thought I’ll write one of my own – on the month-old iPhone 3G. Thats right – I got mine on d-day – July 11. I thought the iPhone would be a good topic to start blogging again.

Not having played with an Ipod Touch or the first generation Iphone before,  I felt like Alice in Wonderland on laying my hands on the IPhone 3G. Whats more, the novelty has not died yet, unlike some of my other love affairs with tech toys that I have flirted with in recent times.  

Is it perfect? Hell no! Can it be improved? Of course, yes. Would I buy one again in its current state? Absolutely! Sure, people complain about it not being capable of sending MMS messages, recording live video, having a meagre 2MP camera, missing copy-paste capabilities.. the list goes on. Personally, it gave me a tough time just trying to unlock it (I am on the 3 network). Not to mention its crashed on me twice in the last month! Why, oh why then, you skeptics might ask, that I would buy one again in its current state. Two words – simplicity and futuristic.

Let me explain…


This sleek telecommuting thingy is one of the most amazing pieces of disruptive technology that I have come across in recent times that, while capable of almost everything that one has come to expect of smartphones, is also damn simple to use. I could give it to my granny, and she could start using it without a lot of help. Once upon a time, Nokia used to be the leader when it came to making simple-to-use mobile phones. But at the time, phones were just that – phones. Nothing more, nothing less. I can be modest and yet safely say that I am no simpleton when it comes to using technology. The iPhone 3G has brought simplicity back to phones, and thats what I love about it. Multi-touch, context-specific buttons, touch scrolling, among others means the device behaves in a pragmatic fashion, rather than in ways being bound by the traditional limitations of hardware and software, like other phones of current times are. 


Crystal ball gazers, or tech pundits as they are often called, have, time and again stated that more and more computing will be done on smaller devices. Pieces of technology around the home will be connected to each other. Fridges will be connected to the Internet and will be able to order milk online, just in time. We have heard it all before, and surely, as prototypes,  these ideas already exist. The iPhone 3G is the one consumer device that makes many of these ideas a reality. Applications (or Apps in iPhone 3G’s lingo) like Apple’s own ‘Remote’ means I could be controlling music on my Mac’s iTunes, which streams music though my living room speakers, while not being physically close to either. (Products like these cost in excess of AUD $1000, meaning that the iPhone3G pays for itself on day one even if you were to buy it outright.) 

I can today capture photos on the phone, upload them to my Flickr at the same time or send it to location-aware social networking sites. Or I could blog something on this very site, while on the bus on my way back from work. And if I were bored, I could always play my game of Sudoku, or listen to online streaming radio.

Quite some time back, a futuristic idea kind of fascinated me – Smart alarm clocks, which would know of your flight timings, know the route to the airport, and wake you up early if it detects adverse traffic conditions. Coming to think it – we are not that far from this idea becoming a reality. The iPhone has an alarm clock, has email and calendar functionality – which means it is capable of knowing your flight timings, the A-GPS knows of your location, and the use of Google maps also means it knows of traffic conditions (not for us Australians, yet). And if there is one company that can combine these smarts, its Apple.

The Quirks

Yes, the phone only has a 2MP camera, with neither zoom nor flash. Hopefully, Apple will listen to its customers and upgrade its camera. And yes – no recording capabilities and copy / paste. But hey, these are just software capabilities, which in all likelihood, Apple may already be working on, and in theory, it might just require a software update to bring these capabilities to the iPhone. The point is, it does not matter which phone you buy, there will always be some things that you’ll miss.

Almost forgot – the phone does not have MMS capabilties either. And Macbooks don’t have floppy drives. Thanks Apple.

Applescript to combat MS Exchange weirdness

Till recently, I had a weird compatibility issues with my Macbook and the office Exchange server. The problem was related to meeting invites, in particular, the way Exchange wrote timezones in its .ics files.
Well, I am in Brisbane, and the way I expect any sane programme to write its timezone is “Australia / Brisbane”. However, Exchange being Exchange, writes it completely different, and when opened in iCal, the meeting invite almost always gets offset by 10 hours or more.My solution was to create an applescript, that striped off the ics attachment from the message, modified the timezone in Textwrangler, and then opened the modified ics file in iCal. You can find the script here: do_ics_magic.scpt

Requirements: I have tried it on OSX 10.4. I am sure it should work on 10.3 as well. Since it depends on Textwrangler to modify the timezone, you’ll need it installed. Textwrangler is free and you can get it here

How to use: Simply download the script to your scripts folder. If you want the script to automatially appear when you have open, you’ll need to save it in ~/Library/Scripts/Applications/Mail/ folder. I have created a rule in which automatically launches this script when it sees a file with an ics attachment. But then the only emails with ics attachments I get in my office account are internal. So this may not work for you. In this case, just select the message and run this script.

By Himanshu Posted in Main

Fixed.. Blogging with third party clients!

In my last post I blogged about how there are cool third party
clients including flock and Journler, that I could use to blog, in
theory. But for some reason, they didn’t quite work.

I since tried a few suggestions, and am happy to say it worked. But
first the problem, or at least what I think the problem is: The
xmlrpc.php file, of late has had lots of vulnerabilities. It seems that
hosting providers have taken a proactive approach and added a htaccess
rule that denies access to the file.

The solution, as pointed out by lots on forums of most blogging
sites, is to rename the file. My xmlrpc.php file, though, was
configured to log errors. The log file however, was again not
accessible, and this prevented the hack from working. Once I changed
the line, $xmlrpc_logging=1 to $xmlrpc_php=0, it was all cool and

Blogged with Flock

By Himanshu Posted in Main