Another long-awaited breakthrough: dial-up Internet Sharing over Wi-Fi! - Non-Touchscreen Windows Mobile Other

Anyone having read my tutorial on the new Internet Sharing utility in Windows Mobile 5 AKU3 and later versions (including, of course, WM6) knows that it’s not possible to use a Windows Mobile device as a GPRS / EDGE / UMTS / HSDPA etc. cellular modem via Wi-Fi, Bluetooth DUN or, with some exceptions, even infrared, “only” over BT PAN and USB. This means a lot of devices can’t connect to the Net if they don’t support either BT PAN (or USB with desktop Windows operating systems). While the BT DUN hack published some months ago certainly helped the situation (allowing for connections via the far more widely supported, “traditional” Bluetooth DUN), it still didn’t let for using the Windows Mobile Phone Edition (“Professional” in WM6 parlance) device as a modem with clients connecting via Wi-Fi.
XDA-Developers hacker fluxist has just published a tutorial on his latest finding, which, at last, allows for accessing the Net using a Windows Mobile device via Wi-Fi.
I've thoroughly expanded (also with screenshots) the tutorial and tested it with some other Pocket PC's. The results are as follows:
Start Programs / Internet Sharing. Enable the sharing for Bluetooth PAN (NOT USB!) using Connect (left softkey). If you’re prompted for enabling Bluetooth visibility, close the dialog box as usual by pressing OK.
Start editing the Registry with a registry editor and change HKLM\Comm\ ConnectionSharing\ PrivateInterface (which is, by default, "BTPAN1") to the internal name of your Wi-Fi adapter. It’s "TIACXWLN1" with most models.
If it’s not the case (for example, with the HTC Wizard, which uses TNETWLN1 instead), make sure you search for the same string in the Registry as in Settings / Connections / Wi-Fi. For example, it’s “SDIO WLAN Wireless Adapter” on the Wizard and “tiacxwln Compatible Wireless Ethernet” on the Universal. Search for this string; the second occurrence (it’s slightly different from the first: first, it has a suffix “1” after the registry key name and also has a "Wireless" value) will be something like this:
On the Wizard:
[HKEY_LOCAL_MACHINE\Comm\TNETWLN1]
"DisplayName"="SDIO WLAN Wireless Adapter"
"Group"="NDIS"
"ImagePath"="tnetwln.dll"
"Wireless"=dword:00000001
On the Universal:
[HKEY_LOCAL_MACHINE\Comm\tiacxwln1]
"DisplayName"="tiacxwln Compatible Wireless Ethernet Driver"
"Group"="NDIS"
"ImagePath"="tiacxwln.dll"
"Wireless"=dword:00000001
Here, all you need to do is looking up the name of the subkey, which is [HKEY_LOCAL_MACHINE\Comm\TNETWLN1] with the first and [HKEY_LOCAL_MACHINE\Comm\tiacxwln1] with the second case. Of this, you’ll only need the last subkey name component; that is, TNETWLN1 and tiacxwln1, respectively.
Note that I’ve made two registry import files available, should you want to be able to quickly change the Registry values, without the need for manually editing the Registry every time you start the Internet Sharing applet. THIS is for the Wizard and THIS for the Universal, TyTN / Hermes and several other models. To make your life easier, just put it in the file system of your Pocket PC and click it after starting and connecting Internet Sharing so that it’s automatically imported. Should you need a RegEdit 5-compliant Registry Editor for your handheld, I recommend Resco File Explorer (see THIS for more info).
To make your life even easier, put the shortcut to the Registry import file straight on your Today screen as is explained for example in THIS article. Then, you won't even need to fire up a file explorer tool to find the registry import file - you just go to the Today screen after starting and connecting Internet Sharing, click the registry import file and all is set.
Go to Settings / Connections / Wi-Fi and select the Network Adapters tab (it’s the default and only visible one when the Wi-Fi unit is disabled). Click the name of the Wi-Fi card (“IEEE 802.11b/g Compatible Wi-Fi” on the HTC TyTN / Hermes, “SDIO WLAN Wireless Adapter” on the Wizard and “tiacxwln Compatible Wireless Ethernet” on the Universal). Enable “Use specific IP address” and enter the IP address 192.168.1.1 into the first field (“IP address”). When you click the second row (“Subnet mask”), it’ll auto-fill 255.255.255.0. Just keep it at that. This is shown in the following screenshot:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
From now on, you go on as with adding a p2p network (see THIS for my earlier article if interested – reading it is not needed for completing this tutorial): click “Add new…” on the Wireless tab:
Enter a network name (it can be anything; in here, it’s “WRadhoc”) and make sure you check in “This is a device-to-device (ad-hoc) connection”:
After clicking Next, you can set up whether you need encryption or not. If not, just set “Data encryption” to “Disabled” as can be seen in the following screenshot:
Note that you can use both WPA and WEP for encryption. I don’t discuss setting this up as only one client will be able to connect to your Windows Mobile device at a time – while it’s connected, there surely won’t be other clients connected to it. And, after you’ve ended your Net session, when you close Internet Sharing and/or disable Wi-Fi, no one will be able to connect any more either. That is, it's MUCH safer than traditional access points without any kind of encryption.

Finally, in the list of the available connections, tap-and-hold the just added network and select “Connect” from the context menu:
[*]Now, you’re ready to connect: just fire up your client and search for nearby networks, making sure you’re not only looking for access points, but also peer-to-peer (ad-hoc) networks. This (looking for both types of network) is the default with both desktop Windows Wi-Fi clients and those of Windows Mobile; other platforms might be needed to be manually instructed to list available ad-hoc connections too.
Your new ad-hoc network will be discovered; tap-and-hold the connection and select “Connect” in the context menu. Press Next on the next few dialogs that come up. After some seconds, the networks will connect.[/LIST]
Problems:
The connection was pretty slow with my Universal. The Wizard was even worse: the Wi-Fi connection continuously dis- and, then, reconnected, making for example Web browsing even slower. In these cases, assuming you ONLY want to access the Web (and not want to run, say, Instant Messaging clients on the client), you might still want to prefer my proxy server running on the modem.
As for example Hermes users reported far better results, it might be possible the speed depends on the actual modem used.
You MUST re-edit the Registry (preferably import one of the Registry scripts I’ve provided before) each time you press the Connect button in Internet Sharing. The sole reason for this is that, by default, Internet Sharing sets back the Registry to BT PAN when it’s connected.
Currently, there’s no solution to this problem. Hope fluxist will be able to hack the DLL file so that it doesn’t overwrite the Registry every time you initiate a connection (see THIS for more info if interested).
The hack doesn't work on the MS Smartphone platform - for example, on the HTC Vox / s710, which also has Wi-Fi. That is, you can't use MS Smartphones as Wi-Fi modems.
Cross-posted to (might be worth checking out for additional info / discussions!): PPCT, AximSite, XDA-Developers, FirstLoox, BrightHand, HowardForums, MoDaCo
UPDATE (10/02/2007): There is a tutorial HERE explaining how you can get rid of disconnection problems with some models. It also lets for not having to manually import the Registry script and is, therefore, recommended even for people that otherwise have no disconnection problems.
Also, there is a CAB file HERE (to be on the safe side, I’ve mirrored it HERE), which makes it possible to fill in the IP addresses on MS Smartphone (Windows Mobile Standard) devices as well. That is, with this tool, you can use MS Smartphone models having Wi-Fi support like the HTC Dash / s620 and Vox / s710. The original poster reported success with the HTC Dash / s620. With the Vox, I haven’t managed to make internet sharing work, but you may have better luck.
After installing and starting the application, you’ll need to select your Wi-Fi networking device (as can be seen in the following screenshot, it’s “TNETW12511” on the HTC Vox; if your model has the default TIACXWLN1, then, no such dialog will be presented):
You’ll, then, need to select Options / Add Profile; there, just fill in the two numbers, making sure you also give the profile a name so that it is saved and becomes selectable:
After this, you can already select the new profile:

And restart the device as prompted:
After this, do exactly the same as on the Pocket PC: start Internet Sharing, press the left softkey and, then, import the registry so that Internet Sharing uses your Wi-Fi unit.

How to change IP for Wi-Fi in Vox without any app.
To change IP settings for Wi-Fi in Vox you don't need any application!
This option is implemented in HTC Vox by default, but is pretty good hidden in menu.
Go to: START-- Settings - Connections -- WLAN Settings -- Connection Status. Now hit Menu and hit option no. 2 IP Adress.
In this window you can change to desired IP settings as well as Mask Settings.
I'm using PL lang version, so option 2 IP Adress may have diffrent name in your lang version.
Mancom

mancom said:
To change IP settings for Wi-Fi in Vox you don't need any application!
This option is implemented in HTC Vox by default, but is pretty good hidden in menu.
Go to: START-- Settings - Connections -- WLAN Settings -- Connection Status. Now hit Menu and hit option no. 2 IP Adress.
In this window you can change to desired IP settings as well as Mask Settings.
I'm using PL lang version, so option 2 IP Adress may have diffrent name in your lang version.
Mancom
Click to expand...
Click to collapse
WOWZ! Thanks!

UPDATE (10/21/2007): In the meantime, a hacked DLL has been released (see the original thread for more info; note that the tutorial below suffices if you don’t want to read that much). All you need to do is to download THIS file, unzip it to anywhere on your phone (can also be a storage card) and create a link file to intshrui.exe in \Windows\Start Menu\Programs. This will make it possible to have two copies of Internet Sharing on your device: the original for BT PAN-based and a hacked one for Wi-Fi based sharing. This also means you’ll be able to use both the BT PAN- and the Wi-Fi-based sharing on your handset.
Note that the hacked DLL file itself is HERE; as you can’t just “shadow” the original ROM file in \Windows with it, you’ll only want to use it if you’re a ROM cooker yourself and want to put a cooked version in your ROM. .
It worked wonderfully between my HTC Universal and Nokia N95; I used the shared connection for hours in this setup. The latter (S60 v3 FP1, ROM version 11.x; as it’s the latest-and-greatest in the Nokia line, this also means Symbian phones generally need to rely on Wi-Fi-based sharing when accessing the Net via an external modem) doesn’t support either BT DUN or BT PAN but it does support Wi-Fi P2P connections; therefore, you must use the latter to connect to the Web if, for some reason, you can’t or don’t want to use the built-in phone because, for example,
it’s locked to another network
you want to access the cellular net where there’s not much signal, while you can you can place the WM device to a spot where there is; then, you might want to prefer an external modem in this setup
or, you just don’t want to swap SIM cards between your Windows Mobile device and client (in this case, the N95) all the time
I haven’t had any speed problems. I, on the other hand, did encounter disconnections every 5...20 minutes; however, it didn’t really annoy me because, on the WM device, I just clicked Connect again and the N95 started to see the Net again. (This behavior, should you encounter the same, will pretty much annoy you if you want lengthier net access sessions.)
Note that the DLL has the Wi-Fi card name (TIACXWLN1) wired-in; this means it will NOT work on models using other Wi-Fi card names (for example, the HTC Wizard).

UPDATE (11/21/2007): In the meantime, the hack has been GREATLY enhanced and automatized. See XDA-Dev forum member TalynOne’s excellent tutorial and tools HERE.

