yashsingh1/xdaforums huggingface dataset:
[Windows Mobile Software Development] beemerTPPC:
I think we have to stop and organize for a sucessfull TMC project. Please flywhc, tell me if I'm wromg tottaly or partially in this post.

-Thanks to flywhc we have access to the raw rds data.

-Several users have talked abaout open-tmc, or that they are writing a raw tmc parser.

What we need:

-A small test program that searches the band for any broadcast with TMC output or read a registry value (initially in devlopment stage) with a station PI that broadcast TMC in our country.

-Once decided the program it should monitor it for several functions:

-This program should be capable of reading the AF RDS data to make frequency switches when roaming.

-It will give the raw rds data to a TMC parser that converts it to a Navigation program readable format.

-Then these data will be shown on screen or logged for testing porpouses.

Once done and tested by several users we can convert it easily to a serial port virtual driver to make the data available to the navigation software (igo, etc.)

The last part (driver) is easy for me and think on it as done. But I want to help also with something more. Please tell us briefly and precissely what do you are doing and how you can add your job to the project. Any of us that want to do so can also became the leader of the project and organize it.

My part:

As I've said I can program any part of the prject in C. Let me do the driver itself. I can also study the tmc protocol to help to however needs it but I think here are many users that are miles away from me on this. But I can study hard !

Related indirectly:

I started a project for accelerometer GPS support when in bad GPS coverage areas. Unfortunately I discovered that or my maths are two bad when trying to configure a good kalman filter or it is simply impossible to do so with only an acelerometer. But if someone wants to help me, I will be glad to share the code ;)
[Windows Mobile Software Development] flywhc:
FM Radio module is part of bluetooth chipset.

Did you mean CDMA touch pro uses different bluetooth chipset?

I am writing a raw RDS parser. Although it hasn't been finished, it is able to provide TMC data as well as PI, RT, AF, TA, TP etc. although they are still encoded. see attached zip file. It should unblock any TMC works.

I guess the build-in chipset supports auto AF otherwise it won't have that AF Jump event. If set a FM_RssiSearchLevel this feature may work. I hope somebody can test this feature.

What I can get TMC from raw RDS data now has 3 parts:

(Block2 & 0x1f) 9 bits, with Block3 (16 bits) and Block4 (16 bits)

It can be called as "raw TMC". I don't know what the format is and how to process this data in order to pass into navigation software.

I got TMC data from London Heart station. also I received clock, radio paging, program type text etc.

btw: I traveled during Easter holiday and found large areas in the UK have no FM radio signal at all, even on M25. And in the city many place has very a few stations and signal was very poor. Can't imagine how to use it for navigation.
[Windows Mobile Software Development] iseeka:
In spain we have a quite good free tmc coverage on RNE3

AID:	CD46 (Alert-C)

LTN:	17 (E17 – Versión 1.6 )

SID:	1

AFI:	1

M:	0

Proveedor:	DGT-SCT

Modo:	Multigrupo (Label 2)

Redundancia:	2

Tasa (8A):	2,4 grupos/seg.

Tasa* (3A):	1 grupo/seg. (Variantes 0 y 1)

* Notificación ‘AID-Error’ (ODA-Group type RDS EN 50067)
[Windows Mobile Software Development] iseeka:
maybe this helps

On 29th March 2006, the new TMC table of Spain, 2.1 version, has passed the verification trial by the TMC forum. In order to get a copy of the 2.1 version, we will be grateful if you request it by letter stating the use you will make of it and reason for it; besides setting forth the Commitment of communicating the realisation of applications and products, mentioned in the above paragraph, to the Traffic General Directorate at this postal address C/ Josefa Valcárcel, 28 28027 Madrid (Spain). In order to speed up procedures, you might send an electronic copy to alberto@dgt.es with the following form filled:

http://aplicaciones.dgt.es/dgt_informa/investigaciones/TERMS_OF_USE_TMC_SPANISH_CODES.pdf

