Home Products Overview Blog Software Applications Contact View Cart

I2C Rovers Blueprint


The IONOTRONICS Rover design provides for the Wireless TCP/IP Control of a Rover with I2C Motor Control. In addition, the Rover has a suite of sensors on an I2C bus that are all accessible through the wireless link. The Rover is controlled by a 32 bit PIC or an 8 bit PIC Processor. The Architecture allows for the full control of the Rover using a Java Robotics Application (JavaRoboticsApp) running on a Workstation so that the Robotics application can be developed using the full power of Java. Any high end program supporting TCP/IP Socket Connections can be used to develop Robotics applications using the system described. We use Java for its proven industrial strength and very extensive and powerfull object oriented language and graphical capabilities as well as the vast libraries available. The PIC embedded processor on the Rover runs a C program developed by IONOTRONICS called the Remote Robot Control Progarm ( RRCP). The Java application through Wireless TCP/IP sends commands and receives sensor data from the Rover via the RRCP.


I2C Rover Videos
Description Video

Duration Minutes

Robotic Rover Wireless Control Through Industrial Joystick with Gyro Visualization with Navball
Rover Wireless TCP/IP Autonomous Obstacle Avoidance with Panning Ultrasonic and Morse Code
I2C Rover Gyro Navball Tanking with iPAD Control
I2C Rover Accelerometer Pitch and Roll with Navball
I2C Stepper Rover Wireless Control (iPAD)
Rover Motor Speed Measurement Using the Pyroraptor Java Beans


Introduction Wireless TCP/IP Robot Control, I2C Motor Control Rover I2C Devices and Bus Pyroraptor ( USB/I2C Bridge) Scan Rover Embedded Processor, Robotics Platform and WiFi Module LCD Display and Analog Meter Remote Robot Control Program (RRCP) Rover 3-Axis Gyroscope and Accelerometer and NAVBALL Applications Building an I2C Rover Photos



Wireless TCP/IP Robot Control

IONOTRONICS impelments the Wireless TCP/IP communication using a WiFi device on the Rover that supports multi-threading. This allows the Robot to be controlled by multiple entities through the Wireless TCP/IP cloud. For example, an application can be monitoring the 3-Axis Gyro sensor, sending the measurements to a NAVBALL Navigation and Orientation Application, while an iPAD controls the Rovers motion ( Tanking, Forward and Reverse and Stopping). The Figure below illustrates the concept.

I2C Motor Control

A unique aspect of the IONOTRONICS I2C Rover is that the Motors for Rover motion are controlled through the I2C Master. The Sabertooth Motor Control has the capability to be controlled with two PWM Signals ( 1500us 50 Hz). The two PWM signals are generated using IONOTRONICS PIC16F1825 8 bit processors which are I2C Slaves. The firmware developed by IONOTRONICS for the PIC16F1825 makes the device an I2C slave that generated the PWM signals. The PWM values are supplied as a16 bit number. In this manner, full control of the Rover Motors for Forward/Reverse Tanking and Speed can be done through an I2C Master. In this case, a 32 bit or 8 bit PIC. We can also control, for testing puroposes, using the Pyroraptor USB/I2C bridge. The schematic for the I2C Rover Motor control is shown below:


Different models of Motor Control and Motors can be used depending on the application. The schematic also shows the monitoring of the supply voltage and current using a voltmeter and amp meter (highly recommended on any Rover).

Rover I2C Devices and Bus

The Rover supports a variety of sensors and devices on the I2C bus. These include a 3-Axis Gyro a 3-Axis Accelerometer, a number of I2C based Ultrasonic sensors (using the IONOTRONICS PIC16F1825 module), four channel ADC and DAC ( used for analog accelerometers and for displaying data on an analog meter via the DAC). More sensors can be added to the bus. The I2C bus also supports an I2C based Pan and Tilt (using the MK-24316 PIC16F1825s).



Pyroraptor ( USB/I2C Bridge) Scan of Rover I2C Bus (Using Java Pyroraptor tool)

The Figure below shows the result of scanning the Rover I2C bus using the Pyroraptor USB/I2C Bridge and the Java Pyroraptor Graphical Interface Tool. For each I2C device a label identifies the device. Note that in some Rover designs ( for example using 32 bit PICs) the Sabertooth Motor is controlled through a dedicated I2C bus usig an I2C Core on the 32 bit PIC.

Rover Photo with Electronics Devices Labeled

For a high resolution image click here (36 MBytes).



Rover Embedded Processor, Robotics Platform and WiFi Module

