Welcome to MSDN Blogs Sign in | Join | Help

Bluetooth-enabled Network Refrigeration Device

Head on over to Channel9 to check out a sweet demo we put together of a network enabled refrigeration device.

It runs WindowsCE 5.0, supports a USB camera, and [of course] uses the Windows Embedded Shared Source Tools for Bluetooth! :)  With the Bluetooth support, you can pair up your Windows Mobile Smartphone and view the device's inventory and be notified when the door is opened, etc.  Heck, you can even grab a live view from the fridge to see what's left inside!

Spiffiness indeed... how would you use such a device at your home or office?
Posted by anild | 5 Comments

Presenting at WE-DIG...

A couple of weeks ago, the famous Mike Hall asked if I was interested in presenting on Bluetooth at the monthly WE-DIG meeting.  After confirming that there would be food at the occassion, I figured that it would be "rude not to" present for this audience.

So, last Wednesday, I arrived for my first WE-DIG meeting. 

First, a little background on WE-DIG...

WE-DIG stands for "Windows Embedded Developers Interest Group" and was started by several members of the community to be "dedicated to the exchange of ideas around Microsoft Windows embedded and mobile software development."  The group members also take on special projects like developing a Windows CE BSP for the Gumstix embedded board.

If you are interested in learning more about WE-DIG, you can visit their website at: http://www.we-dig.org and drop by their monthly meetings in the Seattle area.

I wasn't sure what to expect from the meeting as it largely involves geeks from major embedded development companies in the greater Seattle area.  Having run my own user group during college at UC Berkeley, I was curious to see how the group organized, setup, and ran their meetings.  The first part of the meeting was an informal chit-chat session where we introducing ourselves to each other and listened to some particulary bad computing jokes while waiting for the members to trickle in... ah, I just love being a geek!

Once the members got settled, Paul Yao manned the podium and introduced the first speakers of the meeting: members of the .net Compact Framework team.  They gave an overview of NETCF and delved into the new features in their latest version, NETCF v2.  They showed off some impressive stats on memory and performance improvements for the latest version.  It's amazing to see the uptake of managed code on mobile devices relative to the desktop.  The NETCF team has done a terrific job in understanding the needs of the mobile market while retaining the essence of managed development.  In doing so, they've enabled access for things like Power Management and the Serial Port on mobile devices.  What a lot of people may not know is that you can use the NETCF directly from Windows CE as well.  In fact, you can download the NETCF v2 update for Platform Builder by following this link: NETCF v2.0 MSDN Download .

Members of the .net Compact Framework team presented on the new features of NETCF v2.

After their presentation, we breaked for dinner [pizza!] and I prepared to present on one of my favorite topics.  The great thing about presenting to an audience like that on Wednesday is that you don't need to explain the "basics" like Winsock, managed code, etc.  I whizzed through the slide deck pointing out specific areas of advice that I thought would benefit mobile and embedded developers [like Bluetooth security, etc.]  At the end, I showed off the Bluetooth managed library by bringing up real code for a Bluetooth enabled chat application on the Pocket PC and Smartphone.  The audience was really receptive and asked some great questions [like how to do peer to peer gaming] on Bluetooth.

I'm glad I got to present at WE-DIG not only because I got some free pizza, met with some great folks, and presented on one of my favorite topics.  No, those were nothing compared to what the WE-DIG team gave me at the very end: a full-sleeved WE-DIG shirt!  Here I was at my first WE-DIG meeting being crowned as "one of them"!!!  This was a fantastic experience and I'm looking forward to attending future meetings as well... Who knows, maybe I'll see you there!

I sat next to Mike Hall in the back, watching him bring up a new embedded platform from his spiffy cool notebook.

Posted by anild | 3 Comments

Bluetooth Profiles Demystified [Part 1]

So what exactly are Bluetooth profiles and why do we need them?  Several people have asked me this question lately so I'll share my thoughts with all of you on what Bluetooth profiles are really all about.  We will start by taking an example scenario of sending a file from one device to another.  We will look at how this simple task can be achieved using both Bluetooth and Wi-Fi.  By the end of this series of posts, you will have a good understanding of what problems Bluetooth profiles aim to solve and why they are so important.

So, let's jump right in...

Scenario
So, you've got this cool picture of you bungee jumping off of a bridge.  The picture is stored on your camera [digital of course] and you would now like to send it to your PC to share on your website.  Being the tech savvy, risk taking [you did go bungee jumping after all] geek type, you decide to do this wirelessly.

Sending a picture from your camera to the PC using Bluetooth
Let's take a look at the steps you would go through to send a file from your camera to your PC using Bluetooth.
  1. Find the other device.  You would put the camera into "Discoverable" mode so that it advertises its name to anyone interested.  Next, you'd fire up your PC and use the Device Discovery UI to find your digital camera.
  2. Pair with the other device.  Great, so you've located the Camera and will now "pair" the two devices.  So, you enter the same "pin code" on the desktop and camera.  You now get notified that you have successfully paired with the Camera.  Woo-hoo!
  3. Choose a service to use from the camera.  Your PC now presents you with a list of options you can choose to talk with the Camera.  For example, you might see options like "transfer file(s)", "view thumbnails", etc.  For this scenario, you choose the "Transfer file(s)" option.
  4. Transfer your file. 