Related

TUTORIAL:Setting up and using Wi-Fi peer-to-peer connections

Don't you have a Bluetooth PAN because you don't have a Bluetooth unit in your PDA at all or you "only" have the Microsoft Bluetooth stack? Would you still want to create local, wireless networks between Pocket PC's? Wi-Fi ad-hoc (peer-to-peer) networking to the rescue!
Local, wireless networks between Pocket PC's are really useful. They excel at running multiplayer games (please read this roundup of multiplayer games for more information; for this tutorial, I've successfully tested the following multiplayer games with Wi-Fi P2P: OmniGSoft titles (3D Mini-Jetfight 1.2 and Dogfight 1.5), ZIO Space Tactics 1.0, Handmark Battleship 1.06, Quartz 2 1.2, RocketElite 2.1, Warfare Incorporated 1.2, CanTris and The Travel Collection 1.6), running (also) LAN-based, excellent communication applications like Microsoft Portrait or help in Internet connection sharing between your PDA's.
Bluetooth (BT) Personal Area Network (PAN) is one means of achieving this kind of connectivity. (Please see the Recommended links section for the links of the tutorial explaining how BT PAN can be set up and used between Pocket PC's.) Unfortunately, support for BT PAN is painfully missing from all Pocket PC's that have the Microsoft BT stack on them, as opposed to the Widcom/Broadcomm stacks. Examples of Pocket PC's like this are all the HTC Phone Edition devices, the Dell Axim x51(v) etc.
Before publishing this tutorial, it seemed to be impossible to create computer-to-computer connections on Pocket PC's via Wi-Fi – or, at least, I have never seen any tutorials or even threads on this. It would seem to the causal user none of the available Pocket PC Wi-Fi clients (including the built-in Microsoft one) allow for explicitly starting a P2P connection – this is why most people would think it's not possible to host P2P connections at all on Pocket PC's. This is, fortunately, not true.
Setting up a Wi-Fi Peer-to-peer (P2P for short) or ad-hoc (non-infrastructure) connection between two (or, for that matter, several) Pocket PC's is really easy.
You can host the P2P connection on any Pocket PC that has Wi-Fi support – even on older (non-WM5) ones. In this tutorial, I show doing this on the HTC Wizard; the way of doing this is exactly the same on any other Pocket PC's.
I use the built-in Microsoft client for this. The latter can be found in WM2003 at Settings/Connections/ Connections /Advanced/ Network Card/Wireless and in (most) WM2003SE/WM5 devices at Settings/Connections/ Network Cards/Wireless.
Please note that you will need to explictly start the Wi-Fi unit before going there; otherwise, the Wireless tab won't be seen. Also note that WM2003/WM2003SE devices can be cradled during this, unlike WM5 devices because of the completely new networking model of WM5 (I've elaborated on the latter here). That is, you must not only start the Wi-Fi unit, but also disconnect your WM5 Pocket PC's in order to be able to have access to this tab.
Start the built-in Wi-Fi unit as can be seen in this screenshot. On other Pocket PC's, you'll have a different menu to do this; for example, on the Pocket Loox 720, you will need to click the globe icon on the Today screen and choose "Turn Wireless ON" and, on the Dell Axim x51v, you will need to click the
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
icon and click the Turn On button.
Then, you will need to go straight to Settings/Connections/ Network Cards/Wireless. You can do this, as has already been pointed out, via the Start menu – on most Pocket PC's. On the Wizard, it's also available through the above-shown connection dialog (go to Settings/Wi-Fi Settings and, inside, Menu/Network Cards). It's only on the Dell Axim x51(v) that it's not directly accessible – more on this later.
Now follows the initial creation of the Wi-Fi P2P network. It's very easy and must be done in exactly the same way on all Pocket PC's. This example shows a HTC Wizard.
Click Add New...; enter the name of the new p2p network; here, I've chosen to call it HTCWizardP2PwiFi.
Click for screenshot
Make sure you also enable the "This is a device-to-device (ad-hoc) connection" checkbox:
Click for screenshot
In the Network Key tab, it's worth change the default "WEP" to "Disabled" in the Data Encryption drop-down list so that you and your clients don't end up having to enter a WEP key. After all, noone can do any harm to self-standing Pocket PC's via Wi-Fi because they have simply nothing to access (as opposed to desktop PC's) - not even their local file system.
Click for screenshot
Then, just click OK; the PDA will start to listen to clients; this is why it says "Connecting":
Click for screenshot
Now, the P2P network is given a name and you can start configuring your Pocket PC clients to connect to it. I show this on two Pocket PC's; the PL720 and the Dell Axim x51v.
On the latter (x51v), turn on Wi-Fi. Click the (large) Settings button so that you get into the Wireless tab of Network Cards (note that, as has already been pointed out, Network Cards is not accessible in the traditional Settings/Connections on x51's! It is only accessible inside Dell's own Wi-Fi applet!) Here, it's the best to choose "Only computer-to-computer" from the "Network to access:" drop-down list so that the Pocket PC will only try to connect/will only list p2p "servers":
Click for screenshot
In the list above, you'll already see the "server" Pocket PC without explicitly entering its name into the client Pocket PC's:
Click for screenshot
Tap-and-hold it and choose 'Connect' from the context menu:
Click for screenshot
On the next screen, just click OK:
Click for screenshot
Then, the Pocket PC will attempt connecting and will, eventually, connect:
Click for screenshot
On all the other Pocket PC clients, you need to do the same. On the PL720 (or any other Wi-Fi enabled device that has the Network Cards applet in Settings/Connections), for example, you need to go to Settings/Connections/ Network Cards/Wireless, tap-and-hold the new P2P network from the list and choose Connect:
Click for screenshot
Then, the device will connect to the P2P network as can be seen in here.
P2P Wi-Fi connections are really flexible!
Note that it's only at the first occasion that client Pocket PC's need to explicitly connect to a "server". After this, whenever you enable the Wi-Fi unit on any of your Pocket PC's that have previously participated in a P2P connection, the P2P connection will be restarted. You won't even need to use the Pocket PC (in this example, the HTC Wizard) that, at first, hosted the connection, any more to participate in the P2P connection either. That is, the P2P connection will be automatically recreated when the Pocket PC's that have connected to each other see (at least some of) the other parties again.
Looking up a device's own IP address
In most cases, you'll also need to know the IP address some (or, in very few cases, all) of the Pocket PC's participating in a Wi-Fi P2P network. For example, when you use a P2P network to share an Internet connection on one of your PDA's with your other PDA's / desktop computers, you'll need to know the IP of the given PDA so that you can enter it on the other PDA's/computers in order for them to be able to find the server. It's only in very rare cases (for example, with the multiplayer game Warfare Incorporated, which uses broadcasting to find local clients on the local network and, therefore, requires no direct IP entering if used through LAN) that you won't need to do this.
Fortunately, as with the BT PAN networking scenario on the Pocket PC, once your device (automatically – don't let the fact mislead you that the operating system doesn't have a DHCP server!) gets an IP address in a P2P network, it will never change. That is, if a Pocket PC is assigned the (local) IP address, say, 169.254.212.228, it will stay the same in the same P2P networks that will be later recreated/restarted. That is, you won't ever need to look up your IP again or, for example, change the server IP in clients when you start the network again.
You can look up your IP's really easily. First, you can use the excellent and, what is more, free tool vxUtil for this. Just go to Functions/Info and jot down the IP address at the top. Examples of three Pocket PC's:
Pocket Loox 720
x51v
HTC Wizard
Alternatively, if you don't want to use third-party tools for that, go to the Network Adapters tab of the well-known Settings/Connections/ Network Cards applet, click the entry that corresponds to your Wi-Fi unit (unfortunately, its name can be pretty cryptic some time – for example, in the HTC Wizard, it's referred to as SDIO WLAN Adapter. Of course SDIO is pretty misleading here because the Wi-Fi unit isn't located on a SDIO card in the HTC Wizard) and jot down the contents of the, by default, not editable text field at the top:
PL720: screenshot-1 screenshot-2
X51v: screenshot-1 screenshot-2
Wizard: screenshot-1 screenshot-2
After this, you can test your P2P network with any client-server application like a multiplayer game. With, say, the excellent multiplayer game Warfare Incorporated, you'll see P2P networking indeed works with any number of participating Wi-Fi Pocket PC's (here, three). (Note that Warfare Incorporated uses auto-discovery over Wi-Fi (and BT); therefore, you won't need to enter the server IP address into the clients.)
Connected networks – Bluetooth PAN and Wi-Fi P2P working together?
You may ask the question "is it possible to utilize both Bluetooth PAN and Wi-Fi Peer-to-peer at the same time to connect both Wi-Fi and BT PAN clients to a server"? That is, is the following configuration possible:
Click for screenshot
In this configuration, the Pocket PC that has both Wi-Fi and BT PAN support (with also support for them being able to co-exist – that is, it should be a BT 1.2 device or the still BT 1.1 ASUS A730(w), which also allows for parallel use of the two wireless radios) hosts a server (let it be a Microsoft Portrait client, a multiplayer game server or anything) that clients would like to connect to to.
As can be seen in both the above schema and in this screenshot, the server PDA (in this case, the Pocket Loox 720) has two, entirely different IP addresses for the two local networks it participates in.
The answer to the original question is, unfortunately, no. Much as you can start host individual networks on your PDA capable of this (that is, a Widcomm BT 1.2 Pocket PC like the Pocket Loox 720), you can not host servers that would be accessible from both the Wi-Fi and the Bluetooth network on the same PDA. The sole reason for this is that server applications only listen to client requests on one IP address, which is generally the Wi-Fi P2P address. If you directly enter the BT PAN server IP address (in this case, 169.254.72.110) to the BT PAN client(s), the latter won't find the server application. You can't enter the "other", the Wi-Fi P2P server IP address (169.254.212.228) to the BT PAN client(s) either because it's a non-existing IP address in their own local network. That is, the BT PAN clients won't ever be able to connect to the server application – only Wi-Fi P2P-connected clients will be able to do this.
That is, any kind of multiple network interconnection is impossible.
I've tested this scenario with several applications to be absolutely sure this infrastructure won't work: MS Portrait, the multiplayer games from OmniGSoft (3D Mini-Jetfight 1.2 and Dogfight 1.5), the multiplayer game Quartz 2 1.2 and Warfare Incorporated 1.2. These games all have TCP/IP-based, LAN multiplayer capabilities and allow for more than two players at the same time. (There would be no point in using a networking architecture like this with multiplayer games that only support two players. Then, only one connection/networking type – BT PAN or Wi-Fi P2P – that is supported by both PDA's should be used.)
Recommended links (in addition to the already-linked articles)
Fundamental ActiveSync networking differences between WM5 and previous WM versions
Setting up a BT PAN and looking up the local IP address of the host (alternatives: iPAQ HQ, AximSite, PPC Magazine, FirstLoox or BrightHand).
Very useful info indeed... 8)
my question.. if you are using a device with low speed processor ( like the wizard or prophet ) will enabling the wifi - and creating such a connection- impact performance of the game or the application it self??
duke911 said:
Very useful info indeed... 8)
my question.. if you are using a device with low speed processor ( like the wizard or prophet ) will enabling the wifi - and creating such a connection- impact performance of the game or the application it self??
Click to expand...
Click to collapse
Not really. Most MP games worked well on the non-overclocked HTC Wizard over Wi-Fi p2p.
a comprehensive well documented well structured article, well done.
i have a wireless AP at home, and all works well, i get internet direct as does my notebook. i can run TSC over the network to take control of the XP Pro laptop.
but i cannot for the life of me get it to connect to a shared folder.
it stopped working when we installed Norton (dumb idea), but after uninstalling the internet security module, I still cannot connect, any suggestions. i have created the share etc but it simply wont connect to it.
Still works? Will see...

