As i wrote in other threads, i power my em-406 gps module from a arduino data-pin.The gps module runns well, most of my code is written.I just started installing all of my hardware into my UAV_Eins airplane/drone.Shortly after "power-on" i found that i get horrible glitches on all receiver channels i read.I saw that these glitches (about 20% drop of the signal) occour relatively periodic.....I recorded the signal an the millis(), and got this "wonderfull" graph:Disconnecting the gps module resolved the issue for the moment. The code works well, without the gps module.It seems that the gps module draws to much power while sending data. The glitches are veryvery periodic by 1second. (1024,7ms in average)I think there are some options i have now:1. Power the GPS module from seperate battery (with gnd connected of course...)2. add voltage regulator to my doughter-board, to power the gps directly from the lipo battery3. use the 5V pin of the arduino10000 board4. add a capacitor to the data-pin i power the gps nowSolution 1., 2. and 3. would result in the fact that i would have to disconnect the GPS everytime want to upload new. code. currently i only have to reset the board, and start the upload within of 2seconds.The result for me: i have to give the capacitor a try!! I have to search my electronic stuff boxes, to find some capacitors i can use, hopefully it will work.Does anybody now how to dimension the capacitor???
But it's about loosing the battle when i switch to a bought system that runs pretty much out of the box now.
My idea is DIY, and i don't want to stop just because of that problem.
By the way: Did you analyse the signals you can read with the ardupilot? My glitches are about 10-20% of the signal, so if you only switch channes (digital) you wouldn't notice them...
Oh. I'm afraid I can't help--we're only supporting ArduPilot. Maybe someone else here has some suggestions?
Out of curiosity, why aren't you using ArduPilot? It's cheaper than a diecimila and makes all the stuff you want to do very easy. Smaller, lighter, etc.
So, are you saying that when the GPS is plugged into ArduPilot's GPS connector and the ArduPilot board is powered the regular way and you're using the ArduPilot code, you get GPS glitches? Or are you using some other custom configuration of hardware and/or software?
We can only support you if you're using the recommended configuration--it's too hard for us to diagnose hardware and software combinations that we've never seen or used.
Whatever power source i choose, i still get these glitches (Even with a external battery).
Whenever the GPS´ TX pin is connected to serial-read-pin (pin0) of the arduino, i get these glitches.
I don´t get these glitches when i simply give 5v so the serial-read-pin.
Even if there is no GPS code (send/receive data) i get glitches...
When i disable all Serial funktion (means that i don´t call Serial.begin), the glitches are gone. --> i don´t think that there is a soldering problem for this....
It seems that the serial data of the GPS is disturbing so mutch, that it can´t read the receiver signals correctly.
I am reading the receiver data with Signal = pulseIn(pin, HIGH). That should be the correct way to do that... ??
I could filter the receiver signals to find and ignore the glitches, but that isn´t the way i wan´t it to be done.
Does anybody have a good/better idea how to solve this???
Yes, just to confirm what Otto said, you can't power the GPS with the data pins. They're not designed to output any significant current, and you're bound to get glitches like you've seen (and possibly burn out the Atmega)
The data pin on an arduino won't be able to output enough current to power the GPS. You need to use a linear regulator in order to power it from a battery, or a real 5V pin on a board you already have. Never depend on a data pin as a power source.
A capacitor of about 0.1uF is always a good idea, but your problem here is that the current protection circuitry inside the AVR is cutting the voltage on that pin.
Comments
But it's about loosing the battle when i switch to a bought system that runs pretty much out of the box now.
My idea is DIY, and i don't want to stop just because of that problem.
By the way: Did you analyse the signals you can read with the ardupilot? My glitches are about 10-20% of the signal, so if you only switch channes (digital) you wouldn't notice them...
Out of curiosity, why aren't you using ArduPilot? It's cheaper than a diecimila and makes all the stuff you want to do very easy. Smaller, lighter, etc.
I am using a Arduino dicemilla. The EM-406a GPS module is connected to the Serial pins.
We can only support you if you're using the recommended configuration--it's too hard for us to diagnose hardware and software combinations that we've never seen or used.
the problem seems to be different!
Whatever power source i choose, i still get these glitches (Even with a external battery).
Whenever the GPS´ TX pin is connected to serial-read-pin (pin0) of the arduino, i get these glitches.
I don´t get these glitches when i simply give 5v so the serial-read-pin.
Even if there is no GPS code (send/receive data) i get glitches...
When i disable all Serial funktion (means that i don´t call Serial.begin), the glitches are gone. --> i don´t think that there is a soldering problem for this....
It seems that the serial data of the GPS is disturbing so mutch, that it can´t read the receiver signals correctly.
I am reading the receiver data with Signal = pulseIn(pin, HIGH). That should be the correct way to do that... ??
I could filter the receiver signals to find and ignore the glitches, but that isn´t the way i wan´t it to be done.
Does anybody have a good/better idea how to solve this???
A capacitor of about 0.1uF is always a good idea, but your problem here is that the current protection circuitry inside the AVR is cutting the voltage on that pin.