FRC-Characterization Won't Generate Project

Hi everyone. I’ve been trying to use the shiny “new” FRC Characterization tool to generate constants for my team’s robot’s drivebase and shooter (both running on NEOs and Spark Maxes) , but I’ve been having a plethora of issues getting the Java project to generate from the config tool. I’m not a Python guy, so I’m kinda out of my league here.

Anyway, I have the fields in the config tool populated as shown in the text file I attached, and when I hit “generate project,” I get thrown the error Error - unable to generate project - config may be bad. Details: IndexError(‘ListIndex out of range’)

If anyone could help me out with what I’m doing wrong here, I would greatly appreciate it. If it helps, I’ve already tried uninstalling and reinstalling Python and the frc-characterization tool, my Python is set to the PATH thingy, and I’ve upgraded my frc-characterization tool from Command Prompt. Thanks!

FRC-Characterization Config.txt (2.4 KB)

We were running into the same error, but figured it out!

To generate the project, it’s expecting two values each for the “motorsInverted” and “rightMotorsInverted” keys, since you indicated 2 motor ports on each side.

Try this (or change if one side should be inverted on your drivetrain):

“motorsInverted”: [False, False],

“rightMotorsInverted”: [False, False],

I tested your code with those changes and was able to generate a project.

1 Like

Oh, that sounds exactly right! Thanks so much, I’ll test that in a few hours.

What might it mean if I were being thrown that same error in a “Simple - SparkMax” project? For context, I think I was only populating one number - the Spark Max’s ID into the “MotorPorts” brackets.

No problem! Interesting about the simple project. If you have two motor ports per side, you still have to put two controller types per side for the project to generate. If it’s just one port per side, you still need either False or True for the motorsInverted keys. Can’t leave them empty for drivetrains.

I see. I was doing this for our shooter which has only one Spark Max and I wasn’t sure which fields to populate and which to leave empty. So, populate the “MotorPorts” field and one True/False in the “MotorsInverted” field for this scenario?

Correct! If the right motor ports key is empty, then it’ll expect the right inverted key to be empty as well.

Ok, I’ll try this too. Thanks a bunch!

1 Like

Hello all, I just wanted to point out that I was getting a similar error. It was due to using a newer version of Python. I had to downgrade to Python 3.7

2 Likes

I should have mentioned this: I did have to downgrade my Python version as well. Is this a known requirement for the characterization tool? Version 3.9 of Python gave me some wacky errors. Was your error something along the lines of “Error 13: Permission denied”?

Yeah, I got that same “Errno 13 Permission denied” error. Installing the latest version of Python 3.7 fixed it.

It says on the docs that it should be 3.7, but I impulsively clicked the link and downloaded 3.9 without double-checking. Learned my lesson!

I may or may not have done this :grinning:

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.