• Announcements

    • Reminder - MoDaCo position on illegal content   07/30/15

      ILLEGAL CONTENT I'd like to just reaffirm MoDaCo's position regarding piracy and illegal content in the light of some recent questions / postings. Posts will be censored by myself or my moderation team if the contain or link to: Illegal / pirated / cracked software or sites that host such softwareNintendo emulators / ROMs or sites hosting them (in light of Nintendo's legal stance)CUSTOM ROMS You may discuss and post links to custom device ROMs on MoDaCo, provided the following rules are adhered to: ROMs must not contain any illegal 3rd party software (this includes trial versions included without permission)ROMs must give full credit to the original authorISSUES If you have any issues with this policy, please contact PaulOBrien directly via PM.
    • Reminder: Selling items on the forum directly is not allowed   07/30/15

      Please note that selling items on the forum directly is not allowed by the forum rules. There is a forum for eBay auctions whereby you can list the items on eBay and link to them there. This is the ONLY forum for this type of activity. You may also advertise links to the eBay forum in your signature. Please note that selling directly in contravention of these rules will result in a warning / suspension / ban.

TMC

156 posts in this topic

Posted

Hey there....

How the progress on the TMC driver....I hope that you can achieve on what you doing...

I would definitely by you a drink later..

Talking about drink...I need to do it for someone on this forum!

0

Share this post


Link to post
Share on other sites

Posted

My plan is to implement a multiple group buffering with update counter (that is parrtially implemented in the original driver), but first of all I need to get the driver up and running again.

Next attempt is to recomplile the unmodified version then binary compare with the original dll, maybe i missed something there.

I hope it is just a trivial bug...

For the moment I have not found any useful doc/source code related to FM receiver from the development point of view.

Concerning the whole project, are you still wanting to implement the Royaltek interface, or I have not well understood what you are doing? Maybe you don't need to touch the FM driver.

Now, with your explanations, and if you want to implement this Royaltek protocol, it is maybe possible to create a software (a kind of GPSGate but in the case of TMC), use the FM driver as FM radio does, just taking the RDS group that concerns TMC if it must be done (I don't know if this filter is implemented at this level or if it is at the application level that the filter is needed) and the implementation of the Royaltek protocol itself.

I don't have enough information to know if what I said is feasible or not.

0

Share this post


Link to post
Share on other sites

Posted

Right, you are vey close to the point ... implementing a virtual com port like GPS gate or them mux GPS com port given with WM is very easy. If you google around you'll easily find ready to use code, but to make it operate RDS data coming from FM tuner is mandatory.

Unless I missed something very big, original driver does not leave access to its RDS data buffers, that's why I'm wrapping it. The driver processes RDS data to extract what the tuner software needs to operate (basically station name/ID and AF list), puts this data into registry (!!!) and that's all. Once I have a function that returns raw RDS data, I could easly write I very simple virtual COM driver that can emulate GNS and Royaltek (add what you like B) ) devices.

Secondary objective is to remove the check for the hearphone cable inside the driver, this will not make tuner work without an antenna but opens the possibility to plug an home made antenna (ie something embedded in the charging cable) leaving the audio path as is.

I'm sure that is a trivial bug or just a wrong toolchain configuration ... but I have no indicators on where the problems is and I need to try and check every possibility that comes up. Now it's time to go back to VS B)

0

Share this post


Link to post
Share on other sites

Posted

BINGO!!! I found the problem ... it was due to a regular expression i used to convert ASM syntax!! One line out of 11000!!

The NEW driver is now working with original software, logging operations and givings RDS buffers to a test application I wrote in about 5 minutes B) I think that's enough for today, I'm excited to see the code working but I'm a little bit tired and bed is calling B)

A little bonus ... the log of the radio driver operations:

FM Radio - resource	allocation, success

FM Radio - InitializeFMRadioThread,	success

FM Radio - Init, done v001J1 

FM Radio - Open, hDeviceContext[0x00000001] hOpenContext[0x00032F80]

FM Radio - IOControl, hOpenContext[0x00032F80] dwCode[0x00321000]

FM Radio - Open, hDeviceContext[0x00000001] hOpenContext[0x000335D0]

FM Radio - Close, hOpenContext[0x000335D0]

FM Radio - si470x_tune, intr failed

