Any tips on Neo Motors?

Welp, today a mentor on our team has spent a large amount of money on buying neo motors to replace our cims, and has put me in charge of implementing them with the bot. Anyone who has any experience with Neos and Cims, do you have any tips regarding the inclusion, use, difficulties, etc. of them? Thank you for help in advance!
(P.S. I have experience with Hobby grade R/C car brushless motors, any relation with those at all?)


That hobby experience should give you some pretty useful information: Don’t stall them, keep the sensor cable in at all costs, keep the ESC to motor distance low.

The FRC-specifics are as follows:

  • Update the firmware on every single one as soon as you get them, and keep track of it through 2020 and beyond.
  • Use the latest Spark Max library for programming it.
  • Wire the CAN chains as well as you can, specifically cutting off and soldering the inter-controller links to reduce fragile connector breakages if you can. (Personal experience, ancedotal.)
  • ENSURE you drive them in the correct mode in code. Otherwise you’ll put them into a dead short, as the Spark Max is a dual brushed/brushless ESC.

There are a few differences between these and CIM’s.

NEO’s have a stationary coil, while a CIM’s is rotating. Because of this, the CIM has trouble cooling down the coils, and as a result, must have a large thermal mass. This means that they can absorb a lot of energy while not increasing in temperature very much. The drawback of this is that they become heavy, and cannot dissipate heat very effectively.

NEO’s, on the other hand, are very good at dissipating heat. The coils are stationary in the center of the motor, and are effectively heatsinked to the front mounting face of the motor.

Unlike a CIM, the NEO does not have a lot of thermal mass. This means it ends up being lighter in weight, however it cannot absorb a lot of energy before it begins to heat up substantially. This is counteracted by the effective and superior heat dissipation through the front mounting face.

It depends on your application. For a drivetrain a normal WCP gearbox will work fine. The contact between the motor and the plates will wick heat away from the motor.

Optimally, if you have CNC capability, custom gearbox plates with fins on the opposing face that the motor mounts to would increase performance. Bonus points if you put thermal paste between the motor face and the gearbox, as that is much more effective than just bolting it together. This can also be done on standard gearboxes, but the pocketing of WCP gearboxes would decrease the effect of the paste.

For a rule of thumb, I would advocate to place your motor controllers close to the motors, as this will decrease the total amount of wiring on the robot (motor leads need 3 wires, as opposed to the 2 wire power input for the spark max)

Ensure that your spark max has room around it for you to plug into the USB C port, as having to unscrew or remove the motor controller to change firmware will be a pain.

I’m unsure of the legality regarding this, but taking your motors apart and inspecting it may be to your benefit. I’ve had mixed results with the QC.

The three small bolts holding the cylindrical cover are slightly glued in. I was able to remove them without heat, but make sure you don’t strip them.

Once that is off, inspect the rear of the can (the part that spins). There are two setscrews that hold the can onto the output shaft. Make sure that those are tight, as I’ve had new ones come with loose setscrews. They use some weird kind of glue to hold them in, and it doesn’t seem to harden, it stays sticky.

This is the part where I’m unsure of legality, specifically rules regarding modifying motors. Don’t do this without further rule inspection, but I would strongly advise you use red loctite on these small setscrews. Realistically, they should never come out, and you will never want to take them out for disassembly either. If you need to remove the can and shaft from the motor, remove the circlip located on the front of the motor, and pull the entire bell out the rear.

The reason I advocate for this is that I’ve already seen one motor on chief where the bell came loose and began scraping on the inner coils / stator.

besides this, be careful with the small sensor wire. The shielding on that seems to be a little bit weak, so I would advise you to additionally put some mesh shielding on it (the black nylon stuff). We’ve had a few where the fabric cover has torn right by the motor.

Additionally, the wires that come with the neo are high strand count silicone insulated wires.

These wires are NOT easy to crimp into anderson connectors. If you choose to use them (like we did in testing) you should crimp them and then solder the wires into the crimp. Because these are high strand count wires, you WILL need to use additional flux to get the solder to wick into the wire. Don’t worry about melting the insulation, as it is very heat resistant due to it being silicone.

I can’t stress that enough. Setup your spark max’s before you wire up the motor, as you could turn it into a nice space heater if you don’t. They run brushless AND brushed motors. Make sure they’re configured to drive in brushless mode. Our electronics team nearly toasted all the motors when we first got them.


For your point regarding Anderson’s, my team just switched this year and we’ve had no issues with them. What issues were you having?

They pull out easier than other wires due to the high strand count. At least in my experience.

The NEOs dissipate heat out the front of the motor very very well so as others have stated using a metal gearbox is probably a good idea. I have heard of teams who used the plastic vexpro gearboxes and did not have any issues with putting NEOs on them but just to be safe I would stick to metal gearboxes for now.

1 Like

