Archives: Posts

Final lower leg assembly

After casting the feet, the final step was to join the lower leg with the 3d printed foot bracket.  This I just did with some slow cure epoxy.

dsc_0280

It seems strong enough for now, I was able to manually apply 10kg of load to a single leg while perfectly horizontal with no signs of stress, which should be good enough for a 4g 4 legged jump.

All the legs (and a spare) are now assembled with belts and a lower pulley ready to go on a robot!

Casting feet

Previously, I described the overall plan for my improved foot.  To make that work, I needed to cast a 3d printed part into the squash ball such that it would likely stay attached during operation, be suitable rigid and yet damped, and do so repeatably.

To start with, I used a random single yellow dot squash ball with a hole cut in one side using a pair of side cutters.  For the casting foam, I just used Smooth-On Flex Foam-IT 17, which is what Ben Katz originally used at least.  Initially I just mixed up a batch, poured it in to a random level, stuck my bracket in and hoped for the best.

quad A0 - Improved foot design

As mentioned long ago in my post on failing more gracefully, it was obvious I wanted to strengthen the lower leg and foot mechanism to remove the point of failure observed there.  For now, I’m attempting to basically copy the original Mini-Cheetah foot principle, although with more 3d printing and less machining.

20200211-mk2-foot

The basic idea is to print the entire lower leg in a single go laying on its side, so that delamination is unlikely.  The foot bracket will be cast into a squash ball, then epoxied onto the lower leg.

mk2 leg knee stud

One of the parts on the original quad A0’s leg that was prone to failure was the “knee stud”, a little cylinder that acted as the mating interface between the upper leg and the lower leg.  It directly attaches to the upper leg, and has bearings that ride between it and the lower leg.  The entire tension of the leg belt is born in shear by this part.

20200206-knee-stud

In the mk1 leg, this part was 3d printed with heat set inserts used to form the threaded holes.  This mostly worked, although occasionally the stud could shear along the 3d printed lamination lines.  Thus, for the mk2 leg, I’m making this part out of 6061.

Updated leg design for mk2 servo

Since the mk2 moteus servo has slightly different dimensions and a different mounting pattern than my original, I needed up update the full rotation leg design to handle it.  The basic concept is the same, except for some in-progress work on the foot design which I’ll write up later.  The only significant changes were that because of the mk2 design, access to the power and data connectors is much easier.

Here’s a brief CAD snapshot:

New quad power distribution board

Finally returning back to other pieces of my quad roadmap, I finished getting an updated power distribution board ready for the quad A0.  This board is one I had made many months ago and mostly brought up, but then didn’t quite finish.  The r1 was when I first discovered my unfortunate stm32g4 pinout problems that doomed 3 of my in flight boards.  The pictures here are of r2, which suffered from yet more pinout problems, resulting in more than my usual number of blue wires.  Fortunately, identifying those problems here let me fix them ahead of time for the fdcanusb and moteus r4 boards.

fdcanusb enclosure

To get ready for initial limited production of the fdcanusb I wanted to make some kind of enclosure so that you didn’t have to just grab the raw PCB and risk ESD failures.  I also wanted to be able to expose the status LEDs without having to do a window or anything else with multiple materials.

So for now, I just used a translucent PETG print, with light pipes and a thin wall above each of the LEDs.  The result isn’t too bad, you can clearly see the status LEDs and it feels plenty rugged for desk work.

CAN bootloader for moteus r4.x

One final piece of porting that needed to happen for the moteus controller r4.x series was the bootloader.  The r3.x series has a bootloader, which allowed re-flashing the device over the normal data link, but that was largely specific to the RS485 and mjlib/multiplex framing format.  Thus, while not particularly challenging, I needed to update it for the FD-CAN interface used on the r4.x board.

The update itself was straightforward: https://github.com/mjbots/moteus/compare/406f01…1123a9

For now, on the assumption I will in the not too distant future deprecate the r3.x series, just duplicated the entire bootloader, replacing all the communication bits with FDCAN and stm32g4 appropriate pieces.  As before, this bootloader is designed to only operate after the normal firmware has initialized the device, and also is required to be completely standalone.  To make code size easier to manage, it makes no calls to any ST HAL library and manipulates everything it needs purely through the register definitions.