The Photos below show the System for Robot Control. Two modules are attached to the Robotic Platform (Eoraptor) through 40 pin SAMTEC connectors. The processor adaptor module is based on the PIC32MX360F512 32 bit RISC PIC processor running at 80 MHz clock. The WiFi adaptor uses the USR WiFi-232T attached to the IONOTRONICS Wifi Module that is mated to the Eoraptor using a 40 pin SAMTEC connector. You can also see the external antenna attached through an X.FL connector to the WiFi module. For details see the datasheets.




The 32bit PIC has two dedicated I2C Cores both of which have their own I2C Bus through the Eoraptor Robotics platform (using Hirose DF11 4 pin connectors). The 32 bit RISC also has two dedicated UART Cores both supported with two 4 pin Hirose DF11 series connectors on the Eoraptor. Multiple GPIO are brought out from the 32 bit PIC. A dedicated SPI Core is also supported to interface to SPI slave devices. The Eoraptor supports a 4 MBit SPI EEPROM that can store pre-configured Robot maneuvers for playback. In this way a simple remote command can result in locally generated tightly controlled robot movements.

The Eoraptor has a reset switch and configuration switches. The configuation switches allow the 32 bit PIC UART To interface to a Workstation RS-232 for local testing or to the WiFi module for remote Wireless TCP/IP control. The Eoraptor also supports status LEDs for the WiFi module (Green for Ready and Blue for associated with an Access Point).

LCD Display and Analog Meter

Through the I2C Bus messages and graphics (such as bar charts) can be shown on an I2C LCD Display. In addition, an Analog Meter (using a 50uA meter) is available that can be adjusted with the I2C DAC (address 0x4E). For example, we use this analog meter to show the distance measured by the I2C Ultrasonic. It is a great way to convey information ( better than a digital display as it is also live and shows rate). See the Photo below.


Remote Robot Control Program (RRCP)

