FTC New Technology Platform

Understanding FTC’s new Robot Hardware Platform and Programming Language

Initial creation of this page:  June 5, 2015.  Revised: 11-3-15.  This page and links from this page to other resource pages and sites will be an attempt to help FTC coaches and players learn this new system; its connectivity and its programming.  Everyone is welcome to notify us of any resource links by using the form below and I will consider adding your link.  We all need as much help as possible. Created by Ray Holt.

Several of our partner organizations (and over 5,000 teams worldwide) participate in the First Tech Challenge national robotics competition with 1-2 teams from Mississippi typically placing high in the world rankings.   The Mississippi state FTC is directed by Mr Mannie Lowe at the Center for Mathematics and Science Education at the University of Mississippi (Ole Miss).

Already confused and frustrated? Don’t know where to start.  Here are my suggestions … a) Scan and read this page to get a general knowledge of what is going on.  Don’t click on any links.  b) Buy your two Boost ZTE Speed phones while they are still available at a reasonable price. c) Watch this on how to setup your phones.  d) If you have never programmed learn about programming option #1 and maybe option #2. Find a programmer.  e) If you have programmed then programming option #2 and #3 are probably for you. Find a Java programmer to help you get started.  f) Watch THIS from FTC and follow this training series from Intelitek.  Hardware is available now.   Here is the official FIRST FTC announcement of this new technology platform.


Hardware you will not need. 
In 2015 for the 2015-16 season the computer hardware, wifi, and programming changed.  The previous hardware platform was the LEGO NXT brick (32-bit, 64KB RAM, 4Mhz) was used as the computer, an add-on Samantha wifi module was used to connect the robot to a dedicated router to a master network controller and programming was performed mostly with RobotC and some with LabView.  Joysticks were connected to a local computer and commands  transmitted through wifi to the master controller.  In theory this was a good configuration, however, because of power connection issues and some Samantha wifi issues the overall difficulty of setting up, troubleshooting, and correcting the problems forced a national redesign of the wireless connection between driver and robot.

The new 2015-16 platform is based around Android cell phones.  The robot has a Boost ZTE Speed Android cell phone (64-bit, 8GB RAM, 1.2 GHz ~ 300x faster than the NXT) and the Driver Station has a Boost ZTE Speed Android cell phone.  They connect to each other through the cell phones internal wifi system so each team is on their own wireless system. New interface and controller hardware is added to interface the robot cell phone with the existing Tetrix motors, servos, and sensors.  A new device interface module is available to connect many other servos, sensors, and devices.  There is no central network controller. Each team is now completely separate and on their own for connecting to the robot.  Older motor and servo controllers can still be used with a special Legacy module (see below) added to interface to the cell phones.

Programming is now java-based.  Three programming options are provided at this time. All are explained below.

Check out the videos made by FTC:

Watch them all here:
Play List

or watch them individually here:
Introduction
Platform Presentation
Programming
Team Reaction
Electronics Look I
Electronics Look II

Here is a good discussion in the FTC Forum

Hardware