You’ll need to have a way to mount the spark Max’s near the NEO’s. Due to the lack of mounts built in, and we wanted to avoid Velcro, we developed our own method. We built a plate that mounted directly on top of each of our sets of 3 neo’s. We then mounted to that 3 3d printed mounts that hold them with a snapping system. They basically have two fingers that go up the sides and a slight lip on top to hold it down. That way you can pull them out, but their really quite secure for everything else. It’s probably hard to visualize but if your interested I can grab a photo when our robot gets home from champs

1 Like

I would actually recommend against using solder for any connection on the SPARK MAX. There should be very few cases on a typical FRC robot where soldering a connection is necessary or preferred. Instead I would make sure to crimp the wires to the Anderson connectors for the power. We have not had any issue crimping the high strand count silicon wires using the TRIcrimp. Adding solder after crimping can cause the crimp to not correctly sit in the housing. If you accidentally get solder on the contact part you can cause the interconnect to not make good contact.

Adding solder for the CAN interconnects instead of a crimped connector can make the wire more likely to break under stress, and makes the section of wire stiff. A good crimp makes a good connection to the wire while also connecting to the insulation to provide strain relief, and the housing also helps support the connection. This is why we include the DuPont style connector on the cables. I would recommend using these connectors with the PWM cable clips, or replacing with a crimped locking connector.

I would recommend getting a good crimper, learning how to properly crimp the cables and as part of the process, carefully inspect each crimp before inserting into the respective housing.

Another useful function if you are using these on the drive train is to current limit them as a way to avoid breaking traction. To find a good current limit we ran the following procedure:

  1. Set the Smart Current Limit to a somewhat low value, maybe start ~40A
  2. Run the robot directly against the wall on the carpet with the current limit enabled (do not do this for more than a couple of seconds at a time)
  3. Slowly increase the current limit until the wheels start to break traction
  4. Once the wheels break traction, lower the current limit by 5 - 10% and use this current limit

Regarding stalling of the motor, you can find our stall test data on the NEO page.


(Software Wise)

I would strongly recommend that unless you 100% know what the configuration to the NEO will do, add the configurations into your code one by one. Many of the configurations behave differently than the corresponding ones for Talon SRXs, so just be very careful.

Make sure you have current limiting setup properly when using NEOs in a drivetrain. You won’t get away with the same things you can with CIMs/miniCIMs. Since NEOs have a lot lower internal resistance it is a lot easier to pop breakers by overdrawing current without the appropriate software limits in place.

When we had 4NEOs on the drive train and set the current limits to 50A…

We kept popping the breakers for the drive train when getting into even the slightest pushing match. For reference, we are geared for 12.5 ft per second free speed with colson wheels.

Upgrading the to 6NEOs and setting the current limits to 39A seems to have resolved it. I’m curious to see if there is another way to make 4 neo’s work though.

That’s interesting…we had 4 NEOs set to 55A current limiting and we had 4" mecanums and geared to 14-15 fps…and we didn’t pop a breaker at this limit probably due to being traction limited…we did pop breakers if we set it any higher tho.

I wonder what 2910 had their current limiting set to on their NEO swerve…

Will, thanks for the suggestion, but we broke just under half a dozen of the CAN connections with the 2.54mm “servo” connectors on them. The servo end, to be clear, and not the JST-PH end. Perhaps we just got a bad batch, but that’s why I also specifically said it was personal experience and was anecdotal, not the manufacturers recommendation. Thanks for providing a bunch of other useful tips :slight_smile:

Here is the Rev guide for reference:

Our team had significant difficulties getting these small screws out. We stripped out a bunch of the screws and destroyed a bunch of allen key wrenches. Our lead mechanical student posted this: REV, please chill with the loctite - #11 by Ryan_Dognaux. Some teams had luck using a soldering iron to heat the screw first to help with the loctite, but what worked best for us was to have a large supply of cheap 1.5mm allen wrenches, push in very tight and try to remove in a very controlled manner. As soon as the allen wrench head showed any wear it was replaced. One of the students defaulted to just using one wrench per screw. Truthfully this was the only issue our team had.


7226 Really liked using the MT60 connectors. They’re the 3 wire equivalent of the XT60 connectors. Makes switching out NEOs (which we had to do because 2 of them bricked themselves) really easy.

Here are the ones we got:

Note, don’t use heatshrink, there is a cable cover plastic bit that does a good job


Anyone have good luck shortening the sensor leads? How’d you do it?

Just thinking in advance if I want to put the MAXes closer to the NEO.

Our team has used bolts with nylon patches (like these), which work great for securing them in place without having to add loctite and risk creating issues with modifying motors.

1 Like

Do you mean for securing the motor to a gearbox?

My comments on loctite are about internal screws in the motor. You’re free to loctite your mounting bolts, that’s never been an issue.

Some of the high strand-count wires have a larger conductor OD than other wires of the same nominal wire gauge. I have had to use lugs rated for larger wires sizes to make them work at my day job. You may have to adjust the crimper to compensate. Perhaps @Will_Toth can look up the specs for the 12 AWG wire they are actually using and give the OD.

1 Like

My apologies, I misunderstood what you were saying.

1 Like