IONOTRONICS has developed Open Source C Code that is used in the Embedded Processors for Robot Control including the I2C Rover. Both the 32 bit PIC and 8 bit PIC are supported. The commands for the RRCP are ASCII and can be sent either through a Java (or any other application) through a TCP/IP socket connection, through Telnet or directly using an RS-232 connection. The RRCP provides Motor Control, multiple sensor measurements (3 Axis Gyro and Accelerometer, multiple I2C Ultrasonic sensors, ADC's and DACs) as well as I2C Pan and Tilt control. Messages can also be sent to the LCD display and/or Morse Code (played back by the Rover through a Speaker). During operation, a Telnet session can. not only be used to send commands, but also to monitor traffic from other entities communicating with the Rover.


IONOTRONICS has developed code in the Java Robotics App and the IONOTRONICS hacked NAVBALL so that the rotation and orientation of the Rover can be monitored via a Wireless TCP/IP connection on the NAVBALL. See the videos here. The photo below shows the I2C 3-Axis Gyro and Accelerometer on the Rover (centered on the platform).

The photo below from the Video shows the Rover with the NAVBALL and the Java Robotics App.



The IONOTRONICS Rover Blue Print can be used to build Robotic Rovers that can run autonomously, using the embedded System on a Chip on the Rover, or controlled by a Program (Java) running on a powered workstation with vast computing and memory resources.

For educational programs, a number of projects can be built providing students with the ability to build a rover which demonstrates many of the capabilities of rovers such as the Mars Rovers and future planned missions. The Rover can run routes programmed in the SPI EEPROM via a Wireless link. All sensors can be remotely monitored. A partition between remote capability and remote control can be envisioned for various missions.

Since the Rover is based on I2C, many sensors can be added. The design can scale. The I2C motor control can be used to build multi degree of freedom multi motor designs. The conversion of Motors to I2C slaves as well as the Ultrasonic Sensor ( and other types of sensors) results in a scalable software architecture for the embedded code as well as remote access. The CPU is freed from generating and processing signals that would otherwise tie up resources or bog down the CPU. Therefore, complex Robotics systems can be designed that scale without breaking the controlling software code.

In Research and Development efforts for autonomous vehicles, the IONOTRONICS Rover Blue Print can be used to investigate the monitoring of sensors (Gyros, Accelerometers etc.) and the control of the Rover. For example, when a Rover gets stuck, monitoring of the Gyro can result in Motor stop commands and for example initiation of Reverse or a reversal of the Tanking direction. Researchers and Hobbiest as well as Students can develop code, either embedded or on a remote workstation, to manuever the Rover out of most obstacles and stuck situtations. By adding an Arm (using the I2C PWM control), various missions cane be planned such as sample collection and processing. IONOTRONICS also supports a low power Camera on the Rover with all the software components to upload the photo taken by the Rover back to the cloud for display or further processing.

IONOTRONICS provides a number of ways to add industrial strength Joysticks to control the Rover. For example, see the demo in SmallSat 2016.

Building an I2C Rover

The I2C Rover can be built using the parts and suggestions in the Table below. Note that either the 32 bit PIC ( MK-33856) or 8 bit PIC (MK-28988) can be used.


To build the I2C Rover you will need:

Description Part Number Notes  
Rover Frame and Tires from Lynxmotion ( No Electronics) Aluminum 4WD1 Rover Kit Do away with top. Use Plexiglass. Use a Hinge to open.  
Hinge to open Rover Chasis Quick Access to Batteries Images Lowes, Home Depot  
Plexiglas for Top to Mount Electronics. 5.45mm Thick Image Lowes, Home Depot  
4x Gear Head Motor (High Torque) GM-13 High Torque for Tanking from Lynxmotion  
Or Pololu 100:1 Metal Gearmotor 37Dx73L mm with 64 CPR Encoder Pololu Item 2826 High Torque for Tanking also Optical Encoder for Motor Speed Measurment. Also non Optical Encoder Model. See Pololu.  
Sabertooth Motor Control DE-5 See schematic for settings  
2xPIC16F1825 I2C PWM Controller MK-24316 Makes Saber Tooth Motor Control, Controllable through I2C. See how to change the I2C Address in the EEPROM Video  
12-6 Volt input 5V LDO 4xI2C Bus MK-77988 Provides Four I2C Bussed 4 Pin Connectors. Two for PIC16F1825's to control Sabertooth Motor Control and One Back to Main I2C Bus.  
I2C Bus 3.3V and 5V with Volatge Regulators 12V-6V input. MK-33910 Provides main I2C Bus and is driven by PIC32 I2C Master. Supports both 3.3V and 5V I2C Devices  
PIC32MX360F512 Processor Adaptor MK-33856 Main Embedded Processor for Robot Control Shipped with RRCP Preporgrammed in Flash  
Eoraptor Robotics Control Platform MK-36019 Provides Embedded Procesor with I2C Support, UART Support, Wireless, GPIO Connectors and SPI EEPROM  
WiFi RS-232 Adaptor MK-60689 Provides Wireless TCP/IP connection to Embedded Processor Through Serial UART.  
3 Axis Gyro and Accelerometer MK-95157 Provides Gyro and Accelerometer to Support Rover Orientation and Rotation Measurements to Java Application and NAVBALL  
4 Channel ADC and DAC MK-34765 Enables Analog Display on 50 uA Meter to DAC so that Ultrasonic Distance can be Displayed as well as other Data. 4 ADC Channels for Analog Accelerometer or Infrared Sensors. I2C Address 0x4E  
Four Debounced Switches and Four LEDS (Red, Green, Blue, Yellow) MK-55856 Used to Put Rover in Various Modes Including Remote Wireless or RS-232 Control and Local Test Modes. LEDs Used for Self Test on Startup (Reset)  
Various Cables for Hirose DF-11 Series Connectors and 4 Pin, 12 Pin and 16 Pin Headers MK-32642 The Kit Allows for Various Cable Combinations. You will need 12 pin to 12 pin, 4 pin to 4 pin etc.  
Programming Cable for PIC32 ( ICD-3 or PicKit3 Support).   This is a Cable with 16 pin DF-11 Hirose Header on One Side and 6 Pin Molex on Other Side  
Graphic LCD Display I2C Support. Connects to 5V I2C Bus GLK12232A-25-SM-GW-VS Optional I2C Graphical LCD Display  
PowerPole Wires, Connectors and Fuses plus Wires (Black and Red 14 Gauge) Anderson Powerpole Connectors Use 15 Amp Red/Black Powerpole Connectors, Retention Clips etc.  
Batteries 6V Ni-MH 2800mAh Battery Pack Use 3. Put Two in Series for 12V for Sabertooth Motor Cotrol See Schmatic. Use One 6V for Electronics. Monitor Current for Both 6V and 12V on Amp Meters (10 AMP for 12V and 1 Amp for Electronics or 500mA). Monitor 12V on Voltmeter. Use SeparateSwitch for 12V and 6V so that Electronics can be Run Without Motors Being Powered. Design a Cable to Adapt Battery to Powerpole.  

In addition to the above you will need:


Description Part Notes  
This is the 2-56 screw used to attach the PCB to spacer Machine Screw Pan Phillips 2-56 Top Side of Plexiglas PCB to Spacer  
The 3/8" #2-56 Standoff Round Standoff Threaded #2-56 Aluminum 0.375" (9.53mm) 3/8" Spacer  
This is the 2-56 screw used to attach the spacer to the plexiglas side (under) Machine Screw Pan Phillips 2-56 Attach Spacer to Plexiglas (Screw From Under Side)  



Shopping cart icon credit