Ticket #1267 (closed defect: fixed)

Opened 7 years ago

Last modified 6 years ago

Strong echo when calling a Neo from another phone

Reported by: mail@… Owned by: sean_chiang
Priority: high Milestone:
Component: Audio Version: unspecified
Severity: normal Keywords: audio, echo
Cc: buglog@…, Kevin, Dean, nomeata, russh, john_lee@… Blocked By:
Blocking: #1640 Estimated Completion (week):
HasPatchForReview: no PatchReviewResult:
Reproducible:

Description

This is a "well-known" issue but I couldn't find anything in Bugzilla for it.

When talking to a Neo, the person on the other end of the phone call will hear a
strong time-delayed echo of their voice. With the default settings it is bad
enough that it is difficult to hold a conversation, and it is even enough to
confuse IVR systems that use voice-recognition instead of DTMF tones.

It is possible to reduce (but not eliminate) the echo using the mixer, by
turning down the gain in the audio path from the microphone to the Calypso
input. However this also has the undesirable side-effect of reducing the volume
of the person who is speaking into the Neo. I am filing this under "hardware"
because I do not know if it will be possible to get acceptable performance using
only the mixer settings.

I have experienced this with a GTA01Bv4 and "-moko1" GSM firmware (one of the
first batch sold last summer), but it appears that this issue also affects GTA02.

References:
http://lists.openmoko.org/pipermail/openmoko-kernel/2008-March/001477.html
http://lists.openmoko.org/pipermail/community/2008-January/012379.html

Note - a handy trick is to install 'xoscope' (which is in OE), a software
oscilloscope that measures the signal on the ADCs in the Wolfson codec. With a
few mixer tweaks it is possible to send a 1 kHz PCM tone out through the call
speaker, and measure the resulting microphone signal through the ADCs. It would
be even better to use a spectrum-analyzer program, but so far I have not been
able to compile one for the Neo.

Attachments

gsmhandset.state (17.5 KB) - added by danielmewes 6 years ago.
Gsmhandset ALSA state with reduced echo
openmoko_echo.patch (508 bytes) - added by f.hackenberger@… 6 years ago.
Patch for qtopia-phone-x11 to enable echo cancellation and noise suppression
qtopia-phone-x11-phonevendor-ficgta01vendor_4.3.2+git2+13101ab6ddaec380871ae8021a92140af526c4df-r38.05_om-gta02.opk (29.4 KB) - added by f.hackenberger@… 6 years ago.
Patched package
qtopia-phone-x11_echo.patch (816 bytes) - added by danieln 6 years ago.
qtopia-enable-echo-suppression-on-dialing-and-accepting.patch (3.8 KB) - added by Treviño 6 years ago.
Another Qtopia echo suppression for TI Calypso patch.
qtopia-use-Ficgta01ModemHiddenFeatures-class-for-echo-suppression.patch (4.3 KB) - added by Treviño 6 years ago.
Ficgta01ModemHiddenFeatures class for echo suppression

Change History

comment:1 Changed 6 years ago by andrew@…

Yup, I'm one of the many other people with this problem. GTA01 on Rogers, with
an image from a week or so ago.

comment:2 Changed 6 years ago by sean_chiang@…

  • Status changed from new to assigned

comment:3 Changed 6 years ago by Kevin Dean

  • Cc Kevin, Dean added
  • Keywords audio, echo added

I can confirm the existance of this issue on both the 1973 and the Freerunner. I've noticed this seems to get better or worse with the different handsets from the caller. My wife's cell phone has a strong echo of her voice, but calling from my work phone is barely perceptible.

This issues is signifigant enough that it confuses a standard voice recognition system because it begins registering it's own echo. It has also been known to confuse my cellular carrier (T-Mobile USA) verbal authorization system which is required to make account changes. Given the popularity of such voice recognition systems, I'd personally bump this to "major" or even "critical".

comment:4 Changed 6 years ago by Ainulindale

I concurr : this is a major issue, each time I phone someone there's either a loud buzzing or an echo, depending on the settings I use. As it's time shifted, it's pretty hard for the correspondant to continue to talk, as it's unusual.

