I've been putting up a web-based Arduino compiler and made it running for a couple of days. It is already stable and I begin to think of the way to push this forward. What came into my mind is a feature-rich web-based Arduino IDE, with a friendly HTML5 code editor, server-side compiling, a managable online sketch book, centralised library management and etc. The tough part is how to let the user download the compiled sketch (a HEX file) to Arduino board. Any suggestions will be welcomed.
The tough part is how to let the user download the compiled sketch (a HEX file) to Arduino board. Any suggestions will be welcomed.
This seems like the part that needs to be solved first.
I think you can create an incredibly useful web-based tool with the features you describe. It would probably be very attractive for new users. It certainly would nice to interactively help someone.
However, if downloading a HEX file and running a cryptic command is the last step, I doubt most will enjoy that step.
Actually I have a solution, by running a tiny HTTP daemon (like MiniWeb which I develop and maintain) locally which responds to browser requests (from web page) and invoke AVRDUDE to perform the HEX downloading. This is technically feasible but the disadvantage is user must start a daemon program manually.
i think it is an cool idea - for an cool editor look at http://ace.ajax.org/
and for the upload thing:
it would be easy for the user to just download a small app for the browser he is using.
so if it would be possible to pack the avr upload things in the app - great thing..
for me as an sometimes proffessional user - i don't want to upload the code somewhere -
so it would be great to have an 'easy to install' server for the own editor system - or the complete compiler system in the app -
this would be cool - i often work together with colleges and if every body could look and use the latest versions ... dream on
sounds cool, where can I download it?
ok see there's the thing, I really dont want to send a few KB to a possibly overloaded timeshare just to get back a hex I have to manually futz with all the while I am using a machine under my bench that I fished out of the dumpster that has more computer power than all of NASA did the first 2 decades of my 33 year old life.
Maybe it has its place, maybe it has its audience, but what do I think of it? well ...
Actually the online compiler is initially to help enable Arduino sketch to be compiled on platforms without available compiler, like iPad. Some graphical programming language for arduino will be possible to port these platforms.
Actually the online compiler is initially to help enable Arduino sketch to be compiled on platforms without available compiler, like iPad.
Again, you would need to solve the problem of loading code first.
Why would I develop code on my iPad if I still need to go to my PC to load it?
Bluetooth -> SPI converter!
The mbed is interesting. You "download" the compiled output to the mbed module; it looks like a USB stick to the host computer. Still not iPad compatible, though.
The Uno wouldn't really have the oomph and space to do that very well, but the Due quite likely could.
That is very cool, at least as an end in itself. I certainly don't want to discourage or minimize the effort expended, but it strikes me as more of a solution in search of a problem. From my perspective, these are must-haves: (1) Tabs in the IDE. Any project of more than trivial complexity quickly morphs to multiple files. (2) Ability to define board types. I do this both to experiment and to implement completed projects. (3) Ability to use Arduino-Tiny or other alternate cores for other MCUs. (4) Ability to program MCUs either via a bootloader or an ICSP programmer.
Maybe you have a problem statement to share that might make the light go on for me?
Thank you for all your opinions. Meanwhile, I found there is already a web-based MCU IDE built on mbed.org. At least, this proves that the concept works for some applications.
I think will built a small daemon program to wrap AVRDUDE and listen on localhost for requests from browser to implement HEX uploading.
well, how about this, you create files with a different extension for example like .WEX
in linux and windows or mac, associate a small program with the WEX extension that is able to upload this file to the com port you need.
Maybe it would be nice if the wex file also contained the original typed program
then start the code after a /* CODE START (date) mark and end it with CODE END */
That way it could also be associated with the regular editor also (who would just ignore the marked comment that contains the code
I think this is very interesting. I'm going on a trip for a few days today and was thinking if there were some way I could tinker around with arduino code on my mobile while away and here's the solution :).
Would it be possible to have a simulator running so I can test my program directly on the browser? It doesn't have to be visually pleasing, a simple text dump of the sequence of events and what's happening with each of the pins should be a good start. Perhaps with time you can also add basic components like LEDs, resistors etc and popular ICs like 595, 555.
I use Proteus to simulate all my arduino projects before I even put them on a breadboard. Something similar "on the go" would be awesome.
Have you guys seen the http://codebender.cc/ project?
Looks like the same idea...
The other alternative is to use something like VNC or Windows Remote Desktop on the machine that is connected to the Arduino and then from your remote devices connect to the machine. You probably need something like a VPN to provide security, etc.
At the moment, I'm using a work laptop that is in my bedroom, and connecting to it via VNC from my system in the living room. I've even used it from my work office, using a VPN. Of course bandwidth of my internet connection, and the latency can be an issue at times for remote connections.
In the past, I have done things like using VNC to access machines in California when I was in Massachusetts (~ 5,000km for the non-US folk reading this). Sure it can be slow, but it allows for remote access.
thats what I want to do, build something hooked up to a computer and then walk into another room to use another computer to upload software
emulator / simulator yes (but thats a huge task) web IDE no, whats the point? If I can plug an arduino into it I can run the local IDE, if I cant, then whats the point, its not 100% software.
The uploading of web-based IDE is now possible with my new work AVRDUDEd, an HTTP deamon for AVRDUDE.
Sketch uploading is implemented in ArduinoCommander app:
So it seems not to be a problem.
This is not something I would use but I can see the attraction for many people.
I found there is already a web-based MCU IDE built on mbed.org. At least, this proves that the concept works for some applications.
This is also one of the biggest objections people have to the mBed, ie. the fact that you have to be connected to do anything. At least in your case there is the option to also use the normal IDE.