yashsingh1/xdaforums huggingface dataset:
[Windows Mobile Software Development] johnpatcher:
To be honest I'm not keen in a gui, you should concentrate on the code itself. I would really love to have TMC in iGO8 :). I guess this will be much more easy than implementing it for TomTom, as it has already TMC support (and even has detected the hardware).

Have you took a look at this document already?

Which driver (FMS & FMS_API) have you used? I guess the one in the Blackstone 1.21 rom is the latest, it differs from the 1.19 one, so I will attach it here, maybe there is something new / different in it?

As far as I know the Nav'n Go support has written that it is impossible to retrieve TMC information with these devices, so they are proven to be wrong, really a shame!

Really great work!
[Windows Mobile Software Development] kaefert:
hey flywhc!

that is really a great app you produced here!

can you give us some details on what commands take what parameters?

and also it would be very cool if you could give us some details on your implementations; what libraries did you use to talk with the fm hardware? would you mind sharing your work (source code)?

i've got about another month of hard work on other stuff before me, but afterwards i would be ready to help.
[Windows Mobile Software Development] flywhc:
Thanks for supporting.

I am using a radio player from Rhodium Manila project, should be the latest.

I will publish API in the future once I have confidence with it, and remove code may have copyright issues.
[Windows Mobile Software Development] aes512:
Nice job! I'll watch this thread for your progress :cool:
[Windows Mobile Software Development] kaefert:
Okey, that sounds great!

BTW: you asked if your app works on blackstone: yes it does

One other thing: There is a free TMC service form some radio stations in austria, so if you include a feature to save a log of the recieved RDS messages I can give you TMC data that won't be encrypted
[Windows Mobile Software Development] SaBo:
You should concentrate on implementing GNS TMC protocol as it is supported by almost all navigation softwares (iGo, Navigon, Destinator, Falk, Medion, Route66 etc.)

