Pangram verdict · v3.3
We believe that this document is fully human-written
AI likelihood · overall
HumanArticle text · 1,964 words · 6 segments analyzed
CARA 2.0 (05/01/2026)
PrologueOn May 31st, 2024, I uploaded a video titled High Precision Speed Reducer Using Rope, where I built a niche speed reducer called a capstan drive. Little did I know that this video would go viral and brand me as the “capstan guy”. Roughly 2 years later, this is still my highest-viewed video, and I still get lots of emails and DMs about capstan drives. About a year after making that video, I created CARA, a quadrupedal robot that used capstan drives. Now, a year later after that, I’ve built CARA 2.0, an upgraded version of CARA. This project is particularly special because CARA 2.0 was my senior design project. Considering the fact that I’ve been obsessed with making quads since high school, it only seemed fitting that I end my college experience by building my best quad yet. My team and I set out to make a low-cost (<$1000), low-weight (<20lbs), and durable quad suited for hobbyists and researchers.If you’re interested in building your own CARA 2.0, you can purchase the full build guide on my Patreon Shop or access it through my Patreon Builder Tier membership. Also, the BOM for CARA 2.0 is free to access here.A Low-Cost Dynamic ActuatorActuators are the most basic and essential electromechanical subassembly of a robot. They are also the main driver of a robot’s cost and performance. With the lofty goal of building a quad under $1000, it only made sense that we would start our design process by making a low-cost dynamic actuator. Luckily, the blueprint for building one has already been well documented online. Ben Katz specifically set the precedent for making low-cost dynamic actuators during his development of the MIT Mini Cheetah. I would definitely recommend reading his historic paper, A Low Cost Modular Actuator for Dynamic Robots. Essentially, Katz popularized the idea of a Quasi Direct Drive (QDD) actuator.
This is an actuator that combines a high-torque brushless motor (generally with a large gap radius) with a low gear ratio gearbox (generally under 10:1), and an FOC Controller to achieve position, velocity, and torque control. The name Quasi Direct Drive comes from the fact that the low gear ratio is able to retain a lot of the benefits of a direct drive actuator. Namely, efficiency, transparency, and backdriveability. From left to right: high torque BLDC, 9:1 planetary gearbox, and an FOC controllerActuation HardwareGiven our $1000 goal, we needed to build a QDD actuator for around $50 to $60. This is a hard goal to achieve. For reference, each actuator on CARA 1.0 costs approximately $250! The bulk of this cost came from the BLDC motor and FOC controller, making up about 32% and 60% of the total cost, respectively. After doing a ton of research, we eventually found a motor and controller within our price range. Here are the specs of the motor and controller used in CARA 1.0 and the ones we found for CARA 2.0. CARA 1.0 Actuation HardwareEagle Power 8308 BLDC MotorCost: $80Size (D x H): 92 × 29 mmWeight: 340 gRated KV: 90Rated voltage: 6 - 12S Configuration: 36N40PMeasured stall torque: 1.67 Nm ODrive S1 FOC ControllerCost: $150Size (L x W x H): 66 × 54 × 25 mmWeight: 55 gInput voltage: 12 - 48 VContinuous current: 40 AMax current: 80 AOnboard encoder: yesCARA 2.0 Actuation HardwareTYI 5008 BLDC MotorCost: $18Size (D x
H): 58.3 × 38.2 mmWeight: 160 gRated KV: 335Rated voltage: 2 - 6S Configuration: 12N14PMeasured stall torque: 0.421 NmMKS XDrive Mini FOC ControllerCost: $41Size (L x W x H): 63 × 58 × 27.8 mmWeight: 66 gInput voltage: 12 - 56 VContinuous current: 60 APeak current: 120 AOnboard encoder: yesThe TYI 5008 is a dirt-cheap Chinese BLDC motor, which is only about ¼ of the cost of the Eagle Power motor used in CARA 1.0. I don’t think it’s possible to find motors that are this cheap yet powerful enough to use for robotics. They’re also surprisingly high quality as they use arced magnets and balancing glue. The XDrive controllers are perhaps an even better bang for your buck. They’re also about ¼ of the price of the ODrive S1 controllers used in CARA 1.0, but they’re actually rated for higher voltage and current! This almost seemed too good to be true, and as I found out, it was. While this pair of actuation hardware was extremely cheap, it came with some drawbacks. Rewinding Motors, an Arthtitis SpeedrunThe one flaw of the TYI motors is that it has a really high KV i.e., a really low Kt or torque per amp rating. The simplest way to fix this issue would be to use a high gear reduction gearbox in the actuator, but as mentioned before, a QDD actuator needs a low reduction. So, we decided to modify the motors themselves by rewinding them to reduce their KV rating and thus increase their torque per amp rating. The idea of rewinding the motors came to me as I inspected the motors’ windings. They seem to have so much space for more magnet wire. I’m guessing that since these motors were designed for drones, a low winding density was favorable as it leads to high KV and thus high speed. Before rewinding the motors, I took one apart to understand how the manufacturer wound them.
What I found was that the motors were wired in a delta configuration and wound with 22 turns/slot of a single strand of 22 AWG magnet wire. My goal was to wind the motors down from 335 KV to 100 KV, which is a good KV rating for a high torque actuator. Firstly, I knew that I would have to wire the motor using star configuration, since it provides more torque at low speeds than delta. Specifically, delta wiring has a √3x higher KV than an identically wound motor wired in star. Secondly, I knew I was going to have to use a single strand of 24 AWG magnet wire for a couple of reasons. Any lower gauge would be too thick to pack a substantial amount of wire on the stator. Any higher gauge would require multiple strands in order to have a high current-carrying capacity, which would also limit the number of turns that could be wound on each slot. I came to this conclusion after trying a bunch of different winding gauges and strand numbers on a mock stator. In the end, a single strand of 24 AWG wire seemed to be the ideal thickness to pack as much copper on the stator with as many turns per slot. The last and most important question was “how many turns per slot are needed to achieve 90 KV?” Well, a KV rating is directly proportional to the number of turns/slot on a motor. So, using the manufacturer's KV rating, the manufacturer’s turns/slot value, the target KV, and the KV reduction factor from delta to star, you can calculate the target turns per slot as shown below. Rewinding CalculationsFrom the calculations, it’s shown that it takes approximately 39 turns per slot to achieve 100 KV on the TYI motors. I decided to round this up to 40 turns/slot to work with an even number. After rewinding a motor, I conducted KV and torque tests and found the below parameters.
Manufacturer Wound TYI Motor Rated KV: 335Weight: 160 gMeasured stall torque: 0.421 NmRewinded TYI Motor Rated KV: 90Weight: 160 gMeasured stall torque: 1.274 NmI was able to get the KV down to 90, which is even better than what I targeted. This produced a much higher Kt or torque per amp rating. One interesting thing that I noticed was that the weight of the rewinded motor remained the same as the manufacturer-wound motor. This just goes to show that you can radically change the characteristics of a motor without adding or removing the amount of copper.When Cheap Motor Controllers Don’t WorkThe XDrive Mini controllers are one of the cheapest and most powerful FOC controllers that can be purchased off the shelf, but that means they come with a ton of issues. I knew this going in, but it didn’t make the troubleshooting any less torturous. When you pay $150 for an ODrive S1, you aren’t just paying for the physical hardware; you’re paying for the UI, the documentation, and the continued support that it comes with. With cheaper alternatives, you don’t get any of that!The XDrives are single-axis ODrive 3.6 clones that look like the ODrive S1. The main issue with the XDrives is communication. They work perfectly fine with UART but not with CAN bus. UART sucks for making high DoF robots because MCUs only have so many UART ports. The Teensy 4.1 MCU that I used for this project, and most of my other robotics projects, only has 8 UART ports, so I would only be able to control 8 motors instead of 12. CAN bus is a much more preferred comms protocol for robotics. The boards come with a custom firmware made by the manufacturer called 0.5.1. After running some test CAN bus code on the boards, it seemed to be able to send commands to the motor, but it couldn’t provide encoder or current feedback, which are critical for a highly robust and dynamic robot. I then turned to using ODrive’s Open Source Firmware. This firmware did provide encoder and current feedback, but it wasn’t able to maintain stable communication with the motors.
This issue was particularly annoying as it varied every time. Sometimes the motor would run for a minute and then disconnect, sometimes for an hour, and sometimes for 30 seconds. I tried a bunch of different things to isolate any variables that may be at play here. I tried changing the loop frequency, decongesting the bus by slowing down heartbeats and message rates, and using pretty much every open-source firmware version that ODrive provided. Nothing worked, and it became clear that I was missing something. So, I decided to do some digging online to see if anyone else had experienced this issue, and I came across Mohammad Marshid, who created a custom version of the XDrive’s 0.5.1 firmware that could send encoder feedback (Mohammad’s firmware). I reached out to Mohammad to see if he could also add current feedback to the firmware, and luckily, he was able to do so! Big shout-out to Mohammad! With the new firmware, I was able to maintain stable communication with the motor and also get motor feedback. So, it seems like boards will only work with their native firmware.Alas, a Capstan Drive Joint Test Stand!With the motor rewinded for more torque and the motor controller comms issues sorted out, it only made sense to prototype a single capstan drive joint test stand. The design of the drive is pretty similar to my previous capstan drive designs. A small drum rotates a big drum through a tensioned rope that’s wrapped around both drums. The drive weighs 470 g (1 lb), features a 9.6:1 reduction, produces 12 Nm of peak torque, and has a range of motion (ROM) of 120°. One thing that I’ve come to realize over the course of making capstan drives (especially from YouTube comments) is that trying to achieve an exact reduction is a fruitless effort. I’ve spent an incredible amount of time trying to derive equations to properly determine the exact drum diameters needed to achieve certain ratios, but they never work across the board. The best way to make a capstan drive is to have a target ratio in mind, estimate the target effective drum diameters using a bit of math, and then measure and calculate the gear reduction (Δoutput shaft position/Δmotor shaft position). As always, the drive used Dyneema DM20 rope, which is the lowest creep rope that money can buy.