comment:5 Changed 6 years ago by danielmewes

I am using the Neo1973 with ASU and modified the /ust/share/openmoko/scenarios/gsmhandset.state to the attached state file and was able to strongly reduce (however not totally eliminate) the echo and also generally increasing the sound quality.

I do not remember what exactly I changed, but a diff should reveal this.
As far as I remember regarding the echo I especially had to change:

  1. Mono 2 Mux from Inverted Mono 1 to Right
  2. Mono Sidetone Playback Volume to 0 (interestningly, there is still some sidetone on the Neo. Perhaps both the modem and the sound card generate one??)

But I am not sure if those changes are sufficient or I changed another important thing (just went through the mixer while a call was on and tried to change nearly every control). Please look into the attached file, if this alone should not help.

This however is more a dirty-but-working-hack, since I did not look into how the sound is actually wired inside the Neo and what exactly all the controls are meaning.

Changed 6 years ago by danielmewes

Gsmhandset ALSA state with reduced echo

comment:6 Changed 6 years ago by roh

  • Owner changed from sean_chiang@… to sean_chiang

comment:7 Changed 6 years ago by nomeata

  • Cc nomeata added

comment:8 Changed 6 years ago by russh

  • Cc russh added

comment:9 Changed 6 years ago by geocode

Yeah I'm using the 2008.08 and the alsactrl gsmhandset restore and I still have a nasty echo that everyone complains about. Any further progress or things I can try? I have a Freerunner.

comment:10 follow-up: ↓ 11 Changed 6 years ago by degraffenried

I have tried the attachment above and copied it to /usr/share/openmoko/scenarios/gsmhandset.state on my freerunner, but it didn't work. The next step I tried was adjusting settings in the program alsamixer while on a call. The best way to do this is to log into the phone from a desktop or laptop and call alsomixer so you have a large screen. I adjusted the volume of the item labeled Mono until the person on the other line could still hear me fine, but didn't get an echo when they talked, and this also solved a problem with the buzzing that they heard (ticket http://docs.openmoko.org/trac/ticket/883). This does not keep the settings for the next call, so I learned to change the gsmhandset.state file - there is only one entry I had to play with until I got it right. I changed control.5 ('Mono Playback Volume') to have the value 85. Try a few more settings to see if you can clear it up any more. I don't know if this solves the issue completely - but it helped me quite a bit - and perhaps helps lead to a better solution.

comment:11 in reply to: ↑ 10 Changed 6 years ago by degraffenried

Replying to degraffenried:
typo - called alsamixer when shelled into the phone from another computer.

comment:12 Changed 6 years ago by f.hackenberger@…

I'd like to know the development roadmap regarding an echo cancellation module for the Neo. The speex AEC seems to be quite nice and may be useful for a little copy and paste. Is someone from OM Inc. working on the subject? I may be able to contribute to a solution, if someone is willing to provide some guidance (implementation as an ALSA plugin, or as a sound daemon plugin?).

comment:13 Changed 6 years ago by goshawk

Same problem on GTA02 (Freerunner) using Qtopia (lastest snapshot).

Changed 6 years ago by f.hackenberger@…

Patch for qtopia-phone-x11 to enable echo cancellation and noise suppression

comment:14 Changed 6 years ago by hbernard

  • Installed the patched package above on 200808 (up to date) (with -force*)
  • I rebooted in case of...
  • Call on a land line, there was some echo
  • Call on another gsm, awful noise and echo...

So this is not the perfect solution... Any idea ?

comment:15 Changed 6 years ago by zecke

comment:16 Changed 6 years ago by Kagee

This one:

  1. http://lists.openmoko.org/pipermail/community/2008-August/028495.html

These audio settings:

  1. http://www.mail-archive.com/support@lists.openmoko.org/msg00564.html

AND running the AT command

  1. "AT%N028B" in minicom (connected as in 1.)

(that is "Long AEC -6 dB is active", from http://lists.openmoko.org/nabble.html#nabble-td784752|a786187 )
makes my FR (running 2008.8/ASU End user) echo free.

The only drawback is that minicom locks up (refusess to let me type Ctrl+Z X) after "AT%N028B", and i have to terminate it using kill <pid>. Then it (minicom) disconnects and restarts the modem (i think) and my next call is echo free.

OBS: I have to do nr. 3 BEFORE EVERY CALL

comment:17 Changed 6 years ago by michael

Daniel Nöthen reports, and Angus Ainslie confirms, a pattern which might help
debug this issue. Full email at:

http://lists.openmoko.org/pipermail/community/2008-October/032655.html

Excerpt:

  1. Boot the freerunner
  2. Make a call -> no echo
  3. Hang up
  4. Make a call -> echo
  5. Hang up
  6. /etc/init.d/xserver-nodm restart
  7. Make a call -> no echo
  8. Hang up
  9. Make a call -> echo

.
.
.

With the above state file I was able to bring up the "Speaker" volume up to
100%
without hearing any echo on step 2 and 7.
The volumes on both sides were very good.
On step 4 and 9 I could only bring up the "Speaker" volume to 79%.
Above 79% the echo came back.

So it seems that the echo suppression command (AT%N0187) gets reset after
every call.

Changed 6 years ago by danieln

comment:18 Changed 6 years ago by danieln

I've attached a patch that sends the echo suppression command
on every incoming/outgoing call to the gsm modem.
A more detailed description can be found here:
http://lists.openmoko.org/pipermail/community/2008-October/033312.html

comment:19 Changed 6 years ago by Treviño

As said in ML I've finished the patch that enables the echo modem suppression on dialing and on replying only for the TI Calypso device.
I've used the at commands suggested by Micheal Lauer.

Changed 6 years ago by Treviño

Another Qtopia echo suppression for TI Calypso patch.

comment:20 Changed 6 years ago by tick

The qtopia-enable-echo-suppression-on-dialing-and-accepting.patch look good to me.
It's on the git now.
http://git.openmoko.org/?p=qtopia.git;a=commit;h=8fc50673571e3c2b93c8fde928876d98280a22c8

comment:21 Changed 6 years ago by Treviño

I've reworked a little that patch adding a small class, called Ficgta01ModemHiddenFeatures, that allows to send the known hidden at commands easily...

Changed 6 years ago by Treviño

Ficgta01ModemHiddenFeatures class for echo suppression

comment:22 Changed 6 years ago by tick

  • Status changed from assigned to in_testing

It's on git now.
Great thanks. :-)

comment:23 Changed 6 years ago by Treviño

Nice... :)
Now, we've only to check if the echo goes always away :|