There is a gpstmc.dll for controlling it (see attachment, it's from Navigon MN|7.3.1)

iGo doesn't need to find a FM transmitter but a FM receiver.

If GNS protocol is implemented and a COM port can be assigned to the TMC stream then almost all navigation softwares would be able to use TMC from internal RDS receiver.

There is free TMC in most western european countries.

There is even a tool TMCview which offers the possibility of making TMC stream readable on PDA (including all necessary decoding stuff).

Sascha
[Windows Mobile Software Development] johnpatcher:
Why something specific if there is OpenTMC?
[Windows Mobile Software Development] Mandragore:
Well done, keep up the good work!

I use Navigon MN|7.3.1 on my Diamond and it would be great if I could add TMC..
[Windows Mobile Software Development] SaBo:
There is nothing specific about it.

GNS protocol is widely supported by almost all navigation softwares.

It supports both free TMC as well as paid TMC services (V-Traffic, TMCpro, etc.).

Almost 100% of PDA and PNA use GNS hardware in order to receive and decode TMC messages.

Sascha
[Windows Mobile Software Development] johnpatcher:
But it is proprietary, wheras OpenTMC isn't (as the name suggests :)).
[Windows Mobile Software Development] da1stprince:
will this program at some point fix the non working fm radio in the touch pro?
[Windows Mobile Software Development] kaefert:
I just had RSSI 38 (see screenshot)

edit: 39
[Windows Mobile Software Development] flywhc:
I don't know what issue you talk about. I am using Touch pro and FM Radio works fine.

If yours doesn't work, you may need to go raphael ROM discussion find that OEM package thread and install FM Radio package

kaefert, if you run htc FM radio, how many bars on signal strength? 4 out of 8?

I guess max value should be 64 then.

those square boxes in your screenshot is a bug in my program. it shouldn't display that.

Let's start analysis.

This is a piece of raw RDS data sent via London Heart radio station:

C3 A6 20 05 48 21 E1 BB | .. .H!..

22 20 48 24 C3 A6 20 05 | " H$.. .

49 21 E1 BB 22 65 61 24 | I!.."ea$

C3 A6 20 25 53 21 6F 6E | .. %S!on

22 27 73 24 C3 A6 20 05 | "'s$.. .

4A 21 E1 BB 22 72 74 24 | J!.."rt$

C3 A6 20 85 48 21 50 6F | .. .H!Po

22 17 D5 24 C3 A6 20 05 | "..$.. .

4F 21 E1 BB 22 20 20 2C | O!.." ,

C3 A6 20 25 54 21 20 48 | .. %T! H

22 65 61 24 C3 A6 20 05 | "ea$.. .

48 21 E1 BB 22 20 48 24 | H!.." H$

C3 A6 20 05 49 21 E1 BB | .. .I!..

22 65 61 24 C3 A6 20 25 | "ea$.. %

55 21 72 74 22 20 70 24 | U!rt" p$

C3 A6 20 85 48 21 58 71 | .. .H!Xq

22 10 8C 2C C3 A6 20 05 | "..,.. .

4A 21 E1 BB 22 72 74 24 | J!.."rt$

C3 A6 20 05 4F 21 E1 BB | .. .O!..

22 20 20 24 C3 A6 20 25 | " $.. %

56 21 6C 61 22 79 69 24 | V!la"yi$

C3 A6 20 05 48 21 E1 BB | .. .H!..

22 20 48 24 C3 A6 20 | " H$..

Freq: 106200KHz = BB

PI = 50086 = C3 A6

PS = " Heart "

AF= N/A. sometimes has AF: 93400 (3B) , ....

RT = "This" "On" "Heart" "Now"

One block contains 16 bits data = 2 bytes.

A RDS group contains 4 blocks: 1, 2, 3, 4. always start with PI.

So we should see PI is repeated every 8 bytes.

But each block is followed by 10 bits checkword+offset.

The offset words are added (modulo-two) to the checkword c9 - c0 to generate the modified check-bits: c'9 - c'0.

A : 0FC

B : 198

C : 168

C': 350

D : 1B4

In Type A, block 3 is AF

In type B group, which doesn't have AF, block 3 is PI again.

Frequency table:

0 Not to be used.

1 87.6 MHZ

2 87.7 MHZ

: : :

204 107.9 MHZ

In raw RDS sent from FMS, we can see a PI repeat every 12 bytes.

So, it has either 4 bytes extra for a A type group or 8 bytes extra for a B type group

At most of time the station report no AF so I guess it uses type B.

Then we have 8 bytes checkwords/offset words, 2 bytes after each block.

In this case after every C3 A6 should be identical 20 05 but sometimes it is 20 25 or 20 85
[Windows Mobile Software Development] kaefert:
I think 8/8 if the strength is the 8 small dots left and right of the mhz display (see screenshot)
[Windows Mobile Software Development] flywhc:
I guess that RSSI is higher than max value HTC can expect :)

PS: MAGIC

PI 51080 C7 88

AF 94600 (47)

AF 101800(8F)

RT "YOU ARE LIST...".

20 00 3C C7 88 28 05 89 | .<..(..

29 81 B3 3A 47 49 2C C7 | )..:GI,.

88 28 15 9E 31 20 20 2A | .(..1 *

20 20 2C E1 B3 22 43 20 | ,.."C

2C C7 88 20 05 8F 21 E1 | ,.. ..!.

B3 22 20 20 24 C7 88 20 | ." $..

25 90 21 59 4F 22 55 20 | %.!YO"U

24 C7 88 20 05 88 21 E1 | $.. ..!.

B3 22 4D 41 24 C7 88 20 | ."MA$..

05 89 29 E1 B3 22 47 49 | ..).."GI

24 C7 88 20 25 91 21 41 | $.. %.!A

52 2A 45 20 24 C7 88 20 | R*E $..

05 8A 21 E1 B3 22 43 20 | ..!.."C

