Recent Changes - Search:




Mega Plan



The Gumstix are equipped with Class 2 Bluetooth. Each Gumstix is set up as a personal area network user (PANU) and constantly listens for incoming connections.

Belkin Bluetooth Access Point

A Belkin Bluetooth Access Point provides Bluetooth connectivity between the robots and the local network. Each Access Point supports a piconet of up to seven robots; additional robots require more access points.

Belkin provides a web manager to change settings on the Access Point. This utility is good for testing network connectivity. While the Belkin supports DHCP, we assigned a static IP. Additionally, we updated the firmware to get PAN working. Download the patch, and re-flash the Belkin. The firmware is due to Roving Networks, to whom we are grateful. Consider purchasing your Belkin straight from them.

TCP/IP Networking

TCP/IP networking is created using by having rfcomm listen on the bluetooth port, and establishing a rfcomm-getty on the Bluetooth port. Additionally, each Gumstix's IP address is static and each IP address is on the same subnet as the Access Point. The Bluetooth network connection is automatically established whenever the Gumstix is within range of the Access Point. The superconf script in the Gumstix section sets up all the networking files. With this setup, we can ssh and scp to each Gumstix.

Bot-to-Bot Communication via Bluetooth

The bots are able to communicate with the outside world through a Bluetooth access point, but are not able to communicate directly with one another. Specifically, they are on the same subnet, but are not in the same broadcast domain (as bizarre as that may sound). To allow them to send packets to one another, routing entries must be added to each bot which sends packets through the router. On a bot with IP address, with a gateway of, the following routing table entries would need to be made:

  • route add gateway
  • route add gateway
  • route add gateway
  • etc

Keep-Alive Script

The Belkin Access Points will close the connection with a Gumstix if there is no traffic over the connection every minute or so. To get around this, we created a keep-alive script which pings a bogus internet address every 60 seconds. This script is started at bootup.

 echo "Starting keep-alive heartbeat..."
 while $l
         ping -c 1 > /dev/null
         sleep 60
Edit - History - Print - Recent Changes - Search
Page last modified on June 18, 2005, at 02:20 PM