Improving the Efficiency of Power Circuits in FRC Robots

It started as an investigation into specific electrical system changes (did our change to XT connectors improve power efficiency? how will our move from PDP to PDH units affect robot performance?) but grew into a much larger study and analysis of FRC robot electrical systems and components. Please feel free to review and use the data, insights and and recommendations we share in our report document. While we think there’s useful info in there for everyone – as well as many surprise findings – it is most applicable to teams seeking to improve and maximize the performance of their robots. Questions and comments are welcome.


I have only begun reading this but just want to say thank you for producing this and most importantly thank you for publishing your findings.


This is extremely excellent!

1 Like

Set a reminder on this so I could come back and comment…wow this great.

Side-note, it did not cross my mind to do some resistance tests on breakers we use on robots (besides running new sets each year) and I will promptly ensure that’s done next time I get in the shop.


As many teams may be considering switching to neos from falcons, this tidbit from the article below will need to be researched. Packaging neos with their respective spark Maxxes is a challenge in itself.
Thank you for shedding the light on how wire length can impact efficiency!

  1. The wires between a NEO motor and the SPARK MAX controller should be kept as short as possible. This recommendation is speculative, because we were not able to verify it by testing; however, we are highly confident in it. These wires (between a brushless motor and the connected brushless motor controller) are the only place in the robot electrical system where an alternating (reversing) current occurs – and would therefore be subject to the skin effect which increases the effective resistance of the wires. If you need to locate a high-power motor a significant distance from the power distribution panel, extend the wires on the DC (input) side of the controller only – not the wires between the controller and the motor. (Of course this is not an issue for Falcon motors, in which the wire distance between the motor and controller is extremely short and fixed.)

This write-up is fantastic! Thank you to all involved.
I think it would be a worthwhile Phase II of testing to go to the next step. The intrinsic resistance values are a great starting point and I had no idea there was so much variation within our components.
I think the addition of a full load bench test of a complete “robot” for 2 minutes would be beneficial. Have swerves rotate at a designated speed, routinely change directions, cycle and elevator up and down with load, and cycle an intake in/out or whatever you desire.

  1. Build out a complete robot with the already cleared ‘premium’ components.
  2. Robot should sit in some type of test stand to allow repeatable full operation. (Yes I recognize that the swerve motors won’t be loaded the same, but as long as we are consistent between tests, it should be representative. )
  3. Run the systems at a programmed load cycle for 2 minutes off of a bench 12v power supply. (A battery won’t cut it, as we know they have huge variations and that is an entirely different subject)
  4. Measure total amp-hour draw over the 2 minutes.
    This will give you a better idea of loading as internal temps rise of all the wiring and individual components.
    Run this same test again with mid-range components. And then again with the components that didn’t make the intrinsic cut.
    Then you can evaluate if heat loading “leveled” the playing field overall, or did it amplify your findings.

Thanks for the excellent write-up!

My key takeaways:

  • Test all components for resistance and select the best (especially circuit breakers!)

  • Keep wires short for high amp motor circuits and use ports closest to battery connector on PDH

  • We should consider soldering our 45A Anderson connectors on our Spark MAXes and Falcons

  • We should revisit using WAGOs as a primary connector, not just for temporary or field repair.


We were actually just looking at this last night… very early design for a 3D printed shield on the Rev 2-motor drivetrain gearbox:


Give you a nice mounting spot for the speed controllers, while helping to protect the gearbox from falling debris (different gearbox, but similar open design - we had a heck of a time when a drilled out pop rivet fell into it…)


This is an excellent write up!

I do have one issue- you recommend crimping and soldering Anderson powerpoles.

According to the manufacturers datasheet, PowerPole contacts may be soldered, but only with two specific part numbers (1331- closed barrel PP30, and 1332- closed barrel PP15). The datasheet does not specify both soldering and crimping as a contact termination method.

While the data may show that the crimped and soldered terminals perform better, in a high vibration environment such as an FRC robot, I would be extremely concerned about the solder cracking and loosening or damaging the wire. A terminal crimped gas-tight with the proper tool should not have room for solder to wick up the terminal. I personally would also be concerned about the repeatability/reliability of both crimping and soldering vs only crimping.


