Monthly Archives: July 2016

Make Your Raspberry Pi Follow Walls

The versatile single board computer, the Raspberry Pi or RBPi, makes an excellent base for an autonomous bot using a rover 5 platform. The bot uses custom laser range finders for basic wall following. It features speed control of each track, regulated by PID using feedback from its quadrature encoders, giving it the ability of directional control. The basic features are explained below.

Batteries power the bot, feeding two separate switching mode regulators. One supplies power to the motors via the H-bridge, while the other powers the RBPi and other electronic devices. The H-bridge and the SMPS reside on the lower layer of the bot, while the sensors and the RBPi are on the upper layer. Mechanical standoffs separate the two layers, and the physical separation between the two layers creates a barrier for the electromagnetic fields from the power system that would otherwise affect the compass.

A Pixy CMUCam and a line laser form the laser range finding system of the bot. A simple piece of PVC pipe with slots cut into it breaks up the beam from the line laser. That allows the cam to recognize the color of the laser blobs as it reports this data via I2C to the RBPi, which then uses simple trigonometry for converting the data into vectors representing range and angles.

A sonar device mounted on the front of the bot implements a fairly simple crash prevention mechanism. The laser range finding system may also be used for a more sophisticated crash prevention system. Even though the bot is meant for autonomous operation, it also has a basic user interface built-in to allow control for testing purposes. The interface allows simple operations such as setting the heading and limiting the forward and backward speeds. It uses some feedback from the current heading of the robot.

For testing the laser range finding, the bot has a built-in GMR or graphical mapping representation, but in a minimal configuration. Using the GMR reveals a basic difference between the mapping from the sonar device and that from the laser range finder. For example, the sonar data interprets long flat surfaces as convex, but the data from the laser shows them to be perfectly straight – implying the laser range finding is linear.

A custom mount holds both webcams and the laser line. As the cases of the webcams made it difficult to mount them, they had to be removed from their casings. One of the cams faces 25-degrees to the left, while the other faces 25-degrees to the right. That gives a 100-degree field of view to the bot. Both the cams are tilted upwards such that the bottom-line of their images is just below the horizontal.

The software processes the images and locates the laser line to calculate ranges. It makes 30 vertical scans from the top of the image looking for the laser line. Looking specifically for a laser line makes it simpler as the line is never vertical. Therefore, every point located on the line has a neighboring point.

What is an LDO and How Does it Work?

When you need a voltage regulator for your circuit and do not have much of a voltage head room, the trick is to use an LDO or a low-dropout regulator. Normal regulators need voltage headroom of roughly around 3V to allow good regulation, but LDOs can do with a lot less – of the order of a few 100 millivolts. However, there are other considerations as well.

To regulate and control an output voltage, it is necessary to source it from a higher input voltage supply. For normal regulators, the voltage headroom or the difference between the output regulated voltage and the minimum input unregulated voltage must be more than 3V. For example, if you need a regulated voltage of 5V, it must be sourced from a minimum input voltage of 8V. That ensures the regulated output voltage never dips below 5V. With circuits getting more complex and noise sensitive, new designs must deal with higher currents and lower voltages. Hence, headroom voltages of 3V or more may not be available in all cases, and it is necessary to use LDOs.

Although manufacturers offer datasheet specifications for basic parameters of regulators, they cannot list all parameters for every possible circuit conditions. Therefore, to use the LDO in the best possible manner, designers must necessarily understand the key performance parameters of the LDO and their impact on given loads. A close analysis of the surrounding circuit conditions helps to determine the suitability of a specific LDO.

In applications, LDOs primarily isolate a sensitive load from a noisy power source. The pass transistor or the MOSFET regulating and maintaining the output voltage accurately is always on and dissipates continuous power. This is different from switching regulators, which work as on-off switches. That makes LDOs less efficient and designers must handle the thermal issues related. System power requirements primarily drive the use of LDOs as voltage regulators. Since they are linear devices, they are also used for noise reduction and for fixing problems related to EMI and PCB routing.

As the power dissipation of an LDO is primarily governed by the current through it, LDOs are an obvious choice for very low current loads, bringing with their use simplicity, cost economics, and ease of use. For load currents of more than 500mA, designers must consider other parameters also, such as the dropout voltage, load regulation, and transient performance.

