PPCGeeks Forums HTC Arrive HTC HD2 HTC Thunderbolt HTC Touch Pro 2 HTC Evo 4G HTC Evo 3D Samsung Galaxy S II Motorola Droid X Apple iPhone Blackberry
Go Back   PPCGeeks > Windows Mobile > WM HTC Devices > HTC Apache
Register Community Search

Notices


Reply
 
LinkBack Thread Tools Display Modes
  #21 (permalink)  
Old 08-22-2007, 05:26 PM
dinomight's Avatar
Lurker
Offline
 
Join Date: Jul 2007
Posts: 8
Reputation: 0
dinomight is a n00b
Mentioned: 0 Post(s)
Tagged: 0 Thread(s)
How did you sniff it

pcfixitman: I was wondering if you could give me some information on how you were able to sniff out the at commands that are being sent to the phone. I too have a htc apache (6700) and I'm trying to find a way to pair my watch with the phone and send/receive the at commands.
1. How did you pair the phone with the watch (did the watch broadcast services or did you have to setup the phone to broadcast them) I've tried setting up a serial port but it doesn't seem to pair.
2. what tools did you use to watch the at commands coming in/out of the phone. If i could replicate what you've done it would really help me make some more progress.
Thanks,
-D
Reply With Quote
  #22 (permalink)  
Old 08-24-2007, 04:04 AM
pcfixitman's Avatar
Lurker
Offline
Location: Renton, WA
 
Join Date: Aug 2007
Posts: 19
Reputation: 0
pcfixitman is a n00b
Mentioned: 0 Post(s)
Tagged: 0 Thread(s)
Communicating with the MBW-100

I am very happy to see that others are still interested in creating an application which will allow the full functionality of bluetooth enabled watches to be realized on the Windows Mobile 5 platform. As you may have guessed from my previous post, I have put a great deal of thought and effort into solving this problem. I would like to take a minute to bring you all up to speed so that we may all benefit from my research and come up with a working solution in the very near future.

I should make sure that you all understand the the specific bluetooth watch that I have in my posession is the Sony Ericson branded MBW-100 (black collectors edition). It was actually built by Fossil and, I believe, uses the same technology as in the Abacus watch. (If anyone knows this to be untrue, please direct me to a website with further info on the Abacus line of watches). All research I have done has been directed specifically at the MBW-100 watch.

First of all, the following Sony Ericson phones have full compatibility:

K610
K610im
K618
K790
K800
V630
W710
W850
Z610
Z710

Sony states that the following phones are compatible, but some features may not work (eg: sms notification, media control):
K550i
K790a
K850i
M600i
P1i
P990i
S500i
T650i
W580i
W610i
W660i
W710i
W880i
W950i
W960i
Z710i
Z750a


Aparantly there is support for some Symbian phones as well (emulator on WM5 maybe?).


Allright, before you start reading this brew a pot of coffee (or two) and prepare your brain for a flood of information. I am going to attempt to regurgitate the majority of my knowledge of these devices in one post. So, grab your watch, grab your phone, get ready to learn and hopefully have some fun in the process!

For those of you who have attempted to pair the device with your WM5 phone, you may have noticed that after entering the pin "0000" on the phone the watch shows the icon stating that the pairing was successfull, but shortly after displays an icon stating that communication is inactive. This is simply due to the fact that the watch expects immediate responses to the AT commands it sends to the phone. Since it is not using a standard bluetooth profile (such as Hands Free) the phone does not know that it is supposed to respond. The watch does indeed use a bluetooth profile (SPP), but does not respond to the phones requests via SDP (service discovery protocol) for a list of supported bluetooth profiles.


Here are the basic steps I have taken with my watch (MBW-100) and phone (Sprint PPC-6700) in order to establish communication and gather the following data.

Before you begin:
This step is not completely necessary, but it is advisable to delete all bluetooth devices from the bluetooth settings on your phone to avoid any conflicts until you are completely comfortable with how the watch communicates with the phone and understand all aspects of the registry changes you are making.


Step 1:
You must pair the watch with your phone as you would any other device. During the pairing you will need to enter "0000" as the pin for the device. I have found that initially the watch shows that it has paired with the phone, but almost immediatly disconnects. This may cause your phone to once again prompt for the pin. Some of you will find that simply entering 0000 again will allow the phone to continue to the next step (where you select services to use) and others will need to simply click next or ok without entering the pin. Either way you will then see that there are no services listed for the device - do not worry, simply save the device to your list of bluetooth devices on the phone. This does not establish communication, but does create the necessary registry entries on the phone and setup the authentication necessary for bluetooth communication.


