Skip to content
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

Decoding errors #69

Closed
ryaneastland-zz opened this issue Jul 22, 2017 · 14 comments · Fixed by #118
Closed

Decoding errors #69

ryaneastland-zz opened this issue Jul 22, 2017 · 14 comments · Fixed by #118

Comments

@ryaneastland-zz
Copy link

Probably just my not knowing how to set everything up right but I keep ever getting NUL at the end on messages received or Ä instead of [ and Ü instead of ] any ideas.

I'm running on a raspberry pi with rtl_fm input

command
rtl_fm -f 148.9125M -s 22050 | multimon-ng -t raw -a POCSAG512 -f alpha /dev/stdin

@marshyonline
Copy link

Not just you, I am also getting this.

@ryaneastland-zz
Copy link
Author

I've worked out it's something to do with the charset that multimon is using so just do a find/replace for the incorrect letters

@EliasOenal
Copy link
Owner

EliasOenal commented Oct 16, 2017

I'm still waiting for someone to implement this, without completely breaking support for the German charset. Please see #65 and #21

@pyrog
Copy link
Contributor

pyrog commented Dec 28, 2018

Hi,
Same issue with "french" charset.
Swissphone pagers use the following charset:

  • FTZ Germany
  • US ASCII
  • Norway / Danmark
  • Switzerland
  • Sweden / Finland
  • Spain
  • France
  • Britain
  • International
  • Italy
  • Slovenia

Tested with a Swissphone DE700 pager set with French charset:

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7F
  • Output of multimode-ng
!#$%&'()*+,-./0123456789:; = ?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[Ö]^_`abcdefghijklmnopqrstuvwxyzäöüß
  • Message displayed on the DE700
 !"#$%&'()*+,-./0123456789:;<=>?àABCDEFGHIJKLMNOPQRSTUVWXYZâç§^_`abcdefghijklmnopqrstuvwxyzéùèê¡

(DEL character is displayed as an inverted exclamation mark)

Hex US FR DE
40 @ à @
Hex US FR DE
5b [ â Ä
5c \ ç Ö
5d ] § Ü
Hex US FR DE
7b { é ä
7c ù ö
7d } è ü
7e ~ ê ß
7F ¡

DEL is displayed as <DEL> by multimode-ng

@pyrog
Copy link
Contributor

pyrog commented Dec 28, 2018

According to NZ Telepermit for pagers, the POCSAG charset is ISO 646 with US / IRV (1991) variant (ISO-IR-006).

All other variant are described in the ISO/IEC_646 Variant comparison chart.

According to DecentralizedAmateurPagingNetwork/Core issue #143, AlphaPoc pager used by hams use the DE variant (ISO-IR-021).

@pyrog
Copy link
Contributor

pyrog commented Dec 28, 2018

Variant Code Chart 24 40 5B 5C 5D 5E 5F 60 7B 7C 7D 7E
US / IRV (1991) ISO-IR-006 # @ [ \ ] ^ _ ` { | } ~
DE ISO-IR-021 # § Ä Ö Ü ^ _ ` ä ö ü ß
swi (NRCS) CP01021 ù à é ç ê î è ô ä ö ü û
FR (1983) ISO-IR-069 £ à ° ç § ^ _ µ é ù è ¨
CA ISO-IR-121 # à â ç ê î _ ô é ù è û
DE700 $ à â ç § ^ _ ` é ù è ê
TPL $ à ° ç § ^ _ ` é ù è

DE700 and TPL pagers with french charset seem to use a mix of FR and CA ISO 646 charset.

@EliasOenal
Copy link
Owner

Thanks for posting that table. Would you be willing to change the default to US and implement a command line flag allowing the selection of the other charsets?

@pyrog
Copy link
Contributor

pyrog commented Jan 3, 2019

In pocsag.c#L129 we could use a simple global trtab[128] and remove the binary search.
So the --charset option "just" set the appropriate tab once…

