-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Vario sound not working or freezing in flight. #349
Comments
Hi guys, I'm still experiencing this issues even with the latest image built from master branch. |
I've been testing yesterday and I found two Issues regarding this bug.
@mihu-ov, Is it possible that you posted something about RF interference and speaker wiring some time ago? |
I had a similar issue wth an older vario (radio transmission would generate a vario reading, the magnitude would depend on the radio frequency). The fix was to solder 1000 pF capacitors from every external connector to ground. |
MS5611 is known to be sensitive to RF interference, there´s nothing we can do about this on the sensor side other than trying to minimize the effects. a) MS5611 power supply: each sensor has its own power supply with a Pi-filter after the supply. IIRC this was suggested from experience with MS5611 paraglider varios. Should be good in my opinion, but please crosscheck IMO most potential is in c) - Reduce RF emissions. My wiring is far from perfect but I have no issues with sensor data or Kalman filter runaway. |
Not sure if I understand correctly, but I'm not sure if I'd do that myself - if you place the amp at the speaker, you'll be amplifying any interference that gets picked up along the way, plus you'd need to run power to the amp, which could also pick up interference. Speaking of wiring, what I've been doing during re-wires is using a shielded 2-core cable, where the 2 cores are + and -, and the shield is connected to - at one end only (on the OV side, or to the star ground). This might help too. |
Yes, you´d need to run power to the amp, no real issue in my opinion. Yes, you could pick up interference but I doubt this is a real life issue. We are not talking Hi-Fi here, one could use a thin but shielded cable, and if required the amp input resistance could be reduced. |
Thanks guys for chiming in. On the software side, Variod seems to keep working but not receiving data. |
Capacitors in series block DC / low frequencies from getting to the speaker, which is not what you're after; what you want are 'shunt' capacitors from signal to ground, to provide a path for any high frequency crap. I would try this, plus the 2 core shielded cable, if you're going to do any re-wiring. |
You are right about the cap! |
I'll be blunt and say I've lost all interest in supporting the MS5611. Every attempt I made to try to fix its problems in software seemed to generate new problems. Maybe could I do better starting from scratch, but maybe not. The temperature compensation system is imperfect and it self heats. As a result temperature on the chip changes as a function of polling frequency. If the controller locks up (which it seems prone to do depending on software configuration) the temperature on the 5611 starts falling and then the next pressure reading is pretty far off. It then asymptomatically approaches a steady state value as normal polling resumes. It wouldn't shock me if there is RF sensitivity as well. As Dan points out, putting a 1-1.5nF cap on all outward facing lines is probably the best solution. If the cap is larger than that the self resonant frequency is too low and it won't look like a capacitor at the VHF radio frequencies we use. Dan and I's replacement board is a better built board (4 layer) with tons of via stitching, 1nF caps everywhere, and an ST sensor (the latest of which is probably higher performance than the 5611) which has a free running oscillator to drive the conversion. As for a Class D. I agree that in theory if you have a Class D, you want it as close to the speaker as possible, but a Class AB will always give cleaner results. |
Hi @hpmax. I understand you lost interest in supporting MS5611, but being the writer of the code, I can't think of anyone better to fix what's been broken. I find your code hard to understand, with a lot of constants that are not documented and a lot of math operations that are not documented either. This modification is carried out through several commits that change many unrelated things and I don't know what the effects of reverting them all would be. You could make the blip correction optional through command line. This way, the use of it can be chosen and we can test without breaking the code. |
Signal - you want a good path for high frequencies to ground, which the shield should already have by virtue of being grounded.
Could be worth a try. Is the case powder coated, and if so, is there a chassis connection to bare metal from circuit ground somewhere? Is the case shielding consistent throughout all of the case? That could also be something to check. |
Thanks @DanD222, I'll try shorter wire and a 0.001uf cap in the signal line to ground. |
The amp output is differential, there is no signal or ground wire, just two speaker wires. Check the datasheet of the chip amp, maybe it has some information about reduction of RF emsissions. |
OK… I got confused by the Cinch connector :-/ In that case there should be a cap from both opamp output pins to ground, plus there should be a shield connection to case. |
Yes, the Cinch connector was a design fault in many ways ;-) |
I'm not going to lie, I find my code hard to understand as well. I was essentially trying a series of experiments to get better performance. The idea was that once I got it working well I'd clean it up. But I found I was just adding patch over patch over patch and every attempt to make things work better would introduce new problems. Some of the true killers were that the compensation scheme was dependent on pressure and possibly temperature. That means it's a 2 or 3 dimensional compensation scheme and likely something that couldn't be done on the ground. Another big problem was that it was hard to determine when the compensation is actually done and how to detect a retrigger event. The intent was to beautify the code once I had something stable and working, but it was just one bandaid over another and really difficult to make clean. The end result was I felt we should abandon the original board. I can try to go through and rip out a lot of the bandaids I put in and clean it up some. |
Hi @hpmax, I would skip the compensation altogether for now. |
Update. I started testing the least invasive option first. I added a ferrite core to the speaker cable near the jack with one turn around it. The wire I used is shielded microphone wire. The shield was not connected to ground. I also shortened the wire length to around 35/40 cm. I believe 1/4 wavelength of 125 mhz is around 60 cm so I shortened the wire to minimize de antenna effect. |
I've been testing at home with my device and found some odd behaviour. |
I've experienced random disconnection issues with Variod and Sensord.
Sometimes, on startup, Variod does not connect to XCSoar, after restart, Variod connects but sensor data is unavailable.
I suspect Sensord not connecting to variod.
Sometimes, sensord disconnects from Xcsoar freezing vario sound on the last value received.
The only solution is to shut down and restart.
This behaviour seems to be random.
The text was updated successfully, but these errors were encountered: