FIRST Tech Challenge Tech Tips

Started in the 2023-2024 season, Tech Tips are a weekly segment released in the FIRST Tech Challenge Team E-mail Blast. Sometimes the Tech Tips are included in whole in the email blast, but sometimes there is more content than is reasonable in the email blast so partial content is included in the blast with the rest of the content here. Blasts are ordered on this page chronologically, with the newest content at the bottom of the page.

Just click to expand the Tech Tip you’d like to read.

Week of 09/04/2023 “Battery Charging”

The FIRST Tech Challenge Tech Tip of the week this week is all about Battery Charging. There are three robot main batteries that are legal to use in FIRST Tech Challenge, and they are all 3000mAh NiMH batteries with an attached 20A fuse. However, the manufacturers of the batteries have different battery chargers and different recommended charging settings for the batteries. When charging the TETRIX MAX 12-Volt battery, on the battery the manufacturer recommends charging at the 0.9A charge rate (the lowest setting on most selectable battery chargers) using the Global NiMH battery pack charger. The Matrix 12-Volt battery with the same form factor is recommended to be charged with the goBILDA 12V battery charger, which does not have a user-selectable charge rate switch but has a max charge rate of 1.0A. However, the REV 12-Volt Slim Battery is recommended to be charged with the REV Battery Charger using the 1.8A charge rate setting. To ensure safety, proper charging, and a long battery life, make sure you’re charging your batteries at the manufacturer’s recommended charge rates!

Week of 09/11/2023 “Updating the Robot Controller App”

This week’s Tech Tip of the week is all about updating software on your Control Hub. If you use Android Studio, did you know that you’re not supposed to use the REV Hardware Client to update the Robot Controller (RC) App? Blocks and OnBot Java programs are stored on the Robot Controller (SmartPhone or Control Hub) differently than Android Studio programs, and this has a major effect on how updates can be managed on the device. Read more about this at Updating the Robot Controller (RC) App.

Week of 09/18/2023 “Technical Update video by AJ Foster”

This week’s Tech Tip of the Week is a Video Tech Tip of the Week from AJ Foster, FIRST Tech Challenge World Championship FTA and Orlando Robotics League All-Star Volunteer. AJ gives a great synopsis on many of the key technical updates for the CENTERSTAGE presented by RTX season and some background on those changes. Watch his video on the FIRST Tech Challenge YouTube Channel here: https://youtu.be/uOcVGwdhG3E.

Week of 09/25/2023 “3D Printing Resources on FTC-Docs”

Do you wish you knew more about 3D printers, filament, and choosing and maintaining a 3D printer? This week’s Tech Tip of the Week highlights ftc-docs community contributions from FIRST Tech Challenge teams 16461 and 1002 introducing 3D printing in FIRST Tech Challenge. Once you’ve got a 3D printer, be sure to check out Computer Aided Design (CAD) also on ftc-docs to find a CAD package and start designing and printing parts for your robots!

Week of 10/02/2023 “Choosing the right Webcam and Calibration Crowd-sourcing”

When using AprilTags, choosing the right webcam can save you from having to perform your own calibration before being able to use it for obtaining AprilTag Pose information. This week’s Tech Tip of the Week explores the new Webcams for VisionPortal document that highlights several commonly used webcams that have calibration data built-in to the SDK itself. Maximum frame rates, field of view, and supported resolutions with calibration data are all covered for each of the most common webcams in FIRST Tech Challenge. Short on time? Be sure to check out the handy quick summary at the bottom of the page! Did you calibrate your own camera and determine lens intrinsics for it? Please check out this FTC-Community post to contribute to the crowd-sourcing effort for calibration data!

Week of 10/09/2023 “Hardware Connection Diagrams”

