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.

43 thoughts on “Program A Microcontroller Over The Internet

  1. 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.

    1. 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 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!

    1. 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).

  2. I thought we did see this before, 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…

  3. 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.

    1. 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.

  4. 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.

    1. 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.

    2. Never enter your Google credentials unless the address bar shows an HTTPS 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.

    3. > 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…)

      1. @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.

      2. 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.”

  5. 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, 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.

  6. 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.

  7. 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

    1. 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.

    2. 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)

  8. 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.

  9. 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”?

  10. 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?

      1. 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 :-/ )

      2. 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.

    1. 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 :-)

  11. 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.

  12. 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.


    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

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.