Old Platform Hardware:  You won’t need your current LEGO NXT, battery, charger, and FTC Samantha module or the Tetrix controllers. If you purchase the new controllers then you won’t need your old black Tetrix controllers (Choice #2 below).  PLEASE consider donating them HERE and get an in-kind tax donation receipt letter.

New Platform Hardware: 

ztespeedYou will need two Android based cell phones like the picture to the left. The FTC recommended cell phone is the Boost ZTE Speed. No other is recommended at this time.  Purchase your Boost ZTE Speed HERE without the sim card or any calling time or data. You will not be using the cell phones as a calling phone. You will use it as a computer with a wifi network connection.  Each phone will need to be setup and configured. Here is a setup video for the ZTE Speed for FTC.  Here is a specification page on the Boost ZTE Speed phone.  Your Boost ZTE Speed phones will need to be setup. See ZTE Speed Phone Setup under Resource Links below or just click HERE.   Now even more FTC official phones to choose from (June 9, 2015).

 

System Overview (from the Modern Robotics website here)

Schematicx500
The Modern Robotics Core modules can be connected to an Android device or PC controller to create a powerful robotic system.

The Android device drives the system via USB, connected to the Core Power Distribution Module. Other modules are connected to the Power Distribution Module’s integrated USB hub.

Any combination of modules can be connected so if a project requires 8 DC motors and 8 servos, 4 Motor Control Modules and 2 Servo Control Modules can be connected together with a Device Interface to support sensors and other devices.

 

 

 

 

 

 

 

On Your Robot – Choice #1 (Existing Users) – This is for existing teams with Tetrix robot kits. This choice is to use your current black Tetrix Motor and Servo Controllers.  This is the least expensive approach since you are not replacing the black controllers.

0000006_core-power-distribution-module_300You will need the Core Power Distribution module from Modern Robotics for $89.95.  This module is a 12v power distribution and a 7-port USB hub.

 

 

 

0000007_core-legacy-module_300You will need the Core Legacy Module from Modern Robotics for $64.95.    This module provide compatibility between the Android cell phone and the Tetrix black controllers.

 

 

 

Choice #1 Total Estimated Hardware Cost:  Two cell phones @ $50 each and the above two modules @ $154.90 = $254.90 . This does not include any misc cables and wiring.

On Your Robot – Choice #2 (New or Existing Users) – This is for new teams or existing teams that want to go with the new controllers.  This is the most expensive approach as more modules are required.

0000006_core-power-distribution-module_300You will need the Core Power Distribution module from Modern Robotics for $89.95.  This module is a 12v power distribution and a 7-port USB hub.

 

 

 

0000007_core-legacy-module_300You will need the Core Legacy Module from Modern Robotics for $64.95.    This module provides compatibility between the Android cell phone and the Tetrix black controllers.

 

 

 

0000009_core-motor-controller_300

You will need one or more Core Motor Controllers from Modern Robotics at $79.95 each.    This controller will control two motors as did the previous black Tetrix motor controller.

 

 

 

0000010_core-servo-controller_300You will need one or more Core Servo Controllers from Modern Robotics at $69.95 each.   This controller will control six servos as did the previous black Tetrix servo controller.

 

 

 

Choice #2 Total Estimated Hardware Cost:  Two cell phones @ $50 each and one each of the above modules @ $304.8 = $404.80 . This does not include any misc cables and wiring.

Cables, Wiring, etc.   These are the cables you will need.

Standard USB cable
OTG Micro USB 2.0 Male to USB Female Adapter
90 Degree USB 2.0 A Female to Micro B Male Converter Host OTG Adaptor Cable
3 in 1 USB OTG Cable Adapter, Micro USB Hub USB OTG Extension Adapter

Search for the best pricing. Often you can find these cable in a 2-pack for a good price. Decide if your application needs a 90 deg connection or straight.  For sure, you will want a 90 deg connection coming from the cell phones. Cables are inexpensive so make sure you have a variety to meet your needs. Having a few spares does not hurt. Who knows you may be able to help another team with a spare.

Programming

Now let’s look at the programming.  You cannot use any of your old/existing RobotC or LabView programs.  The Boost ZTE Speed uses a completely different microprocessor and RobotC and LabView have not created a compiler from their language to the new microprocessor.

Programming is Java-based.  Java 7 is used as the Android O/S does not support Java 8.

You have Three Levels of Programming to chose from. All three level or methods are based on some form of the Java language. Each level is more complex as programming goes but also adds more capability to program at the hardware level.  Method #1 is a prepared standard app you can download and use. Method #2 you make your own app. Method #3 you program directly in Java on your laptop and download to the cell phones.

Programming Method #1 – Standard Downloadable Apps

Two standard apps; one for the robot and one for the driver phone.
The Robot Controller App (download here) is used for configuring the motors and sensors
The Driver Station App (download here) App is Plug-n-Play and requires no setting up.
If you build the FTC recommended standard configuration of your robot then Autonomous is ready to go.

Programming Method #2 – Build Your Own App

This method uses the MIT App Inventor.  It is an Internet-based developer program. The result of your programming can be downloaded to the ZTE Speed through an App.  The MIT App Inventor is free and is accessed using  your web browser.  You need a Google email account. Get one HERE.

Access the MIT App Inventor HERE.
Get Started with the MIT App Inventor HERE.  Learn how to setup and design your app. View tutorials and learn how to ‘package’ your app for the ZTE Speed phone and how to share it.

Take a look at these tutorials for the MIT App Inventor.

Tutorials for App Inventor

Beginner Video Tutorials

Creating An Android App

Other resource links for the MIT App Inventor will be listed below in the Resources section.

Programming Method #3 – Program in the Java programming language

This method requires you to write programs in the Java programming language.  This method is the most complex but will allow you maximum control over your robot.  The Android Developer Studio is downloaded to a laptop or tablet, programs are written, compiled, and then uploaded to the Robot and Driver cell phones.

Here is an Overview of the Android Developer Studio.

The Android Developer Studio (ADS) is the software tool for programming in Java.

Check out this Getting Started with Android Studio.  See more helpful videos below.

This YouTube video tutorial is for FTC Programmers using Java and Android Studio on a Windows machine. It shows three different ways to configure a Wireless ADB connection between your Software Development computer, and the ZTE Speed phone in your FTC robot.  This connection will enable you to wirelessly download new code into the robot, and use the live debug log to show diagnostics information on your PC. This will be invaluable for creating and testing autonomous OpModes.

To Access FTC’s Software Development Kit (SDK) for Android Developer Studio.  Comments from the SDK site:  ” FTC Android Studio project to create FTC Robot Controller app. This is the FTC SDK that can be used to create an FTC Robot Controller app, with custom op modes. The FTC Robot Controller app is designed to work in conjunction with the FTC Driver Station app. The FTC Driver Station app is available through Google Play. To use this SDK, download/clone the entire project to your local computer. Use Android Studio to open the folder as an “existing Android Studio project”.  We are working on providing documentation (both javadoc reference documentation and a PDF user manual) for this SDK soon. For technical questions regarding the SDK, please visit the FTC Technology forum.”

Code Walkthrough of the FIRST® Tech Challenge (FTC) Robot Controller (TeleOp and Autonomous op modes by Jonathan Berling, Sr Software Engineer, Qualcomm Research

Other resource links for the Java Android Developer Studio (ADS) will be listed below in the Resources section.

Resource Links

General – Forums & Other discussions and demonstrations

FTC New Technology Forum Discussion

FTC New Technology Video Demonstration (1 hr 13 min)

Chief Delphi Android Control System Discussion –  good discussion and lots of links. Some links I have on this page.

Intelitek FTC Android Platform Training (20 hours total. Need to create an account. Good stuff so far.)

FTC App Inventor (courtesy of Oregon Robotics Tournament & Outreach Program)

ZTE Phone

ZTE Speed Phone Setup

A great setup suggestion from PhilBot (login first) on the FTC Forum:  “To make the whole connection process simpler, you should assign WiFi direct device names to your Phones.  Go to the Settings-WiFi and then click the three dost icon at the bottom right. Select Wi-Fi DirectThen Click the three Dots Icon at the bottom of this page and use the Rename Device option.  In a crowded room it will be nice to be able to clearly ID your phones, so I’d suggest: “#### Robot” and “#### Driver” (where ### is your team number).
[Ray ~ After naming your phone you should put a small label at the top of the phone face with “Robot” or “Driver” as both phones look alike.  🙂 ]

FTC Android Phone Setup (by students from team 6705)

ZTE Wireless ADB Setup for Wireless Android Studio for FTC (also below)

Using the ZTE LED in an FTC OpMode

 

Programming

App Development Stuff

This is an excellent training series on Android App development. There are 40+ total videos (about 10 min each), 4 are linked here. The others you can find in the playlist to the right of any of the videos.

Android App Development for Beginners 1 – Introduction
Android App Development for Beginners 2 – Installing Android Studio
Android App Development for Beginners 3 – Setting up Your Project
Android App Development for Beginners 4 – Running a Simple App

Great Training to learn more about Mobile CSP (Computer Science Principles) – Six weeks course online and registration.

More Mobile Apps videos and tutorials

Supporting Game Controllers in Android Apps

ZTE Wireless ADB Setup for Wireless Android Studio for FTC

The software development kit (SDK) and Android apps for the new FTC robot platform

FTC App Inventor (courtesy of Oregon Robotics Tournament & Outreach Program)

Java Stuff

Java Development Kit

Free Java Tutorial (17 hours)

Java Tutorial

Java In 30 minutes (not for beginners, but good)

Java Programming – Step by Step tutorial 1 hr 27 min. (Great introduction – complete tutorial is 4 hrs and costs $49. From the comments on his teaching it’s probably worth it.)

 

 

 

Mississippi Robotics