IOIO OTG Cropped
   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-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 applications 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/ 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,
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 keyboards ...
or Bluetooth, 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 SPI may refer to: Organizations * Indian Protection Service (''Serviço de Proteção ao Índio''), Brazil * Shotmed Paper Industries, an Egyptian paper manufacturers * Simulations Publications, Inc., a former US board game publisher * Sony P ...
, UART,
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 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 to act as a host for such devices. Some models also support the Google 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 motors,
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 motors. 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. 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 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 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 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 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. 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 keyboards ...
, 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 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. 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 * BeagleBoard * Raspberry Pi * PICkit * Open-source robotics * PIC microcontroller


References

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