Sending a picture from your camera to the PC using Wi-Fi

Now, let's look at the steps you would go through to do the same using Wi-Fi.
  1. Connect your camera to an Access Point.  You would use the camera's UI to have it connect with an Access Point in the area.
  2. Connect your PC to the same Access Point.  You would use the PC/laptop's UI to connect to the same Access point.
  3. Great, so both the PC and the camera are now connected to the same access point.  Next, we just need to have the PC find the camera.  You might do this by finding the IP address of the camera through your access point's management software.  If you are lucky, the camera will let you view its IP address through the camera UI.
  4. Launch custom software to transfer the files.  This software will likely ask you to enter in the address of the camera.
  5. Transfer your file. 

Which do you prefer?

Which model makes the most sense to you?  What might help improve the user experience in both cases?

I will follow up with my thoughts and explanation as to how this all works under the hood...

-Anil.



Posted by anild | 6 Comments

Hardware for the WindowsCE based media player

Several people have been asking, "Where can I obtain that nifty little embedded box you used to build the WindowsCE based media player?"  Look no further as I've put together the details on the box below:

The box is called the "eBox" and can be obtained as a part of the eBox II Starter Kit.  If you would like to purchase one for yourself, please e-mail: info@icoptech.com .

Here are the specs of the box itself:

Processor: Vortex86 200MHz
RAM: 128 MB
Network: 10/100 Mbps
Video: VGA output

Audio: Stereo Audio
Ports: Serial, Parallel, USB, PS/2


The box comes with an IDE cable which you can use to connect a notebook hard drive.  I used a 60GB notebook hard drive for the media player box and attached it using the built-in mounting braces located on the under side of the board.

Finally, I used a TRENDware USB Bluetooth Dongle which is supported with WindowsCE.

-Anil.

Posted by anild | 9 Comments

Partying with Bluetooth video [aka building a media box for your living room]

Visit Channel9 to see a video of a media box I've been building in my spare time.

Due to popular request, I'll be posting a series of articles on how you can build this box and explore embedded and Bluetooth development.  To keep a watch, you can add my blog to your aggregator by using this RSS feed.

In the meanwhile, here are the stats:

Media Box

  • Powered by Windows CE 5.0 
  • Small form factor x86 box [ICOP Vortex86 aka "ebox"]
  • 60GB Notebook hard drive [for that massive music collection]
  • Acts as a network attached storage (NAS) device [so you can plug in via ethernet and drag+drop your music collection]
  • Stereo Audio Output [you do want to hear the music, right?]
  • Bluetooth USB dongle [so we can control the track being played, etc.]
  • Text to Speech support [so we can announce which track is currently being played]
Windows Mobile Smartphone

Check out the video and let me know what topics you would like to learn more about.  I'll be sure to try and include them in the series of articles.

Posted by anild | 10 Comments

A surprise on my birthday!

It turns out that today's my birthday.  And how did my car greet me while leaving work today?

What are the odds of that?!?!?

So, what cool Bluetooth scenarios can you imagine in the car?  I can't wait until cars support A2DP so that i can bring my music collection on my phone and play it through the car's stereo speakers.

 

What do you think?

Posted by anild | 2 Comments

Pod attack! [and a revelation]

Yesterday, I was over visiting Mike Hall's office to pick up some hardware.  We started chatting about this mobile device demo I've been helping to prepare for PDC.

Mike, being his usual self, decided we should podcast the conversation since "it would be rude not to!"  So, here you go... an ad-hoc podcast with me and Mike Hall.  Our conversation took many twists and turns as we cover device programming, programming paradigms, widgets, farmers, bunnies, and ActiveX controls.

Check it out in its full 16 MB of MP3 glory here.

I had a revelation during the podcast that Visual Studio 2005, NETCF v2, and Windows Mobile 5.0 truly blur the line between desktop and device development.  I feel as if my "mad device hacking skillz" are no longer needed!  I still maintain that understanding device limitations like memory, speed, and power is invaluable to every developer.

Do you agree with our thoughts and perspective?  I'm curious to know what you think.

Posted by anild | 3 Comments

What does Bluetooth mean to you?

Bluetooth! 

Did I just remind you of that dentist appointment you've been putting off? [:)]  I hope not, because my dentist rarely has good news for me.

So, what do you think about Bluetooth?  How do you use it today?  What are interesting things you'd like to see using Bluetooth technology in the future?

I think Bluetooth stereo headsets (using A2DP) are one of the coolest consumer electronics devices for this year.  Admittedly, people on the street give strange looks as they see headphones without wires!  Ah, the price to pay for being an early adopter [:)].

Share your thoughts on what you think is cool.

Posted by anild | 33 Comments

Enter stage right...

I've finally decided to create a blog!

First, an introduction is in order.

I am Anil Dhawan, a Program Manager with the Windows Mobile product group.  My team works on various networking technologies on Pocket PCs and Smartphones.  These technologies include Bluetooth, Wi-Fi, infrared, and cellular [GSM/CDMA/3G] communications.

My background is in software development with a particular emphasis on software architecture.

I look forward to sharing my thoughts on mobile devices, software, and life.  I'm keen to learn more about what viewers of this blog think about the exciting future that awaits us in this nascent space!

Posted by anild | 36 Comments
 
Page view tracker