i can ask for it
[Windows Mobile Software Development] easyriider:
On a Touch HD I got a maximum RSSI of 41 inside the house with the headset attached to the 3.5mm jack, so the usb is free to use it with a charger.

It could be possible to make a sort of antenna with a 3,5mm plug when using it for TMC in a car.
[Windows Mobile Software Development] beemerTPPC:
I'm a little lost.

I've readed the thread two times, all the links on it and the Open TMC documentation as long as many other TMV documentation, but...

Still don't know what a navigation program wants to receive, All the rds data? TMC data filtered from the RDS flow? and in what format does the program wants that data?

I'm installing igo8 because I think TTN7 for PDA don't support TMC, but not sure. I'll try to inject all the rds data to the program and see what happens.
[Windows Mobile Software Development] flywhc:
Kovacs Bela wrote he knew...

Also I guess that igo or other navigation software providers should be happy to provide help on this?

One possible way: if we can get an external TMC receiver and capture data stream by writting a virtual COM port, and compare data stream with TMC spec, we can find data format from it.

yes iseeka, please get related documents as many as possible.
[Windows Mobile Software Development] ArtaxXP:
you're right. TT7 does not support TMC. With IGO8 it should work.
[Windows Mobile Software Development] beemerTPPC:
Investigating I ve found that the tool we need is DecoGPS, but unfortunately the link to http://www.lacasadelgps.com/modules.php?name=Downloads&d_op=getit&lid=32 is not working.

Does anybody has the 2.6 spanish version?

This program decodes a rds flow from a com port and can be more useful than igo for development. It seems that it even can export the data in realtime for TomTom.
[Windows Mobile Software Development] mr.jaguar:
I do have 2.6 spanish decoRDS, here's a link

http://xda.stjohnsmail.com/www/?action=d&id=11640610474473550893732175136
[Windows Mobile Software Development] beemerTPPC:
Thanks! I've tried to find it in an alternate site for hours ;)
[Windows Mobile Software Development] dunkelfalke:
according to the documentation

The next output string is typical an Open TMC Raw RDS message.

$PLTTR,0,33735,1356,38294,26733*65

$PLTTR

RAW RDS Protocol header

Unsigned int

0

The number of faulty RDS packets in this group

Group A

Unsigned int

33735

RDS packet A raw data

Group B

Unsigned int

1356

RDS packet B raw data

Group C

Unsigned int

38294

RDS packet C raw data

Group D

Unsigned int

26733

RDS packet D raw data
[Windows Mobile Software Development] L_o_k_i:
@beemerTPPC

hello,

From what I've read DecoRDS send TMC as poi to tomtom, so tomtom can't use it to calculate alternative routes when there's traffic jams for instance...
[Windows Mobile Software Development] Homer-S:
hello guys,

I know nearly nothing about programing but I am really impressed about your work.

One short question. Is TMC with built in receiver already running for IGO8? Ok two questions. Is there a how-to-for-dummys like me :)

Thanks
[Windows Mobile Software Development] johnpatcher:
No, not yet, although they are working on it right now :p.
[Windows Mobile Software Development] flywhc:
The latest API wrapper has a bug that cannot remove bad data block when signal is poor.

I don't expect TMC working in the UK from a review thread:

http://www.tracyandmatt.co.uk/blogs/index.php/2007/11/23/tomtom_rds_tmc_addon_review

It is too bad. This country isn't like a member of EU.
[Windows Mobile Software Development] kolomparrudi:
TMC decoder

I'm working on an application what decodes TMC, AF, PS and RT messages.

When I finish, I'll publish it.
[Windows Mobile Software Development] akp99:
Not necessarily - issue appears to be with the Tomtom antenna/software as there is a user there with good reception on Garmin c550 with traffic.
[Windows Mobile Software Development] beemerTPPC:
@flywhc

I've written a small program for testing how to use your API and all works fine, I can receive RDS data, etc.

But I have a small issue with the cleanup. When calling

nRet = pFMSession->FM_Destroy(m_fmContext); // This is a blocking function

I always get a Unhandled exception:

Data Abort: Thread=847298a4 Proc=80458800 'RDSClient.exe'

AKY=00400001 PC=03f6c044(coredll.dll+0x00022044) RA=50616548(???+0x50616548) BVA=2e61005c FSR=00000005

Unhandled exception at 0x03f6c044 in RDSClient.exe: 0xC0000005: Access violation reading location 0x0061005c.

The thread 0x4e5263e has exited with code 0 (0x0).

Any idea?. If I remove this line all semms to work ok.
[Windows Mobile Software Development] flywhc:
My in-car sony RDS radio cannot get any FM station on M25 and even many places in London just like they wrote. Garmin can't do magic if there is no FM signal.
[Windows Mobile Software Development] flywhc:
No, I haven't seen this error.

did you call FM_Deinit before it? or called FM_Destroy twice?
[Windows Mobile Software Development] dunkelfalke:
well, you are welcome to visit germany for a weekend.

plenty of tmc here :D
[Windows Mobile Software Development] johnpatcher:
Would be just great ;).
[Windows Mobile Software Development] SaBo:
In the UK there is no free TMC available, only premium TMC UK-Traffic which is encrypted.

Sascha
[Windows Mobile Software Development] beemerTPPC:
No, I cal, the functions in the rder you say in your comments:

pFMSession->FM_Disable(m_fmContext);

pFMSession->FM_Destroy(m_fmContext); // This is a blocking function

pFMSession->FM_Deinit();

I'll continue trying, perhaps it have something to do with that I'm using WM5 SDK on this computer instead WM6 SDK.

I'll tell you how it goes.
[Windows Mobile Software Development] dunkelfalke:
so the opentmc data for that would be

1) $PLTTR,0,45569,1519,29004,18720*66

2) $PLTTR,0,45569,34274,57837,4147*67

i think so
[Windows Mobile Software Development] flywhc:
I hope I could. 4 days continual rains ruined my holiday in Germany a couple of years ago (it was in late May). I should plan for another holiday in Germany.

dunkelfalke thank for your donation by the way.

beemerTPPC, that is correct calling sequence.

kolomparrudi told me his test app works (with v0.1 on the first page, not version 0.2) and he didn't mention any error/crash.

try the old version?

FM events callback function is called in another thread so might be a synchronization problem?

try to add a Sleep(100) ?

I am using vs2008.net+wm6sdk but I don't think it is relevant.
[Windows Mobile Software Development] beemerTPPC:
I'll try with the first version (currently I'm using the second api version), but this is something that could be solved in future test.

I've just finished a virtual COM driver that when is opened it start the FM radio directly on Spanish RN3, Madrid Frequency and exposes all the RDS raw data on COM6:

Now I'm trying to make decords work (i've a stupid .CETcf problem) and also getting iGO8 for testing it.

If it works, I'll do a more generic version and post it here.
[Windows Mobile Software Development] iseeka:
great work! genial!

Would´nt be easy to make a user channel select? for people outside madrid
[Windows Mobile Software Development] flywhc:
Fixed a major defect in the 0.2 API. Please update.
[Windows Mobile Software Development] kolomparrudi:
Multi gruop TMC

I don't have any problems with the FmRadioAPI (I'm using the version 0.1)

flywhc:

Are there any event handler for frequency change? I'm trying to display the current frequency during scanning. I tried OnFMRadioTuned but no luck. OnFMRadioPSChanged does the job, but only when receives RDS.

OpenTMC experts:

How can I represent a Multi-group TMC message in opentmc?

Usually a TMC events are transmitted in 2 frame. The first frame contains the event code and the location code and the second frame can contain additional information e.g. speed limit, duration, etc.

The PLTTR is not a problem, but the PLTTM is much harder.
[Windows Mobile Software Development] flywhc:
HTC FM radio cannot display frequency during scanning so either my API.

You can get turned frequency when status changed to seek and tune with success code.

use FM_GetCurrentFreq function
[Windows Mobile Software Development] dunkelfalke:
i am not an expert, but as far as i understand:

$PLTTM,group, X,Y most significant byte, Y least significant byte, Z msb, Z lsb *hex checksum
[Windows Mobile Software Development] kolomparrudi:
I tried to use FM_GetCurrentFreq in a timer, but it returned constant 3.
[Windows Mobile Software Development] flywhc:
sorry I didn't try that get current freq function. maybe it is an asynchronized function invoke event handler.

post the function in my xFMRadio you can see how I did this:

int CDlgFMRadio::OnFMRadioStatus(const FMRadioAPI::TFMStatus & Status)
{
TCHAR buf[20];
if(Status.cchCmdType == 8) // get rssi
{
if(Status.dwValue!=m_nRSSI)
{
_stprintf(buf, L"RSSI%d", Status.dwValue);
::SetWindowText(m_hwndRSSI, buf);
m_nRSSI = Status.dwValue;
}
// do not log RSSI status because it checks RSSI frequently
return 0;
}

if(Status.cchCmdType > GetStringArraySize(FMRCmdList) ||
Status.cchStatus > GetStringArraySize(FMRStatusList))
{
LogEx(L"Invalid cmd: %d, status: %d, value: %d .\r\n", Status.cchCmdType,
Status.cchStatus, Status.dwValue);
}
else
{
LogEx(L"Status: cmd: %s, status: %s, value: %d .\r\n", FMRCmdList[Status.cchCmdType],
FMRStatusList[Status.cchStatus], Status.dwValue);
}
int nRet =0;
if(Status.cchCmdType ==0 && Status.cchStatus == 0) // power on
{
nRet = m_pFMAPI->FM_SetAudioPath(m_fmContext, 1);
LogEx(L"Run SetAutoPath=1 Ret: %d \r\n", nRet);
Sleep(100);
nRet = m_pFMAPI->FM_SetRDS(m_fmContext, 1);
LogEx(L"Run SetRDS=true Ret: %d \r\n", nRet);
Sleep(100);
nRet = m_pFMAPI->FM_SetAF(m_fmContext, 1);
LogEx(L"Run SetAF= true Ret: %d \r\n", nRet);
Sleep(100);
nRet = m_pFMAPI->FM_Seek(m_fmContext, 0, 1);
LogEx(L"Run FM_Seek forward Ret: %d \r\n", nRet);

}

if(Status.cchCmdType == 9 ||Status.cchCmdType == 7) // Seek or tune
{
OnFrequencyChanged(Status.dwValue);
}

return 0;
}
[Windows Mobile Software Development] SamsungGalaxySamsung:
Hallo guys,

does anyone have something to say about this above? or any experience with it?

Thank you very much.
[Windows Mobile Software Development] crazydogs:
pls tell me how I can have TMC with my Diamond and Navigon7 without BT TMC-Receiver. What do I need to do?
[Windows Mobile Software Development] mr.jaguar:
you typed this question, so you can write, so I must assume you CAN read.. please do so.. read the entire thread, not just jump in and start asking how you can do something that's currently under construction.
[Windows Mobile Software Development] johnpatcher:
What do you want to hear? TMC doesn't work yet, so it won't work with Route66 neither. If Route66 is able to retrieve such information via an Internet Connection it may work, but since I don't know Route66 I can't tell you.
[Windows Mobile Software Development] SamsungGalaxySamsung:
Ok, thank you very much for your reaction;)
[Windows Mobile Software Development] dunkelfalke:
tmc pro is encrypted. it is easier to pirate a route66 version supporting tmc pro than to encrypt it without knowing the keys.
[Windows Mobile Software Development] switchgott:
Bigg thanks for your realy hart work,

but tell me, how does it work in mda diamond from germany?

What can i do to hear somethink without headset and recieve RDS information?

THANKS!!!!
[Windows Mobile Software Development] beemerTPPC:
I have got to put all the rds raw data in a virtual port. If I connect with a terminal program to that virtual port I see the data from the rds reception OK.

