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](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.
The following is a screenshot of the “TecTalk” video posted on YouTube.com:
FTC Tech Talk: Platform Presentation
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!
I’m off into computer hardware morass of techie gobbley-gook. Any help from the pros would be much appreciated…
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.
Poking around the “Qualcomm Developer Network” website, I found 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. 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 with details of platform functionality.
NOTE: I don’t know what Snapdragon series FTC will use, I just picked 400 series for research
Jumping around here…
Found what looks like a good tutorial on intro to Java:
Maybe we’ll be able to do this:
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?
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…)
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 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? 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 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. 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.
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 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)
- 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.
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.
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
From the FTC forum: Tom Eng (FTC Engineer)
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).
From the FTC forum re wireless comms: Tom Eng (FTC Engineer)
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.