I would like to expand on this comment.

I think it is extremely excellent that your team is digging into all of these facets of the electrical system, building test equipment, and publishing results. This is great.

However… and it’s a bit of a however… some of the drawn conclusions and exact numbers are dubious.

For example, from what @vargoose84 quoted:

There is is a very important, and missing, context to this statement: frequency dependence. For the frequencies that our BLDCs are likely to operate in (<10kHz electrical signal if I crayola’d my math right) the skin depth is larger than the strand diameter, meaning the whole conductor is utilized still, and there is no practical increase in resistance of these wires. For example: I just measured a normal-ish-sized wire strand in my lab at 0.25mm, which would be good up to 100kHz.

Clarification of this (I made a mistake) and discussion in later posts.

To reduce cost and increase learning, we built our milliohm meter using Arduino-class devices
based on our own improvements to a published design.

This is a great project and I am sure everyone learned a lot. However the results from a home-brew device are not particularly actionable without a good calibration. Did you consider buying one or more shunt resistors to check your device? I found no mention of calibration, self-checking, or other methods to ensure that these sensitive measurements were made repeatable, which casts a big shadow on your results and conclusions.

Andersons perform better whether crimped or soldered.

Crimp terminals should not be soldered after crimping. See this from NASA’s crimping workmanship standard.

You can dig into the standard or search CD for more of my posts on the subject for more information.

tl;dr - I applaud the work and publishing it, and I also encourage more rigor and context in presenting results and conclusions.


VERY interesting work!

Something to keep in mind: mechanical contacts are likely to change resistance under load, especially if they are starting on the high side. Different contact platings can signficantly change this behavior, especially if the contact is being open/closed under load (like breakers and relays).

For FRC I’d really be looking to do these tests with some real current to get out of the range where thermocouple effects become important.

I’m hoping you are aware of the need for Kelvin connections when measuring low resistances and/or large currents! Its important that the Voltage sensing connections NOT carry the test current. When I was looking at phase resistance on NEO motors this was an important factor.

When we were chasing brownout issues we actually used the PDH voltage measurements to look at the resistance of the battery, SB50, main breaker, cable, and connection to the PDH loop. Calculating the expected wire resistance told us that there was something wrong; it ended up being a too-short strip length on the positive lead at the PDH!

Yes, milli-Ohms make a big difference when you are pulling 100-200 Amps!

Your analysis really highlights this and some fascinating data on the variability of the components!

I’ll see about getting all our breakers home to my shop for a round of testing!


While I appreciate the work that went into this, your results on 6 AWG + SB50 vs 4 AWG + SB120 cause me to be skeptical about your results. The cross-sectional area and contact area are clearly going to make 4 AWG + SB120 lower resistance; if you found differently, I’m suspecting a measurement error or test setup issue (or perhaps the resistance delta is below your testing setup’s measurement floor). It’s also possible that testing the SB50/120 at low current does not show the real resistance under load (which would cause the contacts to heat up and maybe make a better connection).


A correction on skin depth. The radius of the entire cable applies, regardless of whether the cable is solid or stranded, unless each individual strand is separately insulated. That is called Litz wire and is far more expensive than standard wire. It gets used in some switching power supply transformers.
That being said, the current direction is not switching at the PWM frequency, but at the commutation frequency. I think NEOs are 14 pole motors, so the frequency is maybe 1.4 kHz at full speed and the skin depth is then about 1.75mm. Someone should probably check my math. 1.75mm is larger than the wire radius of 1mm for 12 AWG.
Voltage is switching at the PWM frequency but the inductance of the motor smooths that out.


Thanks for the clarification!

While it’s clearly not as simple as I originally posted about… is it true that even regular stranded wires buys back some resistance because the strands are not in perfect contact? I.E. there is effectively more surface area to conduct on skin even if some of the surface area is removed through contact with adjacent strands.

The current in the NEO phase has a high frequency modulation well above the commutating speed. That said, its really not “fast” in the electrical world :wink:

1 Like

