Converting an IQ (2nd gen) project to use with an IQ (1st gen) Brain

While working with VEX IQ, you may want to run a project that was configured for a (2nd generation) Brain on a robot with a (1st generation) Brain. To do this, you will need to convert your project from '2nd gen' to '1st gen' in VEXcode IQ.

VEXcode IQ Devices menu with the IQ Robot Brain generation setting shown. This setting is set to the 1st gen option.

In some scenarios, minor changes are automatically made to the code or configuration during a conversion, and these changes will not affect how your project runs on an IQ (1st gen) Brain. However, there are some circumstances where changes are made to a project during conversion that require the project to be updated in order to run on a robot with a (1st gen) Brain.


Converting a Project with External Gyro - No Changes to Code

VEXcode IQ with a 2nd generation project in the workspace. The Devices icon is highlighted in between the Code Viewer and the Help icons.

Open a (2nd generation) project in the workspace. Then, select the Devices window icon.

VEXcode IQ Devices menu with the IQ Robot Brain generation setting shown. This setting is set to the 2nd gen option, but the 1st gen option is highlighted.

Once the Devices window is open, select the '1st gen' icon.  

VEXcode IQ Devices menu with the IQ Robot Brain generation setting shown. This setting has been switched to 1st gen and it is highlighted.

The '1st gen' icon will highlight in blue to show that the project has been converted. You can now run this project on a (1st gen) Brain.

Note: In this example the external Gyro is configured for port 4 and no updates need to be made. If you were to convert back to a 2nd gen project, there is a step where you would need to confirm this configuration. See this article for more information. 


Converting a Project with Brain Inertial Configured - No Changes to Code

If the Brain Inertial is configured in the IQ (2nd gen) project, you will need to update to either configure for an external Gyro sensor, or no Gyro. 

VEXcode IQ with a 2nd generation project in the workspace. The Devices icon is highlighted in between the Code Viewer and the Help icons.

Open a (2nd generation) project in the workspace. Then, select the Devices window icon.

VEXcode IQ Devices menu with the IQ Robot Brain generation setting shown. This setting is set to the 2nd gen option, but the 1st gen option is highlighted.

Once the Devices window is open, select the '1st gen' icon.

VEXcode IQ Brain Generation prompt that reads 2nd generation projects need to be converted before being used with an IQ (1st generation) Brain. Do you wish to proceed with conversion? There is a link to Learn More below. There are also two buttons below, one reads Cancel and the other reads Continue. The Continue button is highlighted.

A message will appear to alert you that the project will need to be converted. Select 'Continue' to proceed with the conversion.

VEXcode IQ Project Conversion prompt that reads Project conversion has been completed with these changes. The Drivetrain's Inertial Sensor configuration has been removed. There is an OK button below.

A conversion completion message will open alerting you that the Brain Inertial sensor configuration has been removed. It will also list any changes that were made. See below for more information on hot to interpret dialog box messages.

Select 'OK" to proceed.

 

VEXcode IQ Devices menu with the IQ Robot Brain generation setting shown. This setting has been switched to 1st gen and it is highlighted.

The '1st gen' icon will highlight in blue to show that the project has been converted. You can now run this project on a (1st gen) Brain.

You will either need to configure an external Gyro, or proceed with no Gyro configured.


Converting a Project with Changes to Code

VEXcode IQ with a 2nd generation project in the workspace. The Devices icon is highlighted in between the Code Viewer and the Help icons.

Open a (2nd generation) project in the workspace. Then, select the Devices window icon.

VEXcode IQ Devices menu with the IQ Robot Brain generation setting shown. This setting is set to the 2nd gen option, but the 1st gen option is highlighted.

Once the Devices window is open, select the '1st gen' icon.

VEXcode IQ Brain Generation prompt that reads 2nd generation IQ Robot Brain projects need to be converted before being used with an 1st generation IQ Robot Brain. Do you wish to proceed with conversion? There is a link to Learn More below. There are also two buttons below, one reads Cancel and the other reads Continue. The Continue button is highlighted.

