Log in

View Full Version : [FTC]: New Android Control System


DavisDad
04-04-2015, 10:10
We're excited about next year's new control system. I'm starting this thread to assemble information about the "Qualcomm® Snapdragon" based smartphone platform. We were a rookie team in the 2014/2015 season and had just begun learning the NXT/RobotC/Textrix systems.

I personally, am not at all disappointed to put NXT behind us. My role as FTC mentor has been mainly mechanical engineering and fabrication support, but I have worked with the NXT controls and programming enough to understand the limitations. I'm excited about First's decision to move to a more sophisticated platform where we won't be tied to RobotC, Tetrix and Matrix proprietary systems. I'm hoping FTC goes to a fully open system where we can use available evolving robotics technologies independent of HiTech, Lego, RobotC sellers.

So... here's information I've assembled so far:

http://simhardware.org//img/FTC 2015-2016 Robot Control System Changes_cr 22mar15.pdf

While waiting for further details of the hardware/software specs later this month, I'd like to look into "Qualcomm® Snapdragon" hardware and the programming platforms. If anyone would like to post here (or link to) their work, it would be much appreciated.

DavisDad
05-04-2015, 05:27
The following is a screenshot of the "TecTalk" video posted on YouTube.com:

FTC Tech Talk: Platform Presentation (https://www.youtube.com/watch?v=BuZiDPa8Rjk)

http://simhardware.org//img/FTC 2016 New Droid Contro System Config.jpg

I've seen very little posted on the internet about the "Modern Robotics Inc" (http://modernroboticsinc.com/) modules. So... I'll focus on the Android phone capabilities until more info is available. I've looked at "MIT App Inventor" (http://ai2.appinventor.mit.edu/) and "Android Studio" (http://developer.android.com/tools/studio/index.html) programming platforms. App Inventor is a graphical programming language and Android Studio is a big programming language based on "Java". I played with App Inventor, but I'm old school and came up through Fortran77, Basic... C++ text based systems and will spend my time with the Android Studio application.

After taking a peek at the programming stuff, I'd like to "look under the hood" of the ""Qualcomm® Snapdragon" (https://www.qualcomm.com/products/snapdragon) Android device. The CPU (chipset) looks like a full blown computer ; cool!
https://www.qualcomm.com/sites/ember/files/snapdragon-processors-615.png

I'm off into computer hardware morass of techie gobbley-gook. Any help from the pros would be much appreciated...

DavisDad
05-04-2015, 06:28
I've set up an "Qualcomm Developer Network" (https://developer.qualcomm.com/mobile-development/emerging-technologies/snapdragon-micro-rover) account where they have a robot design using their system:

"Robots powered by Snapdragon processors leverage technologies working together to make robots smarter and more efficient. The Snapdragon Micro Rover is a simple design that garners lots of power and intelligence. It’s powered by a smartphone with a Snapdragon processor, is easily printed on a 3D printer and has a forklift that allows the robot to manipulate its world."

After setting up an account, I was able to download files, one of which is a PDF detailing how to build the Micro Rover. It's mostly 3D printer stuff, but has info on I/O as well.

DavisDad
05-04-2015, 06:47
Poking around the "Qualcomm Developer Network" website, I found DragonBoard 410c (https://developer.qualcomm.com/mobile-development/development-devices/dragonboard/410c) page:

"Coming Summer 2015

The DragonBoard™ 410c will be the first development board based on a Qualcomm® Snapdragon™ 400 series processor. It features advanced processing power, Wi-Fi, Bluetooth connectivity, and GPS, all packed into a board the size of a credit card. Based on the 64-bit capable Snapdragon 410 processor, the DragonBoard 410c is designed to support rapid software development, education and prototyping, and is compliant with the 96Boards Consumer Edition specification (https://www.96boards.org/). All this makes it ideal for enabling embedded computing and Internet of Everything (IoE) products, including the next generation of robotics, cameras, medical devices, vending machines, smart buildings, digital signage, casino gaming consoles, and much more."


The link in the text above has a specification document Low Cost Hardware Platform Specification (https://www.96boards.org/wp-content/uploads/2015/02/96BoardsCESpecificationv1.0-EA1.pdf) with details of platform functionality.

NOTE: I don't know what Snapdragon series FTC will use, I just picked 400 series for research

DavisDad
05-04-2015, 09:10
Jumping around here...

Found what looks like a good tutorial on intro to Java:

Hello, World! (http://www.learnjavaonline.org/en/Hello%2C_World%21)

DavisDad
05-04-2015, 09:47
Maybe we'll be able to do this:
https://www.qualcomm.com/sites/ember/files/qualcomm-snapdragon-cargo_373w.jpg
"Snapdragon Cargo" (http://bcove.me/z88zdpck)

:)

DavisDad
05-04-2015, 10:01
Found this:

Qualcomm Snapdragon 410 Processors Power Student Robotics Competition (http://www.legitreviews.com/qualcomm-snapdragon-410-processors-power-student-robotics-competition_160026)

astroman31
06-04-2015, 14:46
I am confused at what Android devices we will need to purchase. The videos show a simple cell phone. Is there something specific they want us to use? It would be handy to have something small and compact for the robot side, with a larger controller device for the driver station.

Is there a specific product FIRST has in mind for these?

DavisDad
06-04-2015, 15:08
The control system will be, at a minimum, two (2) cell phones. I'm not sure if FTC will only allow us to use one model, or if we'll be able to use other type phones, tablets and the development boards available.

I'm hoping we'll be able to use any Qualcomm® Snapdragon devices compatible w/ FTC required hardware (power mod, motor control mod, etc...)

DavisDad
07-04-2015, 05:10
Cool stuff:

Robot Operating System Running on Qualcomm Snapdragon 600 Processor (https://www.youtube.com/watch?v=Es6i5BdSems)

Robot Operating System (ROS) (http://www.ros.org/about-ros/)

Web Robotics (https://www.youtube.com/watch?v=U6URMFfaY98)

ROS: Three Years (https://www.youtube.com/watch?v=7cslPMzklVo)

ROS on Android (https://www.youtube.com/watch?v=0f0y7Ki9QC4)

Quadrocopter Autonomous Flight (test) - Vicon + ROS + Android Tablet (https://www.youtube.com/watch?v=JbmeWXzvPL0)

Rhoeby hexapod ROS-based Navigation (https://www.youtube.com/watch?v=8TUtX0-EMYw)

DavisDad
11-04-2015, 01:26
Qualcomm announces:

Student robotics competition heats up in Shanghai (https://www.qualcomm.com/news/onq/2015/04/09/student-robotics-competition-heats-shanghai)

DavisDad
11-04-2015, 01:56
YES! Off the shelf sensors.

FTC Tech Talk: Electronics Look II (https://www.youtube.com/watch?v=0DieVdCv7UU)

http://simhardware.org/img/FTC%20Tech%20Talk-Electronics%20Look%20II.jpg

DavisDad
11-04-2015, 03:12
OK... now for a journey into the "Quad-core ARM® Cortex™ A53" specifications for an attempt to understand our new controls environment.

What's a "Quad-core ARM® Cortex™ A53" thingy? Let's start with the "ARM" name. ARM Holdings (http://en.wikipedia.org/wiki/ARM_Holdings) WikipeniA: "...is a British multinational semiconductor and software design company with its head office in Cambridge, England. Its largest business is designing processors (CPU) bearing the ARM name...systems and platforms, system-on-a-chip (SoC) infrastructure and software. It is considered to be market dominant in the field of processors for mobile phones (smartphones or otherwise) and tablet computers and is arguably the best-known of the 'Silicon Fen' companies."

What's a ARM® Cortex™ A53 (http://en.wikipedia.org/wiki/ARM_Cortex-A)? WikipediA: "The ARM Cortex-A is a group of 32-bit and 64-bit RISC ARM processor cores licensed by ARM Holdings... ARM Holdings does not manufacture nor sell CPU devices based on its own designs, but rather, licenses the processor architecture to interested parties."

So- ARM designs the CPU stuff, but doesn't manufacture the chips, Qualcomm (http://en.wikipedia.org/wiki/Qualcomm) is the chip manufacturer. WikipediA: "Qualcomm Incorporated is an American global semiconductor company that designs and markets wireless telecommunications products and services... San Diego, California, United States..."

The chip which uses the ARM Cortex-A architecture is the Qualcomm Snapdragon (http://en.wikipedia.org/wiki/Qualcomm_Snapdragon). WikipediA: "...is a family of mobile systems on a chip (SoC) by Qualcomm. Qualcomm considers Snapdragon a "platform" for use in smartphones, tablets, and smartbook devices."

Hmm... so how does this help me understand how to control a robot? I don't know yet, but will continue this research later.

DavisDad
11-04-2015, 17:08
I think this is the phone they showed in the TechTalk videos:

ZTE Speed (http://www.zteusa.com/phones/zte-speed?support=1)

More specs (http://www.phonearena.com/phones/ZTE-Speed_id9075)

http://www.zteusa.com/media/catalog/product/cache/1/image/350x415/9df78eab33525d08d6e5fb8d27136e95/z/t/zte-speed_front_.png

DavisDad
12-04-2015, 13:11
So I'm scratching my head over how to sort through all this information and figure out what we need to know for FTC...

What I know:


New control system based on cell phones using Qualcomm Snapdragon (410 MSM8916) processor (SoC)
The MSM8916 uses the Cortex A53, whis is an "ARM family of instruction set architectures".
The MSM8916 is used by cell phone manufacturers as the brain. The ZTE Speed has these features.
FTC 2015/16 will use two (2) ZTE type phones with FTC specified Modern Robotics (http://modernroboticsinc.com/) hardware/software (H/S) to control the robot. One phone will be used for driver control and the other as the robot controller.
The robot controller will talk to the FTC H/S through the phone's USB port. Known H/S are: "Power Module", "Servo Motor Controller", "DC Motor Controller", "Legacy Module" & "Advanced Sensor Module" (see schematic (http://simhardware.org//img/FTC%202016%20New%20Droid%20Contro%20System%20Confi g.jpg))
Communications between H/S is all USB except the Legacy Module which takes USB and converts to NXT type I2C networking data.
The Sensor Module will allow use of "standard off the shelf sensors".


What I don't know:


How the Modern Robotics Inc. (MRI) components control information between the ZTE type phone and the robot's functions.
Will the MRI motor and servo controllers be the only allowed devices, or will we be able to use other robotics companies' products?
For off the shelf sensors, what are the signal inputs? They look like 3-pin analog.
Will we be able to use components like image processors & "sensor fusion" devices with their own pre-processing?


I guess we'll have to wait for the MRI specs for firmware to know.

pyroslev
12-04-2015, 15:25
My advice is to just wait and see what they announce next. Odds are we won't learn anything of true substance until Worlds or after.

They might put another video or two out but given that Super Regionals are over and Worlds is imminent, sit back and wait.

DavisDad
14-04-2015, 05:40
My advice is to just wait and see what they announce next...

Hi pyroslev,

Yes, that'd be the logical thing to do, but I'm like a kid at Christmas and want to shake the package before mom and dad tells me I can open it. :)

So... I bought a ZTE Speed on Amazon ($50). I've been playing with the "WI-FI Direct" thingy. I confirmed that the ZTE Speed has this function, but don't have another phone with this (I use an iPhone).


http://simhardware.org//img/ZTE_Speed WIFI Direct.jpg

DavisDad
15-04-2015, 18:11
From the FTC forum: Tom Eng (FTC Engineer) (http://ftcforum.usfirst.org/showthread.php?4081-External-Sensor-Interface&p=12916&viewfull=1#post12916)

The new platform will have a couple of ways to connect sensors. If you are using Legacy, NXT-compatible sensors (such as a LEGO light sensor or a Hitechnic IR Seeker V2 sensor), there is a new electronic module called the "Legacy Module" (LM) that you can use. The LM will connect to the Android device via a USB connection. The LM has six NXT-style sensor ports (I2C). You can plug in things such as a legacy NXT sensor, or a Hitechnic DC motor controller or a Hitechnic Servo motor controller into one of the six ports and the Android device will communicate to these legacy devices through the LM. You can add multiple Legacy Modules on the USB connection (using a special powered USB hub) to add additional ports. Also, the LM supports daisy-chaining of legacy NXT-compatible devices (although this feature is currently not enabled in the software user interface yet).

Another way to connect sensors or analog/digital devices is with a new electronic module called the Advanced Sensor Module. The ASM has several digital I/O ports, analog I/O ports, some high speed I2C ports and some PWM out ports. You will be able to connect sensors and other devices to this new ASM device. You can add additional ASM devices to the USB hub to increase the number of ports available. I believe the ASM will have something like 7 digital I/O ports, 7 analog in ports, 2 analog out ports, 2 PWM out ports and an I2C bus (100kbps).

Tom

DavisDad
16-04-2015, 06:33
...playing with sensor data from phone to laptop.


Video --> Test accelerometer (https://www.youtube.com/watch?v=_bbMgT-TvnA)

Andriod sensors WiFi Streamer & visualization GUI (https://harinadha.wordpress.com/2013/04/23/android-streamer/)

DavisDad
21-04-2015, 04:41
From the FTC forum re wireless comms: Tom Eng (FTC Engineer) (http://ftcforum.usfirst.org/showthread.php?4077-What-are-the-details-on-the-wireless-interface&p=13135&viewfull=1#post13135)

The new platform uses WiFi Direct technology to provide point-to-point communications between the driver station and the robot. WiFi Direct is an industry standard and it provides reliable, robust and scalable communications between mobile and other devices (laptops and devices such as printers can support WiFi Direct). The wireless radios that are available on the new Android devices are significantly faster and can tolerate a greater amount of background wireless noise than our previous wireless control system.

Also, since the new platform is based on Android, as wireless technology and WiFi standards evolve, these changes will be incorporated into the Android platform and become available for use with our control system.

I would like to clarify the development process/environment for the new platform. As mlsamuelson and Jerry McManus mentioned, a typical team would use a computer or laptop to run the Android Studio software. The laptop can be a Windows machine, a Mac, or a Linux machine. The team will write their programs on the laptops, and then can transfer/upload them to the Android device on the robot with a USB cable. In general, your laptop/PC does not need to support WiFi Direct. You can use a simple USB cable to connect and load your programs onto the robot controller (Android device).

Also, it is possible to set up a "wireless adb" connection to upload your program and debug your program wirelessly. With a wireless ADB connection you can connect your development laptop to the Android device wirelessly. You can upload programs to the Android device via the wireless adb connection. You can also monitor/debug the program that is running on the Android device that is attached to the robot through the wireless connection. You can do this even as the Android device on the robot is also being controlled by the driver station.

So to summarize, if you'd like to develop programs for this new platform you can use a Windows PC (7 or 8 are both fine), a Mac, or a Linux machine. You can upload your programs to the Android devices using a USB cable (similar to how you can upload a RobotC or LabView program to an NXT device using a USB cable). You also have the option of doing a wireless ADB connection to upload programs to an Android device and to debug a program running on an Android device.

Hope this info helps.

Tom

DavisDad
23-04-2015, 06:41
Cool implementation of Android as robot controller:


https://i.ytimg.com/vi/vkvkfcqEUkk/mqdefault.jpg (www.youtube.com/watch?v=vkvkfcqEUkk)

DavisDad
26-04-2015, 09:06
I've been looking for information about FTC android system that was scheduled to be unveiled at the St. Louis Worlds this weekend. I've only found this link for training curriculum coming in June:

http://www.intelitek.com/first-tech-challenge/

Anyone seen anything else?

Here's what the Intelitek PDF says:

About the on-line learning portal
Our twenty hour program for new and existing FIRST teams is an easily accessible on-line learning environment that will engage you in hardware and programming changes including getting started, App Inventor and Intro to Java.

Hardware and Getting Started Available June 5th
App Inventor and Intro to Java Available September 1st

Hardware and Control System Components
* Robot controller – ZTE speed Android
* Driver station – ZTE speed Android
* Power module
* Legacy module
* DC motor module
* USB communication
* 12 VDC power input
* Connecting DC motors
* Retrofitting a TETRIX bot
* Retrofitting a MATRIX bot
* Servo controller module
* Advanced sensor module

So... this doesn't say much except to confirm that the ZTE Speed android phone will be the FTC standard next year. Not anything new here. Oh well...

DavisDad
26-04-2015, 10:32
I've been working on understanding the Android programming environment. I've installed the software and used the tutorials to write my first "Hello World" program.

http://simhardware.org/img/FTC_2016%20Android%20Studio.png

DavisDad
26-04-2015, 11:04
The JAVA based Android Studio reminds be a lot of the Visual C++ "programming environment": wicked complicated for the beginner and installing the software is not trivial. I'm hoping JAVA will be like C++ in that once you'd set up all the installation and configuration stuff, you can find example programs on-line and cut-n-paste programs together. I followed this YouTube tutorial

https://i.ytimg.com/vi/47x8c9Q8WTE/default.jpg (https://www.youtube.com/watch?v=bJ_2_AQboc0&list=PLR1yrl-TQLtZL_WD6B9aW-ExWRRJHqTB9)
and had no problem getting it to communicate with my phone and run the tutorial "Hello World" program.

A lot of the programming functions are designed for making graphic interfaces (GUI) for all the different phones, and I'm thinking this complexity won't be a problem for our robotics use. I'm thinking that the programming will be mostly communications stuff between phones and the FTC controller thingy, and the algorithms for robot control.

Since I'm too impatient to wait for the FTC hardware, I've purchased one of these: SparkFun IOIO boards (https://www.sparkfun.com/products/12633) which "connects an app on your PC or Android device to low-level peripherals like GPIO, PWM, ADC, I2C, SPI, and UART" I'll set up a test-bed with some servos and hopefully will have a hardware/software set-up that will allow study of the new control system's capabilities.
http://img.dxcdn.com/productimages/sku_265114_1.jpg

DavisDad
26-04-2015, 11:25
Now I'll do some research to understand what's happening between the Android and the robot controller board:

Simple demo of IOIO with USB connection to phone (https://youtu.be/Uve23VRqxfU)

Relay control (https://youtu.be/dyILmbvlflI)

Servo contro (https://youtu.be/8CYsGg9q-Y4)

The IOIO board has a "collection of libraries" and "libraries expose a set of Java interfaces". I have no idea what that means, but will jump in and see if I can figure out enough of this gobbly-gook to get the phone controlling a servo...

levydev
27-04-2015, 10:13
From what I've seen at the Android demonstration at Worlds, the IOIO board will not be a component used on the FTC platform. The controllers from Modern Robotics will be performing those functions in a way that will make it easy to facilitate OTG comms between the phone and the controllers. I'm also under the impression that teams will not be writing Wifi Direct routines despite that being the method of communication between devices.

I also heard that although there will no longer be a central control mechanism, there will be an attempt to ensure that a robot can be shut down in case of emergencies. (i.e. required code in place to stop motors - if say the driver station app crashes). For the 2016 season, this MAY result in a required driver station runtime app from the Google play store ( no source ). However on the robot side, source will be made available with plenty of sample code.

On Android Studio and your earlier comparison to C++:
I'd say this would be a similar experience to using RobotC in that there will be plenty of examples to use.

The phones:
I can't make any predictions whether or not FTC will require you to use the phones that come with your 2016 registration. All I can tell you is that the phone would need to support "usb host mode", have a snapdragon processor, and run KitKat. (supposedly Lollipop support is still pending).

Again - These are only my impressions from what was demonstrated at Worlds. I do not speak for FTC so I'd suggest that you continue to wait for further announcements.

Hope this helps.
David

MattRain
27-04-2015, 12:11
The Electronics. Shown at the 2015 FTC World Championship.

DavisDad
27-04-2015, 19:39
...Again - These are only my impressions from what was demonstrated at Worlds...

Hope this helps.
David

The Electronics. Shown at the 2015 FTC World Championship.

Thanks David for your observations. I think you've painted a very accurate emerging picture of the new system.

Thanks Matt for posting the photos!

Much appreciated!

Coach#3536
29-04-2015, 16:32
It is nice to have the new device interface module. I hope it works as good as our protoboard has in the past.

DavisDad
02-05-2015, 08:43
Modern Robotics Inc. (http://modernroboticsinc.com/) is on-line:

http://modernroboticsinc.com/Themes/DefaultClean/Content/images/logo_left.png

orangemoore
02-05-2015, 18:17
Modern Robotics Inc. (http://modernroboticsinc.com/) is on-line:

http://modernroboticsinc.com/Themes/DefaultClean/Content/images/logo_left.png

Only 1 day after April :confused:

DavisDad
09-05-2015, 08:28
Jerry McManus has posted an excellent guide and also frequently asked questions (FAQ) post at the FTC forum:

Feeling overwhelmed? Start here. (http://ftcforum.usfirst.org/showthread.php?4186-Feeling-overwhelmed-Start-here&p=13601&viewfull=1#post13601)

Technology forum FAQ (http://ftcforum.usfirst.org/showthread.php?4187-Technology-forum-FAQ&p=13602&viewfull=1#post13602)

Thanks Jerry! Great stuff!

DavisDad
09-05-2015, 08:42
Modern Robotics Inc. registration is up. I've registered and received an email with info below:

Welcome to Modern Robotics Inc. (http://modernroboticsinc.com/)

Thank you for registering with Modern Robotics, Inc. When you are sign in to your account you will be able to check out the latest products and receive news updates as well easily place and track shipments.

Modern Robotics is proud to be working with FIRST and Qualcomm on the new FTC competition electronics control system for 2015 – 2016.

We are also partnering with MATRIX Robotics to supply the all new MATRIX FTC Competition Set for the 2015 – 2016 FTC season.

The new FTC Competition Set, endorsed by FIRST, features more than 750 parts and new larger “C” beams, new 12v battery and components, 4 all new 12v motors with built-in encoders, new metal gears and much more. MATRIX is the only true 3D building system that users find easy to build with and it promotes good engineering practices.

Take a look at MATRIX at http://www.modernroboticsinc.com/matrix-ftc-competition-kit

In addition, all FTC teams registered with FIRST for the 2015 – 2016 season will receive discounts when ordering from www.modernroboitcsinc.com

DavisDad
10-05-2015, 12:10
This post is intended to summarize what is know about the new control system in order to plan work for next season.

I'm basing this mostly on posts with knowledgeable information at the Chief Delphi & FTC forums:

MattRain (Chief Delphi) (http://www.chiefdelphi.com/forums/member.php?u=69645)
levydev (Chif Delphi) (http://www.chiefdelphi.com/forums/member.php?u=57536)
Tom Eng, FTC Engineer (FTC) (http://ftcforum.usfirst.org/member.php?95868-Tom-Eng)
Jerry McManus (FTC) (http://ftcforum.usfirst.org/member.php?96087-Jerry-McManus)
FTC Cause and Effect, FTC Staff (FTC) (http://ftcforum.usfirst.org/member.php?2-FTC-Cause-and-Effect)
ChiefCT (http://ftcforum.usfirst.org/member.php?95790-ChiefCT)

Thank you Matt, David, Tom, Jerry & JoAnn for your help in the forums! Much appreciated! Apologies to anyone I've missed.

FTC 2015/2016 Calendar


March 11, 2015- FIRST® Announces ‘Game-Changing’ Technology Platform for use in Worldwide Student Robotics Competitions (http://www.usfirst.org/aboutus/first-announces-game-changing-technology-platform-for-use-in-worldwide-student-robotics-competitions)
March 11, 2015- FTC Tech Talk video blog by Ken Johnson (http://firsttechchallenge.blogspot.com/p/ftc-tech-talk.html)
May 1, 2015- Modern Robotics Inc. (http://modernroboticsinc.com/) website goes live
May 5, 2015- FTC registration opens (http://www.usfirst.org/roboticsprograms/ftc/registration)
May ?, 2015- "We are packaging a beta of the SDK for release. We plan to have it online within this month (May). " (http://ftcforum.usfirst.org/showthread.php?4185-Availability-of-the-Qualcomm-FTC-SDK&p=13616&viewfull=1#post13616)
June 5, 2015- http://www.intelitek.com/wp-content/uploads/haappy_holidays_logo.png (http://www.intelitek.com/first-tech-challenge/) Hardware and Getting Started Available
Sept , 2015- http://www.intelitek.com/wp-content/uploads/haappy_holidays_logo.png (http://www.intelitek.com/first-tech-challenge/) App Inventor and Intro to Java Available


to be completed later...

RecycledElectro
10-05-2015, 20:42
What I don't know:

As you posted later on, the Modern Robotics site (http://modernroboticsinc.com/) has a lot of this info. I am reposting it here to make it easier to find.




How the Modern Robotics Inc. (MRI) components control information between the ZTE type phone and the robot's functions.


There is a MicroUSB to MiniUSB cable that connects the phone to the "Core Power Distribution Module." That module apparently acts as a PowerPole splitter and as a USB hub. It gives You access to 7 USB ports that can take the various MRI modules.

These modules connect with a USB-A-Male to MiniUSB cable. At first I wondered why they went with the (almost obsolete) MiniUSB connectors, but it makes sense. It will prevent wrong signals being fed into phones, which stop working once they loose their smoke.

Example code is on their web site.




For off the shelf sensors, what are the signal inputs? They look like 3-pin analog.


The "Core Device Interface Module" seems to support everything: 8 digital I/O, 8 analog in, 2 analog out, 2 PWM out, and an I2C bus with 6 drops run to pins. They do not state any reason why we can not use more than one of these if we wish.
http://modernroboticsinc.com/core-device-interface-module


Andrew

Sasha
11-05-2015, 08:08
Example code is on their web site.

I didn't find it. Can you give a link?

DavisDad
12-05-2015, 20:58
Continued from post #34 (http://www.chiefdelphi.com/forums/showpost.php?p=1481314&postcount=34) (with edits)

...

FTC 2015/2016 Calendar


March 11, 2015- FIRST® Announces ‘Game-Changing’ Technology Platform for use in Worldwide Student Robotics Competitions (http://www.usfirst.org/aboutus/first-announces-game-changing-technology-platform-for-use-in-worldwide-student-robotics-competitions)
March 11, 2015- FTC Tech Talk video blog by Ken Johnson (http://firsttechchallenge.blogspot.com/p/ftc-tech-talk.html)
May 1, 2015- Modern Robotics Inc. (http://modernroboticsinc.com/) website goes live
May 5, 2015- FTC registration opens (http://www.usfirst.org/roboticsprograms/ftc/registration)
May ?, 2015- "We are packaging a beta of the SDK for release. We plan to have it online within this month (May). " (http://ftcforum.usfirst.org/showthread.php?4185-Availability-of-the-Qualcomm-FTC-SDK&p=13616&viewfull=1#post13616)
June 5, 2015- http://www.intelitek.com/wp-content/uploads/haappy_holidays_logo.png (http://www.intelitek.com/first-tech-challenge/) Hardware and Getting Started Available

"Late June"- FTC kits ship

Sept 1, 2015- http://www.intelitek.com/wp-content/uploads/haappy_holidays_logo.png (http://www.intelitek.com/first-tech-challenge/) App Inventor and Intro to Java Available
...
September 12- FTC 2015/2016 Kickoff

My rest of the school year plan as mentor:


Figure out the Android controls and what components will be usable for 2016 season (e.g.: are only ZTE Speed phones allowed, or can we use a tablet for the driver interface)
Learn the App Inventor and Android Studio systems. Be able to help the team set up their programming environment (AI and/or Java).
When the Software Development Kit (SDK) for the Android and Modern Robotics controls goes public this month (May), I hope to be able to figure out how all the components work together and move the programming environment set-up forward.
Since our team has limited financial resources, I want to figure out what is required to buy through FTC kits and what can be purchased more cheaply. I've already bought 2 used ZTE Speed phones on eBay, a USB hub & some USB-OTG cables for experimenting. I paid about $90 for the lot, and the FTC Kit costs $268.
Be prepared to understand and leverage the forum posts from programmers about Java Studio, App Inventor and the other computer stuff. Hopefully I'll have a test-bed programming environment assembled to allow testing the information supplied by folks knowledge about the implementation details. I know this will be difficult for our team as I'm the most knowledgeable person about programming, and I don't know much. I'm hoping if I can smooth the path by understanding enough to guide the students so they can do the semicolon coding. :)


I've gotten the phone to link with "Wi-Fi direct", gotten "Hello World" programs to work on a ZTE (both Android Studio & App Inventor). I'm now working on getting a game controller hooked up to the driver phone and send something to the robot phone; I'm thinking a button press on the Logitech would initiate the "Hello World" program on the robot phone.

MattRain
13-05-2015, 02:02
Continued from post #34 (http://www.chiefdelphi.com/forums/showpost.php?p=1481314&postcount=34) (with edits)


September 5 (guess)- FTC 2015/2016 Kickoff

My rest of the school year plan as mentor:


Since our team has limited financial resources, I want to figure out what is required to buy through FTC kits and what can be purchased more cheaply. I've already bought 2 used ZTE Speed phones on eBay, a USB hub & some USB-OTG cables for experimenting. I paid about $90 for the lot, and the FTC Kit costs $268.


I've gotten the phone to link with "Wi-Fi direct", gotten "Hello World" programs to work on a ZTE (both Android Studio & App Inventor). I'm now working on getting a game controller hooked up to the driver phone and send something to the robot phone; I'm thinking a button press on the Logitech would initiate the "Hello World" program on the robot phone.

Kickoff is September 12th.

When doing through the registration process, you HAVE to buy one of the "control" sets, lowest one is $10 and includes a cable, hub and binder. We bought our phones through Best buy for 40 a pop, at 4 phones (2 teams). So it looks like you will have to spend another 10 dollars.

I'm currently making multiple different ZTE Phone mounts that will connect to Tetrix and Actobotics easily that I will release to everyone that has a 3d printer.

DavisDad
16-05-2015, 23:31
There are a lot of posts posts being added to the FTC forum that help with the new controls. Below are links of searches on posts by people I've found helpful.

Tom Eng (FTC Engineer): http://ftcforum.usfirst.org/member.php?95868-Tom-Eng

Jonathan Berling (Qualcomm Engineer): http://ftcforum.usfirst.org/member.php?95872-Jonathan-Berling

PlilBot (Coach 2818): http://ftcforum.usfirst.org/member.php?5560-Philbot

Cheer4FTC (Mentor): http://ftcforum.usfirst.org/member.php?91071-Cheer4FTC

capnrmorgan
18-05-2015, 08:45
Quick guide to setting up a ZTE Speed phone for FTC (https://www.youtube.com/watch?v=n597U6rcl2Y) from GEARSInc.

Shows how to configure the phone, and install the Android Debug Bridge (ADB) driver on your PC.

DavisDad
18-05-2015, 20:27
Robert Van Hoose (Mentor): http://ftcforum.usfirst.org/showthread.php?4147-Questions-about-OpMode-paradigm&p=13288&viewfull=1#post13288

DavisDad
18-05-2015, 21:46
From Tom Eng here: http://ftcforum.usfirst.org/showthread.php?4195-Google-Hangout-%96-FTC-New-Technology-Demo&p=13747&viewfull=1#post13747

Hi Folks,

We plan on releasing the apps and the SDK soon. You can configure the robot to have a null hardware configuration (no hardware modules attached) and if you have the SDK, even though you don't have the hardware yet, you can still write some basic op modes and test things like the telemetry function (you can send data back from the robot controller to the driver station) and learn how to select and run an op mode.

Tom

ehochstein
19-05-2015, 11:13
From Tom Eng here: http://ftcforum.usfirst.org/showthread.php?4195-Google-Hangout-%96-FTC-New-Technology-Demo&p=13747&viewfull=1#post13747

Thanks for keeping this thread updated! Super helpful to those of us that forget to check the FTC Forums all of the time :)

DavisDad
20-05-2015, 21:58
Tom Eng at the FTC forum (http://ftcforum.usfirst.org/showthread.php?4195-Google-Hangout-%96-FTC-New-Technology-Demo) has posted an excellent video demonstrating the new controls at Youtube: Demo Video (https://www.youtube.com/watch?v=5omOF2WvI8M#t=115)

levydev
21-05-2015, 10:01
Anyone with a ZTE Speed device? I'm trying to use mine as a Wifi-Only device but it continues to try to activate on the cell service. At least I think that is what is happening.

Getting interrupts dialogs like:
"Activate Device: Are you swapping this device for one you currently have on your account?"
and
"The network did not respond in time. The sim card has locked. Please powercylce the device"

DavisDad
21-05-2015, 10:47
See Tom Eng's post at the FTC forum: Tip on using ZTE Speed (http://ftcforum.usfirst.org/showthread.php?4190-Tip-on-using-ZTE-Speed)

And video by PhilBot posted here: ZTE Speed setup for FIRST Tech Challenge (FTC) (http://ftcforum.usfirst.org/showthread.php?4198-ZTE-Speed-usb-drivers&p=13719&viewfull=1#post13719)

Youtube video here: https://www.youtube.com/watch?v=n597U6rcl2Y

I set up my ZTE using the above information and have not gotten the activation messages. Key I think is to take out the SIM card and put in "Airplane Mode", and then enable WIFI.

levydev
21-05-2015, 10:58
Doesn't "Airplane mode" lockout wifi as well?

Thanks for the links. I'll have a look. Also - Many thanks for summarizing and recapping this thread. It's extremely useful.

Cheers

DavisDad
21-05-2015, 11:19
WIFI can be enabled while in Airplane Mode...

DavisDad
23-05-2015, 13:37
Ok… it’s time to get going on doing what it takes to make a robot run with the new control system. Information about the details of the system are becoming public at the FTC forum. I follow the posts by Tom Eng Tom Eng (http://ftcforum.usfirst.org/member.php?95868-Tom-Eng) and Jonathan Berling (Qualcomm Engineer) (http://ftcforum.usfirst.org/member.php?95872-Jonathan-Berling) very closely. They posted at the forms and videos on YouTube that demonstrate the new system’s architecture.

Below, I’ll fill in what I’ve found related to my end-of-school-year plan. The links (underlined text) is where I got the information.

NOTE: None of this will be official until the robot build rules are published “in early July (http://ftcforum.usfirst.org/showthread.php?4207-Game-Manual-release&p=13814&viewfull=1#post13814)”

Continued from post #37 (http://www.chiefdelphi.com/forums/showpost.php?p=1481760&postcount=37) (with edits)

My rest of the school year plan as mentor:



Figure out the Android controls and what components will be usable for 2016.


The “ZTE Speed” Android cell phone will be the official FTC “device” (http://ftcforum.usfirst.org/showthread.php?4175-Training-details-ZTE-Speed-confirmed&p=13474&viewfull=1#post13474) supported for the 2015/2016 season.


Other Android devices will be allowed, but not formally supported by FTC. As Tom Eng posted ( http://ftcforum.usfirst.org/showthread.php?4175-Training-details-ZTE-Speed-confirmed&p=13490&viewfull=1#post13490), FTC wanted a tablet for the driver station, but decided on the phone as more affordable. I want to investigate using something like the DragonBoard 410C (https://developer.qualcomm.com/blog/dragonboard-410c-embedded-computing-and-ioe) as an alternative. A larger touch screen could provide more controls options.




When the Software Development Kit (SDK) for the Android and Modern Robotics controls goes public this month (May), I hope to be able to figure out how all the components work together and move the programming environment set-up forward.


The beta of the SDK will be available soon; probably early June. While we won’t have the Modern Robotics Inc hardware until July-ish (late June ship date), Tome Eng and Jonathan Berling have video previews of the FTC software. It looks a lot like RobotC code for Android Studio. Tom also previews App Inventor programming.




Since our team has limited financial resources, I want to figure out what is required to buy through FTC kits and what can be purchased more cheaply…


We’ve bought 4 ZTE Speed phones. 2 from Amazon ($40 ea.) and 2 from eBay (used ~ 35 ea.). Amazon price for Boost phone is now $56 ( http://www.amazon.com/gp/product/B00RLUQGHS/ref=oh_aui_detailpage_o01_s00?ie=UTF8&psc=1) (23May15).

We have not registered yet, and haven’t decided which kit to purchase. We’re thinking about two options: 1.) register and buy the “ Electronic Modules & Sensors Kit ( http://www.chiefdelphi.com/forums/attachment.php?attachmentid=18975&d=1431015583 ) “ ($391) or 2.) wait for components’ pricing and decide if buying individual components is more economical.




Be prepared to understand and leverage the forum posts from programmers about Java Studio, App Inventor and the other computer stuff…



Tom Eng’s video: FTC New Technology Demonstration! ( https://www.youtube.com/watch?v=5omOF2WvI8M)

Jonathan Berling’s video: “ Code Walkthrough of the FIRST® Tech Challenge (FTC) Robot Controller ( https://www.youtube.com/watch?v=a-aXZ9bLNQA&feature=youtu.be)”

Philbot’s: “ ZTE Speed setup for FIRST Tech Challenge (FTC) (https://www.youtube.com/watch?v=n597U6rcl2Y )"



A big thanks to Tom, Johnathan, Phil and all the other forum posters who've helped us!

DavisDad
24-05-2015, 15:09
Where to start? I feel like a caveman looking at a Ferrari...

I'll start with the driver station; figure out how make a program to get the game controller (F310) talking to the ZTE Speed. I was hoping to begin with MIT App Inventor, but couldn't find anything on the internet to get me started. I'll use Android Studio to program.

Hardware:

ZTE Speed (Boost Mobile) (http://www.amazon.com/ZTE-Speed-Black-Boost-Mobile/dp/B00RLUQGHS/ref=sr_1_1?s=electronics&ie=UTF8&qid=1432487735&sr=1-1&keywords=zte+speed)
Logitech F310 Game Controller (http://www.amazon.com/gp/product/B003VAHYQY/ref=oh_aui_detailpage_o01_s00?ie=UTF8&psc=1)
USB On the Go Cable (USB-OTG) (http://www.amazon.com/gp/product/B005GI2VMG/ref=oh_aui_detailpage_o04_s00?ie=UTF8&psc=1)
USB-A to USB-micro B cable (http://www.amazon.com/gp/product/B005GI2VMG/ref=oh_aui_detailpage_o04_s00?ie=UTF8&psc=1)
Laptop (Windows 7, 64 bit)


Phone Setup:

I used PhilBot's Youtube video: ZTE Speed setup for FIRST Tech Challenge (FTC) (https://www.youtube.com/watch?v=n597U6rcl2Y)

Software:

Java SE Development Kit 8 (JDK) for Windows x64 (http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
Android Studio (http://developer.android.com/sdk/index.html#top)


Software installation on PC:

Download Java SE Development Kit 8 (JDK) (http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
Install/configure the JDK. I found this tutorial easier than the instructions from the download site: Android App Development for Beginners - 1 - Introduction (https://www.youtube.com/watch?v=QAbQgLGKd3Y)
Download Android Studio Android Studio (http://developer.android.com/sdk/index.html#top)
Install/configure Android Studio. Again, found the following tutorials easier than the instructions from the download site: Android App Development for Beginners - 2 - Installing Android Studio (https://www.youtube.com/watch?v=zEsDwzjPJ5c) and
Android App Development for Beginners - 3 - Setting up Your Project (https://www.youtube.com/watch?v=r4oIez0sfvY)
Hook you phone up to your PC with USB cable, just like you would to charge it (USB-A to USB-micro B cable)
Start your first "project". I used this procedure from the "Android Developer" site: Creating an Android Project (https://developer.android.com/training/basics/firstapp/creating-project.html). But... this looks good too: Android App Development for Beginners - 4 - Running a Simple App (https://www.youtube.com/watch?v=qKRWC3Q8wRw) Follow this tutorial except you'll at the point when you run the program, you should choose your phone in the "Choose Device" pop-up screen. Mine reads as "ZTE N9130 Android 4.4.4 (API 19)"



If this procedure worked for you, you should see your Android screen change and display "Hello World!" (see below). You now have your "programming environment" set up, and made a program that is writing and loading an app on the phone.

Next, I'll try running a program from Android Studio that will talk to the Logitech game controller...

https://liucs.net/cs164s14/android-hello-preview.png

DavisDad
25-05-2015, 07:32
Now it's time to actually do some work on program files. Up to now, I've only followed other's procedures and relied on the automatic features of Android Studio. I need to understand what I’m looking at in this Android Studio window. There must be over 100 buttons and thingies…

I started looking at the ton of directories and files generated by Android Studio (let’s shorten to AS). I’m wondering: “where’s the program code in all this mess”. I started reading here: "Your Android project is now a basic "Hello World" app that contains some default files. Take a moment to review the most important of these... (https://developer.android.com/training/basics/firstapp/creating-project.html)".

I’ve found Buckey Roberts’s tutorials really good at introducing me to the complexity of AS: "Android App Development for Beginners - 5 - Tour of the Interface (https://www.youtube.com/watch?v=-pdTqBq2TFQ)" and "Android App Development for Beginners - 6 - Android Studio Tips (https://www.youtube.com/watch?v=OUCjk_n3raM)"


When I had gotten to this point, I understood that the program code was here: C:\...\AndroidStudioProjects\HeloWorld\app\src\mai n\java\org\simhardware\heloworld\MainActivity.java . Then I did some study of Java for beginners. I got stalled with “object oriented”, “classes”, “methods”, “activities”, and a bunch of other concepts I couldn’t hold in my head long enough to see how this related to controlling a robot.

I then went looking for “simple” source code for a program (app) to talk to the game controller (Logitech F310). I was looking for something that would connect and read input actions; analog values of joystick and digital button presses. I wanted it to simply write the data to a text screen on the ZTE. I didn’t find exactly what I was looking for, but did find this: "Supporting Game Controllers (https://developer.android.com/training/game-controllers/index.html)" and downloaded: " ControllerSample.zip ( http://developer.android.com/shareables/training/ControllerSample.zip)" This is a simple game that looks like "Asteroids" that I played years ago at the video arcade. :-)


I'm now playing with stripping out the game stuff and writing the F310 inputs to a text screen on the phone. Progress to follow...


http://simhardware.org//img/controllersample.jpg

Gdeaver
31-05-2015, 08:04
Best buy has the ZTE Speed on sale for 39$. Got one yesterday. Really can't do much until software and hardware are available.

DavisDad
31-05-2015, 08:22
...Really can't do much until software and hardware are available.

I'm finding it very educational to set up the "programming environments" for App Inventor and Android Studio, and then going through the "Hello World" tutorials.

DavisDad
01-06-2015, 05:39
Phil Malone has an excellent Youtube video on setting up the "ADB" for programming the robot Android: Tutorial: Wireless ADB Setup for FIRST Tech Challenge (FTC)
(https://www.youtube.com/watch?v=0XZ6EH7BV2M)

https://i.ytimg.com/vi_webp/0XZ6EH7BV2M/default.webp

MattRain
01-06-2015, 12:31
Prices are out for individual controllers. No Sensor Pricing. We can't buy yet, but at least we see the prices.

http://modernroboticsinc.com/

Power Dist. 89.95
Motor Control 79.95
Servo Controller 69.95
Core Device 67.95
Legacy Module. 64.95

No Prices for sensors yet.

DavisDad
01-06-2015, 12:53
Pretty good pricing. Here's the email I got from Modern Robotics Inc.



Modern Robotics Core Module Pricing now available.

Modern Robotics has announced pricing for the range of Core robotic modules and details are available on our website at www.modernrobOticsinc.com.

Ordering and shipping will begin around the end of June, 2015 and updates will be posted on our website. For detailed enquiries you can contact us at sales@modernroboticsinc.com.

DavisDad
03-06-2015, 19:33
Tom Eng has posted links to Beta SDK and Apps on the FTC forum: Pre-release apps and software are available for download (http://ftcforum.usfirst.org/showthread.php?4227-Pre-release-apps-and-software-are-available-for-download)

Copy/past of his post:

Hi Folks,

The software development kit (SDK) and Android apps for the new FTC robot platform are now available on the Internet. Volunteers, teams and mentors can access the pre-release (beta) versions and begin to learn how to use the new system to create custom robot behaviors with the Android platform.

The SDK is available from GitHub:

https://github.com/ftctechnh/ftc_app

The Android apps are available on Google Play (either directly from your Android device or from a PC)

https://play.google.com/store/apps/d...rstation&hl=en
https://play.google.com/store/apps/d...ntroller&hl=en

Also, documentation is available to help the community become familiar with the new platform:

https://github.com/ftctechnh/ftc_app...r/doc/tutorial

Please note that these are pre-release (beta) copies. The official release of the software is currently scheduled for June (to coincide with the release of the hardware modules).

We encourage users to post questions and share feedback here:
http://ftcforum.usfirst.org/forumdis...FTC-Technology

Sincerely,

Tom

zajacik
06-06-2015, 18:51
I have been maintaining a somewhat organized webpage on my Mississippi Robotics website to accumulate all I can find to help all of us with the new FTC hardware platform and programming. Enjoy and I hope you come up to speed quickly and smoothly. Everyone is being so helpful. It is good to see.

http://mississippirobotics.org/ftc-first-tech-challenge/

Ray

DavisDad
09-06-2015, 06:05
I have been maintaining a somewhat organized webpage on my Mississippi Robotics website to accumulate all I can find to help all of us with the new FTC hardware platform and programming. Enjoy and I hope you come up to speed quickly and smoothly. Everyone is being so helpful. It is good to see.

http://mississippirobotics.org/ftc-first-tech-challenge/

Ray

Nice webpage Ray, thanks!

DavisDad
09-06-2015, 06:10
Intelitek released new technology training modules for FTC: Sign up page (http://ftc.edu.intelitek.com/login/index.php)

The specification page for the Android phone list more phones: 2015/16 FTC Control System Android Device specifications (http://ftc.edu.intelitek.com/pluginfile.php/118/mod_resource/content/1/FTC%20Android%20Specs%202015-16%20Season%20v5%204-30-15.pdf)

emmell
18-06-2015, 13:29
The specification page for the Android phone list more phones: 2015/16 FTC Control System Android Device specifications (http://ftc.edu.intelitek.com/pluginfile.php/118/mod_resource/content/1/FTC%20Android%20Specs%202015-16%20Season%20v5%204-30-15.pdf)

This is true, however the only phone that will probably be allowed for U.S. teams will be the ZTE Speed at least for this first year. This is due to the WiFi Direct channel changing capability.

DavisDad
21-06-2015, 15:18
I've been following the forum at FTC and the programming people's discussions of the recently released beta of the FTC SDK. I won't try to keep up with these good programmers' work until I get my hands on the hardware.

In the meantime, I'm going to get back to a project I started 2 years ago: building a modular drive platform. My son has agreed to work with me again. I'll start a new thread soon and use the new control system for control.

Have fun,

Craig

DavisDad
03-07-2015, 00:41
Just posted at FTC forum:



Modern Robotics Modules are now available

Modern Robotics modules, sensors and accessories are now available online and can be ordered from www.modernroboticsinc.com. Orders for modules and controllers will begin shipping Monday July 6th.

I successfully placed an order.

ehochstein
07-07-2015, 13:49
Just posted at FTC forum:



I successfully placed an order.

Motor controllers are already out of stock :(

DavisDad
08-07-2015, 18:58
FTC has posted the 2015-2016 Game Manual Part I (http://www.usfirst.org/sites/default/files/uploadedFiles/Robotics_Programs/FTC/Team_Resources/Game-Manual-Part-I.pdf)

DavisDad
09-07-2015, 17:27
I received the Modern Robotics order today that I placed last Friday. 4 business days over a holiday weekend; not bad!

DavisDad
12-07-2015, 17:25
The new 12V Matrix motors are available at Modern Robotics Inc.
http://modernroboticsinc.com/content/images/thumbs/0000206_12v-motor-kit_300.jpeg

DavisDad
05-08-2015, 08:50
A new release of the FTC SDK has been released: LINK (http://ftcforum.usfirst.org/showthread.php?4365-FTC-SDK-Beta-Release-20150803_001-is-now-available-on-GitHub&p=14938&viewfull=1#post14938)

DavisDad
06-08-2015, 20:51
App Inventor with FTC Design Components available for download (BETA release)! LINK (http://ftcforum.usfirst.org/showthread.php?4382-App-Inventor-with-FTC-Design-Components-available-for-download-(BETA-release)!&p=15093&viewfull=1#post15093)

ehochstein
07-08-2015, 12:32
App Inventor with FTC Design Components available for download (BETA release)! LINK (http://ftcforum.usfirst.org/showthread.php?4382-App-Inventor-with-FTC-Design-Components-available-for-download-(BETA-release)!&p=15093&viewfull=1#post15093)

Super excited to check this out! Anyone else gotten a chance to play with this yet?

orangemoore
07-08-2015, 13:02
Super excited to check this out! Anyone else gotten a chance to play with this yet?

It is pretty cool.

BSV
08-08-2015, 00:24
Super excited to check this out! Anyone else gotten a chance to play with this yet?

Downloaded it and got it to compile a couple of simple programs.

It looks promising for basic programming.

We don't have our electronics, yet, though, so we've not tried anything beyond "Hello World."

DavisDad
08-08-2015, 15:41
I'm test driving the FTC App Inventor platform. I've run through the "FTC_AppInv_Training_v0_07" and "FTC_AppInventor_Local_win_v0_07" procedures and examples. I got a game controller running a motor (MRI controller/Matrix 12V), even went beyond the tutorial and got run-with-encoder working.

I think our team will like this platform. We're a second season team with little programming experience.

RedfishRobotics
16-08-2015, 14:55
Hello all,

Mentor of a rookie team (moving up from 4 years in FLL), and we're kind of stuck.

Our new electronics arrived a couple of days ago, but we had been working on the Android Studio/ZTE phone part for about a month (thanks to all, especially Philbot). The kids built a test platform yesterday, in the legacy configuration with a Matrix motor/servo controller, and the 9.6v battery.

Minor bugs along the way, but managed to edit/download/deploy some code that appears to function on the Driver/Robot station, except they get no response from the motors.

- Everything is powered on, all modules that have lights are lit, and everything appears to be powered on.
- Telemetry shows on both phones, and they see X/Y movement when they move the joysticks.
- Powerpole connections have been tested with a multi-meter to ensure there is power.

In short, everything appears to working, except there is no response from the motors. As bad code tends to throw some kind of error code, I'm leaning toward the Legacy Module not "talking" to the Matrix controller, but as this is our first real shot with the new tech, I could be, and likely am, totally off base. LOL

Any help suggestions are really appreciated as the Captain (our son) is kind of stuck.

For reference (and in hopes someone can take a look), the modified code they are using is below.

While we'd rather figure out what we're doing wrong (for learning purposes), we'd also be interested in seeing anyone's code that actually runs in the Legacy/Matrix configuration.

Thanks, and here's the code:


package com.qualcomm.ftcrobotcontroller.opmodes;

import com.qualcomm.robotcore.eventloop.opmode.OpMode;
import com.qualcomm.robotcore.hardware.DcMotor;
import com.qualcomm.robotcore.hardware.DcMotorController;
// import com.qualcomm.robotcore.hardware.Servo;
import com.qualcomm.robotcore.util.Range;

/**
* TeleOp Mode
* <p>
* Enables control of the robot via the gamepad
*/
public class RedfishTeleOp extends OpMode {

// position of the claw servo
// double clawPosition;

// amount to change the claw servo position by
// double clawDelta = 0.01;

// position of the wrist servo
// double wristPosition;

// amount to change the wrist servo position by
// double wristDelta = 0.01;

DcMotorController.DeviceMode devMode;
DcMotorController wheelController;
DcMotor motorRight;
DcMotor motorLeft;

// Servo claw;
// Servo wrist;

int numOpLoops = 1;

/*
* Code to run when the op mode is first enabled goes here
* @see com.qualcomm.robotcore.eventloop.opmode.OpMode#sta rt()
*/
@Override
public void init() {

motorRight = hardwareMap.dcMotor.get("motor_2");
motorLeft = hardwareMap.dcMotor.get("motor_1");
// claw = hardwareMap.servo.get("servo_6"); // channel 6
// wrist = hardwareMap.servo.get("servo_1"); // channel 1

wheelController = hardwareMap.dcMotorController.get("wheels");
devMode = DcMotorController.DeviceMode.WRITE_ONLY;

motorRight.setDirection(DcMotor.Direction.REVERSE) ;
//motorLeft.setDirection(DcMotor.Direction.REVERSE);

// set the mode
// Nxt devices start up in "write" mode by default, so no need to switch device modes here.
motorLeft.setChannelMode(DcMotorController.RunMode .RUN_WITHOUT_ENCODERS);
motorRight.setChannelMode(DcMotorController.RunMod e.RUN_WITHOUT_ENCODERS);

// wristPosition = 0.6;
// clawPosition = 0.5;
}

/*
* This method will be called repeatedly in a loop
* @see com.qualcomm.robotcore.eventloop.opmode.OpMode#loo p()
*/
@Override
public void loop() {

// The op mode should only use "write" methods (setPower, setChannelMode, etc) while in
// WRITE_ONLY mode or SWITCHING_TO_WRITE_MODE
if (allowedToWrite()) {
/*
* Gamepad 1
*
* Gamepad 1 controls the motors via the left stick, and it controls the wrist/claw via the a,b,
* x, y buttons
*/

if (gamepad1.dpad_left) {
// Nxt devices start up in "write" mode by default, so no need to switch modes here.
motorLeft.setChannelMode(DcMotorController.RunMode .RUN_WITHOUT_ENCODERS);
motorRight.setChannelMode(DcMotorController.RunMod e.RUN_WITHOUT_ENCODERS);
}
if (gamepad1.dpad_right) {
// Nxt devices start up in "write" mode by default, so no need to switch modes here.
motorLeft.setChannelMode(DcMotorController.RunMode .RUN_USING_ENCODERS);
motorRight.setChannelMode(DcMotorController.RunMod e.RUN_USING_ENCODERS);
}

// throttle: left_stick_y ranges from -1 to 1, where -1 is full up, and 1 is full down
// direction: left_stick_x ranges from -1 to 1, where -1 is full left and 1 is full right
float throttlel = -gamepad1.left_stick_y;
float directionl = gamepad1.left_stick_x;
float left = throttlel - directionl;

// throttle: left_stick_y ranges from -1 to 1, where -1 is full up, and 1 is full down
// direction: left_stick_x ranges from -1 to 1, where -1 is full left and 1 is full right
float throttler = -gamepad1.right_stick_y;
float directionr = gamepad1.right_stick_x;
float right = throttler + directionr;

// clip the right/left values so that the values never exceed +/- 1
right = Range.clip(right, -1, 1);
left = Range.clip(left, -1, 1);

// write the values to the motors
motorRight.setPower(right);
motorLeft.setPower(left);

/*
* Gamepad 2
*
* Gamepad controls the motors via the right trigger as a throttle, left trigger as reverse, and
* the left stick for direction. This type of control is sometimes referred to as race car mode.
*/

// we only want to process gamepad2 if someone is using one of it's analog inputs. If you always
// want to process gamepad2, remove this check
if (gamepad2.atRest() == false) {

// throttle is taken directly from the right trigger, the right trigger ranges in values from
// 0 to 1
throttler = gamepad2.right_trigger;

// if the left trigger is pressed, go in reverse
if (gamepad2.left_trigger != 0.0) {
throttlel = -gamepad2.left_trigger;
}

// assign throttle to the left and right motors
right = throttler;
left = throttlel;

// now we need to apply steering (direction). The left stick ranges from -1 to 1. If it is
// negative we want to slow down the left motor. If it is positive we want to slow down the
// right motor.
if (gamepad2.left_stick_x < 0) {
// negative value, stick is pulled to the left
left = left * (1 + gamepad2.left_stick_x);
}
if (gamepad2.left_stick_x > 0) {
// positive value, stick is pulled to the right
right = right * (1 - gamepad2.left_stick_x);
}

// write the values to the motor. This will over write any values placed while processing gamepad1
motorRight.setPower(right);
motorLeft.setPower(left);
}
}

// To read any values from the NXT controllers, we need to switch into READ_ONLY mode.
// It takes time for the hardware to switch, so you can't switch modes within one loop of the
// op mode. Every 17th loop, this op mode switches to READ_ONLY mode, and gets the current power.
if (numOpLoops % 17 == 0){
// Note: If you are using the NxtDcMotorController, you need to switch into "read" mode
// before doing a read, and into "write" mode before doing a write. This is because
// the NxtDcMotorController is on the I2C interface, and can only do one at a time. If you are
// using the USBDcMotorController, there is no need to switch, because USB can handle reads
// and writes without changing modes. The NxtDcMotorControllers start up in "write" mode.
// This method does nothing on USB devices, but is needed on Nxt devices.
wheelController.setMotorControllerDeviceMode(DcMot orController.DeviceMode.READ_ONLY);
}

// Every 17 loops, switch to read mode so we can read data from the NXT device.
// Only necessary on NXT devices.
if (wheelController.getMotorControllerDeviceMode() == DcMotorController.DeviceMode.READ_ONLY) {

// Update the reads after some loops, when the command has successfully propagated through.
telemetry.addData("Text", "free flow text");
telemetry.addData("left motor", motorLeft.getPower());
telemetry.addData("right motor", motorRight.getPower());
telemetry.addData("RunMode: ", motorLeft.getChannelMode().toString());

// Only needed on Nxt devices, but not on USB devices
wheelController.setMotorControllerDeviceMode(DcMot orController.DeviceMode.WRITE_ONLY);

// Reset the loop
numOpLoops = 0;
}

// Update the current devMode
devMode = wheelController.getMotorControllerDeviceMode();
numOpLoops++;
}

// If the device is in either of these two modes, the op mode is allowed to write to the HW.
private boolean allowedToWrite(){
return (devMode == DcMotorController.DeviceMode.WRITE_ONLY);
}
}

FTC5110
16-08-2015, 16:16
I don't believe the Matrix 9.6V system is functional in the current beta app release 20150803.
Keep an eye on http://ftcforum.usfirst.org/forumdisplay.php?156-FTC-Technology

RedfishRobotics
16-08-2015, 17:25
I don't believe the Matrix 9.6V system is functional in the current beta app release 20150803.
Keep an eye on http://ftcforum.usfirst.org/forumdisplay.php?156-FTC-Technology

Thanks. Fairly distressing if in fact this issue isn't resolve less than a month from kick-off, but I guess no more distressing than the fact that it wasn't resolved in advance of making the switch.

I understand the "if you wait for it to be perfect you won't ever launch" theory, I just don't subscribe to it.

Thanks again, and good luck to EVERYONE this season, looks like we're going to need it.

skatefriday
18-08-2015, 11:53
Support for the Matrix controller does not yet exist.

When it does, you should see a Matrix selection in
the configuration tool for the robot controller that
contains selections for 4 motors and 4 servos.

RedfishRobotics
18-08-2015, 15:14
Thanks Skate, with the kids first scrimmage just over 3 weeks out, they're going to keep pushing on a design that will hopefully work.

We've made some test leads for them so they can at least test lifts and such, but as they're already back in school, build time is a LOT more limited that areas that go back after Labor Day. (One more thing to love about Louisiana, lol).

Thanks again and good luck all!

skatefriday
21-08-2015, 16:18
How do you scrimmage before the game has been announced?

Gdeaver
26-08-2015, 07:49
Over the summer,our team has gone thru basic tool training and built a basic robot. Last week we bogged down trying to bring up the electronics and programming. A father and I work thru the problems and have basic control of motors and servos. Next meeting we should be able to mount everything on the robot and have the kids driving around. This should complete our summer goals.

REALITY CHECK FTC PEOPLE!!!!!

OUR team is all 7th and 8th graders. Smart but not geniuses. The Java programming model that Qualcom has created is full blown object oriented, event driven and multi threaded. In stead of the students working on specifying the behavior of the robot, we mentors are going to be teaching and beating a whole lot of very complex CS knowledge into their brains. This is going to take allot of work on the mentors part. Many teams are not going to have the people available to do this. Right know I have 2 students that are good enough to take this on. Unfortunately, the rest are most likely going to be blown away and give up on programming. Qualcom people, Have you worked with 7th graders on this system? This is a step back. I know many people hate Labview, but I have always been amazed at how the young minds picked it up. Even our good students who programmed last year's robot have called this a mess. Their has to be a better programming system. It's to late now. This fall is going to be long and hard. I've got some real home work to do. Yuk, YUK, Yuk, YUK.

wgardner
26-08-2015, 08:01
Gdeaver,

I agree that the Java/Android Studio environment is a step up in complexity from RobotC and a HUGE step up in complexity from Labview. It will definitely be a challenge for teams without strong CS mentors.

Have you considered using AppInventor instead? It's simpler to learn and use than Java is, and probably much easier to learn for folks coming from Labview.

You might want to have your kids try both for a week or so and see what they're more comfortable with.

Good luck!

Gdeaver
26-08-2015, 08:16
AppInventor is some lipstick on a pigs face.

wgardner
26-08-2015, 08:22
OK, then don't complain that Java is too hard for middle schoolers.

Gdeaver
26-08-2015, 08:37
App Inventor can assist in the basic's but is no better when complex auto actions are required. There has to be a better paradigm. The goal of FIRST is to bring more kids into technology. This current system could potentially push all but the best away at an early age. I don't have the answer but am sure this is not it. Now for teams that are high school level this may not be too bad. 7 and 8th graders, No.

wgardner
26-08-2015, 09:23
App Inventor can assist in the basic's but is no better when complex auto actions are required. There has to be a better paradigm. The goal of FIRST is to bring more kids into technology. This current system could potentially push all but the best away at an early age. I don't have the answer but am sure this is not it. Now for teams that are high school level this may not be too bad. 7 and 8th graders, No.

For Middle Schoolers, FIRST offers FLL with the EV3 GUI-based programming environment. For Middle and High Schoolers, FIRST offers FTC with AppInventor, a hybrid GUI/Text programming environment, and Java, a full fledged advanced text programming environment.

What I'm trying to suggest is that middle schoolers with no programming experience or only experience with GUI-type programming like Scratch, Labview, etc., may be better served doing FTC with AppInventor or FLL with EV3 programming. High schoolers taking AP-CS are better served with Java and Android Studio.

My opinion only: if you go with Java, you have chosen the most advanced programming environment for your 7th and 8th graders, and you are expecting them to be able to perform complex auto actions that are competitive with advanced FTC high school teams. ("Smart but not geniuses." "Right know I have 2 students that are good enough to take this on. Unfortunately, the rest are most likely going to be blown away and give up on programming." "App Inventor can assist in the basic's but is no better when complex auto actions are required.")

I would humbly suggest that some options are:

1. Stick with FTC and Java which only your top 2 students can do, be as competitive as possible, but leave many of your team members out of programming. :(

2. Try FTC and AppInventor, get all of the kids learning how to do it, and perhaps sacrifice a bit of competitiveness when it comes to autonomous routines, but have a kick-butt teleop with simple autonomous routines and a full team of kids who are engaged and contributing to the programming.

3. Have some of the kids who aren't the best programmers consider doing an FLL team (instead of or in addition to FTC). They may be jazzed by the simpler EV3 programming environment, may get more turned on by technology and programming, and may be more motivated to move towards FTC and advanced programming in future years.

How you decide to balance all of this is your choice, of course. But I might humbly suggest that perhaps the expectation that your "non genius" 7th and 8th graders will be able to compete with complex autonomous routines against advanced high schoolers who have been coding in Java for multiple years might be contributing to some of your frustrations?

I'm not trying to be "flame-y": hopefully it's not coming across that way. I'm just trying to point out that there are other options out there to you and to others in your situation who might be reading this thread.

RedfishRobotics
26-08-2015, 13:55
How do you scrimmage before the game has been announced?

Sorry, I could have explained that better. For the last couple of years, one of the teams in Baton Rouge has hosted an off-season event called the "Redstcik Rumble". It's a combined FRC & FTC scrimmage (using the previous season's games), and an FLL workshop. This year's event just happened to fall on FTC kick-off, so having a bunch of LA/MS teams together for that will be a bonus.

Normally rookie teams don't participate, however, since we've been planning the move up to FTC since last season the team decided they'd like to try it.

Good news (since my last post) in that the kids got their "legacy" motors running by splitting out the encoder leads and just using the power leads in a "dumb" motor (my term) config. No telemetry and obviously no autonomous, but at least they have a robot they can drive in the event.

samfruth
01-09-2015, 13:22
I was able to make the .apk file on App Inventor and then move that file to the phone that gets connected with the bot. I created a new configuration on that phone as well for the bot that we have built. The phones are direct connected already through Wifi and set up appropriately as far as I know.

I'm having troubles with the OP mode on the phone that has the controllers plugged into it though. The phone on the bot runs the congif just fine but then tells me that the Robot Stop OP mode is running.

The question I have is how do I create a new OP mode on the phone that has the controllers plugged into it so that it communicates with the phone on the bot correctly with the new code that I have loaded?

DavisDad
01-09-2015, 17:48
...
The question I have is how do I create a new OP mode on the phone that has the controllers plugged into it so that it communicates with the phone on the bot correctly with the new code that I have loaded?

I'm not a programmer, but I've followed the tutorials and am able to create new op modes in AI. I don't think we can change the ""FTC Driver Station"" phone app. The op modes are built on the "FTC Robot Controller" app, and the Driver Station app just reads the op modes you create in the Robot Controller app.

Have you worked through these two docs:


FTC_AppInventor_Local_win_v0_07.pdf
FTC_AppInv_Training_v0_07.pdf

samfruth
08-09-2015, 13:19
Thank you for those. I was able to solve the problem by deleting the FTC Controller app on the device that was on the bot.

I do have another request:

Does anyone know of a place other than the Google Play Store that I can download the FTC Driver Station and FTC Robot Controller apps? I don't have access to the internet for the phones that I just received and the Google Play Store will not let me download the apps, giving me a messages that says I "don't have any devices".

MultipleMono
08-09-2015, 22:40
Google "FTC Driver Station APK". Some shady-ish sites have it.

DavisDad
09-09-2015, 09:09
http://frc-events.usfirst.org/2015/ftcimages...Does anyone know of a place other than the Google Play Store that I can download the FTC Driver Station and FTC Robot Controller apps? ...

Hi samfruth,

The app files are ???.apk and available at the official "Google Drive" posting here: FTC App Inventor files (https://drive.google.com/folderview?id=0B0z7bZfPuXgQfnZhOC1pemwwc2V1SjlsY1h TNHVyaExGbXAwZnZZVjlvZEdraV9oQXZCRW8&usp=drive_web&tid=0B0z7bZfPuXgQflZJUXpmczU4VTVUWkp5eWREUk1EUVdTV WdzRG5BZXh4UGRHUDE5ZWFORFE#list)

Also... FTC links to all App Inventor related material: http://frc-events.usfirst.org/2015/ftcimages

DavisDad
25-09-2015, 06:59
Opps... posted this to wrong thread

Moved here: http://www.chiefdelphi.com/forums/showpost.php?p=1497457&postcount=68

Gdeaver
25-09-2015, 07:50
COG, COM important concept for kids to master.

DavisDad
06-11-2015, 17:12
New release of App Inventor (http://ftcforum.usfirst.org/showthread.php?5315-New-release-of-App-Inventor-appliance-file-(151105_001)-and-FTC-Driver-Station-App!) at the FTC forum

DavisDad
14-11-2015, 08:12
Our team doesn't have programming experts; neither students or mentors. My son (FTC alum) and I have been trying to fill the gap. My approach is to identify step-by-step procedures that can be followed without total fluency in the software/hardware technologies.

We've gotten "tangled up" when we've updated the App Inventor (AI) programming versions and Driver Station apps. This is also complicated by the requirements for setting up the ZTE Speed for FTC use. Here are our "usual suspects" that have caused us problems:


Low battery charge
Faulty USB cables
We changed the ZTE configuration without knowing it
Installing multiple Driver Station and/or Robot FTC apps on the same phone
Updating the driver station app with older version AI software
Installing the driver station app on the robot phone (and vice versa)
Setting up "WFI Direct" with old procedures


I'm working on a procedure for updating AI and configuring the robot station (ZTE & Core Modules). I also hope to have a checklist for configuration troubleshooting if we have issues at the competition.

If anyone has done work on this, any help appreciated!