Hi Adafruit,
I recently purchased the Tweet a watt starter pack to begin playing with Xbee communication. My goal is to be able to program a Rainbowduino wirelessly (I know, not your product ) but all my other Arduino products I purchased from Adafruit.
Anyway, to start I thought I would verify that the Xbee's were working properly by following your "how to make a simple wireless bridge with xbees" tutorial http://www.ladyada.net/make/xbee/point2point.html using my UNO board that I got from you in a starter kit along with the above mentioned Tweet a watt pack and all went perfect!
So I then redid things by following your "XBee - remote arduino programming" http://www.ladyada.net/make/xbee/arduino.html tutorial. I have attached a file that shows my current wiring. Both the green led's on the Xbee's are flashing, only the red led on the receiver Xbee is lit solid, and the "L" led on the UNO is lit.
When I try to upload a program (the Blink example, have tried others though) from the Arduino IDE version 1.0.1, Windows 7 64 bit, brand new Dell XPS computer, I get the following error
Binary sketch size: 1,084 bytes (of a 30,720 byte maximum)
avrdude: stk500_getsync(): not in sync: resp=0x00
If I hold the shift key down when I click the upload button I get
Binary sketch size: 1,084 bytes (of a 30,720 byte maximum)
avrdude: usbdev_open(): did not find any USB device "usb"
I know my UNO is OK because I can hook it up via the USB cable and I can upload programs to it and they work fine.
I have gone into Device manager and set the speed of the FTDI COM port to 57600 and both the Xbee's are configured for 57600. I have also tried 115200, 19200, and 9600 baud on all 3. I have also set the "set RTS on close" option in device manager. When I try to upload, the UNO does reset, the "L" led on the board blinks 3 times, but I never see the TX or RX led's blink.
I have chosen the correct port and the Arduino UNO board in the IDE.
I have done lots of searching the net this weekend and the only thing I could find that matched my setup says this can't be done with an UNO, but there was no explanation why.
I can't think of anything else to tell you right now that may help so I hope you can help me.
Thank you very much in advance, John.
Can't program UNO with Xbee
Moderators: adafruit_support_bill, adafruit
Please be positive and constructive with your questions and comments.
- captapollo
- Posts: 6
- Joined: Mon Mar 05, 2012 12:32 pm
Can't program UNO with Xbee
- Attachments
-
- Arduino wireless programming hookup
- IMG_0082.JPG (244.41 KiB) Viewed 2098 times
- adafruit_support_bill
- Posts: 88093
- Joined: Sat Feb 07, 2009 10:11 am
Re: Can't program UNO with Xbee
I haven't tried it myself, but I have heard that you can make it work on an UNO if you swap in a Duemilanove bootloader.
- captapollo
- Posts: 6
- Joined: Mon Mar 05, 2012 12:32 pm
Re: Can't program UNO with Xbee
OK, thanks for the fast reply.
So you have to guess what my next question is . . . how the heck do I do that?
I did a little Googleing and I read about "bit banging" it in because I don't have an external AVR writer (I think that is what I would need) but both articles said that it can't be done with an UNO board. Do you have instructions that you can provide me or give me a link to? Do you sell an AVR writer?
Thank you, John.
So you have to guess what my next question is . . . how the heck do I do that?
I did a little Googleing and I read about "bit banging" it in because I don't have an external AVR writer (I think that is what I would need) but both articles said that it can't be done with an UNO board. Do you have instructions that you can provide me or give me a link to? Do you sell an AVR writer?
Thank you, John.
- adafruit_support_bill
- Posts: 88093
- Joined: Sat Feb 07, 2009 10:11 am
Re: Can't program UNO with Xbee
The easiest way is to just swap the Atmega chip. If you have a Duemilanove you can use the one from that. Or we have pre-programmed chips here: http://www.adafruit.com/products/123
Other options are to use a USBTinyISP.http://www.adafruit.com/products/46
One thing to be aware of: As far as the IDE is concerned, the Board Type is determined by the bootloader - not the name printed on the board. If you put a Duemilanove bootloader on your UNO, you must select Duemilanove as the Board Type when uploading.
Other options are to use a USBTinyISP.http://www.adafruit.com/products/46
One thing to be aware of: As far as the IDE is concerned, the Board Type is determined by the bootloader - not the name printed on the board. If you put a Duemilanove bootloader on your UNO, you must select Duemilanove as the Board Type when uploading.
- captapollo
- Posts: 6
- Joined: Mon Mar 05, 2012 12:32 pm
Re: Can't program UNO with Xbee
Thank you again. I have ordered 3 of the chips you suggested and I will order the programmer when they are back in stock.
I don't mind throwing money at a problem to solve it, but this won't actually solve it, it will just prove that it works and then I will try to reprogram my other device. What I would like to request is that Adafruit test this with newer hardware and figure out why it won't work, or make it work and publish the solution. At the very least, posting on the tutorial site that this does not work with the Uno's would be a help to all of us. I wish I had the time to learn all about the AVR's and figure out for myself, but I don't.
I will be sure to update this forum with my progress.
Thanks again, John.
I don't mind throwing money at a problem to solve it, but this won't actually solve it, it will just prove that it works and then I will try to reprogram my other device. What I would like to request is that Adafruit test this with newer hardware and figure out why it won't work, or make it work and publish the solution. At the very least, posting on the tutorial site that this does not work with the Uno's would be a help to all of us. I wish I had the time to learn all about the AVR's and figure out for myself, but I don't.
I will be sure to update this forum with my progress.
Thanks again, John.
- captapollo
- Posts: 6
- Joined: Mon Mar 05, 2012 12:32 pm
Re: Can't program UNO with Xbee
Hi Support,
Before I forget, the following page "http://www.ladyada.net/library/arduino/arduinoisp.html" is not working anymore. It was a few days ago. There is a link to it on "http://ladyada.net/library/tools/standaloneisp.html" as well as the sidebar or two that I have seen on your sites.
I got the chips you suggested I order in the mail yesterday. I put one in my Uno, hooked everything up to program it wirelessly, but when I went to select the board there was no Duemilanove with a 328 listed so I tried "Arduino Diecimila or Duemilanove w/ ATmega168" and that didn't work. I looked at the list of boards and FTDI jumped out at me! I thought possibly since I was using an FTDI cable from Adafruit it would work so I tried it and it worked on the first try! I had loaded Blink wirelessly! I then change the flash rate for the LED and uploaded it and it worked again!
Then I got to thinking if FTDI worked for the Duemilanove maybe it would work for the Optiboot in the Uno so I swapped the Uno chip back in, but no luck.
I wish to pursue my project further but don't know where to look. I have looked but can't find who wrote the Duemilanove bootloader. I know the new one is Optiboot. There has to be some difference between them that is preventing the wireless upload from working on the newer bootloader and someone has to be able to figure it out. Being able to upload code wirelessly is such a fantastic feature I can't believe there is not more about it on the internet. I have also read that there is an Adafruit bootloader.
At this point I am probably done with the help that you can provide unless you have any more information on the different bootloaders. I can't exactly swap out the chip in my Rainbowduino so I will have to ask Seeedstudio about changing its bootloader and seeing if that will work.
Thank you for any help you can give me.
The following may go beyond the scope of Adafruit support but it can't hurt to ask any suggestion would be appreciated.
This morning I have found another mystery. I wanted to copy the name of the board I had chosen for this post so I opened boards.txt to copy this "Arduino Diecimila or Duemilanove w/ ATmega168" from it and I discover that the second board listed in boards.txt is "Arduino Duemilanove w/ ATmega328". How could I have missed that yesterday. So I opened my Arduino IDE, version 1.0.1 and have triple checked and it does not show in the list. Here is a screen capture of the list that shows in my IDE. I included the edges so you can see the entire window is there. It doesn't scroll and I have plenty of screen real estate for it to display the entire list. I am going to try to include my boards.txt file also.
From looking at this, it doesn't display the boards in the order that they appear in boards.txt because the second board listed in my IDE is FTDI and it is the last one in boards.txt.
Thanks again for all your help and Adafruit's great site and hardware.
John.
Before I forget, the following page "http://www.ladyada.net/library/arduino/arduinoisp.html" is not working anymore. It was a few days ago. There is a link to it on "http://ladyada.net/library/tools/standaloneisp.html" as well as the sidebar or two that I have seen on your sites.
I got the chips you suggested I order in the mail yesterday. I put one in my Uno, hooked everything up to program it wirelessly, but when I went to select the board there was no Duemilanove with a 328 listed so I tried "Arduino Diecimila or Duemilanove w/ ATmega168" and that didn't work. I looked at the list of boards and FTDI jumped out at me! I thought possibly since I was using an FTDI cable from Adafruit it would work so I tried it and it worked on the first try! I had loaded Blink wirelessly! I then change the flash rate for the LED and uploaded it and it worked again!
Then I got to thinking if FTDI worked for the Duemilanove maybe it would work for the Optiboot in the Uno so I swapped the Uno chip back in, but no luck.
I wish to pursue my project further but don't know where to look. I have looked but can't find who wrote the Duemilanove bootloader. I know the new one is Optiboot. There has to be some difference between them that is preventing the wireless upload from working on the newer bootloader and someone has to be able to figure it out. Being able to upload code wirelessly is such a fantastic feature I can't believe there is not more about it on the internet. I have also read that there is an Adafruit bootloader.
At this point I am probably done with the help that you can provide unless you have any more information on the different bootloaders. I can't exactly swap out the chip in my Rainbowduino so I will have to ask Seeedstudio about changing its bootloader and seeing if that will work.
Thank you for any help you can give me.
The following may go beyond the scope of Adafruit support but it can't hurt to ask any suggestion would be appreciated.
This morning I have found another mystery. I wanted to copy the name of the board I had chosen for this post so I opened boards.txt to copy this "Arduino Diecimila or Duemilanove w/ ATmega168" from it and I discover that the second board listed in boards.txt is "Arduino Duemilanove w/ ATmega328". How could I have missed that yesterday. So I opened my Arduino IDE, version 1.0.1 and have triple checked and it does not show in the list. Here is a screen capture of the list that shows in my IDE. I included the edges so you can see the entire window is there. It doesn't scroll and I have plenty of screen real estate for it to display the entire list. I am going to try to include my boards.txt file also.
Code: Select all
# See: http://code.google.com/p/arduino/wiki/Platforms
##############################################################
uno.name=Arduino Uno
uno.upload.protocol=arduino
uno.upload.maximum_size=32256
uno.upload.speed=115200uno.bootloader.low_fuses=0xff
uno.bootloader.high_fuses=0xde
uno.bootloader.extended_fuses=0x05
uno.bootloader.path=optiboot
uno.bootloader.file=optiboot_atmega328.hex
uno.bootloader.unlock_bits=0x3F
uno.bootloader.lock_bits=0x0F
uno.build.mcu=atmega328p
uno.build.f_cpu=16000000L
uno.build.core=arduino
uno.build.variant=standard
##############################################################
atmega328.name=Arduino Duemilanove w/ ATmega328
atmega328.upload.protocol=arduino
atmega328.upload.maximum_size=30720
atmega328.upload.speed=57600
atmega328.bootloader.low_fuses=0xFF
atmega328.bootloader.high_fuses=0xDA
atmega328.bootloader.extended_fuses=0x05
atmega328.bootloader.path=atmega
atmega328.bootloader.file=ATmegaBOOT_168_atmega328.hex
atmega328.bootloader.unlock_bits=0x3F
atmega328.bootloader.lock_bits=0x0F
atmega328.build.mcu=atmega328p
atmega328.build.f_cpu=16000000L
atmega328.build.core=arduino
atmega328.build.variant=standard
##############################################################
diecimila.name=Arduino Diecimila or Duemilanove w/ ATmega168
diecimila.upload.protocol=arduino
diecimila.upload.maximum_size=14336
diecimila.upload.speed=19200
diecimila.bootloader.low_fuses=0xff
diecimila.bootloader.high_fuses=0xdd
diecimila.bootloader.extended_fuses=0x00
diecimila.bootloader.path=atmega
diecimila.bootloader.file=ATmegaBOOT_168_diecimila.hex
diecimila.bootloader.unlock_bits=0x3F
diecimila.bootloader.lock_bits=0x0F
diecimila.build.mcu=atmega168
diecimila.build.f_cpu=16000000L
diecimila.build.core=arduino
diecimila.build.variant=standard
##############################################################
nano328.name=Arduino Nano w/ ATmega328
nano328.upload.protocol=arduino
nano328.upload.maximum_size=30720
nano328.upload.speed=57600
nano328.bootloader.low_fuses=0xFF
nano328.bootloader.high_fuses=0xDA
nano328.bootloader.extended_fuses=0x05
nano328.bootloader.path=atmega
nano328.bootloader.file=ATmegaBOOT_168_atmega328.hex
nano328.bootloader.unlock_bits=0x3F
nano328.bootloader.lock_bits=0x0F
nano328.build.mcu=atmega328p
nano328.build.f_cpu=16000000L
nano328.build.core=arduino
nano328.build.variant=eightanaloginputs
##############################################################
nano.name=Arduino Nano w/ ATmega168
nano.upload.protocol=arduino
nano.upload.maximum_size=14336
nano.upload.speed=19200
nano.bootloader.low_fuses=0xff
nano.bootloader.high_fuses=0xdd
nano.bootloader.extended_fuses=0x00
nano.bootloader.path=atmega
nano.bootloader.file=ATmegaBOOT_168_diecimila.hex
nano.bootloader.unlock_bits=0x3F
nano.bootloader.lock_bits=0x0F
nano.build.mcu=atmega168
nano.build.f_cpu=16000000L
nano.build.core=arduino
nano.build.variant=eightanaloginputs
##############################################################
mega2560.name=Arduino Mega 2560 or Mega ADK
mega2560.upload.protocol=stk500v2
mega2560.upload.maximum_size=258048
mega2560.upload.speed=115200
mega2560.bootloader.low_fuses=0xFF
mega2560.bootloader.high_fuses=0xD8
mega2560.bootloader.extended_fuses=0xFD
mega2560.bootloader.path=stk500v2
mega2560.bootloader.file=stk500boot_v2_mega2560.hex
mega2560.bootloader.unlock_bits=0x3F
mega2560.bootloader.lock_bits=0x0F
mega2560.build.mcu=atmega2560
mega2560.build.f_cpu=16000000L
mega2560.build.core=arduino
mega2560.build.variant=mega
##############################################################
mega.name=Arduino Mega (ATmega1280)
mega.upload.protocol=arduino
mega.upload.maximum_size=126976
mega.upload.speed=57600
mega.bootloader.low_fuses=0xFF
mega.bootloader.high_fuses=0xDA
mega.bootloader.extended_fuses=0xF5
mega.bootloader.path=atmega
mega.bootloader.file=ATmegaBOOT_168_atmega1280.hex
mega.bootloader.unlock_bits=0x3F
mega.bootloader.lock_bits=0x0F
mega.build.mcu=atmega1280
mega.build.f_cpu=16000000L
mega.build.core=arduino
mega.build.variant=mega
##############################################################
leonardo.name=Arduino Leonardo
leonardo.upload.protocol=avr109
leonardo.upload.maximum_size=28672
leonardo.upload.speed=57600
leonardo.upload.disable_flushing=true
leonardo.bootloader.low_fuses=0xff
leonardo.bootloader.high_fuses=0xd8
leonardo.bootloader.extended_fuses=0xcb
leonardo.bootloader.path=caterina
leonardo.bootloader.file=Caterina-Leonardo.hex
leonardo.bootloader.unlock_bits=0x3F
leonardo.bootloader.lock_bits=0x2F
leonardo.build.mcu=atmega32u4
leonardo.build.f_cpu=16000000L
leonardo.build.vid=0x2341
leonardo.build.pid=0x8036
leonardo.build.core=arduino
leonardo.build.variant=leonardo
##############################################################
mini328.name=Arduino Mini w/ ATmega328
mini328.upload.protocol=arduino
mini328.upload.maximum_size=28672
mini328.upload.speed=115200
mini328.bootloader.low_fuses=0xff
mini328.bootloader.high_fuses=0xd8
mini328.bootloader.extended_fuses=0x05
mini328.bootloader.path=optiboot
mini328.bootloader.file=optiboot_atmega328-Mini.hex
mini328.bootloader.unlock_bits=0x3F
mini328.bootloader.lock_bits=0x0F
mini328.build.mcu=atmega328p
mini328.build.f_cpu=16000000L
mini328.build.core=arduino
mini328.build.variant=eightanaloginputs
##############################################################
mini.name=Arduino Mini w/ ATmega168
mini.upload.protocol=arduino
mini.upload.maximum_size=14336
mini.upload.speed=19200
mini.bootloader.low_fuses=0xff
mini.bootloader.high_fuses=0xdd
mini.bootloader.extended_fuses=0x00
mini.bootloader.path=atmega
mini.bootloader.file=ATmegaBOOT_168_ng.hex
mini.bootloader.unlock_bits=0x3F
mini.bootloader.lock_bits=0x0F
mini.build.mcu=atmega168
mini.build.f_cpu=16000000L
mini.build.core=arduino
mini.build.variant=eightanaloginputs
##############################################################
ethernet.name=Arduino Ethernet
ethernet.upload.protocol=arduino
ethernet.upload.maximum_size=32256
ethernet.upload.speed=115200
ethernet.bootloader.low_fuses=0xff
ethernet.bootloader.high_fuses=0xde
ethernet.bootloader.extended_fuses=0x05
ethernet.bootloader.path=optiboot
ethernet.bootloader.file=optiboot_atmega328.hex
ethernet.bootloader.unlock_bits=0x3F
ethernet.bootloader.lock_bits=0x0F
ethernet.build.variant=standard
ethernet.build.mcu=atmega328p
ethernet.build.f_cpu=16000000L
ethernet.build.core=arduino
##############################################################
fio.name=Arduino Fio
fio.upload.protocol=arduino
fio.upload.maximum_size=30720
fio.upload.speed=57600
fio.bootloader.low_fuses=0xFF
fio.bootloader.high_fuses=0xDA
fio.bootloader.extended_fuses=0x05
fio.bootloader.path=arduino:atmega
fio.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex
fio.bootloader.unlock_bits=0x3F
fio.bootloader.lock_bits=0x0F
fio.build.mcu=atmega328p
fio.build.f_cpu=8000000L
fio.build.core=arduino
fio.build.variant=eightanaloginputs
##############################################################
bt328.name=Arduino BT w/ ATmega328
bt328.upload.protocol=arduino
bt328.upload.maximum_size=28672
bt328.upload.speed=19200
bt328.upload.disable_flushing=true
bt328.bootloader.low_fuses=0xff
bt328.bootloader.high_fuses=0xd8
bt328.bootloader.extended_fuses=0x05
bt328.bootloader.path=bt
bt328.bootloader.file=ATmegaBOOT_168_atmega328_bt.hex
bt328.bootloader.unlock_bits=0x3F
bt328.bootloader.lock_bits=0x0F
bt328.build.mcu=atmega328p
bt328.build.f_cpu=16000000L
bt328.build.core=arduino
bt328.build.variant=eightanaloginputs
##############################################################
bt.name=Arduino BT w/ ATmega168
bt.upload.protocol=arduino
bt.upload.maximum_size=14336
bt.upload.speed=19200
bt.upload.disable_flushing=true
bt.bootloader.low_fuses=0xff
bt.bootloader.high_fuses=0xdd
bt.bootloader.extended_fuses=0x00
bt.bootloader.path=bt
bt.bootloader.file=ATmegaBOOT_168.hex
bt.bootloader.unlock_bits=0x3F
bt.bootloader.lock_bits=0x0F
bt.build.mcu=atmega168
bt.build.f_cpu=16000000L
bt.build.core=arduino
bt.build.variant=eightanaloginputs
##############################################################
lilypad328.name=LilyPad Arduino w/ ATmega328
lilypad328.upload.protocol=arduino
lilypad328.upload.maximum_size=30720
lilypad328.upload.speed=57600
lilypad328.bootloader.low_fuses=0xFF
lilypad328.bootloader.high_fuses=0xDA
lilypad328.bootloader.extended_fuses=0x05
lilypad328.bootloader.path=atmega
lilypad328.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex
lilypad328.bootloader.unlock_bits=0x3F
lilypad328.bootloader.lock_bits=0x0F
lilypad328.build.mcu=atmega328p
lilypad328.build.f_cpu=8000000L
lilypad328.build.core=arduino
lilypad328.build.variant=standard
##############################################################
lilypad.name=LilyPad Arduino w/ ATmega168
lilypad.upload.protocol=arduino
lilypad.upload.maximum_size=14336
lilypad.upload.speed=19200
lilypad.bootloader.low_fuses=0xe2
lilypad.bootloader.high_fuses=0xdd
lilypad.bootloader.extended_fuses=0x00
lilypad.bootloader.path=lilypad
lilypad.bootloader.file=LilyPadBOOT_168.hex
lilypad.bootloader.unlock_bits=0x3F
lilypad.bootloader.lock_bits=0x0F
lilypad.build.mcu=atmega168
lilypad.build.f_cpu=8000000L
lilypad.build.core=arduino
lilypad.build.variant=standard
##############################################################
pro5v328.name=Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega328
pro5v328.upload.protocol=arduino
pro5v328.upload.maximum_size=30720
pro5v328.upload.speed=57600
pro5v328.bootloader.low_fuses=0xFF
pro5v328.bootloader.high_fuses=0xDA
pro5v328.bootloader.extended_fuses=0x05
pro5v328.bootloader.path=atmega
pro5v328.bootloader.file=ATmegaBOOT_168_atmega328.hex
pro5v328.bootloader.unlock_bits=0x3F
pro5v328.bootloader.lock_bits=0x0F
pro5v328.build.mcu=atmega328p
pro5v328.build.f_cpu=16000000L
pro5v328.build.core=arduino
pro5v328.build.variant=standard
##############################################################
pro5v.name=Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega168
pro5v.upload.protocol=arduino
pro5v.upload.maximum_size=14336
pro5v.upload.speed=19200
pro5v.bootloader.low_fuses=0xff
pro5v.bootloader.high_fuses=0xdd
pro5v.bootloader.extended_fuses=0x00
pro5v.bootloader.path=atmega
pro5v.bootloader.file=ATmegaBOOT_168_diecimila.hex
pro5v.bootloader.unlock_bits=0x3F
pro5v.bootloader.lock_bits=0x0F
pro5v.build.mcu=atmega168
pro5v.build.f_cpu=16000000L
pro5v.build.core=arduino
pro5v.build.variant=standard
##############################################################
pro328.name=Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega328
pro328.upload.protocol=arduino
pro328.upload.maximum_size=30720
pro328.upload.speed=57600
pro328.bootloader.low_fuses=0xFF
pro328.bootloader.high_fuses=0xDA
pro328.bootloader.extended_fuses=0x05
pro328.bootloader.path=atmega
pro328.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex
pro328.bootloader.unlock_bits=0x3F
pro328.bootloader.lock_bits=0x0F
pro328.build.mcu=atmega328p
pro328.build.f_cpu=8000000L
pro328.build.core=arduino
pro328.build.variant=standard
##############################################################
pro.name=Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega168
pro.upload.protocol=arduino
pro.upload.maximum_size=14336
pro.upload.speed=19200
pro.bootloader.low_fuses=0xc6
pro.bootloader.high_fuses=0xdd
pro.bootloader.extended_fuses=0x00
pro.bootloader.path=atmega
pro.bootloader.file=ATmegaBOOT_168_pro_8MHz.hex
pro.bootloader.unlock_bits=0x3F
pro.bootloader.lock_bits=0x0F
pro.build.mcu=atmega168
pro.build.f_cpu=8000000L
pro.build.core=arduino
pro.build.variant=standard
##############################################################
atmega168.name=Arduino NG or older w/ ATmega168
atmega168.upload.protocol=arduino
atmega168.upload.maximum_size=14336
atmega168.upload.speed=19200
atmega168.bootloader.low_fuses=0xff
atmega168.bootloader.high_fuses=0xdd
atmega168.bootloader.extended_fuses=0x00
atmega168.bootloader.path=atmega
atmega168.bootloader.file=ATmegaBOOT_168_ng.hex
atmega168.bootloader.unlock_bits=0x3F
atmega168.bootloader.lock_bits=0x0F
atmega168.build.mcu=atmega168
atmega168.build.f_cpu=16000000L
atmega168.build.core=arduino
atmega168.build.variant=standard
##############################################################
atmega8.name=Arduino NG or older w/ ATmega8
atmega8.upload.protocol=arduino
atmega8.upload.maximum_size=7168
atmega8.upload.speed=19200
atmega8.bootloader.low_fuses=0xdf
atmega8.bootloader.high_fuses=0xca
atmega8.bootloader.path=atmega8
atmega8.bootloader.file=ATmegaBOOT.hex
atmega8.bootloader.unlock_bits=0x3F
atmega8.bootloader.lock_bits=0x0F
atmega8.build.mcu=atmega8
atmega8.build.f_cpu=16000000L
atmega8.build.core=arduino
atmega8.build.variant=standard
##############################################################
atmega328.name=FTDI
atmega328.upload.protocol=stk500
atmega328.upload.maximum_size=30720
atmega328.upload.speed=57600
atmega328.bootloader.low_fuses=0xFF
atmega328.bootloader.high_fuses=0xDA
atmega328.bootloader.extended_fuses=0x05
atmega328.bootloader.path=atmega
atmega328.bootloader.file=ATmegaBOOT_168_atmega328.hex
atmega328.bootloader.unlock_bits=0x3F
atmega328.bootloader.lock_bits=0x0F
atmega328.build.mcu=atmega328p
atmega328.build.f_cpu=16000000L
atmega328.build.core=arduino
Thanks again for all your help and Adafruit's great site and hardware.
John.
- adafruit_support_bill
- Posts: 88093
- Joined: Sat Feb 07, 2009 10:11 am
Re: Can't program UNO with Xbee
I just checked those links and they seem to be working fine. If you are using Firefox, try flushing the browser cache. This seems to be a common problem with recent versions of Firefox.
The chips we sell here are pre-programmed with the "Adaboot" loader. It is compatible with the Duemilanove for upload purposes.
What version of the IDE are you using? All the recent releases from Arduino.cc have Duemilanove w/ 328.
The chips we sell here are pre-programmed with the "Adaboot" loader. It is compatible with the Duemilanove for upload purposes.
What version of the IDE are you using? All the recent releases from Arduino.cc have Duemilanove w/ 328.
- captapollo
- Posts: 6
- Joined: Mon Mar 05, 2012 12:32 pm
Re: Can't program UNO with Xbee
Wow! Working on Sunday? Or do you just do this for fun?
Thanks for the Firefox tip, flushing my cache worked.
I am using IDE 1.0.1, it says so in the title bar and under help, about. It is a fresh install on a new computer less than a month old. As you can see from my above attachments, the Duemilanove w/ 328 does not show under my boards selection list yet it is the second option in my boards.txt file.
Thank you for the link to Adaboot. It looks like there is some good reading there.
Question: I bought my Uno board from you, what boot loader is on that?
I bought 3 of these http://www.adafruit.com/products/123 from you, what boot loader is on them?
Do you know of any experts on the bootloaders who may be able to analyze this problem?
Thank you, John.
Thanks for the Firefox tip, flushing my cache worked.
I am using IDE 1.0.1, it says so in the title bar and under help, about. It is a fresh install on a new computer less than a month old. As you can see from my above attachments, the Duemilanove w/ 328 does not show under my boards selection list yet it is the second option in my boards.txt file.
Thank you for the link to Adaboot. It looks like there is some good reading there.
Question: I bought my Uno board from you, what boot loader is on that?
I bought 3 of these http://www.adafruit.com/products/123 from you, what boot loader is on them?
Do you know of any experts on the bootloaders who may be able to analyze this problem?
Thank you, John.
- adafruit_support_bill
- Posts: 88093
- Joined: Sat Feb 07, 2009 10:11 am
Re: Can't program UNO with Xbee
Interesting. This is what I get from 1.0.1:
I believe that the UNOs are currently shipping with a version of the Optiboot bootloader. All the pre-flashed chips we sell have an Adaboot loader.
Westfw is one of wisest in the ways of bootloaders. He participates here, as well as on the forums at Arduino.cc.
I don't believe I have ever seen FTDI listed as a board type either. I wonder if you might have another boards file around somewhere that is getting picked up by the IDE.I believe that the UNOs are currently shipping with a version of the Optiboot bootloader. All the pre-flashed chips we sell have an Adaboot loader.
Westfw is one of wisest in the ways of bootloaders. He participates here, as well as on the forums at Arduino.cc.
We work on Sundays because it is funWow! Working on Sunday? Or do you just do this for fun?
- captapollo
- Posts: 6
- Joined: Mon Mar 05, 2012 12:32 pm
Re: Can't program UNO with Xbee
I went and looked at my boards.txt file, and I also redownloaded the Arduino software from Arduino.cc and looked at the boards.txt in that one and a lightbulb lit up. During my testing last week doing much Googleing (is that a word now? I think it actually is) I ran across the following posts on the Adafruit site "http://forums.adafruit.com/viewtopic.ph ... 20&start=0" and so I pasted the lines from the last post into my boards.txt file to see if that would solve my problems last week. It of course didn't and I forgot until just a little while ago that I had don it. Oh well. I have restored my boards.txt file now and my screen matches yours, the Duemilanove with 328 is the second one in my list. It is strange how adding the FTDI entry replaced that one in the list.
Thanks for the info on which bootloaders are in the chips I bought, and I will try to get in contact with Westfw. i will be sure to let you know if I learn more.
John.
Thanks for the info on which bootloaders are in the chips I bought, and I will try to get in contact with Westfw. i will be sure to let you know if I learn more.
John.
-
- Posts: 1
- Joined: Fri Oct 26, 2012 4:23 pm
Re: Can't program UNO with Xbee
so is this mean these xbees dont work with arduino UNO, MEGA and other boards..??
- westfw
- Posts: 2008
- Joined: Fri Apr 27, 2007 1:01 pm
Re: Can't program UNO with Xbee
I guess that after an accolade like that, I should say something.Westfw is one of wisest in the ways of bootloaders. He participates here, as well as on the forums at Arduino.cc.
I didn't see this earlier because my Xbees are sitting neglected, but there are a couple of possible issues. The difference between the Uno bootloader (optiboot) and prior bootloaders (Duemilanove, Adaboot) include a couple of important aspects that could interfere with operation over Xbee connections:
1) Change in upload speed. Optiboot operates at 115200bps. There's no point in trying other speeds, because there is no speed detection or anything. My understanding is that 115200 is at the upper range for what is possible over Xbee links...
2) Change in bootloader timeout. When the Arduino is reset, the bootloader spends a "timeout" period looking for upload attempts. On early arduinos, this was close to 10 seconds, to allow for manual actuation of the reset switch. On an Uno with optiboot (and with the auto-reset change), this was reduced to only one second. It's possible that radio transmission introduces enough delay that one second is not long enough.
I'll try to get around to actual experiments. In the short term, if reverting to an older bootloader works, that's a pretty easy change (and inexpensive, at least compared to the cost of arduino+Xbee.) Replacing the chip is one way, and there are numerous conversations and tutorials on the arduino forums (http://arduino.cc/forum/ ) on how to burn new bootloaders onto old (or bare) chips. These should work reasonably will for burning old bootloaders onto new chips.
You should forget about using "shift-upload" to get better debugging info. The use of "shift" changed in Arduino IDE 1.0. Now you should set "verbose" in the preferences dialog.
I'm pretty sure that the only issue here is "uploading" over the xbee link. You can still upload using a directly connected USB cable, disconnect the usb and insert the boards into a closet, and have the sketch COMMUNICATE over xbee just fine...does this mean these xbees dont work with arduino UNO, MEGA and other boards..??
Please be positive and constructive with your questions and comments.