A message will appear to alert you that the project will need to be converted. Select 'Continue' to proceed with the conversion.

Note: This message will only open if changes will be made to the project code.

VEXcode IQ Project Conversion prompt that reads Project conversion has been completed with these changes. {When Brain button} event block dropdown menu updated. There is an OK button below that is highlighted.

A conversion completion message will open and list any changes that were made. In this example, the {When Brain button} event block dropdown menu was updated from 2nd to 1st generation configuration.

  • See the section below for more information on the different messages that you may receive, and how to interpret them.

Select 'OK' to save the project conversion.

VEXcode IQ Devices menu with the IQ Robot Brain generation setting shown. This setting has been switched to 1st gen and it is highlighted.

The '1st gen' icon will be highlighted in blue to show that the project has been converted. You can now run this project on a (1st generation) Brain.


Interpreting Dialog Messages when Converting Projects

If there was a change to the code needed due to any of the conditions shown below, the message after conversion will be: "Project conversion has been completed with these changes," followed by a list of any changes that were made to the code. Below are the changes that you may encounter when converting a (2nd generation) project to run on a (1st generation) Brain.

Dialog Messages for Changes Made Automatically

{When Brain button} Dropdown Menu Updated

VEXcode IQ Project Conversion prompt that reads Project conversion has been completed with these changes. {When Brain button} event block dropdown menu updated. There is an OK button below.

{When Brain button} Dropdown Menu Updated

Here the message tells you that the conversion is completed, and the dropdown menu of the {When Brain button} block has been updated.

Diagram of the When Brain Button block that has a different dropdown menu of buttons depending on the Brain generation. The 1st gen menu has three options that read Up, Down, and Check. The 2nd gen menu has three options that read Left, Right, and Check.

Because the Arrow buttons on the (2nd gen) Brain are 'Left' and 'Right', but they are 'Up' and 'Down' on the (1st gen) Brain, the parameters in the dropdown menu for the Blocks connected to the Arrow buttons have to be updated.

Dropdown Menu Updated

VEXcode IQ Project Conversion prompt that reads Project conversion has been completed with these changes. Brain Button Pressed sensing block dropdown menu updated. There is an OK button below.

This message tells you that the dropdown menu of the <Brain button pressed> block has been updated during the conversion.

Diagram of the Brain Button Pressed block that has a different dropdown menu of buttons depending on the Brain generation. The 1st gen menu has three options that read Up, Down, and Check. The 2nd gen menu has three options that read Left, Right, and Check.

Because the Arrow buttons on the (2nd gen) Brain are 'Left' and 'Right', but they are 'Up' and 'Down' on the (1st gen) Brain, the parameters in the dropdown menu for the Blocks connected to the Arrow buttons have to be updated.

Project Slot Changed

VEXcode IQ Project Conversion prompt that reads Project conversion has been completed with these changes. Project Slot has been set to Slot 4 for compatibility with IQ (1st generation) Robot Brains. There is an OK button below.

Here the message tells you that the Project Slot has been changed during the conversion. 

Screenshots of VEXcode IQ Toolbar before and after project conversion. The project's Slot number is highlighted, the 2nd generation version was in Slot 8 and now it is in Slot 4 om the Brain.

An IQ (1st generation) Brain is only configured with 4 slots for user projects, while a (2nd generation) Brain is configured with 8 slots. A project configured for slots 5 - 8 will automatically be reconfigured for Slot 4.  

Dialog Messages for Changes that Require Code to Be Updated

Drivetrain Inertial Sensor Removed

VEXcode IQ Project Conversion prompt that reads Project conversion has been completed with these changes. The Drivetrain's Inertial Sensor configuration has been removed. There is an OK button below.

This dialog message tells that the Drivetrain Inertial Sensor configuration has been removed during the conversion.

VEXcode IQ Devices menu with a Drivetrain selected so that a Gyro option can be added to it. The options include No Gyro, Gyro, and Brain Inertial.