Have you ever asked, “How does that get connected?” when working with FIRST Tech Challenge control system components? This Tech Tip of the Week highlights Stefen Acepcion of FIRST Robotics Competition Team 3161 - he has graciously compiled several connection diagrams that demonstrate different ways that common components can be connected within the FIRST Tech Challenge control system. Driver Station connection diagrams (both Driver Hub and Android Smartphone configurations) and Robot Controller connection diagrams (both Control Hub and Android Smartphone configurations) can be found on ftc-docs. Stefen has contributed additional diagrams this season, including a new Advanced REV Control Hub connection diagram and a new Advanced Smartphone connection diagram. These diagrams are chock full of helpful tips, connection techniques, and information you otherwise can’t find in one place - check them out!

Week of 10/16/2023 “Battery Maintenance Tips”

This week’s Tech Tip of the Week is an extension to our first-ever Tech Tip of the Week regarding battery maintenance. Nickel-Metal Hydride (NiMH or Ni-MH) batteries, like those used in FIRST Tech Challenge, do require periodic maintenance to keep them healthy! Every day, NiMH batteries lose on average 1% of their charge capacity at normal room temperature - at colder temperatures this decline slows a bit but does not stop it. This means that every 2-3 months it’s important to recharge your batteries to keep them healthy - there is no off-season for batteries! It’s also recommended to mark your batteries with tape and a sharpie to mark (1) Your team number (never lose a battery at a competition!), (2) What year the battery was purchased, (3) Give your batteries names so you can differentiate batteries easily, and (4) optionally provide a tick mark each time the battery is recharged. NiMH batteries can generally last 200-300 recharge cycles before their internal resistance declines to the point where it’s time to replace them, and keeping track of charge cycles is an easy way to track how “used” the battery is before needing to have its internal resistance checked.

Week of 10/23/2023 “Control and Expansion Hub Tips”

This week’s Tech Tip of the Week provides useful tips when using Control and Expansion Hubs.

  • The RS485 data cable ports that provide data between Control and Expansion Hubs are redundant - you can use two data cables utilizing both ports to ensure that if one cable fails communications aren’t lost.

  • Encoder ports 0 and 3 are hardware-counted, but ports 1 and 2 are software-counted. This means higher counts-per-revolution encoders (like the REV Through-Bore Encoder) should be placed on Ports 0 or 3 to ensure counts aren’t missed, and lower counts-per-revolution encoders (like the goBILDA Odometry Pods or most motors) can be connected to any port.

  • Servo port pairs (0,1), (2, 3), and (4,5) each share a common power supply, so if you’re using higher-current servos (like a goBILDA torque servo) directly on the Control or Expansion Hub you should only use ports (0, 2, 4) or (1, 3, 5) in order to maximize the power available to each servo. If you need to use more than 3 high-current servos per hub, consider using a REV Servo Power Module.

  • Each Digital and Analog sensor connector on the Control and Expansion Hub each have 2 signal channels. Some REV sensors are only designed to be configured and used on the N or N+1 channels. Read the documentation for each sensor carefully!

  • The USB 2.0 port shares the same USB bus as the internal Control Hub radio. ESD or other electrical interference that affects devices (like webcams) plugged into that port may cause a loss of communications. When using a USB webcam, use the USB 3.0 port first.

  • USB C-to-C cables do not work properly with the Control Hub, only USB A-to-C cables do.

  • If you’re utilizing the onboard IMU, Do not plug I2C devices into Port 0 unless absolutely necessary. Port 0 shares an I2C bus with the IMU, and misbehaving devices (or devices that don’t “play well with others”) plugged into Port 0 can cause the IMU to stop communicating.

Week of 10/30/2023 “Computer Requirements”

This week’s Tech Tip of the Week focuses on required computer hardware for FIRST programs. If you’re looking to buy a laptop and want to make sure you meet the minimum requirements for the program you’re participating in, like FIRST Tech Challenge, this tech tip is for you! There is a new Computer Requirements document on ftc-docs that provides a cross-program view of the laptop requirements for all FIRST programs. It also has examples of the different laptops and a list of the required features needed for each program. Check it out!

