Upload sketch to ATMEGA328P using UNO as bridge

I made a Arduino "standalone" with its own PCB, ATMEGA328P, etc., also I've already burned the bootloader, etc., and is completely ready, now my question is:

It is possible to have an Arduino UNO connected to the PC (via USB) and connect in some way to "standalone" so that from the IDE can upload any sketch? I do not want to use (buy) a USB programmer, Arduino UNO simply make a bridge between the IDE and standalone circuit?

I read that can be done through ICSP but do not know what diagram is.

Thanks in advance

All is revealed here: http://www.gammon.com.au/breadboard

Thanks for the response!

but in the page you give can see that to upload a sketch needs a FTDI cable!

I just want to use UNO as a bridge between PC (runnig Arduino IDE) and the new microcontroller, so i need to be able to upload a sketch through UNO and directly put it in the microcontroller.

Can anyone show me a diagram to do this?

thanks in advance

sorry for my english :(

https://www.arduino.cc/en/Tutorial/ArduinoISP

// Per.

I'm going to try to go over the difference between an ISP tool and a serial bootloader. In Gammons page that Ray linked is an image of an Arduino working as an ISP tool |500x438 One way to create such a tool is by loading the ArduinoISP sketch in Arduino.cc IDE examples, perhaps this is how you loaded the bootloader on your chip.

An ISP tool uses the ATmega328p ICSP hardware (which is on the SPI port of the mega328p). The ISP tool is generally used to load a bootloader, but it can also load a sketch (it erases the bootloader). The ISP tool can brick your part if you set a fuse wrong (it happens). This is part of why I like the bootloader.

The bootloader uses the ATmega328p UART hardware, it can only change memory outside the boot section, and can't change a flag. This makes an Arduino Uno almost bulletproof for learning with.

The Uno has a mega16U2 that acts as a USB to UART bridge. The full duplex serial interface between the USB-UART and the mega328p-UART is a key point to understand with what you are asking. It is not possible to lock up the communication with a programming error, as can happen with half duplex. One option would be to have the Uno replicate everything on a second UART (which it does not have, though a virtual UART or an Arduino Mega may help). Another option is to split the USB-UART output to multiple mega328p RX inputs and combine multiple mega328p TX outputs into the USB-UART input and hold all but one in reset during boot loading. That second option is tricky and without transceivers I'm not really sure how to make it play nice. Here are two boards to look at that show at least one way to split the full duplex RX and TX lines through transceivers such that multiple microcontrollers can use them (the boards and firmware need more work).

http://epccs.org/indexes/Board/RPUadpt/

http://epccs.org/indexes/Board/RPUftdi/

People frequently do this with ESP8266 by removing the ATmega328P from the through hole Unos. I suspect you could also do it with the Uno's MCU still on the board by just holding the Uno's reset button but haven't tried. But really, if you are going to do serial uploads to a microcontroller on a breadboard just get a FTDI FT232RL breakout board(or other chips options). They're super cheap and very useful. You may get a counterfeit one but those will work also(after working around the driver bricking issue on Windows).

Thanks for all the responses! I have a clarest view of the issue

You can try the link suggested by Ray. Once the Uno is connected to Standalone, to upload sketch, goto Arduino IDE Sketch->Upload using Programmer or CTRL+SHIFT+U

pert: People frequently do this with ESP8266 by removing the ATmega328P from the through hole Unos. I suspect you could also do it with the Uno's MCU still on the board by just holding the Uno's reset button but haven't tried. But really, if you are going to do serial uploads to a microcontroller on a breadboard just get a FTDI FT232RL breakout board(or other chips options). They're super cheap and very useful. You may get a counterfeit one but those will work also(after working around the driver bricking issue on Windows).

Is there any significant differences, risks, benefits, of using the Arduino as an ISP versus using an FTDI board? I've been uploading sketches to a bare ATTiny85 chip using Arduino as ISP, but I also have an FTDI board sitting nearby. Haven't yet bothered with the FTDI board, since after I set up the Uno (upload ArduinoISP sketch, capaciter b/w Reset and GND) it has done everything simply. Is the FTDI route better somehow or simpler somehow?

INTP: Is there any significant differences, risks, benefits, of using the Arduino as an ISP versus using an FTDI board? I've been uploading sketches to a bare ATTiny85 chip using Arduino as ISP, but I also have an FTDI board sitting nearby. Haven't yet bothered with the FTDI board, since after I set up the Uno (upload ArduinoISP sketch, capaciter b/w Reset and GND) it has done everything simply. Is the FTDI route better somehow or simpler somehow?

As ron_sutherland said, ISPs allow you to change the fuses(only happens on Tools > Burn Bootloader). This can be useful but it also frequently pops up in the forum that someone "bricks" their chip by setting it to use an external oscillator when none is present, in this case you need to connect an oscillator or external clock source in order to set the fuses back to the internal oscillator.

The benefit of using a programmer is you can burn bootloader, set fuses, and you can upload without a bootloader, freeing up flash which is very important with the ATtiny85.

There are some quirks depending on your programmer(or even programmer firmware version). For example, with Arduino as ISP if you try to do Sketch > Upload Using Programmer to an Arduino Mega the program never runs unless you change the BOOTRST fuse. You would not encounter that issue using the FTDI.

The other benefit of using the FTDI is that typically people are using Serial for debug output, etc. anyway so you get upload and USB-serial interface in one device. With an ATtiny85 you're less likely to be using serial anyway so again not really much benefit.

I'd stick with your Arduino as ISP(or better yet buy/make a dedicated programming device) for your ATtiny85 but if you start working with a larger bare chip definitely consider the benefits of the FTDI.

I would prefer to use FTDI for development and then once things are finalized use a programmer to upload the finished code. This means less code running on the device to mess something up and no bootloader delay on power up/reset. On the other hand, if you're selling devices leaving a bootloader on it could make it more accessible to people who might have hobbyist level interest in hacking or updating the firmware.