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.
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.
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.
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
- Case 1
- IR LED
- Case 2
- 2 arduinos
- Case 3
- Case 4
- Case 5
- Case 6
- Case 7
- 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
- Samsung Galaxy Z2
- Internet 0 info
- Hyperhabitat: Reprogramming the World - Venice Biennale Architecture Exhibition
- i0 Wapedia
- Harga Hp HTC
- Boing Boing - "Internet 0 -- Bringing IP to the Leaf Node
- Harga Mesin Cuci Electrolux