|
||||
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 |
|
||||
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. |
|
||||
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 |
|
||||
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) |
|
||||
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.
|
|
||||
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. |
![]() |
|
|
|