Hi, I just assembled and purchased a Freeduino, I have not been able to get it working yet.
I followed the instructions from the website that sold me the kit (NKC Electronics), assmbled the kit without issue, (I have done resoldering many times, including laptop motherboard repair)
However, when the board gets power, the power light comes on normally, but the 13 LED comes on solid as well, never shuts off. And I am unable to upload to the board, it gives me the avrdude error saying that it is unable to communicate with the board.
stk500_getsync(): no in sync: resp=0x00
stk500_disable(): protocol error, expect=0x14, resp=0x51
I have tried pressing the reset button, as well as uploading the blink example and have read through the forums but have not been able to get the issue resolved. Is there any suggestions. I have also checked all my solder joints, they look properly soldered and seated, and have tested voltage across the board with my multi meter, however I don't know if there is anything specific I should be looking for.
Assuming you have selected the proper board type and comm channel on the Arduino IDE, I suggest you try and 'half split' the problem between processor and communications problem.
Remove the AVR chip from it's socket. Wire a jumper from pin 0 and pin 1. Power up the board and plug in your serial cable from the PC. Launch the Arduino IDE, select proper comm channel and press the serial monitor button. If you then type characters in the serial monitor's transmit window you should see the characters echoed back to the serial monitor's receive window. If that works OK, it means the serial data path is ok.
Well I've double checked I have the proper board/chip selected in the IDE. Didn't seem to make a difference.
As far as attempting to narrow it down between the communications/processor...
I removed the ATMEGA328 chip from its socket (I'm assuming that is the one you were referring to as AVR chip?) Shorted the pins 0 and 1 (RX and TX) and went into the Ardunio IDE and attempted to send data on the serial connection, never got anything back though.
If its a communication problem it could be just about anything huh? Cable, PC, etc? I am going to attempt to use a different PC and cable later today.
When the ATMEGA328 chip is removed, the LED on 13 does not light at all, which would make sense as the controller for it is removed correct?
Also, the 0.1uf cap that is near the RS232 port/controller suffered a small amount of damage during assembly, (it got dropped and then rolled over by the chair). Is it possible that piece is causing an issue, the damage just appears to be cosmetic, some scratches on the outside of the ceramic. Should I replace the cap and see if that makes a difference. Is there any way I can test the cap and see if it is functioning properly?
Also, I did not opt for the 3.3v regulator on this board. Not that it should make a difference.
The 3.3 volt regulator is optional and doesn't need to be installed. Some of the caps that the MAX232 type RS232-TTL voltage convertor uses are critical for it's operation. Either check the cap with a cap tester (you probably don't own one) or just replace it. Also checking the voltage regulator for proper 5vdc output is simple to measure.
Leave the processor chip out until you can establish reliable communication loop back (echo) operation.
The voltage regulator has proper 5v output (4.95v), I will be picking up some replacement 0.1uf caps later today, I will post my results, thanks again for the ideas and input
Yes, we should have considered that earlier. With the comm cable plugged into the PC on one end but disconnected on the other end, wire a jumper or otherwise short pins 2 and 3 of the free end 9 pin connector together. Then try the Arduino IDE serial monitor loop back test. Also you might want to consider testing with another PC program. Hyperterm in windows is a simple serial terminal program, select the proper comm port and the loop back should echo keyboard characters to the screen.
Well there are a few measurements and checks you can make. Be sure the 328p is facing the correct direction, it is possible to plug it in 180 degrees wrong. Pin 1 of the 328P socket is the reset signal and it should measure +5vdc. Check the soldering of the socket pins carefully, esp the power and ground pins. Measure that you have +5vdc at pins 7 and 20. If all measures well then that leaves either the crystal or the 328p chip itself. Further troubleshooting would require a scope to see if a clock signal is being generated or not. First check that reset pin carefully, it should measure +5vdc and measure 0vdc when you press the reset switch down.
Also a little hard to test, but the auto reset that the Arduino IDE uses to start the bootloader at the correct time is important. It passes as the DTR signal from the comm port, through the MAX232 chip and then through a .1 mfd cap to the reset pin on the 328p. it just supplies a short pulse to cause the 329p to enter the bootloader. You can try manually doing the reset, by pushing the reset button at the correct time after hitting the upload button on the Arduino IDE. I've read that getting the manual timing correct is tricky by some, but worth a try.
The chip is facing the right direction, but I double checked just to make sure. The soldering looks good, I've had one of my fellow co workers double check it as well.
The reset pin has +5v, but when the button is pressed down, it drops to +3.2v. The chip is getting +5v on the 7 and 20 pins. I went through and checked the ground pins on the chip, and all of them are reading +~3v. (the one pin that is not reading that is the one next to pin 13 on the output header)
I went back through and double checked all the solders for shorts and couldn't find any.
I double checked the voltage regulator, and its taking in 12v and putting out 5v, and the ground shorts right to ground, tested with a multimeter.
So its evidently getting 3v from somewhere it shouldn't be...I double checked that all the resistors were in proper places and tested ok as well. I'm kind of at a loss what could be causing that.
That is a very strange ground reading at the reset pin. The reset switch puts a hard ground connection to the reset pin when pressed, so there is no way that +3.2vdc should be read at the reset pin when pressed. If that is really happening then of course the Arduino IDE would never be able to properly reset the processor to start the upload process. Nor would manually resetting the processor cause a reset sequence.
Do you measure the +3.2vdc at the reset pin if the processor chip is removed from it's socket and the reset switch is pushed? Check that, If it still reads 3.2 when the reset is pressed then there has to be some kind of ground trace crack or break or solder connection causing a high resistance ground path.
Lefty, the reset does not read +3v when the AVR chip is removed, I believe it reads 0 v w/o the chip, I will check and see if it grounds out when the button is pressed in the morning.
Also some one mentioned to clean the board off as flux from the solder can be conductive, but that didn't help but the back of the board looks cleanly done!
never heard of that, that would really suck... the major reason to remove flux is that certain flux are corrosive and might damage the circuit over time if not cleaned...
Well, I'm at a loss, so I'm reaching for anything, haha.
Ok, so the reset pin does NOT ground out when the chip is removed either.
When the chip is out, I get +5v at the reset pin, pressing the reset button does nothing to change this.
But, I made some progress, I found the grounding issue, and manually soldered on some wires to connect the grounds.
However, it does not work still, >:(
I get different symptoms. When it receives power initially, and the serial cable is disconnected, I just get the power LED, the 13 LED does not light at all. If the serial cable is connected, the 13 LED lights for a few second, and then goes out. Also, the reset button functions normally, if I press it, it resets the chip and it goes through the lighting motions again. (13 lights up).
But I have not been able to upload the blink program at all yet. Serial loop back test still works, I verified again. Same error in the arduino IDE, saying that it cannot communicate.
I assume you have the correct comm port selected on the Arduino IDE and the correct processor type selected from the board selection menu. I'm sure you have, but ya know ya have to ask
It sounds like your close. The fact that pins 13 blinks a short time when reset implies that the clock is working and the bootloader is running and waiting to communicate with the IDE.
It's not normally such a difficult task to assemble one of these kits, but that can depend on one's soldering experience, etc. Sometimes multiple problems can pop up, making it especially challenging to get going. The fact that you found some broken ground traces, I would take a good look at all the traces and solder joints with a magnifying glass and lots of light.
I know it's not much consolation, but that board is a very good quality design. Mine assembled in about 30 mins and worked from the get go.
I double checked my comm port / processor type they were fine.
Also, to elaborate on my grounding issue, it seemed like there were sections of the board that were supposed to be ground, but were not grounded. I don't currently have the camera in front of me to take a picture of the board, but I will try to, so I can more accurately show what I had to do to get the board to function somewhat.
I will go over the board again tomorrow with lots of light and some magnification, hopefully I can find something else that could be causing the issue. The kit went together relatively easy, I have had experience soldering before, I've repaired laptop motherboards (the DC jack) and have been successful at that.
One thing I did notice is that the light (13) seems to cycle if plugged in for a period of time. I would assume that's the chip resetting and awaiting commands from the IDE.
Very odd, was simple enough to assemble, very confusing why its having issues..
One thing I did notice is that the light (13) seems to cycle if plugged in for a period of time. I would assume that's the chip resetting and awaiting commands from the IDE.
That isn't normal operation. At power up or reset you should see pin 13 flash a few times and then stay off (unless there is already a sketch loaded that uses pin 13). The Arduino IDE software only generates a auto reset when you press the upload button.
So if you see it cycling over time then either there is a +5vdc power problem or a reset is happening. A 'floating' reset pin can do that, so be sure the +5vdc to pull-up resistor to reset pin is giving a solid high to the reset pin. Any intermittent open there can cause false resets due to circuit noise.