A cheap way to test devices in your corporate environment

You know who you are. You're an IT guru who'd like to experiment with mobile and wireless devices, but you don't have any devices to work with. Do I have a deal for you! I'm going to show you how you can test wireless devices without buying them. The technique I'm about to describe will cost you only the necessary download time. (At most, you might need to lay out $30 for a book.) And although this technique is virtually free, it can give you a solid idea of the capabilities and limitations of a wireless device. Indeed, software developers use this technique to build application software for these devices.

The technique I'm referring to is software emulation. Originally intended to support developers, software emulators can place a virtual device—for example, a Personal Digital Assistant (PDA) or even a cell phone—directly on your PC desktop. By redirecting IP traffic, software emulators can simulate the operation of a wireless device over your existing corporate LAN.

In this column, I introduce you to two excellent mobile-device emulators—the Palm OS Emulator and the Microsoft Mobile Explorer (MME) Emulator. Both emulators are impressive tools. Best of all, both are available as free downloads.

Palm OS Emulator
You can download the Palm OS Emulator from Palm's development Web site (http://www.palmos.com/dev/tech/tools/emulator). You'll need both the emulator application and a set of skins—bitmaps that make the emulator look like particular Palm models. Copy both the application and skins files to a directory on your hard disk, then unzip them.

One catch is that you also need a ROM image from a physical Palm device. You can use the emulator to easily capture a ROM image from a borrowed device. Alternatively, you can purchase David Pogue's helpful PalmPilot: The Ultimate Guide (O'Reilly & Associates). The CD-ROM that accompanies the book includes emulator code and ROM images from several Palm devices.

Start emulator.exe, which resides in the directory in which you unzipped the application and skins files. The first time you run emulator.exe, a dialog box asks whether you want to add an item to the Start menu for the emulator. (I recommend this addition.) If you click Yes, the software prompts you to specify a location on the Start menu and a name for the item.

Next, the emulator presents a dialog box that contains four buttons. Select New to start a new emulator session, Open to launch an existing session, Download to capture a ROM image from a Palm OS device, and Exit to close the emulator. If you don't already have a ROM image, choose Download. The software then presents you with a dialog box that gives step-by-step instructions to perform the download. After you download a ROM image (or copy an image from Pogue's book and place it in the same directory in which emulator.exe resides), select New to start an emulator session, which Figure 1, page 110, shows.

You now have a virtual Palm device on your desktop. To emulate screen taps, you simply click the mouse pointer on the virtual Palm's display surface and Graffiti area. The onscreen power switch suspends and resumes the emulator. The other buttons on the emulator perform the same functions as an actual Palm device's physical buttons.

You can load applications onto the virtual device. Right-clicking your mouse pointer over the emulator displays a pop-up menu. To load any Palm application files (i.e., .prc, .pdb, or .pqa files), select Install Application/Database from the menu. Your system will install the application, and you can launch the application from an appropriate screen tap, just as on the actual device.

Another pop-up menu item gives you access to the emulator's settings, and one of the options is of special interest. Right-click the emulator, and select Settings/Properties. The first item in the resulting Properties dialog box lets you specify a serial port to use for communications. Notice that the Properties dialog box also contains a Redirect NetLib calls to Host TCP/IP check box. If you have the necessary ROM image for a Palm VII or Palm VIIx (or if you have the Palm III or Palm V ROM image and a copy of the Palm Mobile Internet Kit), selecting this check box lets your emulator run Palm Query Applications (PQAs), aka wireless Web-clipping applications. PQAs preload a miniature version of a Web page that's optimized for the Palm devices' small display and use the limited wireless bandwidth to query the parent Web site and fill in fields on the miniature page. You can use PQAs to check out the various features available on wireless Palm devices, to evaluate add-on software, and to perform Help desk and troubleshooting work.

Some differences exist between the way the emulator operates and the way an actual Palm device operates. Wireless operations that you perform after selecting the Redirect NetLib calls to Host TCP/IP check box don't provide the geographic-location data that's available to Palm VII applications. Programs that depend on that data might generate error messages. Also, the Palm OS Emulator accepts keyboard input for text fields—certainly a convenience, but this feature doesn't accurately represent how a Palm device works.