Week of 11/06/2023 “Driver Hub or Smartphone?”

This week’s Tech Tip of the Week briefly discusses the pros and cons of Smartphones versus the Driver Hub. Which one should you use? Are there hidden benefits or perils for using one over the other?

The REV Driver Hub is the standard FIRST Tech Challenge Driver Station hardware device. It boasts three USB-A ports for plugging in gamepads, a USB-C port used for communication and charging, a large touch screen, and an unused Ethernet port (for future-proofing). This device runs the Android operating system, maintained by REV Robotics, and uses Wi-Fi to communicate with the REV Control Hub.

Driver Hub Pros

  • Driver Hub and Control Hub combo use 802.11w for communications. No approved Smartphone supports 802.11w communications.

    • 802.11w offers encryption of control packets, which prevents many Wi-Fi attacks by remote routers/devices.

  • Driver Hub is a “standard” FIRST Tech Challenge Driver Station device, which provides long-term support for FIRST Tech Challenge. The average SmartPhone is deprecated within 2 years after being released, but the Driver Hub is supported as long as it’s legal to use in FIRST Tech Challenge.

  • Driver Hub has a USB-C port, which allows for charging while it’s being used.

    • USB-C port allows use of external battery packs, which are necessary for sustained use of PS4 and PS5 gamepads which leech power from the Driver Station to charge their own internal batteries.

    • A single 10,000mAh External battery pack allows Control Hub to be used non-stop over the course of an entire day.

  • Driver Hub has 3 USB-A ports, so no external USB hubs and additional cables are required for using multiple USB gamepads. This makes the Driver Hub very compact and easy to manage.

Driver Hub Cons

  • Driver Hub still has Power Management issues

    • Driver Hub needs battery compartment tweak to ensure internal battery makes good connection. Foam insert in battery compartment helps, but doesn’t always perfectly fix the problem.

    • Driver Hub cannot boot if the internal battery is too low, even if plugged into external battery. If battery dies, troubleshooting requires removal of battery to power device.

    • Power Management bugs can drain battery while charging.

  • Driver Hub USB ports are fragile

    • Teams carrying their Driver Hubs around without a Driver Station tray (NOT RECOMMENDED) have dropped their Driver Hubs with gamepads plugged in, and impact can damage USB-A ports.

  • Display screen ribbon cable comes loose

    • If the screen stops working, opening the back of the device and re-seating the screen ribbon cable can sometimes fix screen issues.

  • Turning off the display unloads gamepad drivers, but turning the display back on does not reload them. USB devices must be re-plugged in order to trigger USB driver loading.

  • USB-C to USB-C cables do not work with Driver Hub. USB-A to USB-C cables are required in order to use the USB-C port.

On the other hand, several off-the-shelf SmartPhones are supported, including the Motorola Moto E4 and Moto E5 phones. These devices, like the REV Driver Hub, run the Android mobile operating system and use Wi-Fi to talk to the REV Control Hub (therefore no SIM card or cell plan is required). SmartPhones use USB-OTG to interface with gamepads and external USB hubs necessary for operating multiple gamepads.

SmartPhone Pros

  • SmartPhones are typically cheaper than Driver Hubs, and generally survive being dropped better.

  • SmartPhones don’t have the same power management issues that Driver Hubs are known to have.

  • Some teams report having better Wi-Fi consistency with SmartPhones than Driver Hubs, though that has not been verified or debunked in any way.