comment:24 Changed 6 years ago by john_lee

  • Cc john_lee added

comment:25 Changed 6 years ago by john_lee

  • Cc john_lee@… added; john_lee removed

comment:26 Changed 6 years ago by john_lee

  • Blocking 1640 added

comment:27 follow-up: ↓ 28 Changed 6 years ago by TimoJyrinki

I guess this could be marked as fixed, as the hardware echo suppressions are enabled in also stable now (2008.12). Are they enabled for both incoming and outgoing calls now?

comment:28 in reply to: ↑ 27 ; follow-up: ↓ 29 Changed 6 years ago by nelg

Replying to TimoJyrinki:

I guess this could be marked as fixed, as the hardware echo suppressions are enabled in also stable now (2008.12). Are they enabled for both incoming and outgoing calls now?

I am still getting told the is a strong echo on the line when I make calls to other people using om2008.12. I don't hear an echo on my end.

When I try using: http://docs.openmoko.org/trac/attachment/ticket/1640/scenarios.tgz the echo goes away, but call volume is quite low and hard to hear.

comment:29 in reply to: ↑ 28 Changed 6 years ago by lindi

Replying to nelg:

I am still getting told the is a strong echo on the line when I make calls to other people using om2008.12. I don't hear an echo on my end.

Have you verified that om2008.12 is sending AT%N0187 before every call and not just the first one?

comment:30 Changed 6 years ago by wendy_hung

  • Status changed from in_testing to closed
  • HasPatchForReview unset
  • Resolution set to fixed

This issue have been fix by newest Om2008.12 image.
You won't hear the echo and you can have a volume bar to adjust the volume level.

Note: See TracTickets for help on using tickets.