Overall, the Palm OS Emulator is a wonderful tool not only for Palm developers but also for systems administrators who plan to use or support such devices. I began using the emulator as a way to generate screen shots of Palm applications but have since found that it's extremely convenient for evaluating both conventional Palm OS applications and PQAs. A corporate Help desk in an organization that uses Palm OS­based devices can also benefit from the ability to call up a virtual PDA when users need help.

MME Emulator
Microsoft recently released an emulator for its MME software—a microbrowser that some digital cell phones use. You can download the 4MB MME Emulator executable file from http://www.microsoft.com/mobile/phones/mme/mmemulator.asp. The emulator self-extracts and starts a conventional Windows setup program. Accept the typical license agreement, enter your name and the name of your organization, and review the installation directory. Then, click Install, and the emulator sets itself up.

Under Start, Programs, select the Microsoft Mobile Explorer Emulator item to launch the emulator, which Figure 2 shows. Similar to the Palm OS Emulator, the MME Emulator places a virtual device—in this case, a generic feature phone—on your PC desktop. Also similar to the Palm OS Emulator, the MME Emulator gives you a choice of skins with which you can give the device a different appearance. To change the MME Emulator's skin, select Tools, Options and go to the Skins tab. The tab offers six skins, including those of actual phones from Benefon and Sony. Some skins have larger displays than others, making the emulator easier to use.

To send requests, the MME Emulator uses the IP stack of the computer that it's running on—just as the Palm OS Emulator does if you select the Redirect NetLib calls to Host TCP/IP check box. However, the MME Emulator offers additional settings that you might find especially useful in your corporate environment. For example, you can set a proxy server and port, a POP3 server address and port, and a username and password. (The POP3 server setting requires dotted IP port addresses such as 204.30.40.6, rather than DNS addresses.)

Like the feature phones it emulates, the MME Emulator provides POP3-based email and both HTML and Wireless Markup Language (WML) browsing. The emulator offers much sample content—more than 300 files—that you can use to understand the phones' capability. More important, if you're thinking about setting up a corporate Wireless Application Protocol (WAP) gateway (e.g., Microsoft Mobile Information Server), the MME Emulator lets you test WAP content without burning up expensive mobile minutes on physical devices. For an overview of Microsoft's phone strategy—including MME and the more advanced Windows CE­based smart phone project, code-named Stinger—go to http://www.microsoft.com/mobile/phones.

What About Windows CE?
Compared with the efforts to make the MME Emulator available, Microsoft doesn't provide emulators nearly as effectively for its other mobile devices. Microsoft has included PC-based emulators in Windows CE development kits since version 1.0, but those emulators provide only an environment to run applications—none of the built-in Pocket PC features are included. Therefore, the PC-based emulators in the development kits are worthless for IT folks interested in evaluation and support. One reason why developers have optimized so little content for Pocket PCs is that no full-featured Pocket PC emulator is available on the market.

This void is particularly annoying—not to mention counterproductive—because a full-function Pocket PC emulator exists: Microsoft uses it for presentations and demonstrations. This technology needs to be available to the broader community, particularly in the case of Stinger, the survival of which will depend on content optimized for its display.

I'm not familiar with emulators for other mobile devices. To see whether emulators exist for devices that you're considering, check the Web or talk to vendor representatives. If a vendor has designed a device to support applications that run on the device locally, an emulator is probably available to developers. If the emulator is as full featured as the Palm OS Emulator or the MME Emulator, it's worth obtaining for your IT shop or Help desk.

A caveat: Emulation isn't a panacea. An emulator can give you a rough idea of a device's capabilities, but it's no substitute for a physical device. You can't carry an emulator around, find out where coverage exists and doesn't exist, or determine how long batteries last.

I particularly want to warn developers (for whom emulators were originally intended) against living in emulators full- time. Both the Palm OS Emulator and the MME Emulator let you easily—perhaps too easily—enter long text strings from the keyboard. That capability isn't an option for a real mobile user. If you're developing applications or content for either the Palm OS or MME environment, you need to perform your tests on a physical device in real-world conditions. But the emulators are a great way to jump-start that process. So don't just sit there—start downloading.