Internet 0
Contents
i0 seven principles
The Scientific American article Krikorian co-authored (cited in “References”) describes seven principles that define Internet-0.
- Each Internet-0 device uses the Internet Protocol.
- “Implementing the communications protocols jointly rather than separately” simplifies software.
- Two Internet-0 devices “do not require the existence of a third one in order to operate”.
- Each Internet-0 device “is responsible for keeping track of its own identity”.
- “The use of big bits allows the data that make up a packet to be represented in the same way no mater what physical medium conveys them.”
- Internet-0 uses open standards.
Requirements
The design intent is to provide a simple, very inexpensive system that can transmit data slowly over many types of media, and yet still connect devices to the internet. Connecting to the internet is a crucial part of the design, because much of the value of a networked device is provided by easy, wide access to it. The higher layers of an Internet 0 network are usually SLIP, IP, and above that, usually UDP or more rarely TCP.
The protocol layers are chosen to need a minimum of code, to keep the expense of the computer low. Internet 0 has been implemented in small AVR microcontrollers. In most existing implementations, the layers are not distinct, because small code is more important than elegant design.
A small translation device normally attaches a local network of Internet 0 devices to the serial port of a PC that acts as a gateway and firewall to the Internet.
Devices can talk directly to each other without requiring a server. The distributed architecture ensures that there is no central point of failure.
Address assignment and cryptographic key intialization is sometimes performed by closing a contact on the device while having a master controller broadcast an assignment message. Security is via a simplified encryption system.
Details
Internet 0 is similar to a serial port running at 9600 BAUD except it sends data by pulse-position modulation, and accepts up to 30% timing deviations.
A zero bit is a pulse in the center of the first half of a bit time, and a one is a pulse in the second half of a bit time. Data is sent as 8 bit bytes. A byte is preceded by a bit time that has two pulses (at both 1 and 0 times), and ends with a bit time that has another two pulses.
In some variations, the stop bit-time is optional, and the dual-pulse bit times are treated as byte separators.
The dual-pulse start and stop bit times permit a receiver to synchronize with the beginnings of bytes, and also measure the baud rate of a sender. Synchronizing on 8-bit bytes permits a 9600-baud internet-0 connection to easily translate to a standard, low-speed 19,200 BAUD TCP/IP serial port. The baud rate measurement permits senders and receivers to use inexpensive low-precision oscillators such as ceramic resonators or resistor-capacitor oscillators.
The most common interface uses the power supply wiring to the device. The circuit is a small surface mounted capacitor between an AC mains wire or a DC power wire and a single digital pin of a small microcontroller. The pulses are normally generated by having software toggle a digital I/O pin on the microcontroller. They are received through another capacitor, by a microcontroller with a pin configured as an interrupt, or as a hardware timer's gate.
The pulse position modulation works in many media. Internet 0 has been tested over RF, IR, ultrasonics, optical, DC and AC power wiring, and even physical representations such as printed bar codes and engraving on a key.
Fab Academy Related Projects
- Good Reference
- Meetting
- Case 1
- IR LED
- Case 2
- Globos
- 2 arduinos
- Record
- Power
- Case 3
- Case 4
- Case 5
- Case 6
- Case 7
Helpful links
First 5 Minutes Programming with Python http://www.youtube.com/watch?v=-_E7xWLvjxc&feature=related Programming Bits and Atoms http://www.youtube.com/watch?v=w8ubXgXM7kk Py Tutorial http://fab.cba.mit.edu/classes/MIT/863.07/people/stephen/tutorialPython.pdf
External links
- Internet 0 at MIT's Center for Bits and Atoms
- Programming Bits and Atoms Google TechTalk by Neil Gershenfeld, 27 October 2008
- Internet 0: Inter-device Internetworking
- Internet 0 info
- Hyperhabitat: Reprogramming the World - Venice Biennale Architecture Exhibition
- Boing Boing - "Internet 0 -- Bringing IP to the Leaf Node