LDOs comprise three basic functional elements – a pass element, a reference voltage, and an error amplifier. Under normal operation, the pass element behaves as a voltage controlled current source. A compensated control signal from the error amplifier drives the pass element. The error amplifier senses the output voltage and compares it with the reference voltage. LDO regulator designs use four different kinds of pass elements – PNP transistor based regulators, NPN transistor based regulators, P-channel MOSFET-based regulators and N-channel MOSFET-based regulators.

While using a specific LDO in their circuits, designers need to consider the performance of the LDO with respect to its dropout voltage, load regulation, line regulation, and the power supply rejection ratio or PSRR.

A New Raspbian for your Raspberry Pi

Your single board computer, the Raspberry Pi or RBPi runs an operating system, or more specifically a Linux OS. Keeping true to its form, the Linux OS comes in umpteen flavors and you can choose and pick the one most suitable to your purpose. Operating Systems are built for the processor in the system, and the most popular so far are the Intel family of processors. Since SBCs generally use the ARM family of processors, a special version of the Linux OS is available for them. Of the many versions of the Linux OS for the ARM processors, the Raspbian is the most popular. A new version of Raspbian is now available.

Although people consider versions of operating systems primarily as updates and bug fixes, the new Raspbian is something more. The existing Jessie image used for the desktops and laptops has been modified and adapted to work with the ARM family of processors. Among the standard applications that come with Raspbian, many have been upgraded to offer newer features.

The new Raspbian offers Sonic Pi, version 2.9. If you view the history section of the Info window in Sonic Pi, you can read the full list of changes. The most important are two new effect functions – all articles of SAM Aaron of The MagPi magazine are now included as part of the online tutorials, and there is a new logging system.

Scratch, at version 20160115, has an improved capability for sound input, and supports the CamJam Edukit 3 robotics board. It offers basic PWM support in its GPIO server, and adds several improvements to the font scaling and display.

You will get the new Mathematica at version 10.3 with added support for additional functionality as described by Stephen Wolfram in his book. It supports Sense HAT, includes several new functions, and adds more interfacing to the Arduino.

WiringPi library has been upgraded to version 2.31 and now it allows access to the GPIO pins without use of the the sudo command from applications that use the library. Another Python library, the Rpi.GPIO is at version 0.6.1, and includes several bug fixes that plagued the GPIO Zero library. Additionally, the ping command does not require sudo anymore.

The ALSA system had earlier made it very difficult to get some USB devices to work as the default output. Now it has a new volume/audio device icon on the taskbar. That allows it to be compatible with a wider range of audio devices than before.

With the improved Main Menu editor, you can now create new menus. Earlier, the LXDE desktop environment did not allow visibility of all other menus, and this has now been addressed to work correctly.

Overclocking options for the RBPi models 1, 2, and Zero boards are now available from the command-line and the RBPi Configuration GUI. Updated language translations are also available for those not using English.

Earlier, there was a wide selection of names in different places such as Trash, Rubbish Bin, and more. Now, the name is consistently Wastebasket everywhere when you set the desktop to British English.

Powerful Energy Storage with Micro-supercapacitors

People have been trying to use supercapacitors to supplement batteries. Although capacitors do store energy, unlike batteries they charge up fast and discharge the energy stored quickly, such as in a camera flash. Common lithium-ion batteries take time to charge up and discharge according to requirement of the load. However, technology is catching up fast and new type of micro-supercapacitors is rivaling commercial supercapacitors in terms of storage capacity and power delivery similar to batteries.

At the Rice University, a team of researchers has developed a solid-state micro-supercapacitor. Although not a battery, this new device stores energy just as commercial supercapacitors can and it releases its stored energy just as a battery does. The specialty of the micro-supercapacitor developed by the researchers is it charges more than 50 times faster than batteries and discharges more slowly than traditional capacitors do.

The manufacturing process for these micro-supercapacitors allows them to be produced in a cost-effective and roll-to-roll method. The researchers used commercial lasers to burn electrode patterns in plastic sheets at room temperatures to form the basic structure of the supercapacitors. Manufacturing commercial supercapacitors involves several lithographic steps, making the process time-consuming and expensive. It also limits the widespread application of supercapacitors.

The new technique makes micro-supercapacitors in minutes, including burning the pattern, adding the electrolytes and packaging the devices. Since all this is done at room temperature, the fabrication process is simple, speedy, and cost-effective. According to the researchers, these micro-supercapacitors offer energy densities rivaling those offered by commercial thin-film batteries, while providing power densities nearly two times in magnitude. Additionally, they outlasted the batteries in terms of life and mechanical stability.

The energy density of micro-supercapacitors comes from laser-induced graphene or LIG. When the research group heated a commercial polyimide plastic sheet with a laser, they found it burnt everything. Only a top layer of carbon, in the form of graphene, was left over. However, this leftover layer was not a flat sheet of hexagonal rings of atoms, but a spongy array of graphene flakes that were attached to the polyimide. The LIG patterns etched into the plastic look like folded hands and the graphene has a huge surface area.

The researchers achieved capacitances of 934 mF per square centimeter, with energy density of 3.2 mW per cubic centimeter. This is at least twice that offered by commercial thin-film lithium batteries. In addition, the devices showed high resilience and mechanical stability even when repeatedly bent more than 10,000 times.

The researchers at Rice used electrodeposition to treat the LIG pattern of spongy graphene with manganese dioxide and ferric oxyhydroxide to turn the resulting composites into positive and negative electrodes. Forming the composites into solid-state micro-supercapacitors did not involve separators, binders, or current collectors. The entire process takes just minutes from burning the patterns, adding the electrolytes, and covering the capacitors.

The manufacturing process developed at the Rice University has great potential for bulk production of small and flexible micro-supercapacitors at room temperatures. The researchers are convinced that such plastic micro-supercapacitors will replace batteries entirely in the future.

What are Polymer and Hybrid Capacitors?

The growing complexity of active electronic components and their applications has resulted in the use of different types of passive components, especially capacitors. The advances in conductive polymers now offer a universe of capacitors for embedded systems applications and others.

Some advanced capacitors use conductive polymers for their electrolyte. Others such as hybrid capacitors use the conductive polymers in conjunction with a liquid electrolyte. Both these polymer-based capacitors offer improved characteristics over conventional ceramic and electrolytic capacitors, namely, life cycle, safety, longevity, reliability, stability, ESR or Equivalent Series Resistance and voltage rating. These special hybrid and polymer capacitors show distinct performance advantages in terms of ideal voltages, environmental conditions, and frequency characteristics.

Polymer Capacitors

Layered Polymer Aluminum Capacitors: These use conductive polymer as the electrolyte with an aluminum cathode. They operate within a voltage range of 2-25 VDC and manufacturers make them in capacities of 2.2-500 µF. Packaged in molded resin as low profile SMDs, they offer very low ESR.

Wound Polymer Aluminum Capacitors: Although they use conductive polymers and aluminum, they are constructed with a wound foil structure. They operate over a wider voltage range of 2.5-100 VDC and their capacities range from 3.3-2700 µF. With low ESR values, the capacitors are packaged as SMD, although layered capacitors are more compact in comparison.

Polymer Tantalum Capacitors: They use a tantalum cathode and conductive polymers as electrolyte. They are available in capacitance values of 2.7-680 µF and their operating voltage ranges from 1.8-35 VDC. Among the most compact capacitors on the market, polymer tantalum capacitors are available in SMD packages.

Hybrid Polymer Aluminum Capacitors: These use a combination of conductive and liquid polymers as electrolyte along with an aluminum electrode. The polymer offers low ESR as well as high conductivity. The liquid electrolyte offers higher capacitance ratings as it has a larger surface area, while being able to withstand high voltages. These capacitors come in a capacitance range of 10-330 µF with voltage range of 25-80 VDC. Although compared to other types, the ESR value for hybrid capacitors are on the higher side, the values are far lower than what conventional capacitors offer.

Advantages of Polymer Capacitors

Although different in material and construction, the four types of capacitors share common desirable electrical properties.

Superior Frequency Characteristics: As polymer capacitors have very low ESR, the impedance at their resonance point is also very low, resulting in reduced ripple in power circuits by nearly five times when compared to that produced by conventional tantalum capacitors.

Capacitance Stability: Ceramic capacitors tend to drift in response to DC bias and temperature. Polymer capacitors are devoid of such problems. This stability is of importance in automotive and industrial applications, where the operating temperatures vary broadly. Even under common operating conditions such as high temperatures and high frequencies, where ceramic capacitors show an effective capacitance loss of over 90%, polymer capacitors remain stable.

Enhanced Safety: Conventional capacitors can short circuit and fail, and these are causes for safety issues. Mechanical stresses or electrical overload can create discontinuities or defects in the oxide films that forms the dielectric leading to safety failures. The self-healing capability of the polymer capacitors eliminates such failure modes.

PIXY: Versatile CAM for Your Raspberry Pi

