Arduino development boards

Thread Starter

sureshparanjape

Joined Feb 10, 2012
70
I have two development boards- Duemilanove and Freduino. I noticed an atmega328 programmed on one board doesn't work on the other board. i don't know the reason. Can a expert explain this for very biginner like me?
sureshparanjape
 

ErnieM

Joined Apr 24, 2011
8,377
One of these things is not like the other.
One of these things just doesn't belong.
Can you tell which thing is not like the others
By the time I finish my song?
 

sirch2

Joined Jan 21, 2013
1,037
Not sure that I understand what you are asking but in another thread you seem to be trying to program a bare Atmega 328. If that is the case it could be due to fuse settings. An easy way to get things set up as a standard "Adruino" is to burn the bootloader to the chip and then overwrite it with your program, Burning the bootloader sets the on-chip fuses.

No doubt someone will tell you that you really should read the several hundred pages of the data sheet and fully understand all the fuse settings and then set the fuses as you require but I'm prepared to assume that the Adrunio developers knew what they were doing.
 

Thread Starter

sureshparanjape

Joined Feb 10, 2012
70
Not sure that I understand what you are asking but in another thread you seem to be trying to program a bare Atmega 328. If that is the case it could be due to fuse settings. An easy way to get things set up as a standard "Adruino" is to burn the bootloader to the chip and then overwrite it with your program, Burning the bootloader sets the on-chip fuses.

No doubt someone will tell you that you really should read the several hundred pages of the data sheet and fully understand all the fuse settings and then set the fuses as you require but I'm prepared to assume that the Adrunio developers knew what they were doing.
I have been able to use two arduino boards-Duemilanove and Freduino to do programming/bootloading atmega328, atmega328p and atmega328p -pu etc. I have now atmega16A and there are several tutorials to how to program atmega16 using uno board as aruduinoISP. Here I have a bare atmega16A. I learned from internet that fused of atmega16 and atmega16A are different though their signatures are same. Since my efforts to program Blink sketch on atmega16A using breadboard, my study got side tracked to reading fuses(not setting). Looks like the same four outputs from uno to breadboard were needed to run avrdude commands. I ran into the said error message. One possibility that came to my mind was that certain avrdude version and isp version may not be compatible. Hence was my another thread inquiring this possibility. The reason I want to program atmega16A is that it has more io pins and that may be useful to develop digital clock with 15 alphanumeric characters using such two MC and couple of decoders.
BTW this is all my pensioner's way of finding something to think - I do get plenty to ponder on!
Now I can't read low fuse of atmega328, MC from Duemilanove board on breadboard and isp onUno board. I suddenly remembered my experience - that is topic of the present thread. Yesterday only I came to know there diffeent drivers for UNO and Duemilanove!Even if everything was ok with my setup to read the fuse, it wouldn't read, drivers being different. I went back to atmega16A set up- and I still have problem!
Well, sorry to bore you with so much details.
Thanks a lot again.
sureshparanjape
 

takao21203

Joined Apr 28, 2012
3,702
its basically a waste to use up the IO from the highly complex Arduino chip.

You could use 16F57 or 16f59 for LED driving, or shifting register, then only use serial connection.

A USBASP only costs a few dollars.

As for PICs, there is a well known inexpensive module that will effectively flash ALL PICs: the PICKIT3.
Why bother with bootloader?
that's only useful if you want to allow reflashing without extra hardware.

I have two development boards- Duemilanove and Freduino. I noticed an atmega328 programmed on one board doesn't work on the other board

programmed with what? And why? If you really genuinely flash it with the firmware intended for that board, it works.
 

Thread Starter

sureshparanjape

Joined Feb 10, 2012
70
its basically a waste to use up the IO from the highly complex Arduino chip.

You could use 16F57 or 16f59 for LED driving, or shifting register, then only use serial connection.

A USBASP only costs a few dollars.

As for PICs, there is a well known inexpensive module that will effectively flash ALL PICs: the PICKIT3.
Why bother with bootloader?
that's only useful if you want to allow reflashing without extra hardware.

I have two development boards- Duemilanove and Freduino. I noticed an atmega328 programmed on one board doesn't work on the other board

programmed with what? And why? If you really genuinely flash it with the firmware intended for that board, it works.
.....
Let me give some background.The MC(micro controller) on Duemilanove board was bootloaded and Blinking sketch was working. However it wouldn't work on Uno board- that was a revelation for me: therefore was the question for this thread.
Later I was trying to learn avrdude command line operations and used this on breadboard to read its signature and other information that one can get using one a command. I used UNO board as ArduinoISP for this purpose. When I transferred back MC on Duemilanove board it stopped working!
It wouldn't take ArduinoISP sketch for example- with stk500 error- not sync. So I again used it on breadboard and flashed Blinking sketch successfully.
Now Blinking sketch works on Duemilanove board but very likely using as power supplier only- it still can't load a sketch on the board!
Can I flash bootloader on it by avrdude command line for Duemilanove (or flash it by Duemilanove driver?)?
One drastic step I could take is to erase using avrdude command and treating it as one got from factory, bootload it on the Duemilanove board.
There is a easy solution- by fresh MC, bootload it using two boards and then my Duemilanove would be functioning again.
All my this doing is just academic- for just understanding the process. I am in no way be able to use it practice.
Please ignore my question if my writing is not clear at all of what I am doing.
sureshparanjape
 

takao21203

Joined Apr 28, 2012
3,702
Hmm I get whats your problem.

When using PICs its not happening so much, basically, you use one well known programmer, the PICKIT3,
and simply FLASH the ICs. It works even on blank ICs with no extra parts, powered by PICKIT3.

If you run into obstacles before you are even able to flash your controller, its a hard time to think about linking up two or more controllers with serial ports.
 

Thread Starter

sureshparanjape

Joined Feb 10, 2012
70
If I had to guess, I'd say the bootloader for each dev board is different?
I am happy to report that my last months' efforts of learning something new have been successful.I first learned to use avrdude program using Dos command line.My experience is as follows:
I noticed hfuse of atmega328 -pu was different than that of atmega328.
I changed the hfuse of atmega328-pu to that of atmega328.
I copied bootloader file from C:\Program Files\Arduino\hardware\arduino\bootloaders\atmega\ATmegaBOOT_168_atmega328_pro_8MHz.hex to C:\.
I used the command:
avrdude -P COM3 -b 19200 -c avrisp -p m328p -F -v -e -U flash:w:ATmegaBOOT_168_atmega328_pro_8MHz.hex
to bootload atmega328-pu successfully.
I returned the bootloaded MC(microcontroller) on Duemilanove board; however it failed to get blink program!
I then tried the described on http://arduino.cc/en/Tutorial/ArduinoISP with Uno as host and Duemilanove as target. It worked!
It shows(?) that the above bootloader file when flashed on MC on breadboard behaves differently if MC is on Duemilanove board!
sureshparanjape
 
Top