A piconet is the type of connection that is formed between two or more Bluetooth-enabled devices such as modern cell phones or PDAs. 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 '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.
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.
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[clarification needed].
- F. Cuomo, T. Melodia, I. F. Akyildiz, "Distributed self-healing and variable topology optimization algorithms for QoS provisioning in scatternets," IEEE JSAC Special Issue on Quality of Service Delivery in Variable Topology Networks, Sept. 2004, Vol. 22, Issue 7, pp. 1220-1236.
- ETH Zurich
- BTnode project.
- B. Donegan, D. Doolan, S. Tabirca "Mobile Message Passing using a Scatternet Framework", International Journal of Communications & Control, May 2007, Vol. 3, Issue 1, pp. 51-60, http://www.journal.univagora.ro/?page=article_details&id=106
- I. Ibraheem, "Development of Routing Algorithm Based on Bluetooth Technology", University of Technology, Iraq, December 2006, http://uotechnology.edu.iq/ce/thesis/thesisMsc2006/Ibrahim%20Abdul%20Mutalib%20Ibrahim%202007.pdf, http://www.uotiq.org/, http://www.iraqicci.org/library/softwareengineeringmaster.htm