If you are looking for a small, fast, low-cost, easy-to-use, and readily available vision system for your Raspberry Pi or RBPi, then the Pixy can be a great choice. Pixy or CMUCam5 is somewhat more than a normal camera that you may have used so far for your single board computer. It comes with several features not available on most camera systems.

First, Pixy is versatile – use it for all kinds of projects. Along with the hardware, you will receive all kinds of information – PCB layout, bill of materials, schematics, and other hardware documentation. All software/firmware is GNU-licensed and open-source. The configuration utility provided with Pixy runs on all platforms – Windows, MacOS, and Linux. RBPi can communicate with Pixy over one of several interfaces – analog/digital output, USB, UART, I2C, or SPI. The Pixy comes with all libraries for RBPi, BeagleBone, and Arduino and supports programs written in Python and C/C++. The cable provided with Pixy can connect directly to Arduino, and it also works with BeagleBone and RBPi.

On the performance side, Pixy can learn to detect and recognize objects that you have taught it and outputs what it detects 50 times per second. With a Pixy, an RBPi and a servo control board, you can reconstruct Wall-E, the waste-collecting robot.

Pixy resulted from a partnership of the Carnegie Mellon Robotics Institute with Charmed Labs. First started as a Kickstarter campaign, Pixy is now the most popular vision system since it first started selling in March 2014. You can gage the versatility of Pixy from the activities it can do in association with an RBPi – pick up objects, chase a ball, locate a charging station, and more – doing all this with a single vision sensor.

Although there are other vision systems that can sense or detect practically anything, almost all of them have two drawbacks. One, they output huge amounts of data, a few megabytes per second. Two, enormous computing power is necessary to process this data, leaving the attached SBC with little else to cater to other tasks.

Pixy gets around these barriers as it pairs a powerful and dedicated processor along with its image sensor. The processor does all the processing of the data captured by the image sensor, and sends only the relevant information to the attached SBC. For example, yellow ball detected at x=50, y=110. Therefore, the RBPi can easily talk to Pixy and still have enough computing power left over for other activities. That also means you can have multiple Pixy cams hooked up to your RBPi. For instance, you can make a robot with a 360-degree sensing capability with four Pixys.

Although Pixy began with interfacing capabilities with the Arduino controller, it has matured sufficiently to be able to communicate with other controllers as well. The Pixy comes with all sorts of software libraries and a Python API for connecting to Linux-based controllers, such as an RBPi.

On-board Pixy is a color-based filtering algorithm that helps in detecting colored objects. The popular color-based filtering method makes Pixy singularly fast, efficient, and relatively robust. Pixy examines each RGB pixel from the image sensor and computes the saturation and hue to use as its primary filtering parameters.

Fanless Mini-PC Consumes only 5W

Industrial control applications, digital signage and thin client users require low-power computer systems. The F200 mini PC from Giada Technology is an ultra-compact unit measuring only 4.6 in x 2 in and a thickness of only 1.2 in. Other desktop PCs use up more than 100 W of power, but the F200 takes up only 5 W at full load. At this level of power consumption, there is no need for cooling, and consequently, the mini PC is a fanless unit.

The fanless F200 mini PC takes up the minimum real estate on your desktop. With a VESA mount, you can do a clean installation of this mini PC on the back of a monitor or display, where it fits easily. An Intel Celeron N2807 processor with dual cores powers the mini PC, and it can operate at up to 2.16 GHz. With 8 GB of DDR3 DRAM and 16 GB of eMMC flash directly soldered on its motherboard, the fanless F200 gives out very little heat. The sturdy build resists shocks and vibrations. You can operate the F200 with Android, Linux, Windows 7 or Windows 8.1. If you want to add a solid-state disk of your choice, F200 has an mSATA II slot as well.

Unattended operations on the F200 are easy because of its built-in capabilities. You can schedule power on and off, and program it for auto power-on after a power failure. Therefore, F200 is eminently suitable for simple digital signage and other industrial installations. For those looking for pushing signage content over a network, the F200 offers a SIM card slot for Wi-Fi, BT or 3G module connectivity.

The F200 ultra compact mini PC can act like a virtual desktop. As industrial environments can be typically harsh, Giada Technologies has made F200 durable, noise proof and dust resistant. Its Intel Celeron Processor N2807 operates with two cores, 2 threads at 1.58-2.16 GHz, reaching a TDP of 4.3 W.

