pip3 install moteus

I’m excited to announce new python bindings for communicating with moteus controllers! A simple example from the README:

import asyncio
import math
import moteus

async def main():
  c = moteus.Controller()
  print(await c.set_position(position=math.nan, query=True))
  await asyncio.sleep(1.0)

asyncio.run(main())

This code will try to locate an fdcanusb on your host and use it to communicate with controller with ID 1. All of those details can be customized through code depending upon how you construct things. The library is pure python, although it doesn’t work on Windows currently because it relies on an asyncio aware pyserial wrapper that doesn’t work there.

mjbots repository reorganization

In the spirit of “most of your users are yet to come”, I’ve gone through a moderate re-organization of some of the mjbots github repositories to make them more usable and sensible.

The biggest change is that mjbots/moteus has had a history rewrite and a directory structure re-organization. The current development (and default branch) is now “main”. The biggest changes:

  • Proprietary pdfs have been removed
  • All hardware which isn’t related to the moteus PCB has been removed
  • The firmware source has moved from “moteus/” to “fw/
  • The client side utilities moteus_tool and tview have moved to the “utils/” directory
  • There is now a “lib/” directory which houses client side libraries

Second, mjbots/power_dist is a new public repository that houses the power_dist board firmware and software.

New tool day: Pace ADS200

I’ve muddled along for a long time soldering with a little Weller WES50. I’ve done a lot of work with it, but given how many SMD boards I’m doing with big ground planes and tiny components, I needed something a bit more capable. Enter the Pace ADS200 from tequipment:

Made in the USA, with 120W of power and a wide range of tip selection it has been an incredible upgrade. All those soldering jobs which were painful before are so much easier, and I don’t even have all the tips I wanted for different jobs yet. I also have the MiniTweez, but don’t yet have the tips that will let me show that off. I’ll try to post some soldering videos in the not too distant future.

Pocket NC windowed machining

When I first acquired my Pocket NC v2-50, I was planning on using it for rapid prototyping of small aluminum parts. I figured with 5 axes, I could do many things with a single setup just clamping from the bottom. However, I was initially thwarted in that plan and had to resort to more creative workholding solutions due to two problems.

First was the vice that came with the Pocket NC. It is serviceable, but provides very little clamping force if you want to hold something that is tall and skinny. For now, while it isn’t ideal, I’m making good progress with the wcubed vise.

Native moteus tools for Windows

To date, all of the development tools for the moteus brushless controller have been available exclusively for Linux based operating systems. I’ve been doing some behind the scenes work, and have gotten to the point where moteus_tool now runs natively on windows and can communicate with moteus controllers using a fdcanusb.

Check out the Windows installer for the latest release:

To make this work, I started from the excellent grailbio/bazel-toolchain, which provides LLVM toolchains for Linux based systems based on the official LLVM pre-compiled binaries. I forked that into mjbots/bazel-toolchain and added Windows support. It isn’t perfect, because the LLVM project only distributes Windows binaries in installer form, and it isn’t possible to extract binaries from them without specialized tooling. So, this version relies on a manually re-packed compressed archive of all the executables.

moteus r4.5

Meet the newest revision of the moteus controller!

Yes, it does look mostly the same as the r4.3 that has been getting a lot of use lately. This revision exists mostly to improve manufacturability, but I snuck in a minor design improvement while at it. Now, the maximum voltage input is rated up to 44V from the 34V of the r4.3! (Note though, that the pi3hat and power_dist still are limited to 34V). Otherwise the new controller is fully electrically, mechanically, and software compatible with the r4.3.

Another quad A1 speed record - 2.5 m/s

In two previous posts (part 1, part 2) I discussed some changes I made to the gait sequencing on the quad A1. Things are working relatively well now, sufficient that I was able to take this compilation video in one sitting without any gait or mechanical failures! I actually took a lot of the outdoor shots from this video in the same session, so things are definitely getting more robust.

Recalibrating the Pocket NC's X/Y home position

This summer I had to send my Pocket NC in for some service, when it came back, I immediately noticed that the X axis homing was very far off, something like 0.01 inches, as I was boring a hole in one side of a part, spinning it around the B axis, then boring a countersink in the other side. The two were very clearly not concentric. I suspect the homing mechanism shifted in transport or something, because the error was very consistent.