3

This isn't a troubleshooting question, it's purely to satisfy my curiosity...

MagTek makes a product called the uDynamo credit card reader that uses the audio channel on android devices as a communication bus to interface with the mobile devices. This makes perfect sense; you have a TRRS audio jack, supporting three channels (audio L, R, and mic) and a ground. Everything the uDynamo needs and more to facilitate full duplex communication.

However, one of my phones, the Android-sporting ZTE ZMAX PRO, with a functional TRRS headset jack, doesn't appear to ever succeed in synchronizing or handshaking with the device (there's a tester app that tries for a long time to get to step 2, then says 'test failed'). The app my company developed has the same problem. The PCM sync tone emitted from the android is excessively audible if I plug in headsets when running the test, and the microphone wire on the TRRS jack is functional. Interestingly, the card reader works on my other android phones. It appears that this particular phone simply is not supported.

So, my question is, why would some android phones be able to communicate over a TRRS headset jack while others can't? I mean, it's a PCM signal over standardized audio cables, it doesn't seem like much could be different from phone to phone.

Anyway, thank you in advance.

James M. Lay
  • 153
  • 4
  • You sure the TRRS pinout is L-R-G-M for your device? – Jeroen3 Jun 27 '17 at 06:41
  • I'm fairly sure, see the comment thread on @DmitryGrigoryev 's answer below. – James M. Lay Jun 27 '17 at 15:46
  • This could be any number of things, from excessive *latency* (historically a real problem on some Android devices), to a very severe buffer offset calculation bug in certain Android version's audio API code, to insufficient harvested power if the reader doesn't have it's own battery, to even something as simple as slight mechanical incompatibility with a perhaps now somewhat worn connector. – Chris Stratton Jul 06 '17 at 22:19

2 Answers2

3

This may be due to CTIA (aka Nokia) vs OMTP (aka Apple) 3.5 mm jack standard that different phones use:

enter image description here

It's easy to check: if the handset of one phone doesn't work properly with the other (non functional microphone, very faint sound unless you push the MIC button), they most probably have GND and MIC contacts swapped.

Dmitry Grigoryev
  • 25,576
  • 5
  • 45
  • 106
2

perhaps it is the Active noise cancellation with dedicated mic.

Most Modems do EQ training for spectral and group delay distortion with 1 echo cancellation ( not 2 like the old DSP versions). But if more distorted than some specified amount, the modem will fail.

Tony Stewart EE75
  • 1
  • 3
  • 54
  • 182
  • What's the point of echo cancellation when a handset is used? Most users plug the speakers in their ears (far away from the mic), not their mouth. – Dmitry Grigoryev Jun 27 '17 at 14:39
  • 1
    feedback is still possible from earbuds if loud and mic does not use echo cancellation. But echo cancellation must be stable or noise cancelling differential pressure. This one has **Active** noise cancellation, hence the pre-connect training EQ constants become wrong and perhaps why the card read modem fails. It also depends on the return loss or sidetone levels in full duplex modems. – Tony Stewart EE75 Jun 27 '17 at 14:53
  • @TonyStewart.EEsince'75 This is very plausible. Is there any way to test this? – James M. Lay Jun 27 '17 at 15:08
  • Yes monitor the two way signals for group delay and sideband or crosstalk with a test set. It is easier to design a test set, if you learn how modems run pre-connect EQ tests. This helps understand the root cause of your failures. Then the solution needed will be obvious if possible. Sometimes this is done with "pre-compensation" – Tony Stewart EE75 Jun 27 '17 at 15:16
  • What's your spec? V.32bis: 14400/ 12000/ 7200 bps TCM?? K56Flex, V.90?? – Tony Stewart EE75 Jun 27 '17 at 15:23
  • V32 9600 1800 Hz V32 bis 14400 1800 Hz V32 terbo 19200 1800 Hz V34 33600 Adaptive ?? – Tony Stewart EE75 Jun 27 '17 at 15:28
  • THe only solution might be to call the OEM for ZTE ZMAX PRO, and ask how to disable the active cancelling from changing during useage. or finding out if there is an FTM mode – Tony Stewart EE75 Jun 27 '17 at 15:31
  • I'll have to do some research and get back to you on that one. – James M. Lay Jun 27 '17 at 15:45
  • https://www.itu.int/rec/dologin_pub.asp?lang=e&id=T-REC-V.32bis-199102-I!!PDF-E&type=items describes training codes and sequences for EQ. The modem may be using the optional (wrong ) ones incompatible for this headset or it may be the headset's fault. Best to call Eng support for Modem too. – Tony Stewart EE75 Jun 27 '17 at 15:55
  • Noise cancellation wouldn't typically be activated unless the audio circuitry is being run in a call audio mode, but I guess it's possible a buggy audio implementation on a given device might do it anyway. – Chris Stratton Jul 06 '17 at 22:17