If a project is configured with the Inertial Sensor that is built into the (2nd generation) Brain, the Inertial Sensor will be removed from the Drivetrain configuration in order to be compatible with the (1st generation) Brain.

  • You may need to configure a Gyro Sensor for your project to run as desired on the (1st generation) Brain.

Some {When started} blocks have been disabled

VEXcode IQ Project Conversion prompt that reads Project conversion has been completed with these changes. Some When Started blocks have been disabled for compatibility with IQ (1st generation) robot Brains. There is an OK button below.

This message tells you that some {When started} blocks have been disabled during the conversion.

Screenshot of VEXcode IQ project workspace with 4 stacks of blocks that begin with When Started blocks. Each stack is numbered, and the fourth stack is disabled.

A (1st generation) Brain can only support up to 3 {When started} blocks, while the (2nd generation) Brain supports up to 8. If there are more than 3 {When started} blocks in the (2nd generation) project, the additional {When started} block(s) will be disabled during the conversion process. You will not be able to enable the extra when started while in gen 1 mode.

Note: The software will prioritize {When started} blocks from the top left corner of the Workspace.

Note: If the project is converted back to 2nd generation, these blocks will not automatically be enabled. You will have to enable them manually in the Workspace.


IQ (2nd generation) Specific Blocks Disabled

VEXcode IQ Project Conversion prompt that reads Project conversion has been completed with these changes. IQ (2nd generation) specific blocks have been disabled. There is an OK button below.

This message lets you know that any blocks specific to IQ (2nd generation) have been disabled.

Screenshot of the VEXcode IQ Set Gyro Heading block that reads Set BrainInertial heading to 0 degrees. This block is shown being disabled as its dropdown parameter only works on 2nd generation Brains.

If blocks are disabled, they will not run in a project. It may be necessary to update the project so that it runs as desired.

Additionally, if block parameters are set for IQ (2nd generation)-specific configurations as shown on the left, the block will be disabled in the conversion.  This block can be enabled after the conversion by changing the 'BrainInertial' parameter in the drop down window.

Note: If the project is then converted back to 2nd generation, these blocks will not automatically be enabled. You will have to enable them manually in the Workspace. You will not be able to re-enable blocks that are specific to the IQ (2nd gen) Brain. 

Blocks in the Gyro Sensing, Inertial Sensing, and Draw categories in the VEXcode IQ Blocks Toolbox are shown.

The blocks shown on the left are examples of IQ (2nd generation)-specific blocks: Draw and Inertial Sensing blocks. These blocks will be disabled if they are in a project that is being converted to 1st generation. 

  • Note: There are some blocks that are shared between the Gyro and Brain Inertial Sensor. If you use those blocks and have the gyro selected, they will not be disabled. Only blocks that have the 'BrainInertial' selected will be disabled.

Screenshot of the VEXcode IQ Print block with a Timer value block, that together read print timer in seconds on Console. This block is shown disabled and then changed to print on the Brain and enabled, as the Console dropdown parameter only works on 2nd generation Brains.

Because the Console View is not supported for IQ (1st generation), any blocks that have the 'Console' option selected in the menu will be disabled when converting to a 1st gen project.

These blocks can be enabled if the menu option is changed.  In the examle on the left, the [Print] block is disabled because 'Console' is selected.

The block can be enabled by selecting the 'Brain' option, since this option is supported. 

VEXcode IQ Project Conversion prompt with a long list of changes that reads Project conversion has been completed with these changes. The Drivetrain's Intertial Sensor configuration has been removed. IQ 2nd generation specific blocks have been disabled. Some When Started blocks have been disabled for compatibility with IQ (1st generation) robot Brains. Project Slot has been set to Slot 4 for compatibility with IQ (1st generation) robot Brains. When Brain button event block dropdown menu updated. Brain button pressed sensing block dropdown menu updated. There is an OK button below.

A single project may have multiple changes. VEXcode will make all of the conversions at once and list all changes in a single message — as shown on the left.

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: