Overview of Pebbles Software

Updated for Version 5.0

Pebbles PC


The goal of the Pebbles applications is to investigate uses for one or more PDAs when connected to a PC. As part of this research, we have developed a number of applications that we are distributing for free for general use. We hope that the community will provide us with feedback and support on how well these work and how to make them better. (See the detailed conditions under which this software is being released.)

The documentation discusses how to download the software, how to connect the PC and the PDA, and how the main PC-side application works. There is also a Trouble Shooting Guide and FAQ. Other pages discuss the individual applications that we have created. Some of these are available for Palm and WindowsCE (PocketPC) and others only for one or the other. The applications are:

  • SlideShow Commander: [Available from Synergy Solutions for Palm or PocketPC] This allows PDAs to be used to control Microsoft's PowerPoint. The presenter can move forward and backwards through the show. The picture and notes of the current slide are displayed on the PDA, or a list of slides can be presented. You can scribble on top of the thumbnail picture and the scribbles will appear on the PC screen. This program has been licensed to Synergy Solutions, so is no longer available for free. There is a free demo version of SlideShow available from Synergy.
  • Remote Commander: [Palm or WindowsCE] This allows one or more PDAs to be used as if they were the PC's cursor and keyboard. The Windows CE version combines Remote Commander, Scribble and MultiCursor into one application.
  • Scribble: [Palm or WindowsCE] Multiple people have independent cursors on the PC screen and can use their PDAs to point and scribble on PC. The cursors are independent from the real PC cursor.
  • MultiCursor and PebblesDraw: [Palm or WindowsCE] MultiCursor looks just like Remote Commander, but the PC side, instead of controlling the "real" cursor, sends the events in new messages to an application. The application must be custom-written to display multiple cursors. One such application is PebblesDraw.
  • Remote Clipboard: [Palm only] RemoteClipBook and RemoteClipHack are a pair of Pebbles applications that cut-and-paste text between your Palm and a PC, and open hyperlinks from your Palm on the PC.
  • ButtonScroll, RateScroll, and SlideScroll: [Palm only] These application allow the PDA to be used to scroll the current window on the PC, instead of using the regular scroll bars. For example, the PDA might be used with the left hand to scroll while the right hand is on the mouse to select.
  • Chat: [Palm only] This allows a user on one PDA to write notes to a user on another PDA, using the PC as a conduit.
  • Shortcutter: [Palm or WindowsCE] Create custom panels for speedup of common tasks on the PC.
  • Switcher: [Palm or WindowsCE] Look at the window list of the PC and switch between running applications.
  • WebAssist: [Palm only] Uses the PDA as an aid in the hub-and-spoke style of web browsing.

All of these applications were developed using an architecture, which you can use for developing other PC + PDA applications. We include documentation on how to do this software development.

Downloading and Installing the Software

See the download page for instructions on how to download this software and install the software.