Unfortunately If I connect to this virtual port from Decords it gives a NETcf error, and iG8 8 doesn't recognize the data, so I don't know if the data must be raw or not, but I think that it doesn't, because iGO has many options for protocols.

I'll try to ensure that the driver isn't losing any data and try again.
[Windows Mobile Software Development] johnpatcher:
I think iGO8 doesn't support raw rds data, but it must be prepared. The best option ist openTMC, but iGO8 supports a few other protocols.
[Windows Mobile Software Development] kolomparrudi:
iGO supports RAW RDS!

iGO supports Raw RDS in OpenTMC protocol, so we don't have to decode the RDS only convert it to opentmc format (convert the raw RDS to PLTTR commands). We have to implement the following functions to work with iGO:

-Search UP/Search Down

-Set/Get frequency

-RDS health get

-RDS data get

-Reset hardware

-Power On/Off

-RDS function ON/OFF

-Band select
[Windows Mobile Software Development] dyter:
Good work !

I am impatient to test it ...
[Windows Mobile Software Development] johnpatcher:
raw RDS is something different then openTMC, isn't it?
[Windows Mobile Software Development] kolomparrudi:
Different

Yes, It's different, but you can send raw RDS in opentmc. We have to send raw RDS events in opentmc format:

A raw RDS packet: B2 01 20 05 EF 21 1C CD 22 20 20 24

A raw RDS message in openTMC: PLTTR,0,45569,1519,7373,8224*checkword
[Windows Mobile Software Development] beemerTPPC:
Some sentences sent by iGO 8 to the serial port for detecting the TMC hardware.

$PSRF104,0,0,0,96000,237759,922,12,1*2B

$PLTCM,RST*3f

$PLTCM,V*3c

The first one doesn't seem to be a openTMC sentence, probably it is of another protocol, but the second and the third are defined in the Amarillo new implementation of openTMC, not in the 2.0-1.00 one. The 2.0-1.02 can be downloaded from here: http://www.opentmc.com/download/file.php?id=3&sid=f5743ac217ff8bf04b4d13913924e9eb

But you have to register and there is no usefull information. I've attached the file for your convenience.
[Windows Mobile Software Development] kolomparrudi:
NMEA

The $PSRF104 is an NMEA GPS command for LLANavigation Initialization.

The 96000 is the clock Offset of the GPSUnit, 237759 is the GPS time of week, etc..
[Windows Mobile Software Development] ijwtds:
No RDS data with O2 xda (HTC Diamond)

Hello,

I tried the latest XFMRadio.exe from the first post, but cannot confirm reception of any RDS data with the O2 XDA Diamond (O2 branded HTC Touch Diamond).

I used headphones and I can tune into several FM channels, with RSSI between 15 and 32, but i neither get the basic RDS information (station name, etc.) nor raw data (when I set verbosity level to 3). I live in Germany in an urban region - all channels have RDS information and several do offer free TMC data, too.

The OS is version 1.93.207.2 and is the latest from O2 Germany.

Is there anything I can check or do to help?

Yours,

Magnus
[Windows Mobile Software Development] dunkelfalke:
works for me (touch hd), and i am living in a german rural area with bad reception
[Windows Mobile Software Development] flywhc:
Do you have Rhodium VGA Port FMRadio.exe?

I can't find ported FMRadio.exe and FMS_API.DLL, FMS.DLL in the TP Energy ROM 2.0

If you have, can you send to me please?

Thanks

It seems working slightly different way from original TP version. I want to disassemble and see how it works.

with all those files may address no signal or no data problems on some devices.

also this version uses different way to control volume
[Windows Mobile Software Development] Jed Dignazio:
Please help us CDMA Touch Pro users out!!!! If there is any way to get the FM radio in the CDMA Touch Pro to work, I think the CDMA users would hail you king!!! So far all efforts to get the FM radio to work have failed.

Please take the time to check out this thread at PPCGEEKS geared to find a working solution to the CDMA Touch pro FM radio, any help would be greatly appreciated!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