TUTORIAL:Changing the language Web pages're requested by PIE

I’ve just received a question from one of my blog readers about how the built-in Web browser in the Pocket PC / Windows Mobile operating system, Pocket Internet Explorer (PIE) / Internet Explorer Mobile (IEM) can be configured to request pages in different language than US English if you use an English language Windows Mobile operating system.
As this question is a very interesting one and very few people have the necessary HTTP- and actual programming (let alone offering a proxy server for free that does the trick!)-level knowledge to answer this question, I’ve decided to write a complete article on it.
What's the point? When can this be useful?
There are a lot of Web sites that offer their content not only in English but also in several other languages. The most important example is Google or, for example, many blogging engines. For example, b2evolution(the engine used in the Smartphone & Pocket PC Magazine Expert Blogs) returns English pages by default. However, if you configure your local Web browser to request Web pages in another language, you'll receive Web content in that language.
For example, if you set your referred language to, say, Finnish, you'll get this (Finnish language) page instead of this (English original) when you try to log in. And, the list continues - there are a LOT of other pages, frameworks, content management systems that do take into account what language the client prefers and return their Web content accordingly.
Making use of this capability can be of enormous advantage for people that don’t really have a good command of English and would like to prefer content or, at least, menus and dialogs in their native tongue.
How can you instruct desktop Web browsers to request Web pages in the language of my choice?
With Internet Explorer, go to Tools/Internet Options/ General and click Languages in the Appearance group. Then, just click the Add button and choose the language you prefer from the list. Make sure you move it up the list (with the Move Up button) so that it'll be your primary language.
As far as the desktop Opera browser is concerned, I'll elaborate on it later.
The desktop Mozilla/Firefox must be configured in exactly the same way as the Pocket PC version (screenshot) - see below.
OK; now, how I configure my Pocket PC Web browsers to do the same?
It's, unfortunately, a bit more complicated. Read on!
A bit geeky stuff: HTTP and Accept-Language
(Note that understanding this section is not needed if you aren't a tech / geek type of person. However, trying to digest it can be very useful to understand my HTTP request header screenshots and to understand how, for example, my proxy servers work.)
First, to understand how the HTTP servers (that is, Web servers) are able to decide in which language they should return the requested Web page, it's very important to know that the HTTP protocol (the protocol used in communicating between a Web server and a browser) uses so-called 'HTTP request headers'. These requests tell the Web server what resource to get, whether it's cached on the client (so that the server only needs to return the resource again if it's been changed in the meantime), whether the client has 'cookies' stored about the server to maintain Web sessions and so on.
One of these headers is called 'Accept-Language' and tells the Web server what language the client prefers (with, optionally, an additional country code and/or quality setting when there is a list of preferred languages). For example, if you'd prefer pages in Finnish instead of the default English, this header looks like the following:
Accept-Language: fi (or, Accept-Language: fi-FI - both are valid and can be used. The first, lowercase 'fi' stands for Finnish, the second, uppercase 'FI' stands for Finland. Note that, in general, the country code can also be lowercase; from now, on, I use lowercase letters to denote the country.)
If you'd prefer your preferred language to be Canadian French, you can use the following request header:
Accept-Language: fr-ca
And, as far as strictly US English is concerned, you'll often see this header:
Accept-Language: en-us
In order to be able to return a Web page tailored for your language preferences, the Web server MUST receive every HTTP request (Web page download) containing the Accept-Language header. If it doesn't receive it, it will in no way know what is your preferred language and will, in almost all cases, return the default one (English in most cases).
Does the system-wide Regional Settings have any effect on the preferred language?
Unfortunately, modifying the regional setting in Settings/System/Regional Settings doesn’t change the “Accept-Language” HTTP header sent out to the Web server (it’s based on this HTTP request header that most HTTP servers – except for Google, which uses a bit more sophisticated algorithm, which I’ll elaborate on later –, if they have content in more than one language, decide what language they should return their content in) – not even in the latest WM5 AKU2, as can also be seen in this screenshot. I took the screenshot on a Dell Axim x51v with the latest, AKU2 A12 ROM, after setting the regional setting to Germany (and rebooting). It certainly shows IEM sends out requests telling the Web server that it prefers U.S. English pages, no matter what the operating system setting is.
PIE AcceptLanguage in the Registry
Fortunately, WM2003SE+ IEM/PIE does store the language code in the Registry (and it, even more importantly, does use it) under HKEY_CURRENT_USER\ Software\ Microsoft\ Internet Explorer\ International\ AcceptLanguage. How it is accessed under different operating systems, however, is varying.
First, under Pocket PC 2000 (the first Pocket PC operating system version), there is no International key at all as can also be seen in here. That is, it’s futile to create the above value in the Registry – it just won’t work.
Under Pocket PC 2002 and WM2003, this value does exist with the value “en-us” for devices with the (American) English ROM. These operating systems, however, do not take this value into account and don’t send out any Accept-Language header as can also be seen in this and this screenshots for PPC2k2/WM2003, respectively.
It’s only with WM2003SE+ operating systems (WM2003SE and WM5) that PIE copies the value of this string value to the HTTP request. However, interestingly, on English devices, the value, by default, doesn’t exist (unlike on Pocket PC 2002 / WM2003 devices, where, much as it does exist, its value isn’t used in the communication with HTTP servers in any way) – this is why I, at first, didn’t realize it’s there and usable. (I've tested this on four different WM5 devices (x51v, hx4700, Wizard, Universal) and on the WM2003SE PL720. None of them had this value, unlike, again, my Pocket PC 2002 Compaq iPAQ 3660 / WM2003 HP iPAQ 2210.)
(Note that there are two other places of the registry having PIE/IEM-related information: HKEY_LOCAL_MACHINE\ SOFTWARE\Microsoft\Windows\ CurrentVersion\ Internet Settings and HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Internet Explorer. There, however, is no language-specific information in there.)
All in all, if you have a WM2003SE+ Pocket PC, you can just create a String value named “AcceptLanguage” under the HKEY_CURRENT_USER\ Software\ Microsoft\ Internet Explorer\ International key with the correct language code (with, when needed, also the country code if it’s necessary).
If you don’t want to create the value by hand, I’ve created a registry import file to do the job for you. It’s available HERE. All you’ll need to do is importing it with a Regedit5-compatible registry editor like Resco Registry Editor (please also see this roundup of registry editors for alternates / converting the file to REGEDIT4 format to be able to import with REGEDIT4-only registry editors like Kilmist and Tascal.) Don’t forget to change ‘en-us’ to your language first (for example, ‘ru’, ‘fi’, ‘fr’ etc.) Also, you may want to use some kind of associated quality value as is defined in section 14.4 of the official HTTP 1.1 header specification. (For example, to express "I prefer Danish the most, but will accept (preferably) British English and, finally, other types of English", use the string “da, en-gb;q=0.8, en;q=0.7”)
Do PIE/IEM plug-ins let for changing the language?
Unfortunately, PIE/IEM plug-ins like PIEPlus, MultiIE or Spb Pocket Plus (click the links for the latest reviews!) don’t let the user directly supply this vaue – ypu’ll need to directly modify the Registry in order to configure this value.
What about NetFront?
As far as alternate browsers are concerned, NetFront 3.3 sends out the ‘en’ language code by default . While it is supposed to have support for changing the request language, it, as with many other NetFront features, is buggy.
In order to test this yourself, you'll need to create a new User-Agent entry in (Menu/)Tools / Browser Settings / Misc (as the default entry can’t be modified). There, choose an empty (or, if you've already defined an alternate User-Agent setting, anything different from the default "NetFront v3.3 Standard" custom setting. In this screenshot, I show an example of selecting an empty entry - you'll see this before creating any new User-Agent record. After this, just click the Edit button on the right, give the new setting a new name (in the top "Title" textfield; in this example screenshot, I've called it "Finnish NetFront") and, in the bottom-most "language" input field, enter the language code (in this screenshot, "fi"). Now, click OK; the new entry will be selected as can be seen in here. Now, you can give the new settings a try; as can be seen in here, the language code sent out is still the default 'en'. (Note that in this example I've also changed the User-Agent to 'My custom Accept-Language tester User-Agent to show what U-A is sent out' from the default 'Mozilla/4.08 (PDA; NF33PPC3AR/1.0) NetFront/3.3' so that we can see Netfront indeed sends out the modified header.)
Note that NetFront has a “Base language” setting in View/Advanced Setting. The setting (which can’t be fine-tuned; for example, North-European languages are only a group and not individual languages), has no effect on anything (it only tells the browser the default encoding it should use when trying to render the page brought back) either.
What about Opera Mobile?
Opera 8.6 doesn’t send out any Accept-Language header at all (click the links to see the screenshots showing this!).
Note that, on the desktop, Opera supports this and it can even be freely redefined in the GUI. I’ve checked the desktop INI files to see whether it’s there that this information is stored (many desktop-based configuration options are also accepted and interpreted by the Pocket PC version of Opera Mobile). Unfortunately, that’s not the case.
NetFront and Opera Mobile – a summary
All in all,
unfortunately, as of their current versions (8.6 of Opera and 3.3 for NetFront) neither of these browsers look up/use the value of HKEY_CURRENT_USER\ Software\ Microsoft\ Internet Explorer\ International\ AcceptLanguage
you can’t configure them either to do so: the built-in request language feature in NetFront doesn't work
In a later section, I'll elaborate on how you can still add/modify an/the Accept-Language header when using these two apps.
What about Thunderhawk?
Thunderhawk also sends out the english-by-default header. Unfortunately, it can't be modified in the Settings dialog, it doesn't take into account the PIE/IEM registry setting and, as Thunderhawk doesn't let you use proxy servers, you can't use external proxy servers either to modify this header. This means it's fully impossible to change the language preferences using Thunderhawk, as opposed to all the other browsers.
What about Minimo?
The (as of writing) latest (08-27-2006) Minimo nighly build offers seamless Accept-Language definition capabilities.
While it doesn't use the PIE/IEM registry value for overriding its setting, you can easily modify the header. To do this, enter the “about:config” URL in the address bar. You’ll be taken into the preference list screen. There, just enter ‘lang’ in the Filter field and, then, you’ll be taken right away to the intl.accept_languages property as can also be seen in this screenshot. Double-click intl.accept_languages and edit the value as you find it OK and press Enter. Then, in the config list, “default” will change to ‘user’ and the headers will indeed be correctly sent out.
Paragon Language Extender
Paragon Language Extender is a well-known language changer application (including HTTP request modifying capabilities) for all Pocket PC (and Handheld / Palm-size) operating systems prior to WM5 (there is no WM5 version and never ever try to install the Language Extender on a WM5 device – I’ve tested it on the WM5 Dell Axim x51v; I had to hard reset).
Among other things, WM2003+ versions of the Paragon Language Extender also support dynamic language change as can be seen for example in here:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
In this case, ‘de’ denotes I’ve installed the German extender; the screenshot also shows it has its own German-language dictionary.
Interestingly, the Paragon Extender doesn’t create HKEY_CURRENT_USER\ Software\ Microsoft\ Internet Explorer\ International\ AcceptLanguage. It does “sit on” the operating system and inserts its own Accept-Language header into the outgoing PIE requests. (Note that if you do create HKEY_CURRENT_USER\ Software\ Microsoft\ Internet Explorer\ International\ AcceptLanguage by hand, it’ll override that of Paragon).
Note that there are two major versions of Paragon Lang. Extender: and old, PPC2k/PPC2k2-compatible, 4.23 version still available for non-major languages (that is, not available for, say, German or French but available for, say, Finnish, Bulgarian or Arabic) and a new, WM2003/WM2003SE version (the latter is build 4710 for for example Finnish). Unfortunately, the former does NOT make the PPC2k2 PIE send out the correct header. That is, it’s not possible to make the Pocket PC 2002 PIE to send out the correct request with either using Paragon Lang. Extender or, as we’ve already seen, by directly overwriting HKEY_CURRENT_USER\ Software\ Microsoft\ Internet Explorer\ International\ AcceptLanguage.
Finally, in WM2003SE, the Paragon app is not recommended over the “traditional” way of overwriting HKEY_CURRENT_USER\ Software\ Microsoft\ Internet Explorer\ International\ AcceptLanguage – it's an overkill and I only recommend it for “plain” request language modification if you need its other capabilities too.
Note that if you don’t need your device to be fully translated, you won’t need to install the full version – the second, Compact setup (as can also be seen in here) will do just fine. The results after the setup will be as follows:
What can I do if I want to browse the Web with a Pocket PC 2002 / WM2003 PIE or with Opera Mobile / NetFront?
You have two choices.
if you have the capability of running a proxy server somewhere (even on your Pocket PC PDA with a suitable Java Virtual Machine (please read this article and search my blog for the word 'Java' for more info) - after all, it's multiplatform); for example, on a 24/7 online desktop PC,
with a client that can be configured to use an external HTTP proxy (in this regard, Thunderhawk is disqualified) and does send out the Accept-Language header (in this case, NetFront), you'll need to use an external proxy server to change the language code sent out to another one before sending the request further, to the target Web server. If you have a Java Virtual Machine (easily downloadable from here - select 'Java Runtime Environment (JRE) 5.0 Update X'), I’ve written an easily modifiable, open-source (source here) HTTP proxy server available here. You will only need to start it with the command
java HTTPProxyAcceptsLangHeaderRewrite portnumber languagecode
if you have a JRE (I’ve compiled the class with JDK 1.3, so, any JRE will do) installed on your PC (again, you can get it at the above-linked Sun page).
For example, the command
java HTTPProxyAcceptsLangHeaderRewrite 8080 cool-eh
will result in the following response from http://www.proxydetect.com/ (after you correctly set up your Pocket Internet Explorer / NetFront browser to use the proxy - please see for example this article on doing so):
This shows that indeed the (of course non-existing) ‘cool-eh’ language code was sent to the server.
If you, on the other hand, have a proxy-configurable client that does not send out the Accept-Language header (the case with PPC2k2 PIE and Opera Mobile), you’ll need to explicitly add the header to the headers relayed to the HTTP server. To do so, you'll need this Java class file (source here). Its usage is exactly the same as with the previous bullet.
The results of using this header-adding proxy server can be seen for example here (showing Opera Mobile).
[/LIST]
Mail the webmaster of the given webpage to do a dynamic country lookup depending on the client’s IP (internet) address instead of the Accept-Language header. Say, if you have a Thai client IP address, you would receive a page with Thai content even if your Web client sent out an Accept-Language header of ‘en-us’ (or no language code at all). Many Web sites do so – for example, even Google. Google, if it doesn't receive an Accept-Language header or the header (if it does exist) is the standard one requesting English pages, then, just looks up the country of the client and returns the content accordingly, in the local language of the country. If the Accept-Language header exists and it's set to something other than English, it'll return the page in that local(ized) language. This is what Web server administrators should strive for.
What about devices with non-English ROM's? If I, say, dump / sell my English Pocket PC and get a German one, will I get German pages instead of English ones?
Note that I wasn’t able to reliably test how and what Accept-Language headers the Web browsers on a Pocket PC with a non-English ROM send out. I don’t think the built-in PIE would request English pages on a Pocket PC with a German language ROM, but I may be mistaken (after all, PIE / IEM isn't the most sophisticated Web browser). The same (I don't know how it behaves on devices with non-English ROM's) stands for NetFront, which does send out the language header. Finally, as far as Opera Mobile is concerned, I seriously doubt it’d send out the correct header on any (non-English) Pocket PC – after all, it doesn’t seem to be sending out any kind of language header. (Incidentally, it has the ‘Accept-Language’ string once in opera.dll but there doesn’t seem to be any parameter to it.)
Acknowledgements
My blog reader ‘Begemot’ from Russia to point out the never-anywhere (give for example searching for “AcceptLanguage” a try on major PPC boards like PPCT, Brighthand, AximSite, XDA-Developers (and on Google) etc. Note that, on the latter, there will be some (false) hits because of the MMS handler app on WM PE devices) discussed (this is why I didn’t know of it before either – and, as the given AcceptLanguage value only exist under PPC2k2 / WM2003, I haven’t run into it in the Registry either) HKEY_CURRENT_USER\ Software\ Microsoft\ Internet Explorer\ International\ AcceptLanguage. Without him, I wouldn’t have been able to write this tutorial in its present form. Thumbs up
The Netfront-related part of the article updated – along with a new Netfront bug I’ve just found. I’ve also slightly modified the PIE-related part with new, WM2003-related info.

New dial-up networking model of WM5 AKU3 - a must if you use your WM phones as modems

Now that there already are some AKU3 devices (mostly MS Smartphones) on the market (for example, the HTC Dash (see for example this excellent Smartphone Thoughts review), and I, as I know quite much about Bluetooth, network sharing (I’m the author of the one and only POST-capable, free HTTP network sharing proxy for the Pocket PC) and connectivity issues of Windows Mobile devices, have been receiving a LOT of related questions (see for example this), I have decided to update my well-known Use your Pocket PC Phone Edition as a modem for your other Pocket PC's” tutorial so that it contains AKU3-related information and to also explain why dial-up connections in the latest, AKU3 version of WM5 behave completely different from earlier operating system versions.
This article will be of extreme interest to anyone using their Microsoft-based phones (let them be either full Pocket PC’s or “just” MS Smartphones) as cellular (GPRS / EDGE / UMTS / HSDPA etc.) modems because it explains everything about this subject, including the changes over the old model.
1. The most important changes, connectivity-wise
There are major changes in the connectivity model of AKU3 when it comes to serving clients that would like to use a Windows Mobile phone as a modem via either Bluetooth or infrared. In the following two subsections, I elaborate on both connection forms.
1.1 Bluetooth: No BT DUN profile any more
In AKU 3+, the Bluetooth DUN (Dial-up Networking) profile is no longer supported at all, only the PAN (Personal Area Network). Now, it’s via BT PAN’s that cellular-only network connections are shared and you have no access to DUN functionality any more.
This means clients discovering AKU3-based Windows Mobile phones will NOT see as modems, unlike with operating system versions prior to AKU3. This means that instead of seeing this (Microsoft BT stack) and this (Widcomm BT stack), you will see this (with the MS BT stack as clients) and this , this and this (three Widcomm-based clients (iPAQ 2210, hx4700 and the Pocket Loox 720)).
The latter screenshots, in essence, show you won’t be able to use Windows Mobile phones with Microsoft BT stack-based clients as the latter have no BT PAN support at all – along with a lot of other types of devices. That is, not so many “client” operating systems (“client” refers to devices that would like to use Windows Mobile phones to access the Net) support the (quite advanced) BT PAN profile as the “traditional” BT DUN dial-up method.
In the following subsections, I elaborate on the PAN compatibility issues both desktop and handheld OS’es. After that, I elaborate on other, related issues like port forwarding and convenience issues.
1.1.1 Desktop OS’es and BT PAN compatibility
On Microsoft Windows desktop PC’s, there is no difference: even the MS BT stack supports joining already-existing BT PAN networks as has been explained, say, here.
On Linux and Mac OS, however, the situation is vastly different: in some cases, only DUN is implemented in some Linux distributions; so is the case with the different Mac OS versions as far as I know as is also pointed out here.
1.1.2. Handheld OS’es and BT PAN compatibility
As far as Pocket PC’s are concerned, the situation here is far worse than that of the desktop Windows case. Here, it’s only the Widcomm/Broadcom BT stack that has always supported BT PAN. The Pocket PC-based Microsoft BT stack doesn’t have any kind of BT PAN client support as can also be seen in this screenshot. This shows PPC MS BT stack clients don’t see any profiles that would make it possible to access the net via AKU3 Phone Edition (or MS Smartphone) devices. Opposed to this is the pre-AKU3 case where DUN was still visible as can be seen in this screenshot (from the already-linked pre-AKU3 article “Use your Pocket PC Phone Edition as a modem for your other Pocket PC's! - a full tutorial”)).
Non-common Bluetooth stacks (like the ones that come with old BT cards – for example, see the original drivers that come with the Belkin F8T020 card – see this for more info) don’t support PAN either (they only support DUN).
Other (non-Windows Mobile) clients that can only use the DUN profile include Palm OS devices (the Palm OS’ BT PAN capabilities are really bad – Lan Access is, theoretically, supported via BT, but not in practice), some (not all! For example, the Sharp Zaurus has BT PAN support) Linux devices (for example, the Nokia 770), some mobile devices with proprietary operating systems (for example, some Garmin GPS units/computers) etc.
1.2. What do you need to know about infrared support?
It, unfortunately, no longer exists in the new Internet Sharing program, as opposed to the old Modem Link.
Right now, on some pre-AKU3 devices like the Wizard (but unlike, say, the Universal, which also has Wireless Modem (WModem)) Modem Link is the only way to use a PPC PE device as a modem over infrared (IrDA). Unlike “traditional”, “dumb” GSM phones, while these devices are also seen as “modems” for other IR devices when Modem Link isn’t active (I’ve elaborated on this, say, here), they can not be used as modems for actual dial-ups without explicitly starting the Windows Mobile phone in infrared modem mode.
The new Internet Sharing only works via USB / BT PAN as can be seen for example in this screenshot of Internet Sharing – the IrCOMM in the drop-down menu is gone, as opposed to that of Modem Link.
By completely abandoning Modem Link, this only way to connect to the outside world via infrared will also be gone. This means you will no longer be able to use AKU3 devices as infrared modems that don’t have additional programs (for example, Wireless Modem) to be used as infrared modems.
Note that some other PPC PE devices (for example, the HTC Universal) have the IrDA-capable WModem, which, currently, is almost the same as Modem Link (except for some fancy receive / send “LEDs”) and, again, still in pre-AKU3 times, seems to be quite redundant (“why double the functionality?”). This redundancy won’t, however, be the case after moving to Internet Sharing (if and when the Universal receives an official AKU3 upgrade) any more, when it’ll be the only phone app with IrDA capabilities.
What’s the point in sticking with IrDA, you may ask? Why not USB or BT instead? The answer is simple: many, for example, Microsoft BT stack-based Pocket PC devices only have IrDA to communicate, even high-end devices like the Dell Axim x51v (if the latter may not use BT DUN any more because of the lack of the BT DUN support in the modem). The same stands for pocket-sized computing platforms like many Palm OS, Linux and Symbian devices – if they contain BT at all, they are unlikely to support PAN.
With the switch to AKU3, none of these non-BT PAN / non-USB-capable clients will be able to access the Net via a PPC PE / MS Smartphone modem any more via infrared either on devices that only have Internet Sharing and not additional connectivity apps like Wmodem.
1.3 Port forwarding issues, running server-side / like apps
With a decent mobile operator (about 20-30% of them are like so; for example, in the UK – see this), which doesn’t use a proxied (“hidden”) networking approach but assigns the connecting client device a “real”, unique, connectable-from-the-outside-world Internet address, you can use so-called “server-side” applications. Don’t be afraid of this, this isn’t geeky stuff: these include absolutely common programs; for example, FTP clients (with non-passive FTP transfers), IRC applications (DCC send from a device only works with server-like devices), RealOne stream playing, incoming remote controller (Pocket Controller, VNC etc) connections etc. Using (or at least trying to use) these are all very common with non-geeks too.
(Please also see this and this for more info on these questions. I also recommend this for a list of what I mean by “server-like” applications on Pocket PC’s – there are quite a few of them which are REALLY useful even on PPC’s, let alone PC’s.)
This means eliminating server-like functionality support on a PC (or even a Pocket PC) connected to the Net via a PPC PE device certainly isn’t welcome. Therefore, it’s a very important question whether a connected Windows Mobile phone forwards all the incoming requests to the connected client, as was the case in pre-AKU3 times.
While Internet Sharing (that is, the new program that makes it possible to share mobile connections with BT PAN clients) doesn’t offer any kind of configurable port forwarding capabilities, unlike the built-in Windows XP Internet Connection Sharing (ICS) I’ve elaborated on several of my ICS-related articles, Microsoft – very wisely! – has paid special attention to properly implement this functionality.
When an AKU3 device shares its Internet connection (over USB, BT PAN and infrared if the given phone has the Wireless Modem / WModem applet), it puts the client to a DMZ (“DeMilitarized Zone”). Then, all incoming requests will be forwarded to the client. I’ve tested this with both playing RealOne streams over GPRS (on a client Pocket PC) and sending DCC files on IRC from client Pocket PC’s and desktop XP’s (to test the USB connection with the latter).
Note that when internet sharing is active, you won’t have server functionality on the phone itself, “only” on the connected client. This is much smaller a problem than the complete lack of using a DMZ (if Microsoft hadn’t implemented port forwarding via using DMZ); with the lack of DMZ’s, no server functionality would be accessible on the client at all. Of course, when you disconnect the client from internet sharing, on the phone, you will be able to use server-side functionality (listening to RealOne streams etc) again. It’s only when Internet Sharing is actively sharing the connection that all incoming connections are auto-forwarded to the client that uses the phone as a modem.
I’ve also tested the DMZ in “leaked” (XDA-Developers) ROM versions (for the Himalaya, Wizard and Universal – click the links for more info). DMZ works with them too via both USB and BT PAN.
1.4 Convenience issues because of the changes in the Bluetooth networking approach
In addition to the above-explained difference in using Windows Mobile-based phones as modems to access the Net, there are some new convenience issues you must be aware of when using AKU3 via Bluetooth (but not via infrared / USB ). These can be pretty annoying if you’ve always liked the “you don’t need to touch the modem at all when you want to dial in to the Internet” in operating system versions prior to AKU3.
Every cloud has a silver lining, though. In some respects, the new, AKU3 connection model is far easier to use through USB. I’ll elaborate on this in the last subsection.
1.4.1 BT convenience issue one: Firing up Network Sharing on the phone
First, let’s have a look at how the old model (prior to AKU3) supported dialing in the Internet via Bluetooth.
When the PPC PE device is used through the standard (pre-AKU3.0) DUN profile, you don’t need to do anything to the PPC. You only start dialing on the client device and it just connects to the Net. (Of course, if you use it via USB or infrared, you must explicitly enable these modes on the Pocket PC in either Modem Link or Wireless Modem, if the latter exists.)
With the new model and the new Internet Sharing, however, the situation is vastly different (again, only when using Bluetooth - with USB / infrared, the situation remained the same as has been before.) You must power on the PDA, fire up Internet Sharing and start the connection by clicking “Connect”. This means a LOT of additional, manual powering up / clicking you didn’t need to do in pre-AKU 3.0 times.
Unfortunately, you must repeat this (power on the phone, go to Internet Sharing and click Connect) every time you’d like to reconnect to the Net on your notebook or other (PAN-compatible) Bluetooth client devices. That is, the “Connected” state changes to an unconnected one as soon as you disconnect the client. In this respect (too), the new model is a bit more inconvenient to use than the old DUN-based one.
1.4.2 BT convenience issue two: Excess clicking needed on the client that uses an AKU3 Windows Mobile via Bluetooth
As BT PAN connections are not treated the same way as BT DUN connections, on clients that use BT PAN to connect to the Net, you
• generally need more clicks to establish the connection, let it be either the desktop Windows or Windows Mobile clients. (Under mobile/desktop Linux clients, in general, you don’t need more clicks.)
• can’t rely on the auto-connect features of the operating systems under desktop and mobile Windows client OS’es. (Unlike under mobile/desktop Linux.)
For example, on desktop Windows, instead of either relying on the auto-connection OR just putting a dial-up link on your desktop (one double-click to start it and, then, just a single click on Dial ), you must (with Widcomm-based clients) click the My Bluetooth Places icon, then, the Entire Bluetooth Neighborhood icon, then, the given device and, finally, the BT PAN icon for the BT PAN connection to be established. (All clicks must be double-clicks!)
(A quick tip: you can reduce the number of clicks needed to fire up the Net connection. To do this, start up Explorer, go to My Bluetooth Places / Entire Bluetooth Neighborhood / the given device and right-click the BT PAN icon; select “Create shortcut”. It will be created – not on the desktop but under My Bluetooth Places. Now, if you just double-click My Bluetooth Places on your desktop, you’ll be able to double-click the new shortcut icon in there as can be seen in here.)
On (Widcomm-based) Windows Mobile clients, you must click the Bluetooth icon on the Today screen, click Bluetooth Manager and double-click the BT PAN icon of the given modem. All this instead of, say, just relying on the auto-connect feature of “real” BT DUN connections. Pretty annoying, eh?
1.4.3 The good: USB is more convenient than before!
In pre-AKU3 operating systems, you must
install the USB modem driver for the phone (and hunt for it if you don’t have it – for your convenience, I’ve mirrored it, along with the HTC dialer app, here should you ever need it) upon the first connection. This is unlike with the pre-AKU3 case, where you must supply USBMDM.INF to it when it prompts for a “Generic Serial” device. In AKU3, upon the first connection, the “Windows Mobile-based Internet Sharing Device” USB driver will be automatically installed by Windows XP
Note that, for this to work, you'll need the latest, 4.5beta2 ActiveSync on your desktop. With earlier AS versions (I've tested this with version 4.1 - it prompted me for the driver for "PocketPC USB Sync"), the driver isn't included (and the Windows auto-update database doesn't contain it either).
the same stands for the HTC dialer (USBModem_Dialer.exe) – you won’t need it at all in AKU3, unlike in previous OS versions. Upon firing up Internet Sharing, starting the USB mode and connecting the USB cable, the client desktop PC will automatically notice the new network. No desktop-side clicking is necessary.
That is, the new, USB-based connectivity schema is far better and more covenient than the old one.
1.5 My wishes…
While the current model is compatible with the majority of desktop Windows-based clients, clients using other operating systems may encounter problems or full inability to access the Net via AKU3 devices because of the…
lack of infrared support in Internet Sharing (as opposed to Modem Link), if the given model doesn’t contain Wireless Modem (or something similar)
lack of USB support on the client side (the case with all non-desktop (mobile) clients (show me a Windows Mobile, Symbian or mobile Linux device with USB host that is also able to use Internet Sharing via USB!) and even Linux or other operating systems on the desktop)
lack of client-side BT PAN support
Therefore, my recommendation for Microsoft is bringing back the DUN profile in addition to keeping the new BT PAN profile. Both have their place under the sun. Use BT PAN with clients that do support it and use the “fallback” DUN with clients that don’t support it or need convenience (see the previous, 1.4 section on the convenience issues on both the client and the phone of the new, PAN-based model).
I also have some other remarks that would make the new approach far more flexible and usable with very little additional coding need. I really hope the excellent folks at Microsoft reimplement DUN in subsequent AKU upgrades and also consider extending the Network Sharing functionality as explained in the following two subsection so that it is able to share any kind of network connections, not only mobile phone-based ones and, at last, offers almost real BT PAN, not only for accessing the Net.
1.5.1 Let’s share any kind of connections, not just mobile phone-based ones!
Internet Sharing could be made MUCH more useful by letting for sharing any kind of connection, not just the ones present in the Connections. Right now, it’s not possible to share for example Wi-Fi connections (a lot of people are asking for Wi-Fi connection sharing all the time; I answer at least one every week). This is a really big problem and could be easily fixed by, for example, just eliminating (or making it optional: if the user only wants to share a given connection and not the current one) the drop-down “Network Connection” menu in the new Internet Sharing applet and just share the current Internet connection, independent of its type.
1.5.2. What do you need to know about the new BT PAN? Can you use it was a REAL Bluetooth PAN network for, say, messaging and playing?
The answer is YES, which is very good news for all MS BT stack users that have long been longing for BT PAN support for its excellent messaging / playing capabilities. Please DO check out my BT PAN-related articles on all these questions; for example, on 4Talk (chat – see this), MS Portrait (chat, file sending) or BT PAN-compatible games (please see the Multiplayer Pocket Game Bible for some examples).
This all means the BT PAN network in AKU3 is a real network as it uses local IP’s (as opposed to DUN) in the network. This means all LAN-based, BT PAN-friendly applications / games work with it as can also be seen in the screenshot I’ve taken with the great multiplayer game Gold Rush (which worked just great over the AKU3 BT PAN – something not possible with pre-AKU3 devices). That is, the basics are already there: it’s just the interface that could be (slightly) modified by Microsoft, of which I’ll elaborate right now.
Unfortunately, the BT PAN support, while it, basically, works, is a bit more limited in AKU3 than in Widcomm-based Pocket PC’s:
You MUST connect to the internet in order to be able to create a BT PAN network between two devices. If you don’t have an Internet connection (or you, for example, supply a connection connecting to a bad APN name), BT PAN won’t work either.
Second, not as important as above, only one client can connect to an AKU3 device, unlike with the Widcomm BT stack, where the number of connecting clients isn’t restricted
AKU3 lacks the BT PAN client mode (so that a AKU3+ device can (also) join BT PAN’s, not (only) host them). This, along with the second bullet, aren’t very important though as can be very easily circumvented (and it’s in very rare cases that you would need a BT PAN network with more than two devices in it – some mass BT PAN multiplayer games like Gold Rush.)
All in all, while the BT PAN, in some respects, does what it’s supposed to (the internet connection sharing does work as expected, except for the convenience and compatibility issues I’ve already elaborated on), the BT PAN support itself could be made independent of “plain” connection sharing. First, making the BT PAN capabilities independent of connection sharing (that is, decouple PAN from Internet Sharing or, at least, make it available for “generic”, non-sharing purposes) would be very nice. The ability to have BT PAN between devices without an actual Internet connection would really enhance the functionality of the BT PAN as there are a LOT of tasks that can be done via local, internet connection-less networks and require no (in cases, non-existing or very expensive) Internet connection. Hope Microsoft also considers this for future AKU versions.
2. Comparison chart
The following chart (only for advanced users / geeks!) compares AKU 3+, pre-AKU3 and Widcomm / Broadcom-based Pocket PC’s (the latter may also have AKU3 – as Bluetooth is not that of Microsoft, with them, the exact AKU version isn’t important) in three areas:
in how they support all (not just plain Internet sharing) the capabilities of BT PAN: can you connect to a given BT PAN server with more than one clients at a time; can you use the given implementation as both a client and a server, is the given BT PAN a “real” PAN network and, finally, is any kind of Internet connection needed for the BT PAN network to work. Note that I’ve already elaborated on all these questions earlier.
dialup-related: how dial-up (accessing the Net from other devices) is done (via DUN or BT PAN); is it possible to use the device as an infrared modem, can you run server-like apps on the client and, finally, is any manual intervention needed for (re)connection (again, in pre-AKU3 times, nope via Bluetooth DUN – this was also a real strength of the DUN-based approach)
internet sharing-related: what protocols work over the sharing (at this, AKU3 really excels as it shares EVERYTHING, as opposed to third-party, non-OS-level solutions used before as is also explained in “Can I share the Internet connection on my Pocket PC through Bluetooth/Wi-Fi? That is, can I make my Internet-connected Pocket PC into some kind of a Wi-Fi/Bluetooth Access Point?”) and the class of collections that can be shared (in this, AKU3’s solution is definitely inferior to “real” ICS, which can share any kind of connection including Wi-Fi, not only mobile phone-based ones.)
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
If you can’t see the above chart, the chart is here as HTML
3. Verdict
While the new model exhibits some serious compatibility (and, with Bluetooth connections, convenience) problems, I consider it a very good step in the right direction.
I do hope Microsoft reimplements Bluetooth DUN (which isn't at all complicated because it did exist in previous operating system versions - they will only need to insert back the code used in there) and, preferably, infrared connection in the new Internet Sharing program or, at least, forces Pocket PC manufacturers to supply the Wireless Modem program with all their AKU3 ROM upgrades (also on models that, traditionally, didn't have it - for example, the Wizard) / new models so that infrared dial-in still remains possible.
Also, I hope they go on extending the functionality of Bluetooth PAN so that the Microsoft BT stack, at least BT PAN-wise, becomes a decent alternative to the Widcomm BT stack.
4. Other, recommended links
Use your Pocket PC Phone Edition as a modem for your other Pocket PC's! - a full tutorial - (this explains the pre-AKU3 case)
Can I share the Internet connection on my Pocket PC through Bluetooth/Wi-Fi? That is, can I make my Internet-connected Pocket PC into some kind of a Wi-Fi/Bluetooth Access Point? - this article explains how ICS must be done on pre-AKU3 devices.
UPDATE (11/13/2006): in the meantime, I've scrutinized whether you can "hack" DUN support to the AKU3 MS BT stack with "simple" registry hacking.
Unfortunately, it doesn't seem to be possible for the following reasons:
The subkeys under [HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Bluetooth\ Services] isn't actively used (and can even be deleted) when clients discover the services of a MS BT stack device.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Bluetooth\SYS\COD, which is a dword with the value 00120114 in AKU3 and 00100114 in pre-AKU3 only describe for clients what kind of a BT device is (is it a phone? A PDA? A desktop computer? A headset? Stereo headphones?), and not the services it offers. This means using the old 00100114 as its value in AKU3 won't help either.
It seems the list of the provided services are returned from the BT-related DLL files, which can't be hacked easily.
Feel free to chime in and to point out if you know a way of (re-)enabling the DUN profile under WM5 (without, preferably, getting rid of BT PAN!)
Discussions of this article: HowardForums
Any idea what has to be done to allow linux to use the AKU 3.3 rom's via usb? Theoretically PAND will work under linux but I could never get it to work.
Connecting Fedora Core 6 to the Internet using HTC P3600 Compressed Tutorial
Of course that it will work on any Linux ! Of course that with any WM5 AKU 3 device !
The stages are as simple as 1, 2, 3 !
1. Go (on the WM5 AKU 3.x device) to Internet Sharing, select your network, select BT-PAN profice and click Connect.
2. Open a console on Linux (root) and start writing:
root# pand -s -r PANU
root# pand -Q10
(optional, to test) root# pand -l
root# ifconfig bnep0 192.168.0.2
root# route add default gw 192.168.0.1
root# echo "nameserver 194.102.255.2" > /tmp/resolv.conf.bnep0
3. READY !
Notes upon the implied commands:
a) pand -s -r PANU // starts the PAN daemon (server) in the PANU mode and puts it to listening mode
b) pand -Q10 // performs a 10sec search for the HCI address of a PANU and connects to it
c) pand -l // view if you have connection : bnep0 00:17:83:01:38:6B PANU - in my case
d) ifconfig bnep0 192.168.0.2 // sets the IP of the virtual network interface. Please do veryfy on your PDA that the PAN interface has 192.168.0.1 already seted up. Of course that you can use other IPs, but stay in the same network !
e) route add default gw 192.168.0.1 // sets the WM5 device as the gateway for IP packets. Certainly that you can change the address for originality, but remember that it must be the IP of the PAN interface on the WM5 device !
f) echo "nameserver 194.102.255.2" > /tmp/resolv.conf.bnep0 // assigns a DNS server to be queried. Of course that you can use any DNS IP that you want.
g) REMEMBER: On Fedora, IP forward is already activated. On Debian it is not. Thus, before command number e, you must activate it by typing "echo 1 > /proc/sys/net/ipv4/ip_forward" (without the quotes).
Cheers !
PAN on OS X
It now works in OS X as of 10.4.9! I tested on both my Dulie G5 and my MacBookPro.
Here are the steps I took to make it happen, pretty simple. But it took some playing around to get it.
-----------
Open the Bluetooth Preference Pane, Click Devices, select your device and click Configure.
It will scan your device; Click 'Continue'
It should then display the Conclusion screen that will contain "Use as personal area network"
Click Quit
Click Settings and be sure "Show Bluetooth status in the menu bar" is Checked.
On your WM5 device connect your network using the Internet Sharing application.
Back on your Mac go to the Bluetooth icon in the menu bar, click and select "Join Network on <devicename>"
Your on! Oddly on my Macbook it shows under the Network prefs as a Ethernet Adaptor, but on my G5 it shows as Bluetooth PDA.
Thanks for the update Apple!!
Great! Will post an update to everywhere!
moucha said:
Of course that it will work on any Linux ! Of course that with any WM5 AKU 3 device !
The stages are as simple as 1, 2, 3 !
1. Go (on the WM5 AKU 3.x device) to Internet Sharing, select your network, select BT-PAN profice and click Connect.
2. Open a console on Linux (root) and start writing:
root# pand -s -r PANU
root# pand -Q10
(optional, to test) root# pand -l
root# ifconfig bnep0 192.168.0.2
root# route add default gw 192.168.0.1
root# echo "nameserver 194.102.255.2" > /tmp/resolv.conf.bnep0
3. READY !
Notes upon the implied commands:
a) pand -s -r PANU // starts the PAN daemon (server) in the PANU mode and puts it to listening mode
b) pand -Q10 // performs a 10sec search for the HCI address of a PANU and connects to it
c) pand -l // view if you have connection : bnep0 00:17:83:01:38:6B PANU - in my case
d) ifconfig bnep0 192.168.0.2 // sets the IP of the virtual network interface. Please do veryfy on your PDA that the PAN interface has 192.168.0.1 already seted up. Of course that you can use other IPs, but stay in the same network !
e) route add default gw 192.168.0.1 // sets the WM5 device as the gateway for IP packets. Certainly that you can change the address for originality, but remember that it must be the IP of the PAN interface on the WM5 device !
f) echo "nameserver 194.102.255.2" > /tmp/resolv.conf.bnep0 // assigns a DNS server to be queried. Of course that you can use any DNS IP that you want.
g) REMEMBER: On Fedora, IP forward is already activated. On Debian it is not. Thus, before command number e, you must activate it by typing "echo 1 > /proc/sys/net/ipv4/ip_forward" (without the quotes).
Cheers !
Click to expand...
Click to collapse
What has to be done different to use the direct usb connection under linux? I run suse and was able to get an ip address but could never get it to go to a website.
Thankyou!
Just wanted to post a comment saying thankyou so much for this guide - it's amazing, so detailed and very, very useful!!!
Much appreciated!
I send that - I'm just about to go to AKU3 and use the USB connection method for modem use. Excellent stuff!
USB No worky
I'm having some really strange functionality with the internet sharing on AKU3.5 that I've built and installed on my Verizon XV6700.
I have everything working 100% from the phone side. Picture and video messaging. Internet browsing checking email you name it.
When I fire up Internet Sharing with the Bluetooth PAN option I can connect with my laptop and I'm actually posting this message over Internet Sharing via Bluetooth PAN. But when I use USB no worky.
I'm running Windows Vista Ultimate (so I have the latest and greatest Active Sync). When I plug in Windows DOES detect it as a network card. For the longest time it was only getting a 169.x.x.x IP so it was like it wasn't fining anyone home on the other end. After several iterations of setting my USB from Serial to RNDIS and back again and editing settings in the RNDIS adapter in connections I now have an IP getting correctly configured.
When I was not getting an IP Windows would say that I had "Limited Connectivity" on the network card. Now that there is a good set of IP's I get "Local Only" access. The phone says it has 192.168.1.1 my computer has 192.168.1.100 (its normal local address) but it does have 192.168.1.1 setup as its gateway. All seems correct in there. Essentially it seems like the phone is a firewall and someone forgot to put the MASQ rule in there. Its talking to the phone it just seems like the phone isn't routing the connections outside. Which seems REALLY odd being that BT PAN works so well.
Any insight would be greatly appreciated.
Figures... Right after I post this I figure it out. I've been workin on this for about 2 days now...
When going to start -> settings -> connections -> wifi
then going to the network adapters tab.
I noticed that Bluetooth PAN was in there. It had a use specific IP setting in it to 192.168.0.1 NETMASK 255.255.255.0. My RNDIS adapter was configured to use auto assigned IP's. I just changed the RNDIS to use the same specific IP settings that the BT PAN adapter did and plug and chug.
Click bang whirr and we're up and running!
Speed tests seem to be a little faster with the USB cable. Wonder if the BT connection is a bottleneck with respect to the EVDO connection.
Anyway hope this helps someone....
Problem fixed; see http://forum.xda-developers.com/showthread.php?p=1400709
Menneisyys said:
Unfortunately, the BT PAN support, while it, basically, works, is a bit more limited in AKU3 than in Widcomm-based Pocket PC’s:
You MUST connect to the internet in order to be able to create a BT PAN network between two devices. If you don’t have an Internet connection (or you, for example, supply a connection connecting to a bad APN name), BT PAN won’t work either.
Second, not as important as above, only one client can connect to an AKU3 device, unlike with the Widcomm BT stack, where the number of connecting clients isn’t restricted
AKU3 lacks the BT PAN client mode (so that a AKU3+ device can (also) join BT PAN’s, not (only) host them). This, along with the second bullet, aren’t very important though as can be very easily circumvented (and it’s in very rare cases that you would need a BT PAN network with more than two devices in it – some mass BT PAN multiplayer games like Gold Rush.)
Click to expand...
Click to collapse
sorry for the (probably dumb) question but could you elaborate a little bit on the possible workaround to connect an aku3 device as a BT PAN client to a BT PAN server on another aku3 device ?
Here is the scenario I am interested in : having a HTC Universal (no sim card) connected to the internet thanks to another aku3 device. This other device (probably a smaller device like a HTC Wizard) is connected to the internet through its wan connection and keeps its full internet functionalities.
Thanks !!!
pierro78 said:
sorry for the (probably dumb) question but could you elaborate a little bit on the possible workaround to connect an aku3 device as a BT PAN client to a BT PAN server on another aku3 device ?
Here is the scenario I am interested in : having a HTC Universal (no sim card) connected to the internet thanks to another aku3 device. This other device (probably a smaller device like a HTC Wizard) is connected to the internet through its wan connection and keeps its full internet functionalities.
Thanks !!!
Click to expand...
Click to collapse
I referred to installing the (hacked) Widcomm BT stack (see http://www.pocketpcmag.com/blogs/index.php?blog=3&p=1649&more=1&c=1&tb=1&pb=1 ), which is available for many (but not all!) MS BT stack-based models.
Thanks Menneisys for your answer.
So another (probably also dumb) question :
If I buy an Universal and just want to use it as a PDA connected to the internet through, say, my Wizard. Is there a reliable (& not too hard) way so my Wizard also has full internet features enabled at the same time ??
Thanks again !!!!
PS :
I could go for the N800 which has BT PAN client already integrated but I'd like a keyboard and MS Exchange access ...
pierro78 said:
Thanks Menneisys for your answer.
So another (probably also dumb) question :
If I buy an Universal and just want to use it as a PDA connected to the internet through, say, my Wizard. Is there a reliable (& not too hard) way so my Wizard also has full internet features enabled at the same time ??
Thanks again !!!!
PS :
I could go for the N800 which has BT PAN client already integrated but I'd like a keyboard and MS Exchange access ...
Click to expand...
Click to collapse
So, you need to use Internet Sharing on the Wizard, so that you can also access the Net on it? Then, install the Widcomm hack on the Universal. See http://forum.xda-developers.com/showthread.php?p=1115973
Menneisyys said:
Then, install the Widcomm hack on the Universal. See http://forum.xda-developers.com/showthread.php?p=1115973
Click to expand...
Click to collapse
Awesome, I have missed this thread and didn't know the widcomm hack was so advanced on the Universal
Thanks a bunch !!!!
PS :
Now I just need to go on ebay and buy myself a cheap Universal ...
pierro78 said:
Awesome, I have missed this thread
Click to expand...
Click to collapse
Just make sure you follow all my articles - I've also advertised this thread in several of them

Another GREAT breakthrough in Windows Mobile networking: BT PAN server w/ MS BT stack

I’ve elaborated on the approach of WM5 AKU3 / WM6 when it comes to internet sharing and dial-up (modem) functionality via Bluetooth (BT). In there, I’ve told the Microsoft folks to decouple at least the server (Network Access Point, NAP) functionality of their BT PAN (Personal Area Network) implementation so that you can connect to a Windows Mobile phone running the MS BT stack even when it doesn’t have an active (mobile) net connection. Again, as with the other hacks of late (true DUN and true Wi-Fi access hack) it was hackers and programmers that implemented this; namely, XDA-Developers user mrpotter, in THIS thread.
The hack is really useful if you need BT PAN functionality. And, you will need it in several scenarios – for example, remote controlling a media player on your desktop PC; remotely accessing its desktop; playing multiplayer games; chatting, speaking over Bluetooth etc. Now that the BT PAN functionality is decoupled from the Internet dial-up access, you can use it on phones that don’t have the latter (because they don’t have a phone card inside, you haven’t subscribed to a cellular Internet plan or don’t want to use any to keep costs down), which is pretty much similar to the case of the Widcomm BT stack. (The Widcomm BT stack has always been vastly superior to the MS one but, alas, almost all current models contain the latter and there are pretty few models that you can “hack” the Widcomm BT stack on.
Compatibility
It’s compatible with all WM6 MS Smartphone (WM Standard) and Pocket PC Phone Edition (WM Professional) devices. It seems it is NOT compatible with WM5 AKU3 devices (that is, late WM5 devices with already Internet Sharing on them). It’s not compatible with non-phone Pocket PC’s either.
Installation, Usage, Hacks
Just download the wm6btpan.exe file from the home XDA-Dev thread (EXE file mirrored HERE), put it anywhere on your phone and start it. After this, any BT PAN-capable client will be able to connect to it, assuming you’ve configured them to receive static IP’s until you reset your phone. (Note that you’ll be able to connect to it even when it’s suspended.)
Doing the latter (that is, giving clients static IP’s) isn’t very complicated. I only explain this for Widcomm-based Pocket PC clients. On post-WM2003 ones (that is, WM2003SE / WM5 / WM6),
Go to Settings / Connections / Network Cards (on WM2003, Settings / Connections / Connections / Advanced / Network Card and, on the latest WM5 AKU3 / WM6 versions, Wi-Fi instead of Network Cards) and click the item in the list that has the word “PAN” in it (WM2003 iPAQ 2210 screenshot, WM5 HP iPAQ hx4700 screenshot). Now, select the “Use specific IP address” radio button and fill in the “IP address” field with an address; for example, 192.168.0.2 or 192.168.0.3. (iPAQ 2210 screenshot). Click the second row (Subnet mask); it’ll be auto-filled as in here (h2210) and here (hx4700). Now, you can connect to your phone.
Note that, should you want to connect more than two devices together (for example, in order to play mass BT PAN-compliant multiplayer games like Great Gold Rush), you will also need to set HKEY_LOCAL_MACHINE\ Comm\BTPAN1\ Parms\ MaxConnections to a higher value; for example, 10. I’ve provided a registry import file accessible HERE for your convenience. I’ve tested the reliability and speed of the BT PAN networks using multiple connections (via Great Gold Rush); encountered no problems, neither with the HTC Wizard (running mfrazzz’s XDA Mobile 6 Release 3) nor the HTC Universal (running WM6) acting as the server for two Widcomm BT PAN clients (the hx4700 and the h2210).
BT PAN client functionality
There are some posts (for example, HERE) asking whether the Registry hacks listed in THIS Registry import file would be sufficient for the phone to be able to connect to PAN networks as clients. The answer is, unfortunately, no. (A quick warning: the above-linked post contains a ServiceId, which might be different in your device (so was in mine). Should you overwrite your original one, you won’t be able to connect to your PAN service any more – that is, only import the file I’ve provided, NOT the one in the linked post.)
Restrictions
Let me present you a list of the restrictions as a summary and quick recap:
there are no dynamic client IP’s, as opposed to the case of using Internet Sharing (which does use DHCP on the server side). That is, if a client connects to a MS BT stack-based BT PAN server, the client must be explicitly defined to use a static IP address. Fortunately, this is a one-time configuration only, requires few taps and has no effect on other ways of connections (as the different network adapters have entirely separate and disjunct IP configurations).
it can only be run on PPC PE and Smartphone devices – no phoneless but MS BT stack-based models like the Dell Axim x51v (or the x50v with the WM5 upgrade) are supported. (Time to install the Widcomm BT stack hack if you haven’t already done so.)
it seems it’s only compatible with WM6 – it refused to start on my official, non-cooked (!) T-Mobile WM5 AKU3.3 Wizard. With mfrazzz’s XDA Mobile 6 Release 3, it worked flawlessly.
Final words
It’s just great! If you’ve ever wanted to use BT PAN, now you can – assuming the other device(s) you try to connect to (all) have BT PAN client capabilities.

Another GREAT breakthrough in Windows Mobile networking: BT PAN server w/ MS BT stack

I’ve elaborated on the approach of WM5 AKU3 / WM6 when it comes to internet sharing and dial-up (modem) functionality via Bluetooth (BT). In there, I’ve told the Microsoft folks to decouple at least the server (Network Access Point, NAP) functionality of their BT PAN (Personal Area Network) implementation so that you can connect to a Windows Mobile phone running the MS BT stack even when it doesn’t have an active (mobile) net connection. Again, as with the other hacks of late (true DUN and true Wi-Fi access hack) it was hackers and programmers that implemented this; namely, XDA-Developers user mrpotter, in THIS thread.
The hack is really useful if you need BT PAN functionality. And, you will need it in several scenarios – for example, remote controlling a media player on your desktop PC; remotely accessing its desktop; playing multiplayer games; chatting, speaking over Bluetooth etc. Now that the BT PAN functionality is decoupled from the Internet dial-up access, you can use it on phones that don’t have the latter (because they don’t have a phone card inside, you haven’t subscribed to a cellular Internet plan or don’t want to use any to keep costs down), which is pretty much similar to the case of the Widcomm BT stack. (The Widcomm BT stack has always been vastly superior to the MS one but, alas, almost all current models contain the latter and there are pretty few models that you can “hack” the Widcomm BT stack on.
Compatibility
It’s compatible with all WM6 MS Smartphone (WM Standard) and Pocket PC Phone Edition (WM Professional) devices. It seems it is NOT compatible with WM5 AKU3 devices (that is, late WM5 devices with already Internet Sharing on them). It’s not compatible with non-phone Pocket PC’s either.
Installation, Usage, Hacks
Just download the wm6btpan.exe file from the home XDA-Dev thread (EXE file mirrored HERE), put it anywhere on your phone and start it. After this, any BT PAN-capable client will be able to connect to it, assuming you’ve configured them to receive static IP’s until you reset your phone. (Note that you’ll be able to connect to it even when it’s suspended.)
Doing the latter (that is, giving clients static IP’s) isn’t very complicated. I only explain this for Widcomm-based Pocket PC clients. On post-WM2003 ones (that is, WM2003SE / WM5 / WM6),
Go to Settings / Connections / Network Cards (on WM2003, Settings / Connections / Connections / Advanced / Network Card and, on the latest WM5 AKU3 / WM6 versions, Wi-Fi instead of Network Cards) and click the item in the list that has the word “PAN” in it (WM2003 iPAQ 2210 screenshot, WM5 HP iPAQ hx4700 screenshot). Now, select the “Use specific IP address” radio button and fill in the “IP address” field with an address; for example, 192.168.0.2 or 192.168.0.3. (iPAQ 2210 screenshot). Click the second row (Subnet mask); it’ll be auto-filled as in here (h2210) and here (hx4700). Now, you can connect to your phone.
Note that, should you want to connect more than two devices together (for example, in order to play mass BT PAN-compliant multiplayer games like Great Gold Rush), you will also need to set HKEY_LOCAL_MACHINE\ Comm\BTPAN1\ Parms\ MaxConnections to a higher value; for example, 10. I’ve provided a registry import file accessible HERE for your convenience. I’ve tested the reliability and speed of the BT PAN networks using multiple connections (via Great Gold Rush); encountered no problems, neither with the HTC Wizard (running mfrazzz’s XDA Mobile 6 Release 3) nor the HTC Universal (running WM6) acting as the server for two Widcomm BT PAN clients (the hx4700 and the h2210).
BT PAN client functionality
There are some posts (for example, HERE) asking whether the Registry hacks listed in THIS Registry import file would be sufficient for the phone to be able to connect to PAN networks as clients. The answer is, unfortunately, no. (A quick warning: the above-linked post contains a ServiceId, which might be different in your device (so was in mine). Should you overwrite your original one, you won’t be able to connect to your PAN service any more – that is, only import the file I’ve provided, NOT the one in the linked post.)
Restrictions
Let me present you a list of the restrictions as a summary and quick recap:
there are no dynamic client IP’s, as opposed to the case of using Internet Sharing (which does use DHCP on the server side). That is, if a client connects to a MS BT stack-based BT PAN server, the client must be explicitly defined to use a static IP address. Fortunately, this is a one-time configuration only, requires few taps and has no effect on other ways of connections (as the different network adapters have entirely separate and disjunct IP configurations).
it can only be run on PPC PE and Smartphone devices – no phoneless but MS BT stack-based models like the Dell Axim x51v (or the x50v with the WM5 upgrade) are supported. (Time to install the Widcomm BT stack hack if you haven’t already done so.)
it seems it’s only compatible with WM6 – it refused to start on my official, non-cooked (!) T-Mobile WM5 AKU3.3 Wizard. With mfrazzz’s XDA Mobile 6 Release 3, it worked flawlessly.
Final words
It’s just great! If you’ve ever wanted to use BT PAN, now you can – assuming the other device(s) you try to connect to (all) have BT PAN client capabilities.
Doesn't work on wizard WM6
ROM version: 10.1.0.811 WWE
ROM date: 8/11/06
Radio Version: 02.25.11
Protocol version: 4.1.13.12
Hi. My HTC 8125, flashed as posted up there, doesn't start the wm6btpan application. I have used another wm6 ROM (sorry, didn't write down the ROM data) and a wm5 ROM, but none of them is able to start the application.
Is this application compatible with HTC 8125?.
By the way, The ROM version that I'm using seems to support PAN as a built-in feature.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
There you can see that three services are supported by the 8125: DUN, PAN and Voice Gateway
However, I'm unable to stablish a bluetooth PAN via this shortcut, either.
Do you have any idea? Thank you
Try flashing a newer WM6 ROM.
I think you may be on to something here... Cooking your own ROM or OEM cabs may be difficult for the inexperienced. So is identifying the proper content to import into the registry. Nevertheless, tweaked up geeks are also prone to making mistakes. We must especially avoid relying on knowledge of the available tools, resources, etc. without double checking the work of others. Something that worked for one device or associated ROM (official or not) may not work for another. Risk of frying your device is bad enough, but it is especially frustrating when it comes to something like the not having the correct ServiceID! It is not uncommon for the average poster to contribute something without providing sufficient detail. That could have been the information that you were needing. Always start troubleshooting with a clean testbed!
To make matters worse, I have noticed having become either too impatient, incapable of waiting, or both. We all hate how providers like AT&T have had ample time to release their (i607UCGI3) Official WM6 ROM and don't. It may not be worth complaining, but I need to regain the ability to tether my iPAQ/Laptop/GPS back to my handset. After lurking in plenty of the Samsung BlackJack SGH-i607 and HP iPAQ hx4705 forums (namely herekozhura's thread and here 'Blackjack WM6 update on At&t forums!!!') I can attest to the value of a "Do-it-yourself" mentatlity.
I still find myself having to go back to the Embedded portion of MSDN for more!
Menneisyys said:
BT PAN client functionality
There are some posts (for example, HERE) asking whether the Registry hacks listed in THIS Registry import file would be sufficient for the phone to be able to connect to PAN networks as clients. The answer is, unfortunately, no. (A quick warning: the above-linked post contains a ServiceId, which might be different in your device (so was in mine). Should you overwrite your original one, you won’t be able to connect to your PAN service any more – that is, only import the file I’ve provided, NOT the one in the linked post.)
Click to expand...
Click to collapse
I've been in the same boat some time with the hx4705 and the BlackJack, i've gotten it to pair and work for short periods of time in WM6 april i607UGB4.. the good news is someone claims to have i607UGI3 now on HoFo, i'm hoping to be able to walk them through a ROM extraction to get it available to us.
PAN Client working
Menneisyys said:
BT PAN client functionality
There are some posts (for example, HERE) asking whether the Registry hacks listed in THIS Registry import file would be sufficient for the phone to be able to connect to PAN networks as clients. The answer is, unfortunately, no. (A quick warning: the above-linked post contains a ServiceId, which might be different in your device (so was in mine). Should you overwrite your original one, you won’t be able to connect to your PAN service any more – that is, only import the file I’ve provided, NOT the one in the linked post.)
Click to expand...
Click to collapse
I get this to work on Windows XP by using ICS. I can use DHCP on the WM6 client don't even need to setup ip address since ICS takes care of it. Browsing internet w/ Pocket IE is working by this PANU connection.
Steps:
1. Here is the registry on my Tytn II before and after:
Before:
[HKEY_LOCAL_MACHINE\Comm\BTPAN1\Parms]
"PublishSdpOnBoot"=dword:1
"MaxConnections"=dword:1
"Description"="Bluetooth NAP Service"
"FriendlyName"="Network Access Point"
"ServiceId"="{00001116-0000-1000-8000-00805f9b34fb}"
"AdapterType"="NAP"
"ProtocolsToBindTo"=multi_sz:"NOT", "NDISUIO"
"AcceptConnections"=dword:1
"ConnectionTimeout"=dword:7530
"BusType"=dword:0
"BusNumber"=dword:0
After:
[HKEY_LOCAL_MACHINE\Comm\BTPAN1\Parms]
"PublishSdpOnBoot"=dword:1
"MaxConnections"=dword:1
"Description"="Bluetooth NAP Service"
"FriendlyName"="Network Access Point"
"ServiceId"="{00001115-0000-1000-8000-00805f9b34fb}"
"AdapterType"="PANU"
"ProtocolsToBindTo"=multi_sz:"NOT"
"AcceptConnections"=dword:1
"ConnectionTimeout"=dword:7530
"BusType"=dword:0
"BusNumber"=dword:0
2. Run the "WM6BTPAN.exe" which can be found here: http://forum.xda-developers.com/showthread.php?t=335125&highlight=PANU
3. On Windows, enable ICS (you will see the drop-down menu if you have more than one selection)
4. Then create the PAN connection thru Windows and you are good to go.
The next questions are:
1. How do we initiate the connections thru WM instead of from PC?
2. How can we make both PANU and NAP co-exist on WM? WM6's ICS require BTPAN1 to be set as NAP in order to work. I create a similar registy entries as [HKEY_LOCAL_MACHINE\Comm\BTPANU1] but does not seem to work.
jackleung said:
The next questions are:
1. How do we initiate the connections thru WM instead of from PC?
Click to expand...
Click to collapse
That's the good question. I can create a network PAN with this software, but the ppc doesn't seem to see this connection as a connection for internet for instance (no icon appears instead of 3G or GPRS as we have when we use the wifi).
How can we resolve this big problem ?
Thank's
yx37 said:
That's the good question. I can create a network PAN with this software, but the ppc doesn't seem to see this connection as a connection for internet for instance (no icon appears instead of 3G or GPRS as we have when we use the wifi).
How can we resolve this big problem ?
Thank's
Click to expand...
Click to collapse
I've the same problem, the bluetooth interface perfectly works, I tested it using vxUtils, but the pda can't recognize it as an internet connection and the programs like internet explorer try to start a gprs connection. I eliminated the gprs connection from the connection manager but the result is "no available internet connection".
I've no idea how to resolve this problem. Someone knowns how?
Hello and thanx for great h4ck, it works for me, well, problem is, i can only initiate connection from my PC using double-click on my PAN adapt. in network connections, it connects like a charm and everything works, PC to PPC and PPC to PC too. I can see PPC PANU Ad-Hoc network service/adapter form my PC
but cant see anything in BT service list in my PPC
any idea how to fix this? So that i can initiate connection from my PPC.
Hi all...
i downloaded wm6btpan and i copied in my storage card, but when i try to launch it it gives me a "text": 120 (and nothing else)
I used the rom found in a post here in the forum...i tryed al the two rom you posted in that thread, but i had the same answer
Now i use my HTC S310 with:
Windows Mobile 6.1
CE OS 5.2.1711 (Build 19202.2.3.0)
Blackdragon_860
Radio version 4.1.13.20_02.41.90
RIL Version 2.002
wm6.1?
any one found a solution for wm6.1 devices? this don't run on my xv6900 or maybe I'm missing something
Hey, I have found a solution for my Xperia X1 (WM6.1) which doesn't need the application to activate the BT PAN.
Code:
[HKEY_LOCAL_MACHINE\Software\Microsoft\Bluetooth\pan]
"ActivateOnBoot"=dword:1
I am new to Windows Mobile, but I'm just curious: why the mobile browsers don't see the connection? I've uploaded PocketPing on my device and it can ping the outside world.
Have You tried to make PAN connection? It's working?
I tried for many hours, but nothing worked.
Is there anyone which played multiplayer games on MS BT stack?
Yes, it works for me. But, again: it is only BT PAN server which is supported. You can only establish a connection from your PC dongle or another device which supports BT PAN client functionality.
So, will it then work with a BTAP?
Sorry, I don't understand what BTAP is
It's working
Wow, I have just tried this registry patch by jackleung, and now I can use my PC's Internet connection on my X1!
xvro said:
Sorry, I don't understand what BTAP is
Click to expand...
Click to collapse
BTAP = Bluetooth Access Point
If you can connect to your phone from BTAP side, it will work. Unfortunately, it won't work the other way round.
xvro said:
If you can connect to your phone from BTAP side, it will work. Unfortunately, it won't work the other way round.
Click to expand...
Click to collapse
Point-2-Multipoint sessions (and this is any Access Point, regardless of WLAN or BT) will only accept connections from client side.
What you are doing is peer-2-peer connections between a PC and a mobile phone, which is different in connection behaviour.
Thus, one cannot establish a session from the access point side, but only from the phone side (client).
Can you please explain, why it should not go the other way round (connecting from client to BTAP), when both parties are talking the same protocoll?

Categories

Resources