Making a Good FTC Control System
By Guinea Wheek
TL;DW
What is FTC and why care
Cliffsnotes History of FTC
One of the last good Tetrix teams ever –>
Cliffsnotes History of FTC (post-Tetrix)
But what do FTC teams want in a control system?
Well, in no particular order:
Reliability
Robots don’t quit, but yours did!
Reliability
Wiring for reliability
Never again.
Vex V.5 Wiring Diagram (good)
PIC Microcontroller
Everything plugs in here!
16x dual digital/analog I/O
6x interrupt pins
(encoders, ultrasonic)
115200 baud UART for programming
7.2V NiMH battery
8 PWM pins for Vex 292 motor / 269 servo
2A max per port
4A across all ports
P = IV = 7.2V * 4A = 28.8 W ≈ 1 NeveRest
75 MHz receiver (x2)
75 MHz xmitter (x2)
Can direct tether to robot in place of receiver
FMS
(enable/disable signal)
Direct RJ12 tethers to robot on practice field
In-match RJ12 connection
HiTechnic/NXT Wiring Diagram (bad)
Samantha USB Wi-FI Module
HiTechnic SuperPro Prototype Board
Motor and servo controllers can be daisy-chained as shown.
It’s pretty much all one shared I²C bus.�
Up to:
could be reasonably found on a robot for the 8 motors and 12 servos.
(Extra servo controllers == more current)
Pretty bulky!
Lego NXT Servos
HiTechnic
I²C sensors
3rd-party analog/digital sensors w/ custom circuits
Credit: Techhexium (FRC 4159) and Bill_B (FRC 2170) from https://www.chiefdelphi.com/t/programming-minibot/107688/43
Modern Robotics Wiring Diagram (crime against humanity)
I2C
Analog
Legacy I2C
Digital
12V motors
+ encoders
6V PWM servos
Wiring Control Systems Is My Passion
Image credit: Modern Robotics (now Boxlight)
Typically
2-3x
Typically 4x
1-2x
Typically none
Rev Robotics Wiring Diagram (good)
Current FTC control system
It looks complex but i assure you it’s mostly because this is a complete diagram
(Most teams won’t use Spark Minis, especially with two hubs)
No OTG cable, only RS485 between hubs
Mandatory for 2024-2025 season
Diagram credit FRC 3161/Stefen Acepcion
Reliably connecting to the field
Reliably (dis)connecting from the field
/r/FTC meme i made in highschool
The compromise: FMS-less Wi-Fi
FMS port????
Withstanding ESD and wiring events
Designing reliable motors
The Tetrix 12V DC Motor :(
This drivetrain is designed to still run even if one of the Tetrix motors dies per side
Also note how it’s geared at ~75 RPM (whopping 1.275 FPS)
Still went to Champs!
The AndyMark NeveRest (good)
Credit: Cougar Robotics FTC 4251
Powering Servos Reliably
The Servo Killer 9000
$200 servo that hates living
Case study: Rev Servo Power Module
Miscellaneous reliability things
Performance and Latency
Fast autos are fun!
What do autos look like when your control system sucks?
Landroids 2012/2013:
Top-level competitor at Championships for robot performance and Inspire
What can autos look like with a good control system?
← Typical deadwheel setup
Application Processor vs. Microcontroller/FPGA
Case study 1: roboRIO
Case study 1.5: Early 2000s IFI PICs (FRC and FTC)
Case study 2: Lego Mindstorms NXT + HiTechnic
I could use a cRIO for temporal fairness with NXT but it’s pretty similar to the roboRIO’s strengths just with a worse app processor (it uses a PowerPC softcore implemented in the FPGA, rather than a hard-core)
Case study 3: Modern Robotics
Case study 4: Rev Control Hub + Expansion Hub
Architectural conclusion: Rio with more power?
Polling protocols and I2C
There shouldn’t be a need for these things, yknow?
Fixing I2C (in FTC)
Conclusions on performance and latency
FTC 11115 Gluten Free 2019 odometry deadwheels
(gm0.org)
← This man runs 2 dozen FTC events per season in Northern California and I don’t know how he hasn’t gone insane yet
The dream is one day…
Compactness
Yes it matters in FTC
Packing things in that 18x18x18” cube
(this robot is actually 14x15x13”)
Control systems and bulkiness
Modern Robotics Tower of Ohgodwhy
vs. Fits Nicely In The Base
Size comparison: Modern Robotics vs. Rev
These have approximately similar capabilities!
Robot controller
8x 12V motors
12x servos@6v
1x IMU
1x Camera
Chonk
Gray: USB
Blue: I2C
Red: Power
USB connections realistically looked like this:
Dechonk
Gray: USB
Red: Power/PWM
Blue: RS485
Just for kicks: HiTechnic
You want ferrules.
Rev is pretty good in the packaging department…
Is this what peak performance looks like?
Core controller
Application processor + FPGA + Wi-Fi radio
Isolated USB ports for webcams/programming
3.3V Analog/DIO/I2C/Quadrature pins here
(Maybe PWM input?)
Could be made thinner
(wide for illustrative purposes)
Servo controller
+12V line
Outputs 6-7.4V
@ 4a per port
12 PWM pins from central FPGA
Motor H-bridge module for 12V
+12V line
8 PWM(?) pins from FPGA to 8x H-bridges
Overall conclusions
It Should Just Work™
Overall conclusions
And that’s it!