CDMA FM Radio Thread at PPCgeeks: http://forum.ppcgeeks.com/showthread.php?t=49654
[Windows Mobile Software Development] flywhc:
jdignazio, that is a very good thread gave me a lot useful information.

I guess people in that thread have tried almost all possible ways.

I feel very sad for that.

In my FMRadio reverse engineering work I have two puzzles: what is the first parameter in the FM_Create function? How to control volume of the device/why FM_SetVolume doesn't work?

they are may related may not.

I guess TP FM radio has special mixer/audio line control. whatever I set volume, the system override it. I am looking for the latest version of FMRadio.exe and dlls. If you find those files in a OEM package (not in ROM), maybe works.

Maybe in CDMA TP the mixer disabled FM radio line. Check AudioPara3.csv file it has a couple of line with "FM". I guess it is related to initialize audio mixer for FM radio.

I don't have CDMA TP so I can't provide further advice.
[Windows Mobile Software Development] ijwtds:
Did you change any settings in XFMRadio.exe?

Perhaps the radio receiver chip in the Touch Diamond and Touch HD is different?
[Windows Mobile Software Development] beemerTPPC:
@flywhc,

Have you tried simply WaveOutGetNumDevs, try to find the FM mixer and WaveOutSetVolume? Why bother with the FM_SetVolume?
[Windows Mobile Software Development] torpie13:
Thanx

Hi,

Thanx for your hard work.

waiting for a good alternate FM Radio Player :)

Just a cup of tea for you this time: 83978051KX622204K

Keep it up man :)

Cheers
[Windows Mobile Software Development] ijwtds:
Update: With version 0.3 both RDS and TMC data reception works fine.
[Windows Mobile Software Development] Jose-Ramon:
Hello everyone.

I am here because beemerTPPC tells me you are trying to decode the RDS-TMC. For my work, I have over 10 years working with the RDS. The software 'DecoRDS' was my first development tool. When the company 'GNS' began marketing joint receptors (GPS + FM), I included the protocol of the GNS receiver into 'DecoRDS', and I put it available on the Internet. Later came other manufacturers as Royaltek, and I've been incorporating the protocols as far as I could. As the company 'GNS' was the first ... and patented the communications protocol, other manufacturers have used a different protocol. The main problem you are to making this work is that there is no standard, and manufacturers do not publish its protocols. If you want to do something, you first need to do is 'reverse engineering'.

Currently, there are different versions of the software 'DecoRDS', which includes the TMC location table of a country (Spain + Andorra, Germany, France, Holland, Belgium, Italy ...). This software is not used in navigation, is a tool for verifying systems with RDS. The 'DecoRDS' uses 'TomTom' map to display the event and the exact point TMC at which the data are encoded. This information can be used to check the tables of locations, the operation of the TMC server ... and any navigation system with TMC.
[Windows Mobile Software Development] SaBo:
Welcome Jose-Ramon

It's people of your kind who make this site what it is and all valuable input is more than welcome.

It would be great if the included FM radio could be used for TMC in the future.

Sascha
[Windows Mobile Software Development] flywhc:
yes I tried but didn't work :(

there are two out devices. and I used WaveOutSetVolume(0, vol) or (1, vol)

HTC FMRadio doesn't call these functions. I guess it just notify the HTC volume control display a non-full screen view. but I don't know how to set the initial volume.

It is useful to use runtime debugging to compare with static disassemble analysis.

FMRadio.exe in the raphael OEM package doesn't work on my TP with energy2.0 rom.

I cannot set a breakpoint when FMRadio.exe is in ROM.

Thanks torpie13 and Stepan for donation.

Welcome Jose-Ramon! I am very glade to see a RDS-TMC specialist interested in this thread.

sounds like providing TMC data to navigation software is much harder than we thought.

reverse engineering is hard and slow.

I think the best way is cooperation with navigation software providers.
[Windows Mobile Software Development] johnpatcher:
@Jose-Ramon

People try to implement openTMC. As it is well defined, and iGO8 supports it, I think its the best way to go.

I don't think that there is anything we have to reverse engineer here, do we?