Display interfaces on the F200 consist of Intel HD Graphics, with Microsoft DirectX 11 on a single HDMI port. With an optional VGA output, the display resolution can be 3200 x 2000 at 60 Hz for DP, or 3840 x 2160 at 24 Hz for HDMI.

F200 offers three expansion slots. The first is for a SIM card capable of connecting 3G enabled Wi-Fi modules. There are two Mini-PCI Express slots where you can connect full-length mSATAII SSDs, full-length PCIe, USB Wi-Fi & BT or a 3G enabled module.

The F200 is rather rich in IO interfaces. A single port offers Microphone and audio in/out. A Realtek Gigabit Ethernet Controller connects to a single RJ45 port on the back panel. There are two USB2.0 ports and a single USB3.0 port, one COM port, and one SIM card slot. 12/19V DC in is through a Jack on the back panel. Optional ports include IEEE 802.11 ac/b/g/n, a Bluetooth module and an IR module.

Several built-in features provide system management on the F200. For example, there is JAHC support, a watchdog timer, auto power on, wake on LAN and RTC wake up to control the mini PC. The operating temperature range is from 0-40°C.

AT21CS01 from Atmel: This EEPROM Does Not Require External Power Source

AT21CS01 from Atmel is a two pin serial EEPROM. Astonishingly, it does not have a Vcc or power supply pin characteristic of any IC and does not require an external power source to work. This amazing memory IC operates with only a data pin and a ground pin. The memory in the IC is organized as 128×8 bits, that is, a total of 1-kbits.

The single-wire device, AT21CS01, operates with only an SI/O and GND pin. The SI/O signal functions as a combination of data and power line. That means, apart from moving data in and out of the IC, the SI/O pin also provides power to the device. During high time of the protocol sequence, the IC’s parasitic power scheme provides the IC with power.

Each AT21CS01 is factory programmed to include a unique serial number of 64-bits. The SI/O line can be accessed directly from outside the application, because the device complies with the IEC 61000-4-2 ESD tolerance. This memory IC comes in 4-ball WLCSP, 8-lead SOIC and 3-lead SOT23 packages. Market availability is slated for the fourth quarter of 2015.

Possible applications for AT21CS01 include ink and toner print cartridge identification, storing data for analog sensor calibration and management of after-market consumables. There are several advantages in using AT21CS01.

Manufacturers claim AT21CS01 consumes 33% lower power in its active mode when compared to devices offered by the competition. For instance, at 25°C, the typical write current for an AT21CS01/11 is 200 µA, the typical read current measures about 80 µA, and a typical standby current of 700 nA. Each memory location can endure 1 million write cycles.

With such features, the AT21CS01 is eminently suitable as identification markers for cables, batteries, consumables, wearables and IoT. To support different voltage requirements, the AT21CS01 comes in two variants. AT25C501 is suitable for applications operating in the range of 1.7 to 3.6V. However, when operating with Li-Ion or polymer batteries, applications require higher voltage ranges, such as 2.7 to 4.5V, for which, the AT21C511 is suitable.

With its ultra-low active and standby currents, the AT25C501 beats the competition by consuming at least one third less power. The single-wire interface follows the I2C communication protocol. This IEC 61000-4-2 Level 4 ESD compliant device can withstand discharges of +8KV in contact and +15KV in air.

The innovative memory is organized into for zones of 256-bits each, with a security register additional to the 1 Kb memory space. Each EEPROM has a 64-bit serial number programmed at the factory and includes 16-bytes extra for user programmability. That means the user can improve on the uniqueness of the serial number on each device.

The advantages of using AT25C501 are many. The designer needs only one pin from the ASIC/MPU/ASSP/MCU. Because of its smaller footprint, layout is simple and the consumed PCB area reduces. That makes it easy to integrate identification capabilities in cables and or consumables. Its lower energy consumption is a boon for instruments working on batteries. The high-speed mode of AT25C501 even in low power applications results in high performance.

An Energenie Pi-Mote controller Board for Your Raspberry Pi

Those looking for a low-cost automation and home control solution can use the Pi-Mote controller board from Energenie. The Pi-Mote controller board is an add-on for your single board computer, the Raspberry Pi or more simply, RBPi. With this combination, you can control electrical appliances connected to special radio controlled electrical sockets.

Working at 433.92 MHz, the Pi-Mote controller board for radio-controlled sockets is easy to install and command. The product offers a safe and simple way to let your RBPi control mains powered devices and appliances. The Pi-Mote controller board from Energenie is compatible with all RBPi models such as the A, A+, B, B+ and B2.

