Hello, I have several atmega 168 chips and I was wondering how I would go about burning the chips using the directions found at http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html with just the arduino board and choose to use the internal clock. I'm under the impression the directions found here would change the chip's fuse bits from its internal clock to an external clock, but I just want to upload programs and put this chip into an external circuit and I don't want to deal with a crystal. Any hints or suggestions?
I already did that. First, load the Atmega8 bootloader and then use: http://hcgilje.wordpress.com/resources/arduino-standalone/
It works very nice:
How do I load the atmega8 bootloader with a virgin chip? Do I just basically follow the directions in the link I posted and use the atmega8 hex instead of the atmega168 hex with no other modifications?
Also, it appears the link you posted is a way to bypass the/a bootloader(a bootloader seems unnecessary) to upload programs/sketches. What purpose would the atmega8 bootloader serve following the instructions in the link you posted? Sorry if I'm not an intelligent enough n00b, but it sounds like your success definitely would help me out!
Also, is that a .1uF cap? Just asking because... daaaang... it looks big. :)
Yes to the capacitor, about the bootloader, just load the hex with your instructions, only follow the standalone instructions to run arduino.
Use your arduino to load a program, or use the pin 0-1 from arduino if you solder the atmega to a board
Okay, I've uploaded the atmega8 bootloader via the instructions. The only deviation with my experience from the instructions was that the chip couldn't read in "fast mode". So, after I completed the instructions, I fired up the arduino software, selected the appropriate com port and "lilypad 8" and it's saying it won't communicate("Not in sync"). Methinks that "fast bit reading" might be necessary.... and I have a feeling that this chip is so hard to shape so that it can be properly fitted in the socket might have something to do with it.
But, I haven't followed the instructions on the web site you linked, so I'll try that next.
Just to make sure I'm getting this right, I have to upload the sketch to my arduino using avrdude with the following command:
"./avrdude -C ../etc/avrdude.conf -p m168 -c usbasp -U flash:w:[filename].hex -U lfuse:w:0xE2:m -U hfuse:w:0xDF:m"
And I can just use my regular arduino with the wires connecting the icsp headers to the 4 headers as shown in the page that I linked to burn the program in(instead of using a separate burner)?
Wait… you’re using the USB-ASP programmer, aren’t you? I couldn’t find the usbasp program as shown in the command line and found out it was with the programmer. How am I supposed to duplicate this using the arduino programmer hack?
Anyways, it now reads in fast mode just fine so I don’t think that’s the problem.
Just follow the geocities webpage directions but select the atmega8 hex
I did that and I wasn't able to upload a sketch using the arduino diecimila board. So, I've gone back to uploading the atmega168 and I'll stick with crystals for now. I know, though, I'll eventually have to use its internal clock and it'd be nice to find out a way how, but I'm sure that'll be some other time when I have tons more free time.
On another note, after uploading the atmega168 bootloader hex, it's like a regular arduino now! I can upload programs like I did with the chip that it originally came with.
Ok, I'm going over this thread again because I really need to use the internal clock.
Anyways, I'm getting the basics here...
1) Load the atmega8 hex onto the arduino board using the instructions I originally provided. The purpose of the Atmega8 bootloader is to have a bootloader that operates with the internal 8mhz oscillator? 2) Use the schematic from the link you posted to actually run the chip. This is just basically hardware needed to operate it.
Now, the question is, how do you get programs to the chip? Like... for example, blink. Preferably, is there a way to load programs using the original arduino programmer and software?
Ok, I'm saying "screw aduino!" at this point, for uploading the program. I'm using arduino to write and compile the program and then I'm trying to use the GUI avr-dude to upload the program's .hex to the atmega168 chip and am using the schematic that guy in that link above used for the set-up and also the fuse settings he used(He doesn't seem to specify an eFuse setting, but I suppose that's because he isn't taking any extended actions so 00 seems like the right E fuse setting in the GUI wrapper.). I haven't seemed to get the chip working in the circuit yet, but I haven't really done much testing so the problem with my circuit could be anything. But, the program seemed to upload fine.
Yippee!! It works.
Basically, I wrote the program in the Arduino program and with the cable unattached, I pressed the "upload board" icon. This creates the hex in the project's "applet" folder which I then used the avr-dude gui and the modded original arduino board to program the chip with the .hex, and plugged into the circuit with the support schematic as shown in the link the other posted(Who seems to have disappeared). I also attached 5V to analog vcc since I was also using the analog ports, and it works. Yay, I'm happy. Now I just need to create a bat file and the automated process to program these chips with quickness and ease and this crucial step has been completed. :D
Ok, I was programming the chip to test 128 khz's affect on current draw using fuse settings determined by the "AVR fuse calculator" posted somewhere on the forums and my chip is bricked. Ok, I don't think I'm using that calculator again. :o
Luckily, I have other chips available and it appears there's a high voltage programmer I could build to "force" the chip to work properly again.