I'm getting started on a small non-commercial project where it would be nice to have the ability to allow the end user to update the Arduino code via a usb to serial connection. The target design needs to be small and low power. I'm going to try the ExtraCore boards so I'll need to communicate with it over serial from my windows machine. I have no idea what this is called so I'm not sure how to productively search. I don't want them to have to install the arduino ide. I envision sending them a utility .exe file and a code file. They run it and that is the extent of their effort. What will allow me to do that?
You'll need a USB to Serial adapter, something like the SparkFun FTDI Basic Breakout, some reasonable Windows programming skills and a thorough understanding of AVRDUDE. Easy.
I am not clear from the Original Post whether you are planning to develop a piece of hardware that another person can connect to an Arduino and upload a new Arduino program.
OR
whether you just want to send them a file and allow them to upload the Arduino program using their own PC.
If it is the first option a RaspberryPI looks like a good bet. I presume it can run the Arduino IDE and it can certainly connect to an Arduino. You can write a Python program to compile and upload a program - the Python program can call the Arduino IDE to do the hard work.
...R
Robin2:
You can write a Python program to compile and upload a program - the Python program can call the Arduino IDE to do the hard work.
I would have thought bash.
How does Python interact with the Arduino IDE?
Paul__B:
How does Python interact with the Arduino IDE?
You can call the IDE from the command line (since v 1.5, I think).
See the code here that I use as my regular compile / upload system.
...R
Or a standalone programmer. Send them a hex file, they put it on SD card, connect the programmer and push a button.
I offer a couple versions for typical AVR chips, supporting one file, 16 files, or 256 files. Here's the 256 file card:
http://www.crossroadsfencing.com/BobuinoRev17/
Programs all the chips that Nick Gammon's code supports:
thanks for the suggestions. I was able to copy the avrdude command line from the ide upload and use it to directly send the .hex file via ftdi. I was able to copy into a bat file and edit down to have the .hex file in the same directory as the avrdude. I also decided to add some 220 ohm resistors inline with the FTDI signal pins to protect those inputs. What is left is to make sure cts is grounded which works with my extracoreMD or at least one of four I bought. I've opened another thread on that problem. With those mods I'm down to 3 signal wires plus ground. I'll require the device to self power so I'm planning on using the Apple headphone/microphone jack (TRRS) as my connector.
