How to program an arduino without host pc & using arduino as handheld programmer

Hello,

I have an arduino 328 programmed and the project board deployed on site. There is some changes to be made to the arduino sketch, which is done on the host pc. My question is How do I upload the new sketch on to the project board?

  1. I dont have access to carry a laptop to the site
  2. I cannot disconnect the project board and get it to reflash.
  3. target board does not have ethernet (it is a dumb sequencer controlling 8 relays, now needs change in sequencing)
  4. one possibility is reprogram a new chip and replace it on the project board. If this is frequent then this solution is not ideal

Another example, if I had to update say 100 boards then replacing chips would not be a good idea, instead an arduino hand held diy kit to update/reprogram the target arduinos would be a ideal choice.

I looked into arduino boot cloner but I do not know if this would work, need suggestions to move forward

You could use a programmer like this

if you have access to the ICSP pins.
Plug on the ISCP cable, press the button, all done in a few seconds.

Awesome CrossRoads,

Thank you for the link. It is exactly what I am looking for. I do have ISCP header on my project board. Any hints towards DIY.

Nick Gammon has a description on uploading a hexfile from a SD card, and an Arduino.

Maybe this could be used with a LCD display and a buttun

Or just a couple of LEDs to indicate status, and the SD card module.
Is a bootloader needed? Or just the sketch?
Creating a combined bootloader/sketch file for uploading was discussed in the forum quite recently.

Couldn't you also just link the two via TX/RX and reset lines, reset the target and read and transfer a Hex file from an SD card, via the target bootloader?

That's an idea we had for allowing a user to perform a firmware update on our devices, although we've not tested it yet.

tack:
Couldn't you also just link the two via TX/RX and reset lines, reset the target and read and transfer a Hex file from an SD card, via the target bootloader?

That would require the equivelent code as the AVRDUDE PC based program that knows how to talk to the bootloader. Maybe not impossible but I haven't seen anything trying that method, ICSP is the normal method used.

That's an idea we had for allowing a user to perform a firmware update on our devices, although we've not tested it yet.

Hello,

Thank you for the link erni. Checked the link, looks simple. Will try out & update.

But as CrossRoads comment
" Creating a combined bootloader/sketch file for uploading was discussed in the forum quite recently." also an easy solution.

Hello,

I also found this interesting, easy and opensource

video link :
1 : Intro : BootDrive for Arduino - YouTube
2 : Demo : LCD BootDrive - YouTube

Blog : BootDrive for Arduino | Bald Wisdom

Git hub : Baldwisdom/BootDrive at master · osbock/Baldwisdom · GitHub