Jump to content

The MoDaCo Developer Challenge: Win an i-mate JAQ3!


Recommended Posts

Guest Paul (MVP)
Posted
post-1-1169067238_thumb.png

We've done Developer Challenges before on MoDaCo and they've always been a great success... so i'm proud to announce another one! This one raises the bar somewhat however :)

Introduction

For me, in the year 2007, 'context' is becoming more important than ever before. I want my device to know where I am and behave appropriately. As a developer, I want to be able to leverage basic location awareness without needing power-sucking addon (usually) GPS hardware or long fix times. Context can be about being at home / work, friends relatives houses etc... most importantly it doesn't have to be accurate to a few metres such as is necessary for navigation applications for example.

This desire performs the basis of this developer challenge!

What you need to do to win!

The challenge is as follows...
  • Create a component that can be used in a VB.net or C# (i.e. Compact Framework) managed application, to provide access to the Network Number / LAC / Cell ID / Signal Strength and such information from the radio layer of the device.
  • The component can be written in managed or native code.
  • The component must be FREE for anyone to use, and must be compatible with a wide range of existing devices. It must be designed in such a way it will be compatible with upcoming devices, or easily updated to add this facility.
  • Extra brownie points (and an extra prize TBD) will be awarded if the component is open source.

The Prizes

The prize pool is currently as follows:

- an i-mate JAQ3 Pocket PC device [details]
- a Bluetooth GPS
- a 1GB microSD
- a copy of MoDaCo CamerAware
- a lifetime subscription to MoDaCo Plus

Anything else?

That's probably all you need to know to get started! If you have any specific questions around the competition, please contact me by PM. I appreciate that this is a difficult competition, particularly the requirement to support a wide range of current and future devices - and I expect only a small number of entrants... but I think the rewards for the community as a whole are great. My decision as judge is final :D

I'm also keen to hear people's thoughts on the idea?

Get coding :D

Guest nickcornaglia
Posted

Just a question from a novice....

...is the CellID info located in different places on different phones? I remember CellTrack was compatible with HTC phones but not others because the CellID info was located in a different area of the phone....is that correct or close to correct?

If that is the case...forward compatibility may be a fuzzy area of the contest unless it is something that can be standardized.

Also...did I miss a review of the phone? How do you like it?

Guest Paul (MVP)
Posted

I haven't reviewed it... but I like it! It's definitely nicer than it's close relative the UBiQUiO 501, and really quite unique as a full time QWERTY 320x240 Pocket PC.

With regards to the information location... it really depends on how it's done! 'The CellTrack way' is one option, and is fine as long as there is a way for people to update when they get their new devices (i.e. finding the right spot in memory for the data, and telling the component where to go and look). There are other ways of interfacing with the RIL too I imagine...

IIRC there are a couple of applications that do something similar already?

P

Guest The Doctor
Posted (edited)
With regards to the information location... it really depends on how it's done! 'The CellTrack way' is one option, and is fine as long as there is a way for people to update when they get their new devices (i.e. finding the right spot in memory for the data, and telling the component where to go and look). There are other ways of interfacing with the RIL too I imagine...

This is very dependant on the radio version on the phone. For every radio upgrade, you'll need to update the application (well, almost) If you look at my Tornado celltrack thread HERE, you will see that Celltrack requires a different reg key for the imate/cingular/qtek radios to tell it where in the phones memory the CellID is stored. Each radio puts it in a unique memory address. You will get No Signal errors etc. when using a radio section that is not compatible..

If your on O2 UK however, you can use channel 200 to view a list of area codes in use in your area for landlines, dont know how helpful this is but hey, you may be able to use the combination of area codes to pin your location. I know it changes if you move around a town. Unfortuantely, o2 are the only network to offer this service (to my knowledge)

On the smartphone it's:

Start>Setting>Phone>Channels

Then do the following:

Tick enable channels and recieve channel list, then go to Menu>Edit Channels and then, Menu>Add, type in a description such as CellID and enter the channel number 200 in the appropriate box. It'll appear below the active profile box if you use the WM default homescreen but will disappear if you select it and press enter. . It'll reappear when you move CellID or after a certain length of time.

For PPC, Start>settings>phone>more(far right tab), Then tick the enable tick box, and go to settings. Select your language and press new, enter the channel iformation as above and press ok, then tick the box next to your newly created channel. You will get a notification of land line area codes as mentioned above.

If you could find away of 'grabbing' this information, as it appears on the homescreen, you could use it to test the features you mentioned above Paul, such as switching profile etc etc.

For those of you who are able to write apps etc, the celltrack project is open source. More info HERE. You need the celltrack module.

More info what the CellID number means can be found HERE

