Programming, weight, or both?!

Hey guys,

Our flywheel robot is HEAVY. I don’t have an exact weight, but I do know that our middle schoolers struggle to lift it. We are made of mostly steel (only being that it is cheaper and we were tight on funding in the beginning of the season). I have attached a picture for reference (EDIT: it’s the lifted robot). Currently we seem to have a problem. Our drive will frequently stall, before it starts working again maybe 10+ seconds later. Obviously this hurts our ability in matches.

I have two theories, both of which could be true…

  1. We’re tripping a PTC of the Cortex
  2. We’re too heavy!

Below is how we have the motors plugged in:

#pragma config(Sensor, dgtl1,  leftBumper,     sensorDigitalIn)
#pragma config(Sensor, dgtl2,  rightBumper,    sensorDigitalIn)
#pragma config(Sensor, dgtl3,  fwEncoder1,     sensorQuadEncoder)
#pragma config(Motor,  port1,           intakeMotor,   tmotorVex393_HBridge, openLoop, reversed)
#pragma config(Motor,  port2,           rightFront,    tmotorVex393_MC29, openLoop, reversed)
#pragma config(Motor,  port3,           leftFront,     tmotorVex393_MC29, openLoop)
#pragma config(Motor,  port4,           rightRear,     tmotorVex393_MC29, openLoop, reversed)
#pragma config(Motor,  port5,           leftRear,      tmotorVex393_MC29, openLoop)
#pragma config(Motor,  port6,           flyWheel1,     tmotorVex393_MC29, openLoop)
#pragma config(Motor,  port7,           flyWheel2,     tmotorVex393_MC29, openLoop, reversed)
#pragma config(Motor,  port8,           flyWheel3,     tmotorVex393_MC29, openLoop, reversed)
#pragma config(Motor,  port9,           flyWheel4,     tmotorVex393_MC29, openLoop)
#pragma config(Motor,  port10,          intakeFront,   tmotorVex393_HBridge, openLoop)

Our flywheel continuously spins, it ramps at the beginning of the match- then we use TBH to control the RPM of the flywheel throughout the match. We have plans to change this, to use a sensor to only ramp up when a ball is present- but the flywheel will continue to spin even though the drivetrain stops.

We have qualified for states- so we desperately need to make improvements in the next two weeks. So, should we reconfigure our ports so that we divide the half the flywheel and half the drive, or make the robot lighter using all aluminum… or BOTH?

If anyone has any thoughts or opinions, please let me know!


If your motors are geared for speed even mildly aggressive driving can overheat the PTC’s of the motors, especially if the robot has a 4 motor drive. With steel, the motors have more weight to move so they will overheat quicker than aluminum. In addition, the cortex has two circuit breakers from ports 1-5, and 6-10. If the drive uses a lot of power, you should try balancing the load between the two breakers. Hope this helps!

Thanks Captain Josh-

More info: motors are normal motors directly to the shaft (no external gearing). Our flywheel uses 4 motors, and is set to around 1000 RPM (which is somewhere less than 60 for motor output).


+1 to this. Also, @carp, are you using a power expander?

@evan10s - yep! Flywheel is on power expander

Yeah, that’s good. So if you follow @Captain Josh’s suggestion and make sure you put one flywheel side and one drivetrain side on the flywheel, you should see an improvement. We also recognize ports AB and CD as sides of the Cortex, although I’m not entirely sure that’s true. But you might further split the power expander flywheel side into A and D and the drivetrain in B and C.

Also, any reduction in the weight of your robot will ease the load on your motors and help keep you from tripping their PTCs. Based on what you’ve described, reducing the weight might be more helpful in this case (though we use aluminum and still have to do what I described above).

It’s most likely an issue of weight, since you said your robot is mostly steel (and appears to have a lot of metal on it), and uses a 4 speed motor drive on 4" wheels (it looks like 4" wheels, but I could be wrong). Switch to aluminum if you can, and replace as many 5 wide c channels with 3 wide ones as possible (for example, the drive). That saves a lot of weight, and I think they are actually slightly stronger as well.
I doubt it’s the Cortex breakers tripping, but it’s possible if all of your drive motors are on a single circuit. My understanding of the Cortex’s circuitry is that it uses circuit breakers, which trip as soon as more amps than allowed are sent through, as opposed to PTCs, which trip after a certain amount of resistance occurs for an allowed duration, but this could be wrong (it was, ignore that). A power expander has one 4A circuit, and the Cortex has 2 of them.

Edit: I was wrong about the internal circuitry of the Cortex. It does in fact use PTCs, but the Cortex does have 2 PTCs, on ports 1-5 and 6-10, and the power expander has another one. Thanks for correcting me, Mr. Pearman.

Try the Smart Motor Library .

That is sooooooooooo heavy.

Okay serious answer now. All steel is fine for most teams. The main problem is just the sheer quantity of metal on the robot. The entire flywheel is supported with 5 wide c channels and then it seems to be connected to c channels pretty much the entire way for another 10 inches.

The cortex uses two 4A PTC devices.

That lift is very similar to mine except how does their anti-tip mechanism work?