DescriptionZIO is an IO framework for rapid product development. ZIO Motherboard is a USB device that provides access to IO interfaces like GPIO, Sensor, PWM, I2C and SPI. ZIO comes with an API that can be used to access the IO interfaces provided by the motherboard, from the PC.
- Rapid embedded application prototyping
- Hobby electronics
- Teaching and learning electronics
- Building robot prototypes
- Development of PC based embedded systems
- Low speed data acquisition
- Testing and debugging boards, I2C, SPI peripherals, etc.
The ZIO Motherboard offers the following features
- Connects to PC through USB
- Powered by TI's Stellaris LM3S3748 (ARM Cortex-M3 core)
- Interfaces: GPIO, Sensor Input, PWM Output, I2C, SPI
- Powered by Open Source software.
- Host-side API for programming the ports
- APIs available for Java and Python
- API documentation for easy reference
- Port interfacing guidelines for common scenarios
- GUI based Control Panel to explore the board
- On-field firmware upgrade through USB
- OS Support: Windows XP/Vista, GNU/Linux - Debian, Ubuntu, Mint, Fedora
RJ12 PortsAll the IO interfaces are available on RJ12 ports. ZIO comes along with the following add-ons to simplify working with RJ12 ports.
- RJ12 cables
- RJ12 to Bread Board (Break-out)
- RJ12 to Phoenix Connectors
DocumentationZIO is backed by extensive documentation in the form of manuals, API reference and tutorials. The currently available documentation is listed below.
- ZIO Motherboard Manual
- ZIO Java Tutorial
- ZIO Python Tutorial
- Java API Reference
- Python API Reference
I/O InterfacesThe I/O interfaces supported by ZIO, and their usage is listed below.
GPIOGPIOs can be used for wide variety of purposes
- Controlling LEDs
- Digitally controlling switches
- Reading switch status
- Creating simple sensors
- Bit-banging other communication protocols
- Constructing IR receivers
Sensor and PWM
Sensor module is an Analog to Digital Converter. Simple resistive sensors like LDRs, thermistors, can be easily connected to the Sensor port. It is also possible to connect powered sensors that generate a voltage output.
The PWM module can be used to generate PWM signals. PWM signals can be used for LED brightness control, DC motor speed control, servo motor control.
I2C and SPII2C is a bi-directional two-wire (data and clock) serial bus that provides a communication link between integrated circuits. Serial Peripheral Interface (SPI) is an inexpensive chip interconnection bus, popular on circuit boards. Some common I2C and SPI devices are listed below.
- OLED and LCD Displays
- IO Expanders
- Real-time Clocks
- Hardware monitors
- Sensors: temperature, pressure, touchscreens, ADCs
- Memory: NVRAM, Flash, EEPROMs
- Control Devices: Digital Potentiometers, DACs, PWM controllers
Open Source SoftwareZIO is powered by Open source software. We provide source code for all the software components under the GNU LGPL. The various software components and their sources are listed below.
API SupportZIO currently can be accessed from Java and Python. Moreover the protocol is completely documented and is available as part of the agent source code. So it should be pretty straight forward to implement APIs in other languages. We welcome ZIO users to contribute bindings to their favourite language.
ZIO Control Panel
ZIO comes along with a Control Panel application that allows, most of the functionality to be accessed from within the GUI. The application is written using Python and GTK+. The GUI application allows API discovery by displaying the Java and Python code, corresponding to the last performed operation.
(Click for fullview)