24 C7 88 20 05 8F 21 E1 | $.. ..!.

B3 22 20 20 24 C7 88 20 | ." $..

25 92 21 4C 49 22 53 54 | %.!LI"ST

...

22 43 20 2C C7 88 20 25 | "C ,.. %

9E 29 20 20 22 20 20 2C | .) " ,

C7 80 30 05 8F 29 E1 B3 | ..0..)..

2A 20 20 24 C7 88 28 05 | * $..(.

89 21 E1 B3 22 47 49 24 | .!.."GI$
[Windows Mobile Software Development] flywhc:
I don't understand what you asked for.

if you need source code of xFMRadio, sorry I can't give it to you because I reused some commercial code.

But you can download c++ source code for fmradio api on the first post of this thread, or newer version in this thread. It provides sufficient source code to build your own FM radio application.

I don't have c# wrapper. you can translate c++ loadlibrary getprocadddress etc to c# DllImport.
[Windows Mobile Software Development] flywhc:
set volume issue is solved. the answer is here:

http://social.msdn.microsoft.com/Fo.../thread/292356c7-5714-48f4-b813-dd6bfb659c34/

It uses an undocumented API AudioUpdateFromRegistry().

However I can't find reference from fmradio.exe. must have other way.
[Windows Mobile Software Development] stepan1117:
Hello and thanks for your work! The small donation # 60K21432497247643 was from me, to appreciate your effort :)
[Windows Mobile Software Development] IBX1:
Hi!

I did some tests this morning during driving.

Any RSSI below 15 is not usable. The scan sometimes finds stations with a value below 10! (Only noise) RDS starts working with 18 or 19.

AF list seems to be at least incomplete (I was missing some knows frequencies). I will have another later.

One bug (feature): the list cleared, when I select a frequency from the list. When the selected frequency has poor quality, there is no way back => keep the list when working in it or add a back button.

Btw.: should automatic frequency change based on AF work?

Did anybody contact the manufacturers for OpenTMC support?

I'm waiting for a reply from Navigon.

Ok, it is a little off topic, but maybe interesting:

Is there any way to connect the X1 (or other ones) to the car antenna?

What is the pin out of the headset jack for connecting antenna?

IBX1
[Windows Mobile Software Development] beemerTPPC:
I used that undocumented feature from WM2003 to WM5, but in WM6 it's better to use WaveOutSetVolume. But if it works for you.... perfect.

I've readed about this, but I've found nobody that have managed to make it work. Althought previous versions of iGo may recognize the FM radio hardware as TMC receiver, it didn't work at all. If you have another reference, please, tell us, because it could be very interesting.

When iGo does a TMC hardware detection it tries all or the specified protocol over all or the specified COM port searching for an answer. That's what I'm trying to do, answering iGo with something it interpretes as a adecuate answer. This will give us the start point for a full comunication.

Unfortunately I don't have a Amaryllo receiver, so I have to wonder what it should answer to iGo :(
[Windows Mobile Software Development] flywhc:
stepan1117, thank for your support. I searched forum and couldn't find your id so I had to write your name on the first page on that day.

Now I almost have a complete solution of FM radio for HTC devices.

Going forward I am going to give all new donations to other contributors of TMC system for their efforts to provide a free TMC navigation system, unless specify donation just for xFMRadio player/API.

IBX1, thanks for your testing.

I haven't set RSSI Search Level so it is set to most sensitive mode.

I am living in a poor reception area. can listen to some radio station with RSSI10 even 8. occasionally have RDS data. In this case I can see distinct advantage of raw RDS parser:

the latest xFMRadio displays station name and radio text in a short time while the build-in parser cannot give any station name or radio text. I guess the build-in parser discards recoverable error RDS data.

AF list is still using build-in parser so it loses data even with wrong data.

I have set AF to on but haven't set RSSI search level so automatically frequency change is not working.

I will add a set search rssi menu for this testing.

sorry for that UI is not friendly at all. I can do something easy to allow return previous frequency.
[Windows Mobile Software Development] flywhc:
I have to use both of them.

if only call WaveOutSetVolume, I can get same value WaveOutGetVolume but actual physical output doesn't change.
[Windows Mobile Software Development] dunkelfalke:
http://www.gpspassion.com/FORUMSEN/topic.asp?TOPIC_ID=17275&whichpage=2

here the royaltek protocol is described, maybe it would be a little clearer than opentmc.

maybe i even could help with it a little bit, but currently my royaltek gps/tmc receiver is dead and has to be replaced under warranty. this will take a while.
[Windows Mobile Software Development] flywhc:
See here, "Free RDS TMC on your mobile with GNS TrafficBoxPlus"

http://www.treoprotricks.com/post/2...C-on-your-mobile-with-GNS-TrafficBoxPlus.aspx

"GNS reports compatibility with the following navigation software (satnav): ALK CoPilot 7.0, NAVIGON PDA version MN6 & MN7, DESTINATOR Destinator6, Destinator PN, i-GO 8."

if one TMC receiver works with so many different navigation system, there is must be a common way, at least simulate that receiver.

For TOMTOM, if we can write a proxy server such as sock4/5, and use it as network sniffer. we can record and analysis TOMTOM traffic service data. and then make that proxy server behave like a tomtom traffic server. If the connection is encrypted such as SSL, we will have to crack into binary to get data and inject TMC data into a hacked tomtom.
[Windows Mobile Software Development] dunkelfalke:
the problem with the gns protocol is that it is closed, patented and so on.
[Windows Mobile Software Development] flywhc:
They are doing same thing as us for Samsung i9x0 Omnia and got something working for Italy iGo!

http://www.modaco.com/content-page/273982/tmc/page/140/
[Windows Mobile Software Development] Toggs:
Volume!

Sounds really interesting.

Any possibility of increasing the volume of the FM radio in this app - the standard radio is very quiet?

Thanks

Toggs
[Windows Mobile Software Development] 4irm:
that's true, it has never really worked. I just tried to force iGO8 to detect my touch HD radio by editing the sys.txt.

[tmc]

saved_config_available="1"

saved_config_classname="RDS_GPSTMC_SILICONLAB"

saved_config_portname="COM"

saved_config_port="3"

saved_last_tuning_mode="0

regards
[Windows Mobile Software Development] leaskovski:
Dang! Why is it that nothing is easy.

This is a very interesting thread indead, and as some people have said, it might be an idea to go down the openTMC route be it as GNS is going to be freeking hard to reverse engineer and very time consuming.

So what is the deal with TMC over RDS in the UK then? I know it is broadcasted over the Classic FM frequencies, but do they encyrpt it then so that we cannot use the data? How does a TMC antenna/bluetooth TMC receiver work in the UK then?
[Windows Mobile Software Development] kolomparrudi:
What happens if you set:

[tmc]

port="COM,3"

source="opentmc2"

gps_source=0
[Windows Mobile Software Development] flywhc:
The current version (0.3) of xFMRadio initialize the FM radio to maximum volume.

If it is still too quiet, it should be problem of your ROM.

What version of ROM are you using?

I had same problem before but it becomes quite loud since changed my TP to the latest energyROM2.0. I guess it is related to audiopara3.csv (search in the forum)
[Windows Mobile Software Development] pelroig:
progress on TMC in navigation?

Hey guys,

I've been watching this thread for a while now and many good initiatives are running. What I miss is an overview and progress of this wunderfull solution.

Highlevel solution to provide TMC within iGO8 navigation

iGO8 (OpenTMC) -> Virtual com (2) -> FMRadioAPI wrapper (1) -> RDS/Radio Chip

(1) flywhc delivered the wrapper to control RDS/Radio chipset

(2) beemerTPPC says he has virtual comm driver ready.

(3) kolomparrudi is working on an application that decodes TMC, AF, PS and RT messages.

What is the status on (2) and (3) and how does this fit in the solution?

Will the code of (3) be included in (2)? Or is that a seperate delivery?

Can we contact the OmniaTMC project mentioned by flywhc to discover how the interface between iGO8 and the virtual driver operates?

(Could not wait-> pm'ed to BeamRider @MoDaCo to help us out)

Thanks guys for the hard work!

Cheers,

PelRoig
[Windows Mobile Software Development] kolomparrudi:
Status

I managed to decode AF, PS and RT and decode TMC (display location, event, direction and extent). I can publish this application, but for the OpenTMC driver it's not necessary, because we only have to send raw RDS data in openTMC commands.
[Windows Mobile Software Development] beemerTPPC:
I've sent all king of answer to iGo but it only retries one and other time :(

I plan to try GNS ;)
[Windows Mobile Software Development] leaskovski:
Eh? I am even more confused now...

In theory this should wok in the UK so long as you can tune into either the traffic master or itis signals?

Sorry for side tracking a bit.
[Windows Mobile Software Development] BeamRider:
Hi everybody,

I am the developer of OmniaTMC (thaks pelroig to bring this thread to my attention). I managed to have my virtual GPS/TMC unit to be detected and used by iGO using Royaltek protocol.

I partially succeded with GNS (but I found Royaltek much easier to look at) and experiencing the same problem you are experiencing with OpenTMC.

Regarding $PSRF104,... sentence is a NMEA standard sentence that initialise the navigation, you can find the description here

I strongly suggest you to begin implementing Royaltek (I had some very long nights trying to say hello using OpenTMC, still no luck) while, if you are interested in, we can join our efforts with OpenTMC.
[Windows Mobile Software Development] flywhc:
Thanks a lot BeamRider!

Your suggestion unblock our work we don't have to reinvent wheel.

I am so excited to see all most popular wm devices in the market will support TMC.

May I ask you what frequency search strategy did you used?

seek for a channel, wait N second for RDS-TMC, and search again? what is N?

Did you used AF and EON?

beemerTPPC, what can I do to help you? such as searching algorithm etc?

I am witting AF parsing. There is 2 AF mode. Mode B is a little bit complicated but I can ignore the difference initially.
[Windows Mobile Software Development] pelroig:
Thanks BeamRider for your interest and advice!

@BeemerTPPC is Royaltek feasible for you to implement in your virtual comm driver?

Do you need more info or help on that from others?

Can't wait to do my first test drive :)
[Windows Mobile Software Development] Kovacs Bela:
Hi all,

kolomparrudi already trying to implement OpenTMC connection with iGO.

I also try to help in this process.

Regards
[Windows Mobile Software Development] flywhc:
RoyalTek Binary Protocol SDK ?
[Windows Mobile Software Development] BeamRider:
FM and RDS search modes are implemented using builtin chip functions (that seeks for FM carrier and reports if RDS is available). For TMC I wait 3-5 seconds if last state was TMC_WAIT (so never received a TMC group) or 20-30s if state was TMC_LOCKED (if a group has been received and I lost signal).

iGO don't use TMC search mode beacuse has its own implementation and initiates a new seek if signal is lost so don't put much effort in implementing logic, it won't be used atm.

I'm not using AF/EON data but I have it on my schedule ... again it is not really necessary because TMC data refresh is so slow that a band scan is not a problem. iGO automatically issues seek commands on signal loss so it will simply broke any AF/EON strategy.

Regarding Royaltek I have all what is needed to make it work, there are still some blind spots, but iGo appears to be not interested in looking them.
[Windows Mobile Software Development] beemerTPPC:
Great! Starting to study it.

Thanks Beamrider for the advices ;)
[Windows Mobile Software Development] IBX1:
@flywhc

