I have a Pogoplug 4 (a $25 device with a SATA port, USB 3.0 ports, gigabyte ethernet, etc.) onto which I installed the Arm version of Archlinux. I’ve got it running Samba and even successfully capturing images with a webcam. Now I’d like it to interface with an Arduino board via one of its USB ports so that it can do some real-world things (monitor temperatures, pan, tilt & zoom that webcam, etc.). Ideally I’d like to be able to issue commands to and update the sketch on the Arduino board via a non-GUI version of the Arduino IDE. The problem is that there is no place online where this is detailed in a step-by-step manner. The instructions here are for installing on the x686 architecture of ArchLinux, and I changed the arch line in PKGBUILD to “arm,” but inevitably I get a Java error:
Ideally I want to be able to upload new versions of the sketch from the Pogoplug. I understand this is more difficult. Perhaps I don't need an Arduino IDE for that either, but I don't know how else to perform the careful choreography of signals to cause a new sketch to upload. It's not as important to be able to compile sketches on the Pogoplug, although that would be nice too.
This might be an option: https://bitbucket.org/dustin-robotics/lscreamer/src
something called RFC2217 that allows me to use serial ports on a remote host as if they were on my main computer. That way I could use the IDE on my main computer, upload sketches via RFC2217, and then monitor them either locally with Pogoplug or remotely across the network.
You obviously need a text editor to modify Arduino code. Assuming you can do that on the Pogoplug, and assuming you can load the GCC complier and Avrdude etc (the tools that the Arduino IDE uses) you should be able to compile and upload code from the command line. On a PC, if you choose the verbose option in the IDE preferences you can see all the command line text that the IDE uses.
The problem is that so far I cannot install the IDE in any form on that architecture. The installation cranks away for awhile and then dies on an esoteric Java error.
I was trying to say in Reply #4 that you don't need the IDE at all. You should be able to compile and upload programs from the command line. The IDE is just a fancy cover for that - plus it has all the code files, but you don't need to install the IDE to use them.
The IDE requires Java - if you can install Java on the Pogoplug maybe the IDE would work fine. If you are interested in that option try loading Java and getting it to work and then download the Linux IDE. I have Java on this XUbuntu netbook (for other purposes) and I just need to download the IDE, extract it from its Zip file and click on the shell script. There is no other installation.
I guess if you just download the IDE and extract it you will have all the code files even if the IDE itself won't work.
It might help if you have a Linux PC to try things out on.
As long as I can get a new sketch onto the Arduino using the bootloader via USB, then that would be acceptable. I've used AVRDude (outside of Arduino) many times, but always through some sort of special hardware that attaches via the ICSP. I don't think I've seen examples of people uploaded to an AVR controller using a serial connection and the bootloader; that's usually something I leave to the Arduino IDE to do. In this case it seemed the easiest way to do that would be with the IDE, which I planned to use via the command line. I got Java working on the Pogoplug, but evidently the hardware is too bare-bones to accept the install of the Arduino IDE itself. Does that require some sort of GUI? This Pogoplug is entirely headless and comes with no video hardware of any kind, so there's no sense in installing a GUI.
I got Java working on the Pogoplug, but evidently the hardware is too bare-bones to accept the install of the Arduino IDE itself.
The IDE itself is obviously a visual product - I presume you have used it. But I don't understand what you mean by "the install of the ...IDE". There is no need to install anything. Just download the GZipped code and extract it into a suitable directory.
And as far as I know you can do everything from the command line that the IDE does in relation to compiling and uploading code.
I don’t know what Arduino does and does not need, so I was following instructions in an attempt to get everything in place. Typically if I say, “oh, I’ll just extract everything to a directory and take it from there,” I quickly find missing dependencies, and those dependencies are missing dependencies. It’s a mess that running makepkg is supposed to fix.
Here, for example, is something I don’t have an answer for: do I need Java if I’m just doing things in a terminal window?
Also, I’m unclear on how to convince an Arduino board to accept a new sketch over its serial port using its bootloader in a process initiated from the command line.
I can see that it’s possible on this page:
using commands like:
arduino --upload /path/to/sketch/sketch.ino
but that page refers to the arduino command line command as “the Arduino IDE.” I know the IDE as we use it is a graphical tool, but in the literature, the command line tool is considered part of the IDE.
do I need Java if I'm just doing things in a terminal window?
Also, I'm unclear on how to convince an Arduino board to accept a new sketch over its serial port using its bootloader in a process initiated from the command line.
I don't know the answers because I haven't needed to know. But I have suggested some things that you could try. I suggested earlier that you can use a verbose setting to get the IDE (on a PC, of course) to show all the commands it uses. Have you had a look at that.? My idea is that you make a note of those and then try them at the command line.
As far as I know avrdude is the program that actually uploads the code the Arduino via the bootloader.
Why not try to do things with the command line on your PC before trying them on the Pogoplug.
It doesn't make any difference if the command line tools are considered part of the IDE if they work. I presume, however, that the arduino command does use Java. But it is just a wrapper around the more detailed commands (such as avrgcc and avrdude) that (presumably) don't use Java.
Edit to add ...
Have you Googled arduino command line