# Scatternet

A scatternet is a type of ad hoc computer network consisting of two or more piconets. The terms "scatternet" and "piconet" are typically applied to Bluetooth wireless technology.

## Description

A piconet is the type of connection that is formed between two or more Bluetooth-enabled devices such as modern cell phones. Bluetooth enabled devices are "peer units" in that they are able to act as either master or slave. However, when a piconet is formed between two or more devices, one device takes the role of the 'master', and all other devices assume a 'slave' role for synchronization reasons. Piconets have a 7 member address space (3 bits, with zero reserved for broadcast), which limits the maximum size of a piconet to 8 devices, i.e. 1 master and 7 slaves.
A scatternet is a number of interconnected piconets that supports communication between more than 8 devices. Scatternets can be formed when a member of one piconet (either the master or one of the slaves) elects to participate as a slave in a second, separate piconet. The device participating in both piconets can relay data between members of both ad hoc networks. However, the basic Bluetooth protocol does not support this relaying - the host software of each device would need to manage it. Using this approach, it is possible to join together numerous piconets into a large scatternet, and to expand the physical size of the network beyond Bluetooth's limited range.
Currently there are very few actual implementations of scatternets due to limitations of Bluetooth and the MAC address protocol. However, there is a growing body of research being conducted with the goal of developing algorithms to efficiently form scatternets.

## Future applications

Scatternets have the potential to bring the interconnectivity of the Internet to the physical world through wireless devices. A number of companies have attempted to launch social networking and dating services that leverage early scatternet implementations (see Bluedating). Scatternets can also be used to enable ad hoc communication and interaction between autonomous robots and other devices.

## Research

Several papers exist that propose algorithms for scatternet formation, and many different approaches have been simulated in both academic and corporate R&D environments. Some early experiments with large scatternets can be found at ETH Zurich in the BTnode project.
In 2008, a student at University College Cork, Ireland, developed a scatternet-based application in the Java programming language, using the JSR-82 library. This application's main purpose is to facilitate parallel computations over Bluetooth scatternets, using an MPI-style message passing paradigm. Although it only runs on the emulation environment provided by Sun's Wireless Toolkit, it is capable of creating a scatternet of up to 15 devices and routing a message through the network.
In 2006, a student at the University of Technology, Iraq, developed an on-demand peer-to-peer scatternet routing algorithm and protocol, with Java ME application based on JSR-82 library. This application was tested successfully on several real life Java-enabled mobile phones, and is capable of building large scatternets, but its only practical when routes are less than 3 nodes long due to Bluetooth's speed.