Today’s blog post, a long one, was written by Kate Pilotte, FRC Kit of Parts Manager, who’s facilitating the new control system efforts.
Hopefully, you’ve heard by now that all registered and paid FRC Teams are receiving new control system devices in their 2015 Kickoff Kits (this will include at least a roboRIO, dual-mode access point/bridge, a Power Distribution Panel, a Voltage Regulator Module, a Pneumatic Control Module, and four Talon SR motor controllers. The contents of the Kickoff Kits are typically confidential until Kickoff, but hopefully I can get away with saying that much!
Image credit: ni.com/frc
One of the features of the roboRIO is the MXP, or myRIO Expansion Port. It’s called out in the image above as the “Custom Electronics Port.” This port allows expansion of control system I/O based on the team’s specific needs. Specifically, the pinout is shown below. Did you notice that pins 11, 13, 15, 17, 18, 22, 26, 27, 29, and 31 can be used for DIO or PWM?
Image credit: ni.com/frc
This kind of feature is new to FRC. We recognize that if we didn’t say anything to the community about how it can be used – technically and legislatively – until Kickoff, it wouldn’t be much use as the build season just isn’t long enough to accommodate such an effort. For that reason, we’d like to let you know a few things ahead of time.
We had three driving priorities when drafting the rules and defining controller behavior (even though we’re not sure if the second priority is a real word…):
- Safety – implementation of the MXP must mitigate risk of injury to team members and volunteers. Specifically, when a robot is disabled, nothing on the robot should move. When the robot receives a disable command, it will disable all PWM and Relay ports (which are the only ports by which actuators may be controlled). All other ports (SPI, Analog In, Digital I/O, RS-232, I2C, Ethernet, USB, and CAN) will remain enabled (although the “enable” token will not be sent over CAN, effectively disabling devices on the CAN). This includes the 10 pins (in yellow in the image above) that may be used for PWM via the MXP, even if the user has opted to not use them for PWM or actuators.
- Inspect-ability – Volunteer Inspectors are able to quickly and sufficiently assess a robot’s compliance with the rules.
- Parity – Teams cannot gain considerable advantage by employing highly expensive solutions.
Given those bullet points, we’ve drafted this preliminary set of MXP relevant definitions and rules.
ACTIVE DEVICE or CIRCUIT: Any device or circuit capable of dynamically controlling and/or converting a source of electrical energy by the application of external electrical stimulus.
MXP: myRIO Expansion Port (aka Custom Electronics Port)
PASSIVE DEVICE or CIRCUIT: Any device or circuit whose capability is limited to the conduction and/or static regulation of the electrical energy applied to it (e.g. wire, splices, connectors, printed wiring board, etc.).
MXP1: If a motor or sevo is controlled via the MXP, it must be connected by one of the following methods:
- directly to any PWM pins,
- via a network of PASSIVE DEVICES and/or CIRCUITS used to extend the PWM pins, or
- via one approved ACTIVE DEVICE.
In a nutshell? It means if you’re using the MXP for sensors, lights, or anything else that isn’t going to actually move or cause movement, the sky’s the limit and you can do whatever custom circuitry you like via the MXP. Remember though that upon disable, the 10 pins that double as PWM pins will also be disabled – so don’t use those pins for anything you’ll rely on while your robot’s disabled.
As soon as you decide to use those PWM pins to cause robot parts to move (and you're not connecting via options A or B), you’ll have to use an approved device that FIRST has pre-vetted and listed in the manual as legal. This is to ensure that when those 10 pins are disabled, that disable signal that’s so important to us isn’t obscured or interrupted. It’s also an attempt to keep the inspection of that clean, simple, and objective.
In addition to the MXP specific rules, you can also expect rules comparable to those published in the past. Examples include, but aren’t limited to, the following points:
- Robots must be controlled by and only by the roboRIO.
- We don’t anticipate rules that prohibit co-processors (have at ‘em!), provided commands originate from the roboRIO to configure, enable, and specify all operating points for all power regulating devices. This includes devices legally wired to the CAN-bus.
- Custom electronics must use appropriately sized wire.
- Limits on motors, actuators, and power regulating devices for actuators will be defined.
- Pneumatic solenoid valves and electric solenoid actuators may not be controlled via the MXP.
- Custom electronics and circuits must not modify the power pathways between the battery, PDP, VRM, PCM, motor controllers, roboRIO, RSL, wireless bridge, main breaker, relays, or motors.
- Only the robot’s wireless bridge may be used for wireless communication.
We anticipate approving a handful of devices, but we don’t have a specific limit (that will be driven by the number and quality of proposals received). So, what does a device have to do to be an approved Active Device? Here’s the requirements list:
- The Active Device must be designed and produced such that
- PWM pins must be a direct pass-through
- the breakouts for PWM pins are visibly obvious
- The Active Device must be previously approved by FIRST. To seek approval, please submit a comprehensive proposal to FIRST via email@example.com.
- Approvals will be received up through November 14, 2014. FIRST will review and provide feedback and legality decision within one week of receipt. Legality is considered confidential until disclosed publicly by FIRST (which will be published by Kickoff, at the latest).
- To be considered complete, proposals must include the following components
- At least 5 device samples.
- A description of how inventory and distribution will be managed such that devices will be commercially available to the FRC community.
- Submitted by or in conjunction with a company that meets the 2014 definition of "VENDOR".
- Preliminary documentation (e.g. user guide, specification sheet, etc.) and description of other relevant user resources (e.g. videos, websites, etc.)
- Device pricing.
There’s no prohibition on sending descriptions, documentation, and other information ahead of the samples.
While it’s not required, we do recommend that any Active Device accommodate a pass-through for any unused pins so users can still access them. We don’t have spare systems to lend out to Active Device developers. If you need a system for development or testing, we recommend you team up with a Beta Team that has the bandwidth and is willing to work with you.
NI has provided a comprehensive roboRIO MXP Developer’s Guide (alpha version) with all the tools and guidelines you'll need to create your custom MXP board. The dev kit includes free access to NI's Multisim circuit SPICE software, Ultiboard, PCB layout software, templates, examples, and tutorials that will help you create any kind of board you want.
So, there you have the status of the MXP, as we know it today, for the 2015 FRC season. I will include an admittedly frustrating disclaimer that, if we learn anything via the ongoing beta testing efforts or feedback from the community, we do reserve the right to revise any language, rules, positions, etc. presented above.
If you have any questions about this (surely I didn’t address everything in on blog!), we’ve created a forum in the 2015 FRC Beta Test Forum specifically for MXP discussion - please post your thoughts and questions there. If you’re interested in developing an Active Device and have questions about the approval process or your specific device, please send your question to firstname.lastname@example.org.