Connecting the PDA and the PC

 To use the PDA with a PC, they need to be connected. The Pebbles programs allow you to connect in three ways: using a serial port, using Infrared, or using a network connection. These are controlled by the "Connection..." dialog box, which is built into all Pebbles applications. For most Palm applications, it is available from a top level "Options" menu, and on Pocket PC/Windows CE, it is usually part of the "Options / Options..." dialog box. The choices are:

  • Serial: The easiest way to do this is to simply use the serial cradle provided with the PDA (note, we do not yet support cradles that connect using USB, see below). These are really clunky, so instead, we use a cable, such as the HotSync cable from Palm, (see picture at right) which does a nice job of staying attached to the Palm without getting in the way. As part of our research, we are studying how to connect multiple Palms to the PC at the same time, so we needed multiple serial ports. For desktop PCs, there are many serial cards available which provide multiple serial ports.

    We wanted multiple ports on a laptop, and found the Quatech QSP-100 PCMCIA card which provides 4 ports (see picture at right). Most laptops have 2 PCMCIA slots, so this allows up to 8 serial ports using two Quatech QSP-100 cards in the laptop. The cards self-configure under most versions of Windows and use a sequence of COM ports, and these numbers can be entered into the PebblesPC.exe program, as described below. (If you are using Hotsync and/or ActiveSync on the same serial port, see below.)

  • Infrared: We support the Infrared connection built into most Palm and Windows CE devices. However, we find that Infrared does NOT work very well, and we do not recommend it. The range is quite limited, the PDA has to be carefully aimed at the PC's Infrared receiver, and there is interference when multiple PDAs try to connect at the same time. Also, on the PC side, you have to turn off IRDA support (using the PC's Infrared control panel (picture at right) by un-checking the "Enable Infrared Communication" on the Options tab. Then you have to know what COM port the PC provides "raw" infrared on. Laptops from IBM seem to not provide raw infrared at all, so we haven't been able to get Infrared to work at all on IBM laptops. If you figure out how, please let us know!

  • Network: For a network connection, your PDA must be connected to some kind of network device. For example, for some Windows CE devices, you can plug in wireless 802.11 PCMCIA or Compact Flash cards. We also support Symbol Technologies Palm and Pocket PC computers that use Symbol's Spectrum 24 wireless network. To use the network connection, you need to type in the IP address of your main computer. Sorry, we don't support names yet, so you need to know the number. It is usually a number of the form nnn.nnn.nnn.nnn. See also the detailed Network connection instructions.
    WARNING: There is no security in Pebbles, so enabling network connections in PebblesPC allows anyone anywhere on the Internet to control your computer by typing in the appropriate IP address.

  • USB: For PocketPC and WindowsCE, we support USB through ActiveSync. See next item about using ActiveSync to support USB under WindowsCE. Unfortunately, we do not yet support USB connections directly, for example for a Handspring Visor or a newer Palm. If you can help us figure out how to support USB, please send email to pebbles@cs.cmu.edu.

  • ActiveSync for WindowsCE / PocketPC: If you are using WindowsCE or PocketPC, then you can connect use the ActiveSync mechanism to make a network connection between the hand-held and the PC. This will work no matter how the ActiveSync connection is connected to the hand-held (so this can be used to get around the limitation that Pebbles doesn't directly support USB, for example). To connect this way, start ActiveSync running, and get it connected to your hand-held. (The ActiveSync window should report "Connected".) Then, run PebblesPC and allow network connections. On the WindowsCE device, run a Pebbles application, bring up the Connections... dialog box, and connect using network. Type in the IP number of your connected PC, or else use the special IP number: (which in ActiveSync always refers to the connected PC), and it should work. (Note: if you do not want to connect through ActiveSync, but instead want to connect using a serial port that ActiveSync uses, you have to close ActiveSync first before trying to open the port in PebblesPC; see below.)

  • BlueTooth: PocketPC: There isn't built-in support for BlueTooth in this version for PocketPC (it will be in the next version). Meanwhile, you can still use BlueTooth if you can do a BlueTooth ActiveSync. If so, you should be able to start the connection from the PDA, and then use the network connection in RemoteCommander, with the address PPP_PEER, or else See the ActiveSync bullet above.
    PalmOS: We have put in preliminary support for the BlueTooth wireless network protocol for Palm. If you have BlueTooth hardware on your handheld, please let us know if it works. However, we have found Palm devices to be too slow to effectively use BlueTooth. 
See the Trouble Shooting Guide and FAQ if you are having problems connecting.

The PC Side: PebblesPC and its DLLs

The PC side of the Pebbles software is organized as a main program, called PebblesPC, and a set of dynamic linked libraries (DLLs) that are run as needed. PebblesPC controls all the Pebbles users connected to a single machine, and all their applications. Each Pebbles PDA application has an associated DLL on the PC. The main PebblesPC program automatically switches to the appropriate DLL for each user as they switch applications on the PDA.

PebblesPC finds the DLLs by looking in the same directory as PebblesPC is stored in, so all the Pebbles DLL files must be in the same directory as PebblesPC.exe.

The first option at the bottom will automatically start PebblesPC when PowerPoint starts. This is only useful if you have the CMU version of SlideShow Commander, which is no longer distributed.

By default, (if you have the Palm software installed) PebblesPC will close the Palm HotSync program if it is running and open the COM port that HotSync uses. The checkboxes at the bottom of the main PebblesPC window allows you to control whether it closes HotSync or not. (Note: PebblesPC does not know how to close Microsoft ActiveSync for Windows CE / Pocket PC, so if you use Windows CE / Pocket PC, you need to close ActiveSync yourself if you want to use the same COM port.)

If PebblesPC closes HotSync when it starts, then HotSync will be automatically restarted when PebblesPC quits.

The last option is "Allow network connections". This is not checked by default, because allowing network connections is a security risk: there is no security, so anyone anywhere on the Internet could send Pebbles commands to your PC (e.g., and perform virtually any action on your machine).

The main PebblesPC window shows which COM ports it is controlling. Typically, you will only need one COM port, usually COM1. Most desktop PCs also have COM2. You can add and delete COM ports using the buttons. If the COM port is being used by another process (like the HotSync Manager), PebblesPC will give an error message. Check that you have the right COM port number, or if another program is using the COM port, you have to exit that program first. Then hit OK on the PebblesPC error dialog.

Connections using Infrared have to use a COM port (see above). Connections using a network socket are automatically listed when the connection starts. There is no need to Add Port for network connections.

Each line also shows which plug-in (which application) that connection is using.

In summary, the buttons in this window are as follows:

  • Add Port: Brings up the Add Port dialog box shown above to allow a new port number to be added. To support multiple users, you need to have multiple serial ports on the PC.
  • Remove Port: Brings up a dialog box to allow a port number to be removed from PebblesPC.
  • Plugins: Brings up the dialog box shown at right that lists all the plugins (DLLs) that were found in the same directory as the PebblesPC program. You can click on a plugin to select it, and if that plugin has an "About" box, help or Preferences, then those buttons will be ungreyed.
  • About... Describes the PebblesPC version. 
  • Hide: This closes the "PebblesPC" dialog box, but leaves PebblesPC running. Hitting the "X" icon on the top right of the title line, or using "Hide" in the Windows menu from the icon in the top left, or hitting Alt-F4 all do the same thing. You can open this window again by double-clicking on the PebblesPC icon in the "tray", as explained below.
  • Exit: Quits PebblesPC so it isn't running any more. You need to exit to use the COM ports for other things, like running HotSync.

The PebblesPC program puts an icon into the "tray" at the right of the Taskbar as shown at right. If you double click on this icon, it will bring up the "PebblesPC" window shown above. Clicking with the right button brings up a menu from which you can get to the "PebblesPC" window (the menu item is Current Ports), and you can also get directly to the other functions available as buttons in that window, such as "Add Port", "Installed Plugins", "Exit", etc.

See the pages about the specific pebbles applications that describe what they do.

As an advanced feature, PebblesPC can be started with command line arguments. Each argument specifies a port to open with an optional username to assign to it:
	PebblesPC [user@]port [user@]port ...

If "user@" is omitted from the Nth argument, the username is assumed to be "UserN".

For example:

	PebblesPC Rob@1 Brad@4 5 John@6

would open COM1 as "Rob", COM4 as "Brad", COM5 as "User3", and COM6 as "John".

As another advanced feature, PebblesPC will make an ever-growing transcript of all the traffic for each user. This is intended for debugging the protocol. The files are put into the same directory as PebblesPC.exe and are named with the port name or IP number. Start logging using:

	PebblesPC -l

PebblesPC and Synergy's SlideShow Commander

The Pebbles SlideShow Commander program has been licensed to Synergy Solutions Inc. It is no longer available for free from CMU. You can purchase SlideShow Commander from Synergy for either Palm or PocketPC.

Although based on our code, the Synergy version is not compatible with the CMU software. Therefore, do not run PebblesPC on the PC at the same time as Synergy's SlideShow Commander program for the PC (see below). CMU's Pebbles applications will not talk to Synergy's SlideShow Commander program for the PC, and Synergy's SlideShow Commander for Palm or PocketPC will not talk to PebblesPC.  If you have both Synergy and CMU programs on your handheld, you will have to switch the PC application appropriately based on whichever program you are running on the handheld. For example, run PebblesPC on the PC when you are running Pebbles RemoteCommander, but then quit PebblesPC and start Synergy's SlideShow Commander program on the PC when you want to start using Synergy's SlideShow Commander for the Palm.

Trouble shooting Tips and FAQ

Please send us feedback on these questions and answers. Did the answers help? If not, do you have other answers that we should add? What other questions should be here?

  1. Nothing happens on the PC when I run RemoteCommander or other Pebbles application on my handheld.
    • Are you sure that PebblesPC is running on the PC? You need to run RemoteCommander on the handheld, and PebblesPC on the PC. PebblesPC allows the handheld to communicate with the PC. See discussion of PebblesPC.
    • If PebblesPC is running, are you trying to connect using a serial cable or cradle? See answer 2.
    • If PebblesPC is running, are you trying to connect using a infrared? See answer 3.
    • If PebblesPC is running, are you trying to connect using a network or wireless network? See answer 4.
  2. I can't seem to get the Serial connection to work. What do I do?
    • Be sure that the connection option on your handheld is set to "Serial". See connections above.
    • Are you sure that the cable or cradle is plugged into a serial port of your computer?
    • Have you made sure that PebblesPC is listening to that port? See instructions above for adding ports to PebblesPC using the "Add Port..." button. Usually the serial ports on computers are com 1 and com 2.
    • Are you sure that HotSync for Palm is not using that port? The easiest way to make sure is to exit HotSync. Alternatively, you can go into Setup... and then to the Local tab and pick a different Serial Port from what PebblesPC is using.
    • Are you sure that ActiveSync for WindowsCE/PocketPC is not using that port? There isn't a good way to make ActiveSync exit, so instead, you have to tell it not to use the serial ports. Go into "Connection Settings..." and make sure the following option is not checked: "Allow serial cable or infrared connection to this COM port."
    • See also the discussion of serial connections above.
  3. I can't seem to get the Infrared connection to work. What do I do?
    • We have also been pretty much unsuccessful at getting infrared to work. Sorry. No ideas here. Let us know if you figure out something.
    • See also the discussion of infrared above.
  4. I can't seem to get the Network connection to work. What do I do?
    • Setting up networks is notoriously difficult. Here are some things that may help, but you might need to have your system administrator help.
    • Be sure that the connection option on your handheld is set to "Network". See connections above.
    • Be sure that the "Allow network connections" option is checked at the bottom of the PebblesPC window on the PC. See PebblesPC discussion above.
    • How do I get the IP number for my PC?
      • The IP number of your PC should be typed into the Network field of the connections dialog of the handheld. See connections above.
      • If you are using a WindowsCE or PocketPC devices through ActiveSync in its cradle, then use the special network number of:, as discussed with ActiveSync above.
      • Otherwise, you will need to know the real IP number of your machine. One way to get this on a Windows machine is to bring up the "MSDos Prompt" or "Command Prompt" from the Start/Programs menu on the PC, and then type "ipconfig". It will print out the IP Address for the computer. You can ignore the "Subnet Mask" and other lines. The number after the "IP Address...." is the one you want to type into the handheld's network field.
    • When you exit the connections dialog, the handheld will try to connect to the PC. The IP address of your handheld should appear in the PebblesPC window.
    • If the IP address appears, but then communication doesn't seem to work, this means you have intermittent network problems, like interference or unreliable transmissions. See your network administrator.
    • If the IP address of your handheld does not appear, then there may be some kind of connection problem. Here are some things to try:
      • Does Internet Explorer or other browser work on the handheld to let you browse web pages? Pebbles uses TCP/IP like Internet Explorer, whereas other programs might use different protocols.
      • Is there any kind of firewall or proxy between the handheld and the PC that might not be passing the Pebbles packets through?
      • Advanced users might try loading some network debugging utilities on the handheld. For example, for PocketPC, the following tools are available: NetForce (http://www.ruksun.com/mobile_computing/WindowsCe/Products/NetForce/index.html
        or vxUtil (http://www.cam.com/vxutil.html) which is free. vxUtil provides ping, traceroute, and even a port scanner, so you can see if the PC responds to pings and if it has port 4343 open (that's the Pebbles port).
  5. I have a USB cradle or cable on my device. What do I do?
    • If you have a Palm with a USB cradle or cable, unfortunately we do not support this yet. You would have to buy a serial cable or cradle instead. 
    • If you have a PocketPC or Windows CE device with a USB cradle or cable, it is pretty easy to connect using ActiveSync as a network. See discussions of USB above, network above, and question 4.
  6. "Please add a feature"
    Hey, we are developing the Pebbles applications as part of a research project, and while we appreciate all your ideas and feedback, our priority is to add the features that are interesting to us, or which further our research goals. What do you expect for free? However, if you really want us to add something, please consider giving a grant of money or equipment to the Pebbles research project. Contact Brad Myers for details, and see question 8.
  7. Do you support Macintoshes or Linux machines?
    Sorry, we have no plans to support Macintosh, Linux, or any other operating systems besides Microsoft Windows. However, if you would like to make us a grant of money, we might be willing to create it for you (see answer 8). Alternatively, maybe you want to do the port for us (see answer 9)?
  8. Where can I send a check?
    The Pebbles software is distributed for free. However, we appreciate corporate donations of money and equipment to support the Pebbles research project. Donations are tax deductible, and checks should be made out to "Carnegie Mellon University" and sent to: Brad Myers, HCII, CMU, 5000 Forbes Avenue, Pittsburgh, PA 15213. Please include a note saying that the check is in support of the Pebbles research project. See the list of other companys' contributions to Pebbles.
  9. Can I help add a feature? 
    The source code for the Pebbles project is not generally available, but if you would like to help us by adding a feature or porting Pebbles to new platforms, let us know. We have released the code to other universities and corporate research labs. See conditions under which the source code is released.
  10. Why isn't the source code for Pebbles being released? 
    We have licensed some Pebbles applications for commercial sale, and we are in discussion about licensing others, so it wouldn't make sense to give the source away for free. We have released the code to other universities and corporate research labs for research purposes, however. See the answer to question 9.
  11. Why isn't Slide Show Commander still available for free?
    People liked Slide Show Commander so much, and they keep asking for features that we are not able to supply. Synergy Solutions offers Slide Show Commander for a very inexpensive price, and they can supply support to you and help you with problems and with adding requested features.
  12. How can I control my television with Remote Commander?
    You can't. Remote Commander is only for controlling a PC. We are doing research on how a handheld can be used as a "Personal Universal Controller" but this is not likely to result in systems that you can use in the short term. If you want to control appliances from a PalmOS device, see OmniRemote by Pacific Neotek or the Sony CLIE PEG-T415. If you want to control appliances from a PocketPC device, see the TV remote controller by PDAwin.com.
  13. How do I do the reverse of RemoteCommander: Type into my PDA using my PC's real keyboard and mouse?
    Pebbles software doesn't help with this, but we did a search with Google and came up with some alternatives. Let us know if you find better options: For Palm, we found two program. Mocha W32 Keyboard, which is commercial and has a little Palm emulator on the PC, and a Palm program called keyz, which is described in an old article. For PocketPC, thanks to David Topps from the University of Calgary who sent us pointers to the following programs: Pocket Controller-Professional V3.01 and Virtual_CE 2.2.
  14. Can I use Shortcutter to change from one application to the next on the PC?
    This is really easy. Just assign a Shortcutter button action to be the key "Shift-Alt-Tab" and it will go to the next application.
  15. What does Pebbles stand for, anyway?
    Pebbles is an acronym and stands for PDAs for the Entry of Both Bytes and Locations from External Sources.
  16. What's new with the Pebbles Project?
    We try to keep the Pebbles web pages up to date. Most new work is reported as new publications which are listed in our List of Publications in chronological order. Just look for new articles at the end. We send up updates to the Pebbles mailing list rarely, so check the Pebbles web pages periodically. The changes for the latest released version of pebbles are listed in the change log. Our current research focus (Spring, 2002)  is primarily on the PUC and Assistive parts of Pebbles.

Back to the Pittsburgh Pebbles PDA Project main Page

Maintained by: Brad A. Myers