Step 2:
Open up Start-Settings-Connections-Bluetooth on your phone. Select the "Com Ports" tab and click "New Incoming Port". Choose Com0 if available, otherwise choose any available port.


Step 3:
Because the watches do not respond to SDP we will need to manually create the serial port profile for the watch. You will need to obtain a registry editor for use with Windows Mobile 5. If you were successfull in pairing the watch with the phone and see it in the list of devices you will find the following key in the registry:

HKEY_LOCAL_MACHINE\Software\Microsoft\Bluetooth\De vice\nnnnnnnnnnnn (the n's represent the MAC ID of your watch - mine is 0018137fe587 this is usually found on the back of the watch)

Within this key you should find the following values or something similar (these are for the MBW-100):

"trusted"=dword:00000001

"class"=dword:00240404

"name"="MBW-100"

Using your registry editor you will need to create a new key within the key you located above and name it "Services".

Within this new "Services" key you will need to add another key named "00001101-0000-1000-8000-00805f9b34fb".

Within this key add the following values:

"enabled"=dword:00000001

"sdprecord"=hex:36,00,32,36,00,2f,09,00,00,0a,00,0 1,00,00,09,00,01,35,03,19,11,01,09,00,04,35,0c,35, 03,19,01,00,35,05,19,00,03,08,01,09,01,00,25,09,47 ,50,53,20,52,46,63,6f,6d

"name"="Serial Port"

"channel"=dword:00650001

**Please note that the "channel" dword value may need to be entered differently depending which registry editor you use. Many of you will need to use a simpler integer value like 1, 2 or 7.


Step 4:
Once again go to the bluetooth settings on your phone. I should mention that from here on out it is very important that you NEVER choose "edit" for the MBW-100 device (which normally displays available services on the device) as this action will generally initiate SDP which will not detect any services and therefore delete the changes you made to the registry! Once again select the "Com Ports" tab; this time choose "New Outgoing Port". You should now see the watch listed as a possible device for serial communication. Select the name of the watch (MBW-100) and assign it to an available port (I used Com4).

If you were successfull in all 4 steps you have now configured your phone for both incoming and outgoing communication with your watch using the Bluetooth Serial Port Profile!!


Step 5:
Now that communication has been established, you are ready to begin experimenting with the device. For this you will need to obtain a mobile terminal emulator application; many trial versions exist on the web. Disable as many features as is possible on the phone (eg: phone, data, wifi), but do not disable bluetooth. Boot up your terminal emulator on the phone and configure it to access the port you selected in Step 4, ensure that it is set to echo both incoming and outgoing data. If you recieve errors when connecting to the port, go back to Step 4 and select a different outgoing port number for the watch and try again. If all else fails set it up to monitor the port you selected in Step 2 (Com0).

Once the terminal emulator software is configured for your device you need to initiate communication from the watch. On the MBW-100 this is done one of two ways. First you can try pressing the upper right button on the side of the watch. Some of you may need to press in on the center button (the "dial" you use to set the analog timepiece". If all goes well you will begin to recieve commands from the watch and can experiment with sending your own respones!


Let me further break down the communication process for you (Response=theoretical; Expected Response=verified):

If you simply want to experiment with outgoing commands, try responding to each incoming command with "ok" during initial communication. You will find that this will keep the watch and phone paired which can be verified on the watch by pressing the upper right button and looking for the bluetooth communication icon.

AT*SEAM="MBW-100",13 //creates a menu entry "MBW-100" in the Settings-Connectivity-Accessories menu on SE phones
//Reference for ID (13 above):
//ID Description Location on K750i
//0 Connectivity (directly)
//1 Bluetooth
//2 Entertainment
//3 Messaging
//4 Organizer
//5 Settings - General
//6 Settings - Sounds and alarms
//7 Settings - Display
//8 Settings - Calls
//9 Multimedia Entertainment
//10 Imaging Entertainment
//11 Phonebook ?
//12 Applications
//13 Accessories (default)


Expected Response: ok


AT*SEAUDIO=0,0 //Informs the phone that the device has no audio capabilities
Expected Response: *SEAUDIO=0,0


AT+CIND=? //Gets list of supported indicators and values for phone
Response: +CIND: ("message",(0-1)), ("call",(0-1))


AT+CIND? //Gets current values for phone indicators
Response: +CIND: 1,0 //Indicates incoming message, not currently in call


AT+CMER=3,0,0,1 //Enables or disables result codes +CKEV and +CIEV for indicator changes
//3 asks phone to forward result codes directly to device
//0 disables phone keypad event reporting
//0 disables phone display event reporting
//1 Enable indicator event reporting using +CIEV (only indicators not caused by AT+CIND
Response: ok or current +CIEV values


AT+CCWA=1 //Enables presentation of result code +CCWA: <number>,<type>,<class>,[alpha]
//<type>=128,129,145,161,128-255
Response: +CCWA: 4255551234,128,3,"pcfixitman"


AT+CLIP=1 //Enables calling line identification presentation
Response: +CLIP: 4255551234,128


AT+GCLIP=1
Response: ok


AT+CSCS="UTF-8" //Identifies character set supported by device
Expected Response: ok


AT+CCLK? //Queries phone for current date and time (sets digital clock)
Expected Response: +CCLK="yyyy/mm/dd,hh:mm:ss"


AT*SEMP=1 //Initiates play for media player
Expected Response: ok

AT*SEMP=5 //Initiates track forward for media player
Expected Response: ok

AT*SEMP=2 //Initiates pause for media player
Expected Response: ok

For fun, send the watch the RING command and it will vibrate to notify you of an incoming call!!


Allright, I think that is enough information for one night. I'm sure there is probably other info I am leaving out, but it is late and I am tired. Please experiment with your devices and report back with any findings or questions. Research the AT Command set and try sending the device different commands. My primary concern is finding commands that will display a phone number or name on the watches oled display. I would ask that you also make this your main area of focus while experimenting with the device. I hope this information is helpfull to all.

dinomight: In your correspondance with David from Abacus could you simply ask for a Watch - Phone conversation in AT commands. All I need is some generic AT Command responses from any given phone which the watch expects to see and we would be able to create an interface for WM5 using the above procedure and the WM5 SDK. TIA
Reply With Quote
  #23 (permalink)  
Old 08-25-2007, 01:55 AM
pcfixitman's Avatar
Lurker
Offline
Location: Renton, WA
 
Join Date: Aug 2007
Posts: 19
Reputation: 0
pcfixitman is a n00b
Mentioned: 0 Post(s)
Tagged: 0 Thread(s)
One more tidbit

While I still believe the simplest way to engineer a solution to our problem is to use the SPP method I described earlier, I have found a new piece of information that may be helpful in finding an alternate solution.

It seems that the Sony Ericson branded devices supposedly use the Serial Port contained within the Hands Free Profile to send and receive AT commands directly thru the Audio Gateway on the phone. However, I have manually created a hands free profile for the watch using a similar technique, but have not had nearly as much success. This is primarily due to the fact that implemented a slightly different AT command set into their phones than that used by Windows Mobile 5.

While it may be possible to use the Hands Free profile, I still believe that we will need to use the Serial Port Profile because it allows us to simply query the audio gateway for information (caller ID, etc) and send custom tailored AT Commands to the watch via our own 3rd party application.

I only mention this because the Hands Free profile seems to contain the necessary ingredients for connecting to the watch. I think the problems I had using the HFP in the past were mostly to do with an improperly formatted "sdprecord" in the registry. Anyone attempting this method will need to research how an SDP Record for a device is created (since our watches do not respond to SDP requests) and custom tailor one to exactly match the services offered by the watch.

Anyway, I just thought I would mention it.
Reply With Quote
  #24 (permalink)  
Old 08-27-2007, 01:43 AM
dinomight's Avatar
Lurker
Offline
 
Join Date: Jul 2007
Posts: 8
Reputation: 0
dinomight is a n00b
Mentioned: 0 Post(s)
Tagged: 0 Thread(s)
Pcfixitman:
Thanks so much for your information it was so very helpful. I was able to follow the instructions and see the spp working i saw the watch sending the at commands to the phone. I was even able to send the ring command and have my watch vibrate. (awesome). I'm still waiting to hear back from abacus with more information on how get this working. I did however find this (it's more general to at commands used on modems. But it might work) I don't have time to mess with it right now (it didn't work but i'm betting that it might be because i'm not responding to the commands sent by the phone (i'm just not fast enough). By the way what terminal emulator do you use on your phone. Let me know if you have any success. I will continue to wait to hear back from abacus.

http://www.beiley.com/acallerid/enable.html

-D
Reply With Quote
  #25 (permalink)  
Old 08-27-2007, 11:03 PM
skipster's Avatar
PPCGeeks Regular
Offline
Pocket PC: 700w>Apache>Titan>i760>TP1>i770>TP2!!!
Carrier: VZW
Location: NJ
 
Join Date: Oct 2006
Posts: 108
Reputation: 40
skipster is just getting started
Mentioned: 0 Post(s)
Tagged: 0 Thread(s)
I was wondering if MortScript can be of use here.
Reply With Quote
  #26 (permalink)  
Old 09-16-2007, 11:28 AM
dem0n2001's Avatar
PPCGeeks Regular
Offline
Pocket PC: TouchPro2 w/ Android
Carrier: Sprint
Threadstarter
 
Join Date: Oct 2006
Posts: 53
Reputation: 30
dem0n2001 is just getting started
Mentioned: 0 Post(s)
Tagged: 0 Thread(s)
umm any updates? wouldnt mind being a guinea pig
Reply With Quote
  #27 (permalink)  
Old 12-08-2007, 08:55 PM
devren's Avatar
N00b
Offline
Pocket PC: Palm pre
Carrier: Sprint
Location: MD
 
Join Date: Apr 2007
Posts: 26
Reputation: 0
devren is a n00b
Mentioned: 0 Post(s)
Tagged: 0 Thread(s)
Send a message via Yahoo to devren Send a message via Skype™ to devren
any updates, I would really like to see this to work. I want to get this watch the idea behind the watch is a great idea. Please fill us in on the progress. As of now I personally can not help but if this looks like it will work I will get the watch and be able to do some testing. Thank Everyone
__________________
Loving my new Palm Pre, but I miss a lot about windows mobile.
(especially having MBW-150 compatibility)
Reply With Quote
  #28 (permalink)  
Old 12-12-2007, 02:19 PM
puck404's Avatar
Lurker
Offline
 
Join Date: Nov 2007
Posts: 10
Reputation: 0
puck404 is a n00b
Mentioned: 0 Post(s)
Tagged: 0 Thread(s)
I bought a generic bluetooth watch from china and it works with the sprint touch(WM 6). the caller ID shows the number and it vibrates. The reason I am telling you all this is because perhaps the settings that appear in my registry when I connect to the watch could be of some help? I am not a programmer but am familiar with registry hacks as such. If you would like my help let me know.
Reply With Quote
  #29 (permalink)  
Old 12-15-2007, 04:38 AM
pcfixitman's Avatar
Lurker
Offline
Location: Renton, WA
 
Join Date: Aug 2007
Posts: 19
Reputation: 0
pcfixitman is a n00b
Mentioned: 0 Post(s)
Tagged: 0 Thread(s)
I just wanted to touch base with you all and let you know I have not forgotten about this project.

In the time since my last post I have taught myself the C# programming language as it pertains to Windows Mobile. I am currently using Visual Studio 2005 and the Windows Mobile 6 SDK (by the way, I upgraded to a PPC-6800!) to develop an application to interface with the watch. The application is still in development, but it is definitely working.

Currently the application does the following:
1: Discovers Bluetooth Devices (already paired or in a pairing state)
2: After selecting your device it pairs with it if necessary (currently only devices with pin=”0000”)
3: It then listens for connection attempts (pressing upper right button on watch)
4: It then sends the proper responses to all AT Commands from the watch (currently specific to MBW-100)
5: It then sets the current time and date on the watch
6: At this point it begins monitoring for incoming calls
7: When an incoming call is detected the watch will vibrate every 6 seconds and display the phone number and pull the name from your contacts
8: When the call is ignored, answered or canceled by the caller the watch returns to a dormant state
9: The app can also send SMS notifications to the watch, causing it to vibrate and display an envelope

Currently the application does not do the following:
1: Detect incoming SMS (currently you can test feature with an onscreen button)
2: Properly handle the commands from the watch to silence ringer and ignore call (I haven’t had time – watch & app will lock up if you try)
3: Reconnect to the watch if it has gone out of range (app will lock up if you try)
4: Properly handle the commands from the watch to control music (I haven't had time)

Again, being that I upgraded my phone, I wrote this application for WM6, but it should work for WM5. I will be posting a version for you to test as soon as I remove some of the debugging code and add a few prompts.

puck404: Even though I have already come up with a solution, I would very much like to see the registry settings from your watch. They may not help, as the MBW-100 does not use an SDP record, but I would still like to give it a try.

Anyway, keep your eye on the forum - I will be posting the application very soon.
Reply With Quote
  #30 (permalink)  
Old 12-15-2007, 11:59 AM
HostileJava's Avatar
N00b
Offline
Pocket PC: xv6700, xv6800
Carrier: Verizon
Location: Northampton,PA
 
Join Date: Jul 2007
Posts: 48
Reputation: 0
HostileJava is a n00b
Mentioned: 0 Post(s)
Tagged: 0 Thread(s)
Send a message via AIM to HostileJava
This is great progress. I've been looking for a new watch for a little while. I'll have to follow this thread.
Reply With Quote
Reply

  PPCGeeks > Windows Mobile > WM HTC Devices > HTC Apache


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


All times are GMT -4. The time now is 12:50 PM.


Powered by vBulletin® ©2000 - 2024, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.6.0
©2012 - PPCGeeks.com