Program a microcontroller over the Internet

If you’ve ever wanted to program a microcontroller “in the cloud,” you might want to head over to Inventor Town, an online IDE that allows you to write and compile firmware for the MSP430 series of microcontrollers.

After logging in with your Google account, you’re presented with a ‘My Projects’ page. From there, you can make as many projects as you like for the MSP430x2231 or ~x2211 microcontrollers. The online editor has the vital keyword highlighting feature, but sadly not many of the more advanced text editor features, like a red underlined syntax errors. After you’ve written your code, press the compile button, download your .HEX file and upload to your board.

We’re surprised we haven’t seen something like this before. To us, this seems like the ideal basis for a github-style microcontroller code-sharing website. Any enterprising ATtiny fans want to take a crack at this one?

Thanks [Rob] for sending this one in.

Comments

  1. Michael says:

    I’ve had this sort idea in the back of my head for awhile now.

    The arduino IDE is so primitive it could easily be converted to a web app.

    I think it would be even cooler to build a connector tray icon that sat on your desktop and facilitated the actual communication channels and download the hex file for you.

    Finally, I’ve been wrestling with the notion of either using light or sound to communicate over html with the microcontroller for programming and debugging.

    • Mike Tsao says:

      Michael, keep an eye on the Chromium open-source project (the basis of the Chrome browser). The commit logs show an upcoming serial-port JavaScript API; see http://codereview.chromium.org/9174019. This means it’ll be possible to write a webapp that downloads hex files straight to the Arduino. This makes Chrome into the “connector” you have in mind.

      I hope codepad, Inventor Town, etc., take advantage of this API!

  2. lee says:

    Its also all in java! seems like it could be web-enabled quite easily.

  3. What about the mbed compiler? You guys have covered it before…

    http://mbed.org/

  4. mbed does this…most mbed users hate this – makes it impossible to really keep a project private

    • qwerty says:

      At last a comment that makes sense, thanks!
      If something works off the web, then DON’T move it online, please! Moving apps (and data) online means you lose control, whatever the fine print on a web page says. Today you compile online a stupid led flasher, tomorrow you’ll be used to it to the point you happily move your personal data on a remotely served application without thinking twice about it (yes, Google documents is a very very very bad idea).

  5. BugVito says:

    I thought we did see this before, mbed.org nailed this a while back with a powerful processor, with usb programming (as easy as dropping a file on a flash drive), sharing libraries and programs, subversion, etc…

  6. Gragg says:

    If you have a micro with ethernet you could theoretically write a bootloader to program it directly with a web socket. That would be awesome. NExt best is a local server to do usb or serial like Micheal suggests.

  7. Jan K says:

    Throw in an ethernet bootloader to flash the compiled sketches directly from the web ide :).

  8. DanJ says:

    Anyone know how to delete a project?

    • Lars says:

      I’ve implemented it now. It’s under project settings. For now, the files aren’t physically deleted, but the project is completely hidden for you and others. This is just to make sure I didn’t introduce a bug right now.

  9. behzat_c says:

    Remote server with avr-gcc and gcc installed can easily do this job!

    Not a regular web-hosting could do but a little bit more trick will do the job

  10. joegeek says:

    The site requires you give up your Google account name to them, THEN log into your Google through their link they provide. They PROMISE not to send you SPAM, but I still get this uneasy feeling about providing my password through ANYTHING other than the Google’s site alone. Does this provide them access to my account when I go through their logon? I would love to give this a try, just not at the expense of my account.

    • Steve says:

      It’s using OpenID to authenticate you. If you want to be careful about it, go log into your Google account through the usual login page, and then click on the Inventor Town login link. It will ask you to approve sending them some information (it will tell you what information), but you won’t have to hand over your password.

      This is actually really nice, because it means you don’t have to remember (or store) yet another username and password combination.

    • Mike Tsao says:

      Never enter your Google credentials unless the address bar shows an HTTPS google.com address.

      After joining Inventor Town, you can always revoke access later — go to your Google Account settings, edit “Authorizing applications & sites” under the Security section, and then click “Revoke Access” next to the site you don’t want to be connected to anymore.

    • they don’t get your password, google or openid does. all they get is an access token, which google can revoke, or it can expire.

    • ScottInNH says:

      > I would love to give this a try, just not at the expense of my account.

      You just explained why I will NEVER use Spotify, which now -requires- linking to your Facebook profile (and if Facebook suspends you account, say goodbye to your paid Spotify account…)

      • kabadisha says:

        @ScottInNH
        Facebook credentials are only required if they are the ones you used to set up the account originally. If you sign up separately you get a proper user/pass and can link/unlink facebook at will.
        I unlinked mine as I was fed up of Spotify spamming my Facebook profile with what I was listening to.

      • Magma6 says:

        Not any more. I’ve got lucky to create an account in time. Try to create a new spotify account now :
        “You need a Facebook account to register for Spotify. If you have an account, just log in below to register. If you don’t have a Facebook account, get one by clicking the ‘create an account’ link below.”

  11. Lars says:

    Hi, I’m the one who developed this. Thanks for featuring it here. At this point it really is more a proof-of-concept or BETA than a finished service. Your input is very welcome, though keep in mind right now it’s a non-commercial hobby-project.

    Regarding the login, the intention of using this interface is definitely that I don’t get the password. I am storing the email, but not for sending emails. If this is problematic, I can probably implement a site-specific login. I just thought that was a barrier.

    I sort of got the idea from modk.it, which is an online graphical Arduino development platform. But I never got around to making the graphical part. I think there are some more commercial sites that offer online development.

    As you say, I don’t have a delete project button. I should make that :-) You can mark it as ‘Closed’ which should prevent it from being shared.

  12. Lars says:

    And I should add that I’m using the EditArea component from cdolivet, which is the javascript editor component doing the source formatting. So the developer of that and of course mspgcc deserves very much of the credit for making this possible.

  13. Robot says:

    This is a good solution for those with systems which are unsupported by Code Composer Studio. However what this seems to lack are the potent debugging features of CCS. Line by line code stepping, I/O monitoring, register monitoring, variable (by name!) tracking, etc. make CCS far better than any other IDE I’ve used.

    Still, I look forward to embedded development with my smartphone (wasn’t there a HaD post about that?) I just don’t want to give up the perks of a real IDE.

    – Robot

  14. hawkeyeaz1 says:

    http://www.delorie.com/djgpp/compile/ has been around for 10+ years, though it is for your x86 PC, not microcontrollers.

  15. Bill says:

    I can see all sorts of problems with having the license button and the ability to “relicense” a project you based something out of. Have you given this due consideration?

    • Lars says:

      No, I haven’t, and that’s a very good point! I need to fix that ASAP. I guess the simplest is to prevent changing the license of a cloned proejct? That should be ok, right?

    • Lars says:

      I’ve added some warnings about this now, and will see if I can tag a cloned project so that the license can’t be changed. But at least now there is a warning about it. Thanks for reminding me of this one.

    • NewCommentor1283,ihatetorx says:

      lol so if i use this “service” i could be held criminally charged for using something that i made all on my own??? becuase someone decided that i would no longer be the “author” of “my” code? who do you think you are? what right do you have?
      fuk u! (the “service” being ADVERTISED on here)

  16. biozz says:

    i made a script last year to upload programs in to my mbed from my computer to my mbed about 30 miles away controlling several parts of my remote server stack

  17. blue carbuncle says:

    A PXE winxp install with tftp32 would save my b ehind tonight. Anyone feel like writing a n00b a tut on getting things running and installing a flavor of ISO??

    T3h vids are worthless and I think it would help the community aside from L400 dudes like me lol.

  18. barf says:

    tween my crap internet service that runs 50 bucks a month for isdn speeds, and my crap wifi that cant make it 10 foot across the apartment cause of steel studs …

    why would I want to compile code that takes a whole 2 seconds “in the cloud”?

  19. Kyle Kay says:

    Oddly enough i just got my arduino programmable via ssh tonight. This amusingly fits

  20. Rob Thomas says:

    As Robot said, the really value of this site is for those who can’t run the standard IDEs, and whose systems (Mac in my case) make installation of the appropriate gnu software challenging to say the least.

  21. Joel Rebello says:

    the title felt a bit misleading, I thought this was about getting a uC (msp430) reprogrammed/flashed remotely .. btw anyone aware of this being done or got ideas how it can be done?

    • smoker_dave says:

      Agreed!

      I was expecing a web cam feed of a dev kit that we could upload code to and get LEDs to flash etc.

      Disappointing!

      • Lars says:

        I’ll see what I can do. I’ve wanted to make a demo board first that has some more exciting stuff, but I guess it could be just a servo and some LEDs. (and sorry, I pressed ‘Report comment’ on your comment instead of reply :-/ )

      • Lars says:

        I’ve now implemented a webcam function, pointing to a board that’s connected to a server. There is only one board, so it might get a bit messy. Suggestions to which hardware should be connected to the board is welcome. I’ll try to set up a board with some connectors.

  22. Ptolom says:

    It sounds like the ideal basis for a load of really easy exploits, which is the main reason this hasn’t been done. Do you really trust a C compiler with all that unverified input from the internet?

    • Lars says:

      I think I’ve thought of most of the obvious holes, but with security there is always someone who is better, so it’s a valid concern. In this service, you’re not able to edit the makefile yourself, which I think definitely could be one exploit. Only .c and .h files are allowed. There are a few other things as well that I won’t mention how I’ve solved. But the risk crossed my mind of course :-)

  23. Ptolom says:

    I didn’t mean to sound that negative, really. It looks pretty useful. It’s a question of motivation, though the average cracker is probably not going to bother with a unique system when they’re busy searching for known exploits.

  24. NewCommentor1283,ihatetorx says:

    not to be negative but to me at least, cloud-computing / websites are the mortal opposites of uC projects and i will never let em ruin it for me

    i’d rather get charged with a crime or drop out of college then use cloud-computing to program a uC

    when im busy programming, the internet and all it has to offer can *******-****** ***** **** *******. i often disconnect my network cable just to be totally alone with my coding.

    AND THIS MAKES YOU MAD

    no distractions, no lawers, no privacy issues, noone telling me what to do, no hackers, no antivirus updates, and most importantly if the internet goes down i dont have to stop!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 91,459 other followers