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:
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.
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
[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.
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.
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.
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.
This allows a user on one PDA to write notes to a user on another PDA,
using the PC as a conduit.
[Palm or WindowsCE]
Create custom panels for speedup of common tasks on the PC.
[Palm or WindowsCE]
Look at the window list of the PC and switch between running
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.
the download page for instructions on how to download this software
and install the software.
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:
See the Trouble Shooting Guide and FAQ if you
are having problems connecting.
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
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.)
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
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.
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
- 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
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: 192.168.55.100
(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
- 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 192.168.55.100.
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
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.
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
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.)
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
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
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
- 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
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".
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
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
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.
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?
- 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
- 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.
- 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
- 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
- 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
- See also the discussion of infrared above.
- 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
- Be sure that the connection option on your handheld is
set to "Network". See connections
- Be sure that the "Allow network connections"
option is checked at the bottom of the PebblesPC window on the PC. See PebblesPC
- 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
If you are using a WindowsCE or PocketPC devices through
ActiveSync in its cradle, then use the special network number of: 192.168.55.100,
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
- 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
Advanced users might try loading some network debugging utilities on
the handheld. For example, for PocketPC, the following tools are
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).
- 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.
- "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
money or equipment to the Pebbles research project. Contact Brad
Myers for details, and see question 8.
- 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)?
- 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.
- 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.
- 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
- 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
- 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.
- 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.
- Can I use Shortcutter to change from one application to the next on
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.
- What does Pebbles stand for, anyway?
Pebbles is an acronym and stands for PDAs for
the Entry of Both Bytes and Locations from External
- 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.