Bluetooth Developer FAQs
Updated 11/1/04
    What's new in BTAccess .Net?
Take a look at the .Net Architecture Review.
    All these versions are confusing, and you don't list my model.  What do I really need?
We know, it is pretty confusing (see our Compiler Page). The main thing to know is that our BTAccess products only work with particular versions of the Widcomm stack (we do not support any other stack such as the one from Socket Communications, Digicomm, or even Microsoft).  If you have one of the Widcomm stack versions we support, no matter what the model number or brand of your PDA, BTAccess will probably work.  As of today it works like this:

Widcomm v1.2 requires BTAccess Classic

Widcomm v1.3 on PocketPC 2002 requires BTAccess54

Widcomm v1.4 on PocketPC 2002 (a ROM upgrade) requires a special build we call "BTAccess54 for PPC02"

Widcomm v1.4 and up to v1.5 Build 2000 on PocketPC 2003 ("Windows Mobile") requires BTAccess Mobile

Widcomm v1.5 Build 2000 and later requires a special version of BTAccess Mobile called our "4700" version (because this stack first started appearing on the iPAQ h4700 PDA).

Widcomm v1.6 and later runs only on Windows Mobile 5 with .Net Compact Framework v2.0, and requires our BTAccessMobile v3.0 ("BTAccessWM5").

As new versions of the Widcomm stack come out, we will create a version of BTAccess that works with it if necessary (for example, v1.5 came out in September 2004 and BTAccess did not require any changes).

    What about supporting Microsoft's Bluetooth stack, or bluetooth on the desktop?
We are strongly considering making equivalent versions of BTAccess that work on top of Microsoft's PocketPC bluetooth stack, Microsoft's desktop bluetooth stack, and Widcomm's desktop bluetooth stack.   We are also looking at building a BTAccess for SmartPhone devices.  
    How can I turn the Bluetooth radio on and off?
Read the sad story of radio control.
    When the user turns the PDA off and on again I need to reconnect with the stack.  How can I know when this happens?
See this short article on using the CE Event Notification API.
    I've made a Bluetooth connection with SPPConnect, but when I call CreateFile the Bluetooth Manager still pops up.  How come?
The various Connect methods work in 2 steps.  Step 1 is to call something like SPPConnect.  You will get an immediate return code like BT_OK or BT_SVC_NOT_SUPPORTED that indicates whether the operation has "started" or not.  Just because you get BT_OK does NOT mean the connection has been finalized.  For example, the other device may pop up a message to its user to authorize your connection request.  Step 2 is that a few seconds later you will get a ConnStatus event (in .Net) or a BTMSG_CONNECTION_STATUS message (in C++) that tells you whether the connection was finally successful or not.

If you issue the CreateFile call after Step 1, there is no connection yet.  The stack will notice this and "helpfully" pop up its user interface so the user can select a device to connect to.  You must wait until Step 2 before calling CreateFile.  Then the stack (really, its virtual comport driver software) will know there's already a connection for this port and skip the user prompt screen.

    Will my older Bluetooth applications using BTAccess run automatically on PocketPC 2003 / Windows Mobile?
Probably not!  You'll most likely have to rebuild your application with the newer C++ compiler from Microsoft (embedded Visual C++ 4.0). 
Check out our Compiler Info page here.
  Can older serial-port applications use Bluetooth?
Yes, so-called "legacy" applications can use the Bluetooth wireless links as long as the user can configure the application to use the special COM7: or COM8: "virtual Bluetooth" ports.  The COM7: port is for accepting "inbound" serial connections, and COM8: is for initiating "outbound" serial connections.  The only difference between the two is which device initiates the serial connection over Bluetooth.  If you initiate the connection, use COM8:.  If some other device connects to you, use COM7:.  In either case the one port is used for normal serial communications in both directions.  In fact you can write a brand new "legacy application" to use the serial port (either in C++ or in eVB) and the app will work wirelessly over Bluetooth.
    How do I programatically launch one of the BTSuperPak utilities?
Check out source code examples in eVC++ and eVB.

 

  Why does BTAccess cost so much?
Think time, not money.  It took us many months to figure out all the nuances of the built-in Bluetooth stack SDK, and many weeks to figure out the .Net connection issues.  We've built all that knowledge into the BTAccess products, so it will take you only hours to become an expert.  Plus we charge about half what Widcomm charges for their more complicated SDK (plus we answer our tech support lines!).  No matter how much you charge for your time, that's a great savings.  And you can distribute your applications with BTAccess royalty-free, so you can recover your costs quickly by selling your BTAccess-equipped application to all of the 8 million iPAQ and other PDA users in the world!