I've attached an engineering mode utility (found in the windows folder of a hermes device) called fieldtest.exe, it should display the CellID etc from 8 different tower and an all manner of random pieces of information :) Apparently it works on the HTC 1.24 ROM (havent determined the radio version) for hermes. It doesn't work on a hermes running the latest HTC 1.35 ROM (radio v1.18) tho :D Its a tool for outputing all the information in the Qualcomm chip 6280 (the chip that enables 3g/hsdpa etc on your hermes) I'd be interested as to what other devices it does work on as they use the qualcomm chips too....

About some of the data:

ARFCN Absolute Radio Frequency Channel Number

RAC Routing Area Code

MNC Mobile Network Code

RSSI Received Signal Strength Indicator

LAC Location Area Code

MCC Mobile Country Code

Cell ID Cell Identity

On the MDA dash you can get a similar screen by typing in *#*#364#*#* You can try this on other phones, i saw references to this code in the SP5/8310 registry etc. This also works on the HTC wizard (link) you may have to change the following reg key tho:

HKEY_LOCAL_MACHINE -> SOFTWARE -> HTC -> EngineerMode -> BuildInEngineeringModeApp = 1

Then soft reset

Your right Paul.. this does raise the bar somewhat :D

Hope the above helps in the effort though :D

Phil

[EDIT: I'll update this post the more information i find, so keep checking back! :D]

fieldtest_157.exe

Edited by The Doctor
Posted

i really enjoyed using cellTrack.. the major problem as stated above was when i upgraded my phone and it no longer worked... roll on the challange

Guest SebastienM
Posted

Thanks for the info.

I'm currently owner of an SPV C600 in France. It runs on the Orange network

The registry key is definitely present -its value is 0 by default- even if the shorcut doesnt't seem to work.

The fieldtest application is working; it delivers information on the GSM/GPRS/EGPRS interface.

Guest Paul (MVP)
Posted

Good work 'The Doctor'... it at least shows it can be done, and what info we're looking for!

P

Posted
We've done Developer Challenges before on MoDaCo and they've always been a great success... so i'm proud to announce another one! This one raises the bar somewhat however :)

What you need to do to win!

The challenge is as follows...

[*]Create a component that can be used in a VB.net or C# (i.e. Compact Framework) managed application, to provide access to the Network Number / LAC / Cell ID / Signal Strength and such information from the radio layer of the device.

im no expert , but cellid and signal strength wouldnt that just tell you how far you are from the GSM/3G mast/tower/transmitter/thingy ?

so if you set home to being 500meters (in signal strength) from cell 12345 , wouldnt that give a potential false reading of 1000meters ?

Anything else?

That's probably all you need to know to get started! If you have any specific questions around the competition, please contact me by PM. I appreciate that this is a difficult competition, particularly the requirement to support a wide range of current and future devices - and I expect only a small number of entrants... but I think the rewards for the community as a whole are great. My decision as judge is final :D

I'm also keen to hear people's thoughts on the idea?

Get coding :D

aye aye sir :D

whens the deadline ?

is it the first or the best solution that wins, anything for runners up ?

Guest Paul (MVP)
Posted

Home can just be a CellID (or a group of)... that's how CellTrack worked and that was fine.

There is no deadline currently... it's the first solution that I judge as being acceptable that wins... and if there is a need for runners up prizes, i'll see what I can rustle up should that time come :)

P

PS Blimey, long time no see MBoden :D Member number 80 of over 160,000... :D

Posted
Home can just be a CellID (or a group of)... that's how CellTrack worked and that was fine.

Should the component keep track of which cellIDs thats home or should it just report current CellID and let the developer using the component keep track of what CellId home is ?

either way i'll give it a go over the weekend, seems like a nice little challenge :D

PS Blimey, long time no see MBoden :) Member number 80 of over 160,000... :D

hehe, yeah , i noticed that right after i replied, the small forum i once knew have grown big (or huge rather) you must be very proud, i know i would have been, congrats on your success m8

Guest stargate
Posted

I have participated at a Microsoft and Orange webinar about WM 5.0 and .NET CF2.0. At the moment there is no API in either managed (.NET) or native (C++) that can currently get this kind of information (that we already know). I am the developer of Mobile Tracking System ( http://www.fightersoft.ro/mts/index.htm ) and my research so far has shown me that at the moment there is no standardized way to get this information because all the different ROMs out there. You have to hunt for the cellid in the phone's memory and this is a major PITA. Another approach is to use the COM ports but this has it's flaws (although a broad range of devices support it) - one major flaw is the fact that the device must disconnect from GPRS when getting the cellid (by cellid I mean LAC+CID).

I am really excited about this challenge - I really hope that someone could make a standardized component that will work with every WM device (past, present and future).

Guest Paul (MVP)
Posted

What about if the component provides a function to hunt for this location in the phone's memory?

For example, I know my network is T-Mobile (234-30), so could the component use that information to automatically search for the correct memory location?

Also good to see this challenge excites others too :)