@EliasOenal
Copy link
Owner

Fine with me.

@eopo
Copy link

eopo commented Jan 5, 2019

Same error here but inverted.
German messages with Umlauts. Pager displays Ü, multimon_ng outputs ']' (closing square bracket)

@pyrog
Copy link
Contributor

pyrog commented Jan 5, 2019

@shutterfire Do you have a technical manual for this pager with the charset(s) used?

Or could you send this test message with rpitx ?

printf "1234567A:Test charset \x24\x40\x5B\x5c\x5d\x5e\x5f\x60\x7b\x7c\x7d\x7e" | sudo ~/src/rpitx/pocsag -f BOS_FREQUENCY -r BOS_BAUD_RATE

pyrog pushed a commit to pyrog/multimon-ng that referenced this issue Jan 8, 2019
@pyrog
Copy link
Contributor

pyrog commented Jan 8, 2019

I don't add yet charsets for EuroBos, Swissphone and TPL pagers.

Should we add ?

  • a charset option tpl-DE, tpl-FR, eurobos-DE, eurobos-FR
  • a config file to specify the "user" charset

TPL seem to use the FR (1973) also called ISO-IR-025 (except £).

@pyrog
Copy link
Contributor

pyrog commented Jan 8, 2019

Several characters could be used as combining characters, when preceded or followed with a backspace C0 control. This is attested in the code charts for IRV, GB, FR1, CA and CA2, which note that "',^ would behave as the diaeresis, acute accent, cedilla and circumflex (rather than quotation marks, a comma and an upward arrowhead) when preceded or followed by a backspace. The tilde character (~) was similarly introduced as a diacritic (˜).

Source : https://en.wikipedia.org/wiki/ISO/IEC_646#Variant_comparison_chart

Tested with TPL and Swissphone pager with french charset:

printf "1234567A:Test E\x08^ ^\x08E \x08^E E^\x08" | sudo rpitx/pocsag…

That don't work: 😁

  • TPL display Test Eî^ ^îE î^E E^î
  • Swissphone display Test E ^ ^ E ^E E^

@pyrog
Copy link
Contributor

pyrog commented Jan 9, 2019

Send characters from 0x00 to 0x1f with the following script:

printf "1234567A:Test 0x1f (\x1f)" | sudo rpitx/pocsag …

(Note: both pagers use the french charset).

  • Swissphone pager display a Whitespace character except for 0x00 and 0x0A as it end the message.
  • TPL pager display the following characters:
Code Char Comment
0x00 end of message
0x01 Whitespace character
0x02 new line
0x03 £ Pound sign
0x04 ¯ Macron
0x05 ë Latin Small Letter E with diaeresis
0x06 Ü Latin Capital Letter U with diaeresis
0x07 ê Latin Small Letter E with circumflex
0x08 î Latin Small Letter I with circumflex
0x09 â Latin Small Letter A with circumflex
0x0a end of message
0x0b ô Latin Small Letter O with circumflex
0x0c ï Latin Small Letter I with diaeresis
0x0d new line
0x0e ° Degree symbol
0x0f ç Latin Small Letter C with cedilla
0x10 § Section sign
0x11 é Latin Small Letter E with acute
0x12 ù Latin Small Letter U with grave
0x13 è Latin Small Letter E with grave
0x14 ¡ Inverted Exclamation Mark
0x15 Ç Latin Capital letter C with cedilla
0x16 Ñ Latin Capital letter N with tilde
0x17 ¿ Inverted Question Mark
0x18 ñ Latin Small Letter N with tilde
0x19 Ä Latin Capital letter A with diaeresis
0x1a Ö Latin Capital letter O with diaeresis
0x1b Whitespace character
0x1c ä Latin Small Letter A with diaeresis
0x1d ö Latin Small Letter O with diaeresis
0x1e ü Latin Capital Letter U with diaeresis
0x1f ß Latin Small Letter sharp S

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants