Creating a cool project is one thing. Creating a nice user-interface for it is another; mounting buttons, sliders, rotary encoders and so on is difficult, and home-built controllers often end up very bulky compared to the slick control interfaces on commercial devices, which are often built with SMT components, and a lot of custom shaped plastic, options not on viable for most hackers, even if they have access to suitable tools. User interfaces often consume a disproportionate amount of effort and expense.

But creating a nice, friendly, professional, and usable UI in HTML is easy, and we all carry devices capable of displaying them - phones and tablets. What if we could connect them, without any expensive hardware or custom software to install?

This project aims to connect an iPhone as a controller on to an Arduino, with a direct connection via the headphones socket, rather than relying on expensive ethernet/wifi/bluetooth options. I'm targeting iPhone because it's the most restrictive platform; if it works on iPhone it should work on android. I'm targeting Arduino because it's a common platform, but the library should be portable to other micro-controllers.

I plan to deliver:

  • a simple schematic for cheap interface hardware
  • an Arduino library
  • an HTML/JS library
  • sample code