P

Guest Paul (MVP)
Posted

A clarification requested:

A component that is CF2 only (i.e. not compatible with CF1) IS acceptable.

P

Posted
I am really excited about this challenge - I really hope that someone could make a standardized component that will work with every WM device (past, present and future).

That probably wont happen

I have code now that gets the LAC+CID , GPRS or not :) only problem is that it doesnt work on my Qtek 9090 :D works nicely on the TyTN though

Guest stargate
Posted

And my code wont work on TyTn whatever I do to it. :)

It is extremly difficult at this point to make a unified dll with all this info to work on all WM devices. In regards to CF 2.0 - there is no need because usually these kind of programs are using native code because of the .NET's limitations. And furthermore, CF 2.0 only adds a few things such as outlook synch, picture picker, contact picker and so on. Futhermore, using CF 2.0 will delete from the supported list the WM2003 smartphones (and a great number of users use C500 - about 35% of my users are using SPV C500 smartphones).

To make this the way we all want it, we must find the place where the OS interacts with the GSM processor because I reckon the OS must be aware on some level or another of this information... and it must be in the same place for all devices since it depends on the OS. Unfortunatly, until now, nobody found this "place".

Guest The Doctor
Posted (edited)
Any ideas WHY it's not working on the 9090?

P

Different radio versions :) Meaning the information is 'stored' if you like, in a different place.

Phil

Edited by The Doctor
Guest The Doctor
Posted
To make this the way we all want it, we must find the place where the OS interacts with the GSM processor because I reckon the OS must be aware on some level or another of this information... and it must be in the same place for all devices since it depends on the OS. Unfortunatly, until now, nobody found this "place".

Unless you can find a way of taking the information directly from the chip itself, in much the same way as the field test app i posted earlier does. It displays the data output from the Qualcomm 6275 chip on my hermes, its just a matter of fine tuning to get it to work of different radios.

If you go by the memory address approach, couldn't you have a lookup table with the different rom version/radio version/device ID (hermes, tornado etc) and the memory address where the cellID is stored? It'd just be a case of getting your hands on a great number of devices and finding where they store it all :)

Posted
Any ideas WHY it's not working on the 9090?

P

yes, the function call isnt implemented in the 9090's radio stack, i can get signal strength on both 9090 and TyTN tho

ill try to find another (non Q9090) 2003SE device i can test on

Guest Paul (MVP)
Posted
If you go by the memory address approach, couldn't you have a lookup table with the different rom version/radio version/device ID (hermes, tornado etc) and the memory address where the cellID is stored? It'd just be a case of getting your hands on a great number of devices and finding where they store it all wink.gif

Now THAT we can do :)

P

Guest Paul (MVP)
Posted
yes, the function call isnt implemented in the 9090's radio stack, i can get signal strength on both 9090 and TyTN tho

ill try to find another (non Q9090) 2003SE device i can test on

I have a bunch of devices here (Fujitsu T830, JAQ3, SPL, BlackJack, Treo 750, StrTrk, Universal, Herald, Artemis etc.) I can test on if anyone wants me to assist :)

P

Guest stargate
Posted

Regarding the memory approach things are more difficult because this is not just a matter of finding a memory address that varies from device to device. Unfortunatly the structure differs also from model to model. In other words, we can make a repository of memory addresses and structures and then map them to every model. However, this will take an ennourmeous amount of time and the developer must have the device in hand to do this. Another issue is that for some reasons, I wasn't able to use this approach on devices such as Motorola MPX 220 - my point is that this approach may not always work.

Ok... let's recap... does anyone knows a way of getting the cellid except by reading memory addresses and COM ports?

Guest The Doctor
Posted
Regarding the memory approach things are more difficult because this is not just a matter of finding a memory address that varies from device to device. Unfortunatly the structure differs also from model to model. In other words, we can make a repository of memory addresses and structures and then map them to every model. However, this will take an ennourmeous amount of time and the developer must have the device in hand to do this. Another issue is that for some reasons, I wasn't able to use this approach on devices such as Motorola MPX 220 - my point is that this approach may not always work.

Ok... let's recap... does anyone knows a way of getting the cellid except by reading memory addresses and COM ports?

You can reveal the memory structure of your device by connecting it to the usb in bootloader, disabling usb connections in active sync and running a version of MTTY, opening your usb port and typing in the following:

info 8

As to another way, to my knowledge they are the only two ways :)

Phil

Guest The Doctor
Posted
You can reveal the memory structure of your device by connecting it to the usb in bootloader, disabling usb connections in active sync and running a version of MTTY, opening your usb port and typing in the following:

info 8

As to another way, to my knowledge they are the only two ways :)

Phil

Surely couldn't you just extract the radio section from device/shipped rom update and analyze it to find the memory address? ill talk to zone-mr about this approach over at spv-devs.

Phil


×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.