Yes, stranded is somewhat better than solid for high frequency. As far as I understand. When I did electromagnetic levitation I used Copper tube with water flowing through it. At low RF the middle of the conductor didn’t do anything useful.

Many types of connections will only reveal their true resistance when current is passed through it. This is called Wetting Current and it really comes into play when measuring contact resistance.

What are the exact details of the resistance meter that was used @DeMentor ?


Thanks for your review and comment! This is a great example of the value of discussion – sharing different views with the goal of useful outcomes.
Long-term stability and reliability of electrical connections is a concern. But I think the context and specific objectives of different recommendations should be considered here too. For example, a later feedback comment cites NASA’s guidance that (some? all?) crimped connectors should not also be soldered. I’m sure that for super-long-term connections in super-high vibration settings that advice is by far the best way to go, but I think the realities of FRC robots – although rigorous – are a bit less. To quantify, in our robot’s 53 matches last season, the robot ran for about 115 minutes (let’s say 2 hours) and received at least 1,000 bumper-buffered high-impact hits. We practiced for another ~ 4 hours, with a lower hit rate – so perhaps another 1,000 hits. Altogether, that’s a robot high-stress lifetime of about 6 hours and 2,000 hits; it’s not hard to imagine other robots going through 2-3X this. My intuition is that this level of stress is far less than what the NASA guidelines against soldering of crimped connections is meant for. Our standard practice (before the study we just published) were to solder connectors (using excellent practices, with QA/QC review), to reinforce connections and to stabilize them by tying them down to the robot mechanical structure within 2-3 inches of the connection.
I agree with you that cracking of soldered joints is a risk. But with good soldering practices and the mechanical stabilization methods described above – on top of what is a very-short machine lifetime for FRC robots – we haven’t observed that problem in our case. We also draw confidence from the fact that in combat robotics, where momentary and accumulated stresses are much higher, soldered wiring connections are the norm. (We actually based our conversion to XT connectors from our knowledge and experience with combat robots.)
Our goal was simply to reduce the resistance of things like connectors in a way that would be useful, achievable and reliable within the context of FRC robots. Most of my comments above are about defining the context – the application. But I’ll also agree with you that our observations about our experiences with connection reliability are anecdotal and could be improved by further testing and quantification within the FRC context. We may take this on in the future, or perhaps someone else will investigate that. But at this time, we’re confident that soldered connections can withstand and endure the typical lifetime of a FRC robot with reliability and good electrical performance.


Thanks for the feedback and comments! And for raising the concern about use of a “homebrew” device.
Let’s address that first. We debated how much info to include about the measurement device because the report document had already grown to twice the size we originally intended. So that kind of background info didn’t make the editing cut. But here’s some info to address your concern. We did test calibrate the device against COTS resistors of known values of 10, 50 and 100 milliohms. We also did the same with known wire lengths of AWG 10 and 12 conductors (this is how we verified linearity and accuracy in the fractional milliohm range). This testing indicated a device measurement accuracy of +/- 2 %. In addition, whenever we derived a test measurement that seemed questionable (thank you circuit breakers!), we retested the measurement device against one or more of the known standards to verify function and accuracy. Because of these measures and the observed repeatability of the device, we developed the confidence to proceed through the full sets of tests that form the basis for the report. (We think it’s noteworthy and positive that across our most-tested family of devices (Rev Robotics PDH panels and circuit breakers) we have observed very similar ranges of measurements across a 12-month time span.)
But, having said the above, we understand that many teams will have similar concerns. So we have recently purchased a commercial milliohmeter that we will use at events and competitions to support our fellow FRC teams with. We will also circle back and re-test some of the key devices featured in our report, to verify – or if necessary, challenge – our documented findings.


Re. your quoted comment:

Thanks for this clarification. I cannot argue with this interpretation. As noted in the document, we did not do the math on this one. It was generally related to our topic of reducing resistance in FRC electrical circuits, but it was beyond our ability to measure. We will revise the document and update that section accordingly. (General note: we will integrate many of the comments from feedback and discussions in this thread into a 1.1 version of the document before 1/7/2023.)