SmartPhone Cons

  • There are only a small number of approved Android Smartphones, none of which are still supported by the manufacturers of the phones.

    • SmartPhones are deprecated typically within 2 years after being released. Security updates and OS updates are not guaranteed.

    • The number of approved SmartPhones are dwindling, and SmartPhones are becoming increasingly difficult to obtain. New SmartPhones are not being approved to replace older ones.

  • Android is not a consistent platform in the Mobile Phone industry. Each manufacturer, and sometimes even within product families, will produce their own “flavor” of Android which has different software requirements and behaviors. Supporting the different manufacturers in the changing Android landscape is near impossible.

    • There is very little consistency between smartphones of the same model sold in different countries - each will have their own firmware with their own quirks, often impossible to debug or avoid.

    • FIRST Tech Challenge is not enough of a volume consumer to be able to set requirements or have partnerships with SmartPhone manufacturers.

  • SmartPhones cannot use 802.11w for encryption of Wi-Fi control packets, which makes the connection between devices vulnerable. Rogue Access Point Detection and Quarantine features within venue network security systems (like within schools and other venues) can interrupt these communications seemingly randomly, making connections difficult to maintain.

  • SmartPhones cannot be used at the same time they’re being charged, so teams frequently run down the internal batteries on the phones during the course of an event. Careful battery management is required.

    • PS4 and PS5 gamepads with internal batteries will further drain the SmartPhone batteries, as they leech power from the Driver Station in order to maintain a full charge level for their own batteries.

  • SmartPhones require USB-OTG cables and external USB Hubs are also required in order to use multiple gamepads, and each cable/connection and device is a potential source of failure. Extreme care must be taken to ensure the connections remain solid.

Week of 11/13/2023 “Robot and Driver Station Self-Inspect”

This Week’s Tech Tip of the Week is here to help teams prepare for inspection at their events. Aside from making sure that your robot is within the Maximum Starting Size, ensuring that your robot code can correctly pass Field Inspection, and other tasks in the Robot Inspection Checklist, teams need to make sure their robot software and hardware apps are updated to the latest and greatest versions and that their hardware is configured correctly. There is a tool within the Driver Station App 3-dot menu called the “Self-Inspect” feature that can help teams perform a quick check to ensure their hardware and software is configured correctly. Depending on your hardware configuration the Self-Inspect screens may be formatted differently or have different options listed, so there is a handy reference on ftc-docs that can help you understand the Self-Inspect tool. Make sure you’re ready for inspection!

Week of 11/27/2023 “HuskyLens Intro”

This week’s Tech Tip of the Week comes to us from Chris Johannesen, 2023 FIRST Tech Challenge Volunteer of the Year and author of many ftc-docs tutorials. Have you heard of the HuskyLens and want to learn how to properly connect one to a Control Hub, learn how to use it to detect Team Props, and use the HuskyLens samples included with SDK 9.0.0 and newer? Chris has this and more in his HuskyLens Tutorial on ftc-docs, check it out!

Week of 12/04/2023 “Using Encoders”

This week’s Tech Tip of the Week highlights proper encoder use within the FIRST Tech Challenge SDK. Encoders are the devices that track how much a motor shaft has rotated, which the vast majority of motors used in FIRST Tech Challenge have built-in. The encoders on the motors can help track a motor, but they can also be used to help synchronize and control motors via “Motor Modes” built into the Control and Expansion Hub firmware. Did you know that most programmers use these motor modes incorrectly? More on these “Motor Modes” and the correct way to use them can be found on the REV Robotics Encoder documentation.

Week of 12/11/2023 “Using Servos with the Control/Expansion Hubs”

In case you missed it (ICYMI) there was a fantastic question on the FTC-QA that prompted an in-depth discussion about servos in FIRST Tech Challenge - the question was in regard to servo compatibility and operation/performance on a REV Control Hub, REV Expansion Hub, and REV Servo Power Module. While the full explanation was too much for a Q&A answer, the complete answer was provided on the FTC-Community forums. If you are using servos (or want to use servos) on your robot, the full answer contains an explanation of how servos are managed on a Control and Expansion Hub that you cannot get anywhere else!

Week of 12/18/2023 “Automatic Auto to Driver Control Program Switching”

