A question regarding blank chips without bootloaders

Hi,
If I program an Atmega328 with an AVR ISP programmer, it will erase the bootloader.
But can I still program it in the arduino language?
Or do I have to convert to pure AVR programming?

Thanks!

P.S. Is there a way to program the Atmega1284 without an FTDI chip?

PocketHarambe101:
If I program an Atmega328 with an AVR ISP programmer, it will erase the bootloader.
But can I still program it in the arduino language?

There is no Arduino language!!! You’re programming in C++. The bootloader is only used for uploads over serial, that’s it. It makes absolutely no difference to your code whether you have a bootloader or not.

PocketHarambe101:
P.S. Is there a way to program the Atmega1284 without an FTDI chip?

  • Connect your AVR ISP programmer
  • Select the correct programmer from the Tools > Programmer menu
  • Sketch > Upload Using Programmer

No FTDI necessary. It is handy to have serial output for debugging purposes but the ISP programmer will work just fine for uploading your code to the microcontroller.

but doesn't the avr isp programmer have a 64k flash limit?
So no Atmega1284, no atmega2560.

I’m not familiar with the AVR ISP but if that ends up being an issue for you just buy a USBasp ISP programmer off eBay for <$3 USD w/ free shipping.

ATmega1284/ATmega1284P via ISP - no problem. With the USBasp also no problem.

The AVR ISP Mkii (no longer available) lists the ATMega2560:
http://www.atmel.com/tools/avrispmkii.aspx?tab=devices

Manual : http://www.atmel.com/Images/Atmel-42093-AVR-ISP-mkII_UserGuide.pdf

Not sure what the ISP clones do…

I never use the bootloader. Always use an ISPMKII since I spin my own PCB’s. Don’t want the USB thing… also I use a lot of Promini’s…

One thing - if you buy chips from places like Digikey you’ll need to set the fuses. I use AVR Burn O Mat - AVR8 Burn-O-Mat avrdude GUI

There’s listing of the proper fuse settings for each type here - http://www.codingwithcody.com/2011/06/25/arduino-default-fuse-settings/

Console output programming an Arduino Mega2560 with blink using an actual AVR ISPMKii
Note that I use a slightly different fuse setting of D0 instead of D8 (since I usually want to preserve EEPROM contents during dev)

:
Using Port : usb
Using Programmer : stk500v2
avrdude: usbdev_open(): Found AVRISP mkII, serno: 000200103672
AVR Part : ATmega2560
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PA0
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :

Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack


eeprom 65 10 8 0 no 4096 8 0 9000 9000 0x00 0x00
flash 65 10 256 0 yes 262144 256 1024 4500 4500 0x00 0x00
lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00

Programmer Type : STK500V2
Description : Atmel STK500 Version 2.x firmware
Programmer Model: AVRISP mkII
Hardware Version: 1
Firmware Version Master : 1.10
Vtarget : 5.0 V
SCK period : 8.00 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9801 (probably m2560)
avrdude: NOTE: “flash” memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file “C:\Users\xxxxxx\AppData\Local\Temp\arduino_build_340018/Blink.ino.hex”
avrdude: writing flash (1462 bytes):

Writing | ################################################## | 100% 0.45s

avrdude: 1462 bytes of flash written
avrdude: verifying flash memory against C:\Users\xxxx\AppData\Local\Temp\arduino_build_340018/Blink.ino.hex:
avrdude: load data flash data from input file C:\Users\xxxxx\AppData\Local\Temp\arduino_build_340018/Blink.ino.hex:
avrdude: input file C:\Users\xxxxxx\AppData\Local\Temp\arduino_build_340018/Blink.ino.hex contains 1462 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.46s

avrdude: verifying …
avrdude: 1462 bytes of flash verified

avrdude done. Thank you.