From the last 14 years I'm working on repairing industrial servomotor's drives, including reverse engineering of a lot of stuff (from drives to communication protocols and even some proprietary encoders) and some development. And I can tell you that: your work is amazing. I do most my stuff inside FPGAs for convenience, but there are some old digital drives that runs servomotors with boards fully based on digital ports and comparators, without any programmed components in it.
Yes!!! Thank you so much for continuing to develop the platform. I'm really stoked to see this development as I'd love to use moteus to build a precision tracking gimbal. I built one for RF tracking last year and the built in mag encoder was perfectly fine for that, but optical is orders of magnitude more demanding for low speed performance, high stiffness, low jitter/noise. Seems like this could really help with that (plus ring motors/encoders are fantastic for gimbals) I don't know if i ever asked this on the discord, do you have any thoughts on the feasibility of adding a lightweight interpreter (eg lua or similar) directly to the firmware, allowing the controller to operate standalone for use cases that don't require an external comms/application (eg force feedback, stabilizers/dampers)? I started going down that road but had to hang the project up for other reasons.
Hi, I am a contributor to an open source FOC firmware meant to be used on hoverboard mainboards. I am working on some improvements like deadtime distortion compensation and discovered your blog and youtube channel. It's a gold mine, thank you so much for sharing all this knowledge. Did you happen to test cogging torque compensation on the hoverboard motor? Is the ripple noticeable on a motor with that many poles? Thanks in advance.
Thanks! I haven't tested cogging compensation on hoverboard motors, although I do have some data points that may be useful. The current cogging compensation implementation assumes a known absolute rotor reference. While it may work on hall-effect only motors that lack that, sub-optimality may result. Hoverboard motors don't have a lot of cogging torque anyway, and high pole count motors will generally not work as well with this technique, so it isn't something I was even thinking of exploring. That said, there may be gains to be had if you want to try.
Hey Josh, I looked for the 3d print part that holds the encoder reader. Could you provide the model link please. Thanks in advance, Keep your good work 👍
Here are links. However, I'm not sure I'd recommend their use. 3D printing tolerances and rigidity are only barely suitable to make the AksIM-2 work. Here I was just trying to demonstrate that it would work at all, not make a usable end system. drive.google.com/file/d/18l3m_1UHxQQP-YGWm4zG2CfOQZ1IhFtA/view?usp=sharing drive.google.com/file/d/1rl7AZosQT7wwO9aKcB-BATbgy3DkYugY/view?usp=sharing
Hi, is it possible to use the AksIM-2 encoder over SPI on the aux port? If not, could you tell which communication type is supported for RS422? There is Asynchronous serial or Binary synchor-serial as options on the website. Thank you. Great product and videos btw! Keep up to good work :)
I understand the Hall effect , RLS absolute encoder, and Quadrature incremental encoders are used to keep track of position, but how is the commutation done? Is that all sensor-less, i.e. it uses just the back-emf of the motor? Also, is a BLDC motor a subset of a servo motor? For example, if a brushless motor has the encoders and electronics for commutation then it's a servo motor? I'm interested in learning control-loops (PID, model-based, etc).. eventually do robot applications, something like that of peng-shihui's ONE robot. Do you have any tutorials or online-courses that you'd recommend? For example, Arizona edu has a nice AeroPendulum project that uses Processor/Hardware-In-The-Loop.. unfortunately you need Simulink!
For commutation, the relationship between the rotor and stator must be known. Hall effect sensors provide that information coarsely for a motor of any number of poles. Absolute positioning sensors can also provide that information if the resolution is sufficient to resolve between the poles of the motor. For instance, the absolute magnetic sensor on moteus works fine for motors with up to around 40 or 50 pole pairs. Sensorless approaches can also provide that information, although the most general ones require that the motor be moving at a decent speed to be accurate enough to use, so there is typically an open loop spin-up phase and low speed operation is not possible. Servo motors are any motor, brushless or not, where the output position is fed back into the control loop to reduce the output error. For control loops and practical implementation, many vendors have good information and tutorials. For example Microchip has a wealth of resources, including things like the video "20084 MC2 - How to Succeed in Motor Control". I don't have any specific online courses to recommend unfortunately.
Everything about this video ist very good! Except that ugly solder blob at 14:55 ;-). If i wouldnt be somewhat poor, id send you some money for that effort.
Hello, I am wondering if I can use the AS5048A? I just got some iFlight gimbal motors with this encoder mounted. It comes wired in PWM output mode. I suppose it could be rewired to SPI though.
@@awesjosh Alright, good to know. Funny enough it actually seems to work fine via SPI... I have not even checked the interfaces, they just looked similar so I figured it was worth a try. I am, however, facing the issue with the poor current measurement with the gimbal motor. I read your blog post about switching out the shunts but sadly I only have much larger values on hand (0.1 Ohm is the smallest) and I think that wouldn't work. Btw I am at CBA @MIT Media Lab right now, trying to make use of your controlers for some robotics project :) You happen to in Boston area as well right?
@@kristofpucejdl for gimbal motors you can use a non-current controlled mode for better response: jpieper.com/2021/12/06/voltage-mode-control-for-gimbal-motors/ If you are interested, the mjbots Discord can be an easier way to have back and forth conversation: discord.gg/W4hUpBb And yes, we're based in Cambridge!
I would like to use your design as a mechanical shutter for the light beam. Can you tell me at what maximum frequency the motor can rotate ? What is the stability of rotation ?
The more likely limit in an application like that is maximum acceleration, for which the answer is entirely dependent upon the load. The best I can tell you is to try experimenting and see what is achievable.
I have validated other MPS encoders, like the MA732. In my tests, the AS5047P that moteus now uses provides superior performance, albeit with a larger package size. jpieper.com/2020/08/21/testing-alternate-magnetic-encoders/
@@awesjosh I am surprised that it performed better. I would love to read the write up of those results. I am considering using the MPS encoders and would like to know what your results showed. I know one option I have considered is the MA600 seems to use a different front end tech. My backup option is the Broadcom AEAT-8800 or AEAT-9955 but they are quite costly.
Just realised that you are doing software based quadrature. Is this inturpt based? What is the max edges per revolution pre sec before the motor control performance is affected?
It is interrupt based for the r4.11. You should aim to keep the rate at less than 30k counts per second, although depending upon signal integrity brief periods of up to 2x that are OK.
Hi Josh, For the aksim-2 what did you use as an interface to program the aksim encoder? If additional converters or aux devices from RLS i would like to buy them. I did the assembly with the 3d parts but the encoder flashes red light. I believe I need to program it as you also mentioned in your article. Best
I did no additional programming with the AksIM-2 at all, I get them from the factory and wire up with that circuit (or connect them directly to the moteus-n1). It is probably easier to provide support in the mjbots Discord if you can go to mjbots.com and find it. If not, what moteus board do you have?
The only encoder moteus supports currently that has a 22-bit resolution is the ic-HAUS ic-PZ as shown in this video. However, it is relatively hard to use. The moteus firmware is open source, so you can always add support for any encoder you like yourself.