Workcell Default Config change

I am just starting out with Workcell. I had problem with the install. Port D on my brain did not work for creating the start values with “Target”. When I switch to Port F, the joint “passed”. Now as I start Lab 2, I chose Arm from the Device menu. The problem is the Device Arm seems to be pre-set for motors in ports 1-4 and potentiometers for A-D.

  1. Is there away to change these setting to match my physical set up 1-4 and A-C and F.
  2. This is an important issue. I have several brains that have had port 3 fail. How could I uses those Brains with the Arm if the Arm device configuration cannot be change?

I don’t think that’s possible when using blocks.

When using text, skip using graphical configuration and configure manually, the default generated code would be.

// Robot configuration code.
motor RoboticArm1_mJ1 = motor(PORT1, ratio18_1, false);
motor RoboticArm1_mJ2 = motor(PORT2, ratio18_1, true);
motor RoboticArm1_mJ3 = motor(PORT3, ratio18_1, false);
motor RoboticArm1_mJ4 = motor(PORT4, ratio18_1, false);
pot RoboticArm1_mJ1_pot = pot(Brain.ThreeWirePort.A);
pot RoboticArm1_mJ2_pot = pot(Brain.ThreeWirePort.B);
pot RoboticArm1_mJ3_pot = pot(Brain.ThreeWirePort.C);
pot RoboticArm1_mJ4_pot = pot(Brain.ThreeWirePort.D);
RoboticArm RoboticArm1 = RoboticArm(RoboticArm1_mJ1, RoboticArm1_mJ1_pot, RoboticArm1_mJ2, RoboticArm1_mJ2_pot, RoboticArm1_mJ3, RoboticArm1_mJ3_pot, RoboticArm1_mJ4, RoboticArm1_mJ4_pot);

you would change motor and potentiometer ports


Thanks @jpearman! I will try that. Definitely should be a solid work around, but I am hoping VEX comes up with a way to do it in the graphical interface. Although students who will start working on the Workcell will be competent text coders, eventually I would like all my students to be able to program the Workcell at the lowest barrier. Thanks again!!

@tfriez As we sell the workcell without a V5 system bundle now, any thoughts on adding the ability to configure the ports that motors and pots use ?


@jpearman using CPP did work. I will continue using text. I appreciate the quick and useful answer.

This is a planned enhancement for a future update to VEXcode V5. I don’t have a timeline associated it when at the moment.


To loopback for anyone benefit. You can start with a blocks project and select the Arm from devices. Do all your programming with block.
Save project,
Use convert tool to convert to C++.
Use the {+} icon at the top of the window to reveal config code lines 1-44ish.
Find the line that has the port you need to change.
Type in change.
Save, Download and Run.
This worked for me for a simple program, so I don’t see why it would not work with a longer program.
Glad for the help and hope this helps others.


We’ll have a fix for this in our back-to-school update in mid to late August.


That is great news @tfriez!! Thanks for letting me know!!