Mute and setvolume does not work as expected (as I expect?). They both influence my whole X1. When I press mute or set the volume to 0, I can't hear the navigation software anymore.

@beemerTPPC

For the people interested more in the TMC solution, this solution must have a button to switch from headset to internal speaker (default setting?)

@flywhc

Version 0.4 in sight? Waiting for testing it.

@everybody

Does anybody have an idea how to connect a X1 (and other of course) to the car antenna?

IBX1
[Windows Mobile Software Development] beemerTPPC:
I'm reading all the documentation and will see how to include this on the driver. I don't know if the navigation program manages the frecuencies like on openTMC or it is a job of the receiver...
[Windows Mobile Software Development] beemerTPPC:
No, when the solution uses the FM radio to search for TMC the radio itself will not be usable for listening. You don't want to heat only one specific station decided by the navigation program! And the headset will be mandatory for use as antenna.

But you can find cheap solutions in ebay that allows connecting a headset and power or a computer at the same time.

Well, the specifications for Royaltek are useless. They are designed for doing a navigation program compatible with royaltek, not the royaltek receiver, and say nothing about TMC.

Acepting the advice from Beamrider of forgetting openTMC, the way goes by using GNS or Royaltek that seems to be the easier protocols (and broaded adopted) and can be mixed if necessary with GPS NMEA sentences.

