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 and view the source code, design documents, or content of the product. The open source model is a decentrali ...
PIC microcontroller PIC (usually pronounced as /pɪk/) is a family of microcontrollers made by Microchip Technology, derived from the PIC1640 originally developed by General Instrument's Microelectronics Division. The name PIC initially referred to ''Peripher ...
-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 d ...
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/ 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, developed by USB Implementers Forum (USB-IF), for digital data transmission and power delivery between many types of electronics. It specifies the architecture, in particular the physical ...
, USB-OTG 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 li ...
, 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 peripheral 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 significant to ...
, 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 sens ...
and advanced
motor control Motor control is the regulation of movements in organisms that possess a nervous system. Motor control includes conscious voluntary movements, subconscious muscle memory and involuntary reflexes, as well as instinctual taxes. To 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 also act as a host, allowing other USB devices, such as USB flash drives, digital cameras, mice or keyb ...
to act as a host for such devices. Some models also support the
Google Google LLC (, ) is an American multinational corporation and technology company focusing on online advertising, search engine technology, cloud computing, computer software, quantum computing, e-commerce, consumer electronics, and artificial ...
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,Clarence W. de Silva. Mechatronics: An Integrated Approach (2005). CRC Press. p. 675. "The terms ''stepper motor'', ''stepping motor'', and ''step motor'' are synonymous and are often u ...
s,
DC motor A DC motor is an electrical motor that uses direct current (DC) to produce mechanical force. The most common types rely on magnetic forces produced by currents in the coils. Nearly all types of DC motors have some internal mechanism, either el ...
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 Google Play, also known as the Google Play Store, Play Store, or sometimes the Android Store (and was formerly Android Market), is a digital distribution service operated and developed by Google. It serves as the official app store for certifie ...
. 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 is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
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-chip (SoC) semiconductor products for mobile devices designed and marketed by Qualcomm, who often refers to these SoCs as "mobile platforms". They typically integrate central processing units (CPU) based o ...
Micro Rover is a 3D printed robot that leverages an Android
smartphone A smartphone is a mobile phone with advanced computing capabilities. It typically has a touchscreen interface, allowing users to access a wide range of applications and services, such as web browsing, email, and social media, as well as multi ...
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, technical computing or scientific computation (SC), is a division of science, and more specifically the Computer Sciences, which uses advanced computing capabilities to understand and s ...
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 of ...
device, and features a 5 V DC/DC
switching regulator A voltage regulator is a system designed to automatically maintain a constant voltage. It may use a simple feed-forward design or may include negative feedback. It may use an electromechanical mechanism or electronic components. Depending on the ...
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, 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. It may use a simple feed-forward design or may include negative feedback. It may use an electromechanical mechanism or electronic components. Depending on the ...
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 Arduino () is an Italian open-source hardware and open-source software, software company, project, and user community that designs and manufactures single-board microcontrollers and microcontroller kits for building digital devices. Its hardwar ...
* BeagleBoard *
Raspberry Pi Raspberry Pi ( ) is a series of small single-board computers (SBCs) developed in the United Kingdom by the Raspberry Pi Foundation in collaboration with Broadcom Inc., Broadcom. To commercialize the product and support its growing demand, the ...
* PICkit * Open-source robotics *
PIC microcontroller PIC (usually pronounced as /pɪk/) is a family of microcontrollers made by Microchip Technology, derived from the PIC1640 originally developed by General Instrument's Microelectronics Division. The name PIC initially referred to ''Peripher ...


References

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