IOIO
   HOME

TheInfoList



OR:

IOIO (pronounced ''yo-yo'') is a series of
open source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
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 Android may refer to: Science and technology * Android (robot), a humanoid robot or synthetic organism designed to imitate a human * Android (operating system), Google's mobile operating system ** Bugdroid, a Google mascot sometimes referred to ...
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 de ...
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 SparkFun Electronics (sometimes known by its abbreviation, ''SFE'') is an electronics retailer in Niwot, Colorado, United States. It manufactures and sells microcontroller development boards and breakout boards. All products designed and produce ...
.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 v ...
/ USB slave and communicates with an
Android app Android is a mobile operating system based on a modified version of the Linux kernel and other open-source software, designed primarily for touchscreen mobile devices such as smartphones and tablets. Android is developed by a consortium of deve ...
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 v ...
,
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 I, or i, is the ninth letter and the third vowel letter of the Latin alphabet, used in the modern English alphabet, the alphabets of other western European languages and others worldwide. Its name in English is ''i'' (pronounced ), plural ...
, 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 significan ...
,
Input capture Input capture is a method of dealing with input signals in an embedded system. Embedded systems using input capture will record a timestamp in memory when an input signal is received. It will also set a flag indicating that an input has been captu ...
,
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 sen ...
and advanced
motor control Motor control is the regulation of movement in organisms that possess a nervous system. Motor control includes reflexes as well as directed movement. To control movement, the nervous system must integrate multimodal sensory information (both f ...
. To connect to older Android devices that use
USB 2.0 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 v ...
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 Tablet computer, tablets or smartphones, to act as a host, allowing other USB devices, such as USB flash drives, digital cameras, co ...
to act as a host for such devices. Some models also support the
Google Google LLC () is an American multinational technology company focusing on search engine technology, online advertising, cloud computing, computer software, quantum computing, e-commerce, artificial intelligence, and consumer electronics. ...
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 pos ...
s,
DC motor A DC motor is any of a class of rotary electrical motors that converts direct current (DC) electrical energy into mechanical energy. The most common types rely on the forces produced by induced magnetic fields due to flowing current in the coil ...
s 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 r ...
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 sys ...
. 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 List ...
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 Snapdragon is a suite of system on a chip (SoC) semiconductor products for mobile devices designed and marketed by Qualcomm Technologies Inc. The Snapdragon's central processing unit (CPU) uses the ARM architecture. A single SoC may include mu ...
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 Android may refer to: Science and technology * Android (robot), a humanoid robot or synthetic organism designed to imitate a human * Android (operating system), Google's mobile operating system ** Bugdroid, a Google mascot sometimes referred to ...
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 SparkFun Electronics (sometimes known by its abbreviation, ''SFE'') is an electronics retailer in Niwot, Colorado, United States. It manufactures and sells microcontroller development boards and breakout boards. All products designed and produce ...
, 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 of ...
device, and features a 5 V DC/DC
switching regulator A voltage regulator is a system designed to automatically maintain a constant voltage. A voltage regulator may use a simple feed-forward design or may include negative feedback. It may use an electromechanical mechanism, or electronic componen ...
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 of ...
device, with some of the pins being 5 V tolerant. It features a 5 V DC/DC
switching regulator A voltage regulator is a system designed to automatically maintain a constant voltage. A voltage regulator may use a simple feed-forward design or may include negative feedback. It may use an electromechanical mechanism, or electronic componen ...
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 unde ...
*
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