The Pi-Mote controller has a range of up to 30 meters and puts out an output power of 3V, 27mA at +12 dBm. The output is encoded at four data bits, offering a 20-bit address pre-set with OTP. The user can select the output modulation with software from OOK or FSK.

The product actually comes in two parts, the RF board and the electrical socket. The RF board attaches to the RBPi for controlling several 13A, 3-pin electrical sockets. Although the original Energenie sockets are meant for use in the UK, plug adapter sockets are available, which make these almost universal. You can also get kits with a 4-way extension lead and other compatible sockets from Energenie. All can be controlled from the Pi-Mote controller board.

A small Python program allows the add-on RF transmitter board to control up to 4 radio controlled sockets simultaneously by toggling the socket on and off individually. The add-on board attaches to the GPIO pins of the RBPi. In its basic form, each board transmits a frame of information to the sockets. The frame is made up of a 20-bit address and a 4-bit control data. Additionally, the frame uses the On-Off Keying or OOK technique, a basic form of Amplitude Shift Keying or ASK. The source addresses are pre-programmed and the user cannot change them.

When using the Pi-Mote controller, you are required to insert the radio-controlled socket into the mains wall socket and switch it on. The socket then enters a learning mode, which is indicated by the slowly flashing LED in front of the socket housing. You can force a socket to enter the learning mode at any time by pressing the green button on its housing form, holding it for five seconds and releasing it.

Once it is in the learning mode, send the socket a signal from the program running on the RBPi. The LED on the socket housing gives a brief flash and stops glowing. This indicates the socket has accepted and memorized its address. You can then program the rest of the three sockets in turn; otherwise, they will react to the same address. When using more than one socket, insert each into separate mains wall outlets, maintaining a physical separation of at least 2 meters so they do not interfere with each other. The sockets must not be put into a single extension lead.

Expand the Ports of your Raspberry Pi

The ubiquitous single board computer, the Raspberry Pi, or the RBPi, as it is fondly called by its users, is rich in General Purpose Input Output or GPIO pins. These are lined up on the board in two rows of 13 easily accessible pins, totaling 26 of which 17 are GPIO pins, the others being either power or ground pins.

GPIO pins provide a physical interface between the RBPi and the external world. Speaking plainly, these act as switches that the user can turn on or off as inputs or the RBPi can turn on or off as outputs. GPIO pins are physically arranged along the edge of the RBPi board, next to the yellow output socket for video.

To allow the RBPi to interact with the real world, you can program the pins in amazing ways. For example, there need not be a physical switch to connect inputs. Inputs can come from a signal from a device such as another computer or a sensor. Similarly, outputs can be made to do almost anything, such as sending data or signal to another device such as an LED.

One of the advantages of having an RBPi on a network is you can control devices attached to it from remote places, while collecting data from those devices. Connecting to and controlling physical devices over the Internet is exciting and a powerful feature best done by the RBPi.

However, some applications demand more input and output pins apart from the 17 that are available on the RBPi. That requires the user to expand the GPIO pins and this they can easily do by using the Quick2Wire Port Expander board. The board adds 16 more GPIO pins to the RBPi’s 17, so you can now have 33 GPIO pins with one expander board.

Additionally, you can stack more boards to have more GPIO pins. Each expander board can be preset with a configurable address via DIP switches on-board. Since eight addresses are possible, you can add eight more boards. Each board communicates to the RBPi via the I2C bus.

The Inter Integrated Circuit Communication protocol, called I2C in short, links the micro-controller or microcomputer to other micros or circuits. Another similar protocol is the Serial-Parallel Interface or the SPI. Both protocols are widely used for robotics and hobby electronics projects.

NXP (originally Philips) developed the I2C protocol. This is a very popular protocol used in several equipment including computer motherboards, monitors and TVs. Although a very flexible protocol, I2C is rather limited in its bandwidth.

Freescale (originally Motorola) developed the SPI protocol, which is much faster as compared to I2C. However, it is somewhat more complicated to use and has its own limitations.

Modern micro-controllers now support both protocols. These include the RBPi, Arduino, BeagleBone and BeagleBoard. Therefore, with I2C, you can control a host of devices, treating them as slaves and using two lines SDA and SCL. With SPI, data rates of over 10 MHz are common. Data transfer happens over three lines, one of which carries the clock and the other two communicate between the master and the slave.