FM Radio - Open, hDeviceContext[0x00000001] hOpenContext[0x00825230]

FM Radio - Open, hDeviceContext[0x00000001] hOpenContext[0x00054100]

FM Radio - IOControl, hOpenContext[0x00054100] dwCode[0x00220004]

FM Radio - IOCTL_FMRADIO_TURN_ON, region[1]

FM Radio - EnableFMRadioChipInterface success

FM Radio - addr[0x00] data[0x1242]

FM Radio - addr[0x01] data[0x1200]

FM Radio - addr[0x07] data[0x0100]

FM Radio - si470x_reg_read fail reset, addr[0x120E40E1]

FM Radio - addr[0x00] data[0x1242]

FM Radio - addr[0x01] data[0x1253]

FM Radio - addr[0x07] data[0x3C04]

FM Radio - si470x_InterruptThread start

FM Radio - si470x_reg_write	fail reset, addr[0x00]

FM Radio - si470x_deinitRdsVars, success

FM Radio - si470x_trackRdsAfList Freq[1] Rssi[1296]

FM Radio - addr[0x02] data[0x0801]

FM Radio - addr[0x04] data[0xD814]

FM Radio - addr[0x05] data[0x0510]

FM Radio - addr[0x06] data[0x0012]

FM Radio - si470x_trackRdsAfList afList[FM Radio - si470x_seek, intr failed

FM Radio - si470x_initRdsVars, success

FM Radio - addr[0x06] data[0x0112]

FM Radio - si470x_powerdown, ENABLE	bit not	cleared

FM Radio - si470x_powerdown, Firmware Rev[1]

DrvLib : SendMessageToAudio	- NumDevs[2]

DrvLib : SendMessageToAudio	- Index[0] Pname[Audio Output]

DrvLib : SendMessageToAudio	- Send Msg[1037] Param[0x00000000:0x00000000]

FM Radio - set volume[0x00], done

FM Radio - turn on,	done

FM Radio - IOControl, hOpenContext[0x00054100] dwCode[0x0022002C]

FM Radio - IOCTL_FMRADIO_ENABLE_STEREO

FM Radio - si470x_configure, done

FM Radio - IOControl, hOpenContext[0x00054100] dwCode[0x00220030]

FM Radio - IOCTL_FMRADIO_ENABLE_AF

FM Radio - IOControl, hOpenContext[0x00054100] dwCode[0x00220028]

FM Radio - IOCTL_FMRADIO_FORCE_SPEAKER

DrvLib : SendMessageToAudio	- NumDevs[2]

DrvLib : SendMessageToAudio	- Index[0] Pname[Audio Output]

DrvLib : SendMessageToAudio	- Send Msg[1037] Param[0x00000000:0x00000000]

FM Radio - IOControl, hOpenContext[0x00054100] dwCode[0x0022000C]

FM Radio - IOCTL_FMRADIO_TUNE_TO

FM Radio - addr[0x0B] data[0x0075]

FM Radio - si470x_regional_cfg[9920],	done

DrvLib : SendMessageToAudio	- NumDevs[2]

DrvLib : SendMessageToAudio	- Index[0] Pname[Audio Output]

DrvLib : SendMessageToAudio	- Send Msg[1037] Param[0x00000000:0x00000000]

FM Radio - tune to [9920], done

FM Radio - IOControl, hOpenContext[0x00054100] dwCode[0x00220020]

FM Radio - IOCTL_FMRADIO_SET_VOLUME

FM Radio - addr[0x06] data[0x0112]

FM Radio - si470x_powerdown, ENABLE	bit not	cleared

DrvLib : SendMessageToAudio	- NumDevs[2]

DrvLib : SendMessageToAudio	- Index[0] Pname[Audio Output]

DrvLib : SendMessageToAudio	- Send Msg[1037] Param[0x00000000:0x00000000]

FM Radio - set volume[0x08], done

FM Radio - si470x_seek, intr failed

FM Radio - update_clock[22:34 0_54788 2]

FM Radio - update_clock[22:34 0_54788 2]

FM Radio - update_clock[22:34 0_54788 2]

FM Radio - update_clock[22:34 0_54788 2]

FM Radio - update_clock[22:34 0_54788 2]

FM Radio - update_clock[22:34 0_54788 2]

FM Radio - IOControl, hOpenContext[0x00054100] dwCode[0x00220028]

FM Radio - IOCTL_FMRADIO_FORCE_SPEAKER

DrvLib : SendMessageToAudio	- NumDevs[2]

DrvLib : SendMessageToAudio	- Index[0] Pname[Audio Output]

DrvLib : SendMessageToAudio	- Send Msg[1037] Param[0x00000000:0x00000000]

FM Radio - update_clock[22:34 0_54788 2]

FM Radio - update_clock[22:34 0_54788 2]

FM Radio - IOControl, hOpenContext[0x00054100] dwCode[0x0022000C]

FM Radio - IOCTL_FMRADIO_TUNE_TO

FM Radio - si470x_seek, STC	bit not	cleared

FM Radio - addr[0x0B] data[0x0075]

FM Radio - si470x_regional_cfg[9920],	done

FM Radio - tune to [9920], done

FM Radio - si470x_seek, intr failed

FM Radio - update_clock[22:34 0_54788 2]

FM Radio - update_clock[22:34 0_54788 2]

FM Radio - update_clock[22:34 0_54788 2]

FM Radio - update_clock[22:34 0_54788 2]

FM Radio - update_clock[22:34 0_54788 2]

...

As you can see, sometimes the intr is still failing, I think it's physiological because the behaviour is the same as before! Maybe logging is interfering with interrupt handling, but I don't care because I will disable logs ASAP.

0

Share this post


Link to post
Share on other sites

Posted

You are amazing!

0

Share this post


Link to post
Share on other sites

Posted

Man you are really great!!!

B)