The best source of information I've found came from Jose Ramon and the link have posted in this thread: http://www.gpspassion.com/FORUMSEN/topic.asp?TOPIC_ID=17275&whichpage=2

My plan is the same I had with openTMC but with GNS or Royaltek: A driver with a fixed frequency for testing. Once it works we can modify it for scanning.
[Windows Mobile Software Development] pelroig:
BeemerTPPC,

maybe we can ask BeamRider to share his code with you how to handle the iGO8 (Royaltek) -> VirtualComm driver interface.

I think he has got this working.

That way we can have a working solutions more quickly and then invest getting OpenTMC to work and improve the solution.

What do you think?

@BeamRider, would you like to share you code with BeemerTPPC?

Cheers,PelRoig
[Windows Mobile Software Development] pelroig:
---------------
[Windows Mobile Software Development] IBX1:
I don't want to listen to the TMC station the whole time, that's right. But with my X1 as soon as you plugin the headset as antenna, it switches from internal speaker to headset. You will get the navigation software on the headset and not on the speaker!

The X1 has not dedicated power plug, it uses the USB mini (USB on the go) for charging.

When the xFMRadio needs to be running for the TMC solution, flywhc has to take care of this problem (and the mute and setvolume).

IBX1
[Windows Mobile Software Development] johnpatcher:
Thats right, actually we want to hear any instruction of the navigation software through the device itself, not throug a headset, which must be plugged in in order to get tmc information.
[Windows Mobile Software Development] BeamRider:
You can also find a good Royaltek post on GpsPassion forum on this thread:

http://www.gpspassion.com/forumsen/topic.asp?TOPIC_ID=17275&whichpage=2

Go to second page a look at phmartin's post where he describes the Royaltek protocol ;) I used his findings to implement my TMCSerial.dll

There is also a good startup on GNS
[Windows Mobile Software Development] torpie13:
The Cab !!!

Ok here's a cab file I've made to ease the XFMRadio 0.4 setup (and it creates a program shortcut)

Keep it up team !!!

Cheers
[Windows Mobile Software Development] leaskovski:
In theory, you could get around this if you have a bluetooth handsfee kit in the car. You could switch on constant streaming of the sound out to the bluetooth device and thus still have a headphone plugged in.

How does the arial work on these modified usb connections? As one of the edges is square, is this where the audio and arial connects to the device and thus why a normal usb power supply does not act as an arial?
[Windows Mobile Software Development] SaBo:
Because all cables inside are shielded (against electro-magnetic radiation/influences)

Sascha
[Windows Mobile Software Development] akp99:
Could you use something like this - all seem to use mini USB ports and allow pass-through for power cable.