I was wondering if anyone has created a server based Arduino IDE where I can run the Arduino IDEon a linux server for the purpose of compiling and loading arduino programs on to arduino boards from a remote source rather than from the local IDE.
And if such a solution isn't available yet what would it take to get one up and running on a server?
So, how would this work? Do you mean that you have a Linux server somewhere with an Arduino attached by USB. Presumably with some control electronics attached to it.
You then want to use a web interface on that server to modify the sketch on the Arduino and then send the compiled sketch to the Arduino through the USB link?
Humm, interesting.
All you basically need to do is be able to run the Arduino tool-chain headless, using shell commands. You would do this from your PHP or whatever server script you prefer, when someone posts the form with the new script. I'm pretty sure this can be done. Google 'Arduino build from the command line'.
Or you could just make the Arduino a web server with an ethernet shield and send it commands.
A headless tool-chain is the best description for how the server based IDE would work. As you say the user would use a web based interface to upload code from a server to their arduino that is connected via ethernet. I looked on the forum, but didn't see anyone mentioning that this has been done before. I wonder if the current IDE is command-line configurable.
Does anyone know why we say download a file from the web, but arduino is said to upload a sketch to the board? Or is life just funny that way?
People who use computers have a large gravity well (probably from their egos). A file is "downloaded" from the web because it falls down into the person's gravity well. A file is "uploaded" to a board because it has to be pushed up out of the gravity well.
I just prey that the Arduino folks never add the function to read the value of the boards eeprom data and "download" it to the IDE. That would have to be explained more often then why to use resistors with leds.
to transfer (software, data, character sets, etc.) from a distant to a nearby computer, from a larger to a smaller computer, or from a computer to a peripheral device.
to transfer (software, data, character sets, etc.) from a distant to a nearby computer, from a larger to a smaller computer, or from a computer to a peripheral device.
So the Arduino team had another brain fart when they decided to call moving a sketch from a larger computer (the PC) to a smaller computer (arduino) a upload operation.
So the Arduino team had another brain fart when they decided to call moving a sketch from a larger computer (the PC) to a smaller computer (arduino) a upload operation.
In my work *, "download" has always meant "towards" and "upload" has always meant "away". The subject is whatever happens to be the focus of the discussion. If I'm talking about me working with an Arduino then "upload" means data is going away from me to the Arduino. If I'm talking about the Arduino interacting with a website then "download" means data is going from the website towards the Arduino. I've never known the size of a device to dictate which term is used.
From my perspective, dictionary.com has the wrong end of the stick not the Arduino folks. But it hasn't been the first time I found dictionary.com playing a bit loose and free with their definitions. ;D
* Which has included industrial applications and business applications.
but plain old avr is easy from a command line compile and load perspective.
Or if you just have some predefined hex files built in arduino you can call avrdude to load them on some external event from the command line. Here is a java based script uploader that might work too: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1233605999 easy to integrate into tomcat or something.