0

Share this post


Link to post
Share on other sites

Posted

For your previous post, I fully understand now why you need to modify the driver. Obviously, you are right. I wonder how much time have you taken to discover that RDS data is not sent as raw data outside the driver!

BINGO!!! I found the problem ... it was due to a regular expression i used to convert ASM syntax!! One line out of 11000!!

You see? a trivial bug B)

Anyway, congratulations! you have performed a good work of investigation (or should I say "hacking"?). I must also thank you for the explanations you gave me about WM programming and in general about your project.

0

Share this post


Link to post
Share on other sites

Posted

For your previous post, I fully understand now why you need to modify the driver. Obviously, you are right. I wonder how much time have you taken to discover that RDS data is not sent as raw data outside the driver!

It's more using the right tool ... at the right time B) Before starting this project I known nothing about ARM assembler (but I know x86 and some others micros) and nothing about WM kernel. It's fun and easy to learn (to the extent I need) thanks to people sharing knowledge, ideas, opinions and sample code. You see, sharing knowledge always pay back: I solved the issue!

Anyway, congratulations! you have performed a good work of investigation (or should I say "hacking"?). I must also thank you for the explanations you gave me about WM programming and in general about your project.

It's only reverse-engineering, I think that the real meaning of hacking is more related to break/bypass something made to not be broken and I do not pretend to be an hacker.

Thank you all for the support, but it's not yet time to party ... at least until we see TMC working with TT/iGo!

0

Share this post


Link to post
Share on other sites

Posted

That is really great work !

... and I do not pretend to be an hacker.

IMHO what you did is hacking into that driver B)

0

Share this post


Link to post
Share on other sites

Posted

How's this coming on?

0

Share this post


Link to post
Share on other sites

Posted

Hello BeamRider!

How you are doing? Everything well? B)

0

Share this post


Link to post
Share on other sites

Posted

Yes, pretty well .. I'm changing house and not so much time to code. Sorry for not answering. Hope to work this night to some improvement I have in mind.

0

Share this post


Link to post
Share on other sites

Posted

Yes, pretty well .. I'm changing house and not so much time to code. Sorry for not answering. Hope to work this night to some improvement I have in mind.

He BeamRider,

I wish you all the luck... B)

0

Share this post


Link to post
Share on other sites

Posted

Yes, pretty well .. I'm changing house and not so much time to code. Sorry for not answering. Hope to work this night to some improvement I have in mind.

BeamRider, I was wondering how your tmc project is going.

0

Share this post


Link to post
Share on other sites

Posted

me too B)

I'm eager to try it out B)

0

Share this post


Link to post
Share on other sites

Posted (edited)

Hey Beamrider, how's the housemoving going?

