IOIO
   HOME

TheInfoList



OR:

IOIO (pronounced ''yo-yo'') is a series of open source
PIC microcontroller PIC (usually pronounced as ''"pick"'') is a family of microcontrollers made by Microchip Technology, derived from the PIC1650"PICmicro Family Tree", PIC16F Seminar Presentation originally developed by General Instrument's Microelectronics ...
-based boards that allow Android
mobile application A mobile application or app is a computer program or software application designed to run on a mobile device such as a phone, tablet, or watch. Mobile applications often stand in contrast to desktop applications which are designed to run on des ...
s to interact with external electronics.SparkFun Hosts Android Development Class with IOIO
PRNewsWire, BOULDER, Colo., June 27, 2012
The device was invented by Ytai Ben-Tsvi in 2011, and was first manufactured by SparkFun Electronics.IOIO for Android, DEV-10585
SparkFun
The name "IOIO" is inspired by the function of the device, which enables applications to receive external input ("I") and produce external output ("O").


Features

The IOIO board contains a single PIC MCU that acts as a
USB host Universal Serial Bus (USB) is an industry standard that establishes specifications for cables, connectors and protocols for connection, communication and power supply (interfacing) between computers, peripherals and other computers. A broad ...
/ USB slave and communicates with an Android app running on a connected Android device. The board provides connectivity via
USB Universal Serial Bus (USB) is an industry standard that establishes specifications for cables, connectors and protocols for connection, communication and power supply (interfacing) between computers, peripherals and other computers. A broad ...
,
USB-OTG USB On-The-Go (USB OTG or just OTG) is a specification first used in late 2001 that allows USB devices, such as tablets or smartphones, to act as a host, allowing other USB devices, such as USB flash drives, digital cameras, mouse or keyboar ...
or
Bluetooth Bluetooth is a short-range wireless technology standard that is used for exchanging data between fixed and mobile devices over short distances and building personal area networks (PANs). In the most widely used mode, transmission power is limi ...
, and is controllable from within an Android application using the Java API.IOIO-OTG, DEV-12633
SparkFun
IOIO Java Library Basics
GitHub
In addition to basic digital input/output and analog input, the IOIO library also handles PWM, I2C, SPI,
UART A universal asynchronous receiver-transmitter (UART ) is a computer hardware device for asynchronous serial communication in which the data format and transmission speeds are configurable. It sends data bits one by one, from the least signific ...
, Input capture,
Capacitive sensing In electrical engineering, capacitive sensing (sometimes capacitance sensing) is a technology, based on capacitive coupling, that can detect and measure anything that is conductive or has a dielectric constant different from air. Many types of s ...
and advanced motor control. To connect to older Android devices that use USB 2.0 in slave mode, newer IOIO models use
USB On-The-Go USB On-The-Go (USB OTG or just OTG) is a specification first used in late 2001 that allows USB devices, such as tablets or smartphones, to act as a host, allowing other USB devices, such as USB flash drives, digital cameras, mouse or keybo ...
to act as a host for such devices. Some models also support the
Google Google LLC () is an American Multinational corporation, multinational technology company focusing on Search Engine, search engine technology, online advertising, cloud computing, software, computer software, quantum computing, e-commerce, ar ...
Open Accessory USB protocol. The IOIO motor control API can drive up to 9 motors and any number of binary actuators in synchronization and cycle-accurate precision.Motor control
IOIO Wiki

MAY 14, 2013, Ytai Ben-Tsvi Blog
Developers may send a sequence of high-level commands to the IOIO, which performs the low-level waveform generation on-chip. The IOIO firmware supports 3 different kinds of motors;
stepper motor A stepper motor, also known as step motor or stepping motor, is a brushless DC electric motor that divides a full rotation into a number of equal steps. The motor's position can be commanded to move and hold at one of these steps without any posi ...
s, DC motors and
servo motor A servomotor (or servo motor) is a rotary actuator or linear actuator that allows for precise control of angular or linear position, velocity and acceleration. It consists of a suitable motor coupled to a sensor for position feedback. It also ...
s. Device firmware may be updated on-site by the user. For first-generation devices updating is performed using an Android device and the ''IOIO Manager'' application available on
Google Play Google Play, also known as the Google Play Store and formerly the Android Market, is a digital distribution service operated and developed by Google. It serves as the official app store for certified devices running on the Android operating sy ...
. Second-generation IOIO-OTG devices must be updated using a desktop computer running the ''IOIODude'' application. The IOIO supports both computers and Android devices as first-class hosts, and provides the exact API on both types of devices. First-generation devices can only communicate with PCs over Bluetooth, while IOIO-OTG devices can use either Bluetooth or USB. PC applications may use APIs for
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mos ...
or C# to communicate with the board; Java being the official API.


Applications

