Hi,
I want to implement Over the Air firmware update for Arduino Uno. All I want to do is to program arduino UNO with another micro-controller by RX,TX. I found a lot of posts where UNO(atmega328p) is programmed via xbee or bluetooth serial, but they have used Arduino IDE to upload the code through the serial connection.
My question is, if there is any way around to program Arduino UNO(atmega328p) by another micro-controller through serial port or using any other option, considering that the other micro-controller has the hex file stored in it, and is ready to transmit the total hex file over UART.
The RESET pin of the ATmega is also connected to one of the I/O pins of the other microcontroller [via a cap of 0.1uf, with appropriate pull-up resistor] so that the ATmega can be reset before it goes into the bootloader mode.
You'll have to implement the correct protocol (stk500 ?) in the Arduino that is used as programmer. From memory, there was a thread a few months ago where somebody did implement it (on a Mega, if I'm not mistaken).
It might be easier to use ICSP for the programming; in that case you can use the Arduino as ISP sketch.
Usually the difficult part about over-the-air uploads is that the "DTR" signal used to trigger a reset and get the chip into the bootloader, does not get propagated across most wireless links.
sterretje:
You'll have to implement the correct protocol (stk500 ?) in the Arduino that is used as programmer. From memory, there was a thread a few months ago where somebody did implement it (on a Mega, if I'm not mistaken).
It might be easier to use ICSP for the programming; in that case you can use the Arduino as ISP sketch.
I could not find the post which will solve my problem, I would like to have some help from Arduino Developer Community to solve this issue. Also, it will be beneficial if you can provide me the link of above mentioned post.
Thanks, I read how optiboot bootloader works and how it synchronize the hex file at the time of receiving and send at the exact format with a usb ttl converter from raspberry pi to arduino with a reset and the board is programmed.