You had any chance to pick up some spare time to work on this tmc thingy?

Edited by Imationation
0

Share this post


Link to post
Share on other sites

Posted

heh I also stumbled upon this project, was already initially thinking why the Omnia would support RDS, but have an intrinsic non-support for TMC. Finding this thread has increased my suspicion that this one day will be possible on the Omnia. I'll be keeping an eye on this thread, I'm loving the tech progress so far already! B)

0

Share this post


Link to post
Share on other sites

Posted

Hi BeamRider,

I think I'm checking this forum twice daily! I haven't been as excited about the possibility of a piece of work for ages.

So, no news for a while. Can you just drop a line to let us know where you are with this?

I realise that we're mostly expecting you to do the work (except a few - thanks balles!), so it must seem like we're pushing very hard, but for me, it's only because you seem so close, and the benefit will be big.

Cheers for you work so far!

Paul

0

Share this post


Link to post
Share on other sites

Posted

Hi,

any news about the driver?

0

Share this post


Link to post
Share on other sites

Posted (edited)

1st Happy New Year! @all

Are there any news about the tmc drivers for omnia?

It is a shame that there are no original drivers from samsung. And that I think it is great that somebody uses his sparetime to solve the problem.

So BeamRider if you could send us a sign of life or tell us how your project is going - would be cool!

Best Regards

qwertz

PS: As you might have noticed I am not a native speaker:-) Sorry for my bad English

Edited by qwertztmc
0

Share this post


Link to post
Share on other sites

Posted

Any news on the TMC project?

0

Share this post


Link to post
Share on other sites

Posted

This is a fantastic project, please can we have some info on ur progress.

keep up the good work Beamrider

0

Share this post


Link to post
Share on other sites

Posted (edited)

Referring back to post 5 on page 1.

I read somewhere that TMC DOES work on the Omnia using iGo 8.0.5400 version only.

This is what the guy said in various posts

- Samsung Omnia uses the SiliconLab TMC. (yes, iGo does detect this chip)

- TMC works good on my Omnia with iGO8.0.5400 (in later iGo versions this detection is removed).

- TMC service must be available in your country, then you can automatically tune radio stations frequencies that have this kind of transmission.

So question being reasked - can some one here who has free TMC service in their country (a few West Euro countries do), please test this and confirm one way or other ? I can make available a working evaluation copy of the iGo version for test purposes.

I know what BeamRider has said about this but since someone say he has it working maybe it should be checked out. My country does not have such service otherwise would have done it myself.

Thanks

Edited by bobobird
0

Share this post


Link to post
Share on other sites

Posted

Referring back to post 5 on page 1.

I read somewhere that TMC DOES work on the Omnia using iGo 8.0.5400 version only.

This is what the guy said in various posts

- Samsung Omnia uses the SiliconLab TMC. (yes, iGo does detect this chip)

- TMC works good on my Omnia with iGO8.0.5400 (in later iGo versions this detection is removed).

- TMC service must be available in your country, then you can automatically tune radio stations frequencies that have this kind of transmission.

So question being reasked - can some one here who has free TMC service in their country (a few West Euro countries do), please test this and confirm one way or other ? I can make available a working evaluation copy of the iGo version for test purposes.

Thanks

In theory my iGO has TMC licence, it does detect the TMC receiver (don't know which version, because I have updated it via naviextras, but it's still the 8.0.x branch), but it stays at 0Mhz, and it can't be changed although there is free TMC service in my country.

0

Share this post


Link to post
Share on other sites

Posted

Referring back to post 5 on page 1.

I read somewhere that TMC DOES work on the Omnia using iGo 8.0.5400 version only.

This is what the guy said in various posts

- Samsung Omnia uses the SiliconLab TMC. (yes, iGo does detect this chip)

- TMC works good on my Omnia with iGO8.0.5400 (in later iGo versions this detection is removed).

- TMC service must be available in your country, then you can automatically tune radio stations frequencies that have this kind of transmission.

So question being reasked - can some one here who has free TMC service in their country (a few West Euro countries do), please test this and confirm one way or other ? I can make available a working evaluation copy of the iGo version for test purposes.

Thanks

Yes Please

0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

MoDaCo is part of the MoDaCo.network, © Paul O'Brien 2002-2015. MoDaCo uses IntelliTxt technology.