HTML based AVR compiler aims to make Arduino development on iOS possible

It’s surprising what lengths people will go to in order to bring functionality to their smart phones. In this case, [Tadpol] wanted a way to develop for his Arduino on an iOS device like an iPad or iPhone. He figures it’s possible to rewrite the IDE as HTML5, but since that’s a pretty large mountain to climb, he started by building a browser-based AVR compiler. It’s an interesting concept, and he’s got a working prototype up on Github for you to test. Perhaps you can throw your hat in the ring and help him with development?

The web interface uses boxes to add to the code. What you see above is three sets of commands which will blink an LED. The project, named Avrian Jump, uses a simple ladder language to feed the compiler, with several different options for output. The most interesting in our mind is a WAV file which can be used to program an AVR from the audio out of your device. That would make programming as simple as connecting the specially modified AVR to your headphone jack. There’s also an ASCII output which allows you to save your programs for later alteration, S19 output for AVRdude programming, and an assembler output for debugging purposes. It’s hard to see where this project might go, but we have to admit that the concept is intriguing.

Comments

  1. ScottInNH says:

    awesome!

    Not sure how fast an iOS compiler would be (never mind the jailbreaking issues) but a network based compiler “webservice” could take care of that, then stream the compiled binary back as a WAV, etc.

    I’d love to be able to interact and reprogram the Arduino from an iPad and Internet connection. It’s kind of a pain in the rear to lug around a laptop.

  2. Necromant says:

    Holy crap, just get some android 4 tablet from china and throw iOS somewhere… far. it’s useless for anything, except watching porn.

    • ScottInNH says:

      You win sir for the least insightful post of the day, not even making the tiniest comment about the SUBJECT. I’m not at all sorry my choice in tablet OS displeases you, but I am having a chuckle that you were compelled to post a sour grapes response. Please take your attempt at inciting an OS flamewar to /dev/null.

      • chango says:

        Troll or no, it should be possible to install an ARM build of GCC for AVR on Android without root.

      • Ac says:

        Change, I don’t think you’d be able to compile much of anything on Android either. There’s not a lot of RAM and the disk isn’t meant for heavy temp file creation. Thats why no one does it. Better to have heavy lifting performed on a desktop/server

      • chango says:

        Ac:

        Yeah, it isn’t practical. Putting the smarts in a server somewhere (presumably whatever would be serving out applets anyway) makes more sense.

        That said, my 6 month old phone has 1GB of RAM. Having sat idle in my pocket all day, it has 35MB free and 311MB in cache. Arduino’s largest current (official) target has a program space of 256k. Off the cuff, I’d say you’d be hard pressed to be pulling in more than 10MB in sources and generating more than 1MB in intermediate objects. I don’t think there would be a need for swap.

  3. Matt says:

    … rather than compiling the code using a native compiler on the server that served the webpage?

    :-/

    If it’s just for the sake of doing it, then cool.
    Otherwise, seems like a big waste of time.

  4. No, it’s not a waste of time at all! This is awesome! Sometimes it’s nice to be able to do things outside the range of your wifi connection. I’m assuming it’s possible to cache the html for offline use. As for speed… I’ll wait until I see it before I assume it is too slow. A few years back I wouldn’t believe anything like this could be fase enough but things have come a long way. Also… it doesn’t have to be instantaneous to be fast enough. What were you going to do with the extra few seconds anyway?

    I do hope this works on Android too though…

    • Matt says:

      That’s a great idea in principle… but I’ve tried to use cached webpages on my wife’s iphad.
      It failed horribly.

      • ScottInNH says:

        True, cached webpages DO fail horribly. HTML links can be rewritten, but many pages use JavaScript to assemble URL links, and that’s non-trivial to freeze into static HTML.

        Tablet browser applications require access to the web at all times. I wouldn’t even try to cache this “page”, but visiting it from a hotspot and having it compile your uploaded source… that’d be brilliant.

  5. wetomelo says:

    Reminds me the ARM mbed online Compiler, but needs some kind of “magic-chip” ( magicduino? ) to transfer the compiled binary file like an usb or microsd.

    mbed compiler worked for me flawlessly in linux, online compilers and “magic-chips” are a REAL portable alternative for multiple operating systems

    • ScottInNH says:

      wetomelo – Good! You get it. You’re one of the few. Sometimes I think people don’t actually read the articles, but you remembered the online mbed compiler story. That’s what I was trying to think of.

      A tablet or a phone isn’t appropriate for hosting a compiler chain and full-blown IDE. But this can be processed at a server. A tablet’s still plenty responsive enough for writing source code and pushing the remotely compiled binary to the micro.

    • chango says:

      Recent avrdude builds support network targets. Roving Networks WiFly is $35 in onesies and is a WiFi plug in replacement for XBee.

      Discuss.

  6. Galane says:

    Saving and loading programs as audio, how very 1977. 😉

    “It has happened before, it is happening now, it will surely happen again.” The Time Prophet.

  7. Drone says:

    “It’s surprising what lengths people will go to in order to bring functionality to their smart phones.”

    Actually:

    It’s surprising what lengths Apple will go to prevent you from actually using their smart phones.

  8. NewCommentor1283 says:

    lol

    50 bucks says a blackberry tablet can do it LOCALLY without any jailbreaking! or wifi

    how? like this:)

    appstore>dosbox>win98>arduinoIDE(win98_version)
    haha

    and when the os 3.0 comes out it will have FULL usb HOST capability, and usb serial port driver, like for arduino, as demoed in the online demo video (for now usb host needs root)

    OR MAYBE IM MISSING SOMETHING IT NEEDS???
    like JAVA or FLASH or VBruntimes…

    i’d rather not jailbreak mine assuming FULL usb HOST is going to be in os 3.0

    PS: as SOON as ppl see other ppl doing usb HOST on thier tablet, apple tablets will die off and be relegated to educational/buisness tools and not worth even 200$

    PPS: and yes i know there is another tablet with usb HOST, but if my memory serves me correct only when rooted! and they are NOT planning a firmware update.

    PPPS: my blackberry runs dos games just fine (DOOM, with sound) as well as windows 3.1 (4 seconds to start up, with sound) … so i assume it will have no problem running win98,,, AND ARDUINO COMPILER XD

    dont forget to budget for a bluetooth keyboard!

    peace out apple users, and have fun DREAMing of programs you already paidfor 😉

  9. serjio says:

    reminds me of zx spectrum and audio tapes 🙂
    what I am looking for is an online environment to compile avr-studio (I am on a mac, and I don’t want to install windows or run virtualbox just to compile a project…

  10. Derek Knight says:

    Hi, I like the idea of a web-based compiler. I am working on a similar project, an iOS based compiler, but I have actually implemented on the iPad, a C compiler, that generates my own assembly language, then a virtual machine that reads the assembly and executes it. This is built into an Aurduino simulator app. I can do most C operations (no switch, 2d arrays, pointers yet). I don’t know if there’s a demand for such a thing, but it was fun to write – the first time I’ve written a compiler

Speak Your Mind

*

Related Hacks in iphone hacks

  • Garden sensors measure soil moisture and greenhouse temperature
  • More pins and more power with a DIY Sanguino
  • A much easier take on an Android garage door opener
  • UnoJoy makes your Arduino play well with Xbox 360 or PS3
  • RC car controller and receiver replacement