Using Platform Builder remote tools over ActiveSync


Posted by: Sue Loh


This information is something I only personally discovered recently, and it has important implications for our application developer community!  For years I thought our “platman” remote tools (Remote Kernel Tracker, Call Profiler and Performance Monitor) were only usable on devices that had a KITL connection through Platform Builder.  Meaning I thought they were only usable by OEMs.  But it’s not true!  You do still need a copy of Platform Builder (you can download an eval version online but ultimately you end up having to buy it), but you can connect over ActiveSync to an off-the-shelf Windows Mobile device!  To me this is huge, because for YEARS now I’ve had to break the bad news to customers that there are no profiling tools available to Windows Mobile application developers.  It turns out I’m wrong.


Here’s how to do it!  I’ll use Kernel Tracker in my steps here for setting up the connection but all tools will work after you do this.



  1. Install Platform Builder

  2. Open Remote Kernel Tracker from the Tools or Target menu (depends on which version of Platform Builder you’re using)

  3. Cancel the “Select a Windows CE Device” dialog

  4. Go to Connection | Configure Windows CE Platform Manager…

  5. Select “Windows CE Default Platform” and click the “Add Device” button.  Name the new device “ActiveSync Device.”

  6. Select the new device and click the “Properties…” button.

  7. Set the Transport and Startup Server to ActiveSync.
    ActiveSync device platman settings

  8. Hit OK and close the Platform Manager Configuration window.

  9. Connect your device to ActiveSync.

  10. In Kernel Tracker, go to Connection | Connect to Device.  This time when it asks you what device to connect to, the ActiveSync Device will show up.
    Platman connection to ActiveSync device

  11. Select the ActiveSync Device and click OK.  Kernel Tracker will connect to your device!

Now, before you go spend a lot of time on it, I need to warn you:  I think there is a bug in Platform Builder 6.0 that makes this method not connect to Windows Mobile devices reliably.  It’s still worth a try, but if it doesn’t connect, then you might need to wait for some upcoming updates.  (No, I can’t promise when those will be available.)


UPDATE June 6, 2007:  The “updates” I was talking about were the Platform Builder 6 Service Pack 1, which is now available online.  (http://www.microsoft.com/downloads/details.aspx?FamilyId=BF0DC0E3-8575-4860-A8E3-290ADF242678&displaylang=en)  At the time I wrote this post I was helping someone with a Remote Call Profiler problem which seemed to be fixed by SP1.  It was Call Profiler specific however.  If your remote tools still won’t connect, it may take some troubleshooting; I’ll try to get a new post out about that soon.  Often it is a mismatch between the CPU/architecture reported by your BSP and what the tools are looking for.  Sometimes it’s an install error where the necessary files are missing from your PC.


UPDATE June 6, 2007: Nicolas Besson posted a similar message about configuring CoreCon remote tools (mine is about those that still use the older Platman transport).  http://nicolasbesson.blogspot.com/2007/06/windows-ce-60-remote-tools-over.html

Comments (11)

  1. jxy1101 says:

    oh… Sue.. LTK/CETK also uses this way to do the testing. 🙂

  2. ce_base says:

    I am sure this is a "DUH!" post to some people out there.  🙂  But I never knew until now I could do this, so I thought I should post it, in case other people don’t know.

    Sue

  3. jxy1101 says:

    Thanks for your posting and sharing… I enjoy these articles… 🙂

  4. Luca says:

    It is not necessary to buy Platform Builder: you can download embedded Visual C++ for free and use its remote tools: I grabbed the registry of my Windows Mobile device via USB ActiveSync that way…

  5. ce_base says:

    That’s true; as long as Embedded Visual C++ is out there you can use those remote tools to connect.  They’re older but should probably still work with today’s devices.

    Sue

  6. jpike says:

    Does this work only with Platform Builder 6 or can you use PB 5?

  7. shanet@microsoft.com says:

    This does work with PB 5.0. I just confirmed connecting to the 5.0 Remote Tools using USB ActiveSync connection.

    -Shane

  8. espenr says:

    It works with eVC++ remote tools too. I’ve been running the "Remote Call Profiler" over ActiveSync to debug Windows CE and Windows Mobile apps made in VS2005 (I have no PB installed).

    But I’m wondering why it is not possible to add new devices to the Remote Tools provided with VS2005? And, why are some of the Remote Tools missing alltogether? (Like for example Remote Call Profiler).

    As I understand it the Remote Tools found in eVC++ 4 can use ActiveSync and the "old" way of connecting remotely. While the new tools provided with VS2005 only work with Core Connect (or whatever it’s called) but no ActiveSync – whats up with that?

  9. ce_base says:

    Hi espenr,

    What’s going on is that there are 2 different connectivity layers used by these remote tools: platman and corecon.  Platman is the older of the two, and is in the process of being deprecated.  Three of our remote tools have not yet been ported from platman to corecon: Remote Kernel Tracker, Remote Call Profiler and Remote Performance Monitor.  Too bad they are the ones I care most about.  🙁  VS2005 does not support platman, so none of the platman tools shipped with VS2005.  That’s why some of the tools are missing from VS2005.

    I think the reason why you can’t add new devices to the VS2005 remote tools is because the "add new devices" UI is from platman, not from corecon.  Do you have devices that you aren’t able to connect to with the corecon remote tools?  I think the manual device configuration really shouldn’t be necessary.

    Both platman and corecon can connect over ActiveSync.  These connectivity layers are really just wrappers around other connectivity layers, like HTTP, KITL and ActiveSync.  You can use the VS2005 remote tools over ActiveSync, I’ve done it.

    There is also a new layer coming online, the Remote Tools Framework (RTFx).  RTFx is a wrapper around corecon.  (I know, a wrapper around a wrapper…  🙁 )  The reason for RTFx is that programming to the corecon interface is not easy; the APIs are not easy to write tools with, and corecon has a lot of problematic details to wrestle with.  So RTFx hides a lot of that, to make it easy for 3rd parties to write tools.  Look forward to new tools from other developers in the near future!

    In the mean time, we ARE planning to totally deprecate platman and get all of our remote tools into a state where, as long as you have VS2005, you can run ANY of the tools.  And in fact we’re trying to get to the point where VS2005 isn’t required either.  So here’s to the future!

    Sue

  10. Walzer says:

    Hi, sue.

    I’m so puzzled that how can you install and use ActiveSync on Vista? When I install AcitveSync, the Vista refuse. It seems use "Windows Mobile Device Center" instead.

  11. grahamgarvey says:

    Sue and others,

    I’m a newbie trying to access some wince4.2 navigation devices that we have written software for. I followed your description up top using EVC and it works great for one vendor we are doing some prototyping with. Unfortunately for another vendor we just started working with I get the following error:

    "The Microsoft ActiveSync reported the following error: Unable to load device side components. Please check server configuration settings."

    ActiveSync is enabled on the device and I can review the folder structure, but receive the error above when evc tries to push the needed dlls over to the device. Do I need to add additional folders on the device to place the application data onto it?

    Ultimately what I am trying to do is bypass the OE’s current navigation application (which they farmed out) to place our navigation application on so that they can display it internally to their management for approval.

    I apologize if this is the wrong forum to post to but was hoping that if I can connect to the device I could then get down to the basic desktop to spawn our application.

    Thanks for any advice,

    Graham