So I've been experimenting programming my fleet of Arduinos (currently Nano, Pro Mini and a Due) with other means than just the standard USB port. I bought an USB to 6-pin serial FTDI cable and an USBasp programmer from ebay. Correct me if I'm wrong:
- To be able to program with normal USB connection or the FTDI cable you need a bootloader on your Arduino
- You can burn a bootloader onto the Arduino using the USBasp.
- If you upload your sketch using the USBasp directly, you'll loose the bootloader (i.e. you can't subsequently update the code using USB or the FTDI cable until you've burned the bootloader again).
What is the case with new ATmegas? If I build a device with my own custom PCB using say a new ATmega328P, what do I need to do to it before being able to program it using the Arduino IDE via USB / FTDI or the USBasp?
I keep hearing / reading about fuses you need to set. Where can I find more info about this and how do you actually set them?