The IOIO hardware and software is entirely open source, and enabled the creation of hundreds of DIY robotic projects around the world. The board has been featured in various learning kits, which aim to help students write Android applications that can interact with the external world.IOIO Mint - Portable Android Development Kit
AdaFruit
The Qualcomm Snapdragon Micro Rover is a
3D printed 3D printing or additive manufacturing is the construction of a three-dimensional object from a CAD model or a digital 3D model. It can be done in a variety of processes in which material is deposited, joined or solidified under computer co ...
robot that leverages an Android
smartphone A smartphone is a portable computer device that combines mobile telephone and computing functions into one unit. They are distinguished from feature phones by their stronger hardware capabilities and extensive mobile operating systems, whic ...
and the IOIO to control the robot's motors and sensors. A team led by Israeli inventor Dr. Guy Hoffman created an emotionally-sensitive robot, that relies on the IOIO to control the robot's hardware.


Reviews

The IOIO has been variously described as a "geek's paradise", "an easy way to get I/O from an Android device’s USB connection" and "a USB I/O breakout board for Android smartphones which turns your handset into a super-Arduino of sorts". It featured as a recommended "gift for geeks" in a
Scientific Computing Computational science, also known as scientific computing or scientific computation (SC), is a field in mathematics that uses advanced computing capabilities to understand and solve complex problems. It is an area of science that spans many disc ...
article. According to SlashGear, an online electronics magazine: According to SparkFun, the first manufacturer of the device: According to Ytai Ben-Tsvi, the inventor of the device:


Technical details


IOIO V1

The first-generation IOIO boards (known as ''IOIO V1'') contain the following on-board features: This generation only supports USB slave mode, and requires a USB master as the host (PC or newer Android phones). The IOIO V1 is a 3.3 V
logic level In digital circuits, a logic level is one of a finite number of states that a digital signal can inhabit. Logic levels are usually represented by the voltage difference between the signal and ground, although other standards exist. The range ...
device, and features a 5 V DC/DC switching regulator and a 3.3V
linear regulator In electronics, a linear regulator is a voltage regulator used to maintain a steady voltage. The resistance of the regulator varies in accordance with both the input voltage and the load, resulting in a constant voltage output. The regulating circ ...
. The 5 V regulator supports a 5–15 V input range and up to 1.5 A load. This facilitates charging a connected Android device as well as driving several small motors or similar loads.


IOIO OTG

The second-generation IOIO boards (known as ''IOIO-OTG'') contain the following on-board features:IOIO OTG
SparkFun USA
As the name suggests, a key feature of this generation is the introduction of
USB-OTG USB On-The-Go (USB OTG or just OTG) is a specification first used in late 2001 that allows USB devices, such as tablets or smartphones, to act as a host, allowing other USB devices, such as USB flash drives, digital cameras, mouse or keyboar ...
, supporting USB master or slave mode. This enables the IOIO to connect to older Android phones that only support USB slave mode, in addition. The IOIO-OTG is a 3.3 V
logic level In digital circuits, a logic level is one of a finite number of states that a digital signal can inhabit. Logic levels are usually represented by the voltage difference between the signal and ground, although other standards exist. The range ...
device, with some of the pins being 5 V tolerant. It features a 5 V DC/DC switching regulator and a 3.3 V
linear regulator In electronics, a linear regulator is a voltage regulator used to maintain a steady voltage. The resistance of the regulator varies in accordance with both the input voltage and the load, resulting in a constant voltage output. The regulating circ ...
. The 5 V regulator supports a 5–15 V input range and up to 3 A load. This facilitates charging a connected Android device as well as driving several small motors or similar loads.


See also

*
Arduino Arduino () is an open-source hardware and software company, project, and user community that designs and manufactures single-board microcontrollers and microcontroller kits for building digital devices. Its hardware products are licensed under ...
*
BeagleBoard The BeagleBoard is a low-power open-source single-board computer produced by Texas Instruments in association with Digi-Key and Newark element14. The BeagleBoard was also designed with open source software development in mind, and as a way of de ...
*
Raspberry Pi Raspberry Pi () is a series of small single-board computers (SBCs) developed in the United Kingdom by the Raspberry Pi Foundation in association with Broadcom. The Raspberry Pi project originally leaned towards the promotion of teaching basic ...
* PICkit *
Open-source robotics Open-source robotics (OSR) is where the physical artifacts of the subject are offered by the open design movement. This branch of robotics makes use of open-source hardware and free and open-source software providing blueprints, schematics, and s ...
*
PIC microcontroller PIC (usually pronounced as ''"pick"'') is a family of microcontrollers made by Microchip Technology, derived from the PIC1650"PICmicro Family Tree", PIC16F Seminar Presentation originally developed by General Instrument's Microelectronics ...


References

{{Microchip Technology Single-board computers Robotics Microchip Technology hardware Do it yourself Open-source robots Open-source hardware