Power distribution and status display for the cortex

Due to recent theories put forward as explanation for anomalous behavior of the cortex I decided it was time to dig into the power distribution scheme used within the cortex controller. The result of this initial investigation is this high level overview block diagram.

cortex_power_block_diagram.jpg

A summary is as follows.

  1. Main battery power is sent via the two 4A PTC devices to the motor ports.
  2. A 1A 5V linear regulator is used to supply power for the digital and analog sensors.
  3. A 2.5A 5V switching regulator is used to supply power for the two micro-controllers via a 3.3V regulator (probably a MCP1700, 250mA LDO, it’s hard to tell exactly) as well as supply power for the USB peripherals, uart and I2C ports. Input to this regulator is either the main battery or backup battery depending on competition mode and voltage of the main battery.

The status LEDs on the cortex are used to display the battery status as follows.

Non-competition mode.

Main battery

6.5V___________ ROBOT led is green
< 6.5V and >5.5V__ ROBOT led is yellow
< 5.5V___________ ROBOT led is red

Competition mode
In competition mode the cortex will switch between main and backup battery if it is connected. The switchover occurs at 6.2V as main battery voltage drops and switches back when main battery rises over 6.9V. Main battery monitoring also happens but instead of causing a solid led indication the led will flash.

Led indications on the cortex are at best confusing due to the many different things they try to convey. In an attempt to document this I have started to put together some animated gifs that simulate the displays. The following shows standard competition status when using VEXnet.

Competition / Disabled / Single joystick / Good main battery / Good backup battery
LED_Comp_normal.gif

Competition / Disabled / Single joystick / Low main battery / Good backup battery
(robot flashes yellow)
LED_Comp_low_power.gif

Competition / Disabled / Single joystick / discharged (or disconnected) main battery / Good backup battery
(robot flashes red)
LED_Comp_lost_power.gif

Competition / Disabled / Single joystick / Bad backup battery
(robot flashes fast red, main battery status can not be displayed)
LED_Comp_no_backup.gif

1 Like

Part 2.

When main battery voltage is lowered below 5.5V the cortex will still continue to operate. As voltage goes below 5V the power to the digital and analog sensors will start to drop as the linear regulator can not maintain its output. Voltage dropping below about 3.8V causes both micro-controllers to become unstable and reset when it rises again above 4V. Operation at such a low voltage is an extreme situation and should not happen normally, in competition mode the backup battery takes over at 6.2V and, as long as the backup battery is good, should keep the micro-controllers running normally.

I could not cause a user program crash by lowering the battery voltage, however, to demonstrate the led display when this happens I created some malicious code for this purpose.

Led display when the user cpu has crashed.

Competition / Disabled / Single joystick / Good main battery / Good backup battery/ User cpu crashed.
(robot led flashed red, notice led is mostly off compared to low power condition where it is mostly on)
LED_Comp_user_crash.gif

In this situation I observed the following behavior.

  1. User program has stopped operating, there is no joystick control.
  2. Motors on all ports (1 through 10) maintain their last commanded speed
  3. VEXnet communication is still working, the game led follows the state of the enable/disable and driver/autonomous selection on a competition switch, however, the motors can not be disabled.

more to come…

1 Like