Did you know that it’s possible for the Driver Station to automatically load your Driver Controlled OpMode as soon as your Autonomous OpMode has completed? Lots of teams go into panic mode immediately after Autonomous has completed - they’re trying to navigate and select the proper Driver Controlled OpMode, Initialize, and Run the OpMode while also picking up their gamepads and preparing to drive. Skip all that panic and confusion and let the Driver Station queue up your Driver Controlled OpMode for you! This week’s Tech Tip of the Week focuses on how to designate a Driver-Controlled OpMode that is to be loaded once an Autonomous OpMode has completed. You still have to initialize and run the OpMode at the proper time, but at least the Driver Station can do the heavy lifting of swapping and loading the OpMode for you!

Week of 12/25/2023 “Protect your Robot with a Password”

This week’s Tech Tip of the Week is a gentle reminder that strong passwords and regular backups make for good competition. Even when competing at a Scrimmage before your competition season starts, be sure to change your Wi-Fi password on your Control Hub from the default password of “password” to something only your team knows. Anyone who knows your password can easily gain access to your robot and change or delete your programs, change important settings, or even force your controller to revert to factory settings! And with that said, it’s ALWAYS a good idea to keep backups of your programs - it’s especially important to regularly download all Blocks and OnBot Java programs that are normally only stored on the robot in case anything happens!

Week of 01/08/2024 “OnBot Java Backups”

This week’s Tech Tip of the Week is for all those who program in OnBot Java. Have you ever been worried that your OnBot Java programs could suddenly magically vanish? Has it ever happened to you? One lesser-known feature of OnBot Java is automatic backups - each time you “compile all” in OnBot Java the system saves a copy of all source code, up to 30 compilations deep. In order to find these backups, you must connect to the Control Hub via USB from a Windows machine and navigate to the “FIRST” folder on the device’s internal storage. In this folder you’ll find a “java” folder, and within that is the “srcBackups” folder. Here you’ll find zip files containing each backup with a time/date stamp. Happy Programming!

Week of 01/22/2024 “REV Grounding Strap”

This week’s Tech Tip of the Week is dedicated to the REV Resistive Grounding Strap; the REV Resistive Grounding Strap (RGS) is the only FTC-legal means of providing a grounding option for your robot frame or connected structural elements. Static electricity has two basic behaviors depending on whether it’s building up on a conductive or non-conductive surface; on non-conductive surfaces like polycarbonate or other plastics static electricity builds up in “pools”, on conductive surfaces like most metals static electricity spreads and distributes across the entire surface of the material. Aluminum extrusion used on robots typically has a clear non-conductive anodized layer used to prevent corrosion of the aluminum but the aluminum under the layer is conductive. When using the RGS, it’s important to connect the RGS to surfaces where you want to mitigate static buildup. If mounting the RGS to aluminum on your robot, it’s recommended to use a multimeter to test the continuity between the ring terminal on the RGS to different places on the robot to determine if the static buildup will be mitigated by the RGS. If testing for resistivity, remember that the REV Grounding Strap has a 470 Ohm resistor (with a ~5% tolerance) in-line in the strap - if not using an auto-range multimeter, be sure to select a range above 600 Ohms to ensure the resistivity is measured properly. It may be necessary to scrape the aluminum to create a conductive path between multiple segments of aluminum, just remember that a non-conductive oxide layer will eventually form on the exposed aluminum. Remember that if you’re probing aluminum extrusion to check for continuity or resistivity, those areas need to be scraped to expose bare metal in order to ensure electrical connectivity. “Jumper wires” screwed to aluminum elements can also be added to ensure conductivity between components.

Week of 01/29/2024 “REV Driver Hub Tips”

Welcome to the Tech Tip of the Week! This week is a long one, filled with great REV Driver Hub tips. Most everything here can be found in REV’s Driver Hub Troubleshooting tips page, we’ve just annotated a few of these for the most common scenarios you’ll potentially experience with the REV Driver Hub. Understand that this Tip of the Week is not meant to disparage the REV Driver Hub in any way - no device is perfect, but the REV Driver Hub can provide you trouble-free performance if you can understand its nuances and take a few additional steps to keep it running optimally.

  1. Make sure your REV Driver Hub time/date is set correctly! This is the cause of a number of inspection nightmares and Robot Controller log file confusion, the first step should always be to check to make sure the Date/Time on the Driver Hub is set correctly. This is set through the normal Android System Settings by pulling down the Android Quick Settings pull-down twice, tapping the Gear Icon, selecting System, and then selecting “Date & Time”.

  2. USB wall chargers are all the same, right? Wrong. A/C-to-USB wall chargers can range drastically in power (measured in Watts) - the REV Driver Hub comes with an A/C-to-USB wall charger, and that is the recommended wall charger to use to charge the REV Driver Hub. Can you use another device to charge the REV Driver Hub? Maybe, but it’s best to stick to either the one that ships with the REV Driver Hub or a fully-charged USB Battery Pack like the Anker 10,000mA Power Bank which can keep a Driver Hub fully charged all day without ever needing to put the Driver Hub to sleep.

  3. Rechargeable Lithium batteries don’t necessarily work the same way that other batteries work, they all have a slightly different usable Voltage range. The REV Driver Hub needs to calibrate to the Voltage range of the internal lithium battery plugged into it, and to do that there’s a full calibration process that has to be followed for any new battery, along with a verification step. DO NOT simply “replace” a drained battery with a new charged one when it gets low, the new battery is NOT guaranteed to have the same calibration as the first and it is not guaranteed to perform optimally. If you’re having problems keeping the REV Driver Hub internal battery charged, consider a USB Battery Pack like the Anker 10,000mA Power Bank.

  4. Battery safety in any Lithium Battery system is paramount, and the REV Driver Hub has battery safety features that most teams will likely run into at least once. The most commonly experienced safety feature is the Battery Lockout system. If a REV Battery depletes to a level below its recommended safe level, or the battery is overcharged, the REV Driver Hub will enter lockout mode to protect the battery. In this mode, the REV Driver Hub will not power on when the battery button is held down. The process for recovering from Battery Lockout can take several minutes, but it’s better than the alternative. It’s not recommended to leave a REV Driver Hub on charge unattended for more than 8-10 hours, and definitely NOT for multiple days.

  5. When a user puts the REV Driver Hub to sleep, or if it goes to sleep on its own because the Driver Station App main screen is not actively running in the foreground, it goes to sleep pretty easily. However, when the REV Driver Hub returns from a sleep state, sometimes the Wi-Fi and the gamepads will not reload correctly or automatically; this requires you to unplug and replug the gamepads from the REV Driver Hub before you can use them again, or perform a hard reboot in order to bring Wi-Fi connectivity back. Many veteran teams use a fully-charged USB Battery Pack, like the Anker 10,000mA Power Bank, and leave the Driver Station App main screen running all day without putting the device to sleep.

  6. Keep the REV Driver Hub safe by using 3M Dual-Lock or hook-and-loop fasteners (like those sold by Velcro Brand) to mount the Driver Hub to a Driver Station Carrier. This prevents your REV Driver Hub from being placed on the floor (where team members may step on it) and prevents you from accidentally dropping the Driver Hub on the floor - dropping the Driver Hub is the #1 cause of all Driver Hub damage! Some teams have designed their own custom Driver Station Carriers, be creative and have fun!

  7. When the REV Driver Hub is not in use (not at competitions, not in use during practices) it should be turned OFF and have all sources of power disconnected. Do not put the Driver Hub to sleep, but actually turn it off - press the power button for 1-2 seconds and then use the drop-down menu to turn off the device. The Driver Hub uses power even in sleep mode, and that can lead to a dead battery and you may have to perform Battery Lockout Recovery before you can turn it back on.

  8. Sometimes teams may experience “random power loss” on the REV Driver Hub. This is usually due to a battery fitment issue within the battery box on the device (the battery momentarily stops making a connection with the power pins on the device), and can be mitigated using techniques from the REV Troubleshooting tips. Some teams have been known to operate their REV Driver Hubs without a battery inserted at all, and simply run the Driver Hub using a fully-charged USB Battery Pack, like the Anker 10,000mA Power Bank. The jury is still out on whether that’s a good idea, but worth considering if you’re having problems that you’re desperate to solve and REV Support is unable to help you resolve (because of time pressures) before your big event.

  9. Ensure your REV Driver Hub is fully updated. Firmware 1.2.0 solves a host of REV Driver Hub issues, and it makes sense to use the on-board updater (once connected to Wi-Fi) to perform all updates on the Driver Hub.

  10. This isn’t specifically a REV Driver Hub tip, but it’s a question we get asked all the time. Did you know that the Robot Wi-Fi network name (Robot Controller Name) and the Wi-Fi passwords can be managed straight from within the Driver Station app? With the Driver Station App connected via Wi-Fi to the Robot Controller, click on the three dots menu on the upper-right and select “Program and Manage”, then use the hamburger menu on the upper-left and select “Manage”. On this page you’ll find all of the same settings as you’d find on the webpage by logging in to the controller on a laptop!

Week of 06/10/2024 “Updating the SDK Manifest”

This week’s Tech Tip of the Week comes to us from an amalgamation of emailed questions asking about allowed ways to update an FtcRobotController SDK project. An approximate summary of the emailed questions along this topic is as follows:

  • “Is merely editing the Android Manifest file in the TeamCode directory of the FtcRobotController SDK project an acceptable way of easily updating the SDK? And would this violate RS08 in Game Manual Part 1?”

Manually editing the Android Manifest file in the TeamCode Directory of the FtcRobotController SDK software is not a violation of RS08, merely because RS08(b) only protects the binary .AAR files. The manifest file is not part of the .AAR binary, and thus it’s not protected.

Even though it’s not forbidden, that doesn’t mean you should do it – like putting pineapple on pizza (sorry, the door was open, I couldn’t stop myself). Seriously, though, 4 times out of 5 you can likely get away with updating the SDK through editing the Android Manifest to point to the latest version of the SDK libraries. However, that assumes that all the Tech Team does is update the SDK libraries, which is never ever the case. In addition to also updating programming samples, often enough the Tech Team must also update tooling, dependencies, and other build items in addition to the SDK libraries, and simply updating the Android Manifest is going to get you into real trouble (things will appear to work, until they don’t, and you won’t know why). As a corollary, you can choose to simply only put gas in your car and ignore all the other fluids, but eventually you’re going to wish you hadn’t.

The proper way of updating your SDK is to use Git/GitHub to update your robot source each time the SDK software updates. The Tech Team always updates the FtcRobotController in-place (meaning the same repo is always updated each version), so if you’re using Git you can easily pull the changes made upstream and accept the changes within your code. You should never be manually updating files, like the Android Manifest file, because Git can tell you all of the files you need to update and can do that for you. If you use Git or GitHub, we highly recommend reading our guide on ftc-docs for managing your Android Studio project repositories.

For example, check out these changelists. The FtcRobotController v9.0 commit/change is everything that needs to be changed to upgrade from version 8.2 to 9.0 – there are 75 changed files there, which include samples, a core interface module change, gradle dependencies, and in that changelist the Tech Team also rearchitected the asset structure. However, the FtcRobotController v9.0.1 and FtcRobotController v9.1 pull requests only changed a handful of files (mostly samples), and the core changes are in the AndroidManifest.xml and build.dependencies.gradle files. In general our major version releases (where we increase the first number in the version string) are the big ones, and then the dot-releases are almost always fairly small targeted releases. The Tech Team tries very hard not to make big-scale changes to build systems or major dependencies during the season. In summary, teams should never simply change the Android Manifest, they should be updating the software appropriately – as Voltaire warned, with great “Android Studio” power comes great “GitHub” responsibility.