Hello everyone! I recently found three robotics actuators in an e-waste bin labeled “broken”. I couldn’t resist grabbing them to see if they were salvageable and I think they might be. This was the only info I was able to find on the motors based on part numbers in the silkscreen of their driver PCBs: https://www.foxtechrobot.com/pytcher-a4310-p2-36-bionic-robot-joint-motor.html#.
From visual inspection, the built-in drivers consist of:
a daisy-chainable CAN bus and power connectors,
a STM32F405 MCU,
a magnetic field angle sensor mounted under the shaft and another encoder (which may be optical though I can’t quite tell based on what I can see on the boards),
the a controller chip (can’t read the part number) and the usual 6-FET driver circuit,
some current sense amps
switching and linear voltage regulators
Some of these chips have visible burn/scorch marks.
The motor coils seem electrically intact and the rotor spins by hand without any gear-grinding noises or other alarming sounds.
While I think I could try to debug and fix the existing drivers, Foxtech Robotics doesn’t seem to provide their control software without contacting them and I can’t get any signs of life from the on-board STM32 to re-flash a custom firmware. I’m sure there are plenty of hacky ways to get the existing boards working, but I’d like to find the fastest solution.
My Question: What are some easy-to-use hardware solutions that could drive these motors to their stated specifications? I’d like something with a clear software interface. I’d like to avoid having to write any of my own drivers. It would be great if it could take input from external encoders and magnetic position sensors, too.
(I’m very new to simpleFOC and the popular hardware that people use for BLDC motor control. I have experience designing motor drivers from scratch but would prefer to find an off-the shelf solution with a nice software interface.)
What a nice find! Look at the price of those actuators!! Definitely a cool project to get them up and running.
Do you have any electrical specs in terms of the voltage and power, so we can estimate the currents you will need to drive the motor? The burn-marks on the driver may indicate that the original driver met a situation it couldn’t deal with, in terms of current capacity…
My advice might be to approach it in two stages:
Start with a “prototype” solution. You could use a SimpleFOC shield and a Nucleo board, or one of the ESP32 based driver boards from AliExpress. You would pair this with some magnetic sensors (also available quite cheaply) and wire the whole thing up to test that the motor is actually working, and suitable to your needs.
In a second step you could create a new driver PCB that fits into the space of the original driver, and gets rid of all the wires and bulky size of the prototype setup.
For intitial testing you will only need the magnetic sensor that is mounted directly on the motor shaft. The second sensor is for the output shaft position, and may be interesting to add for your application’s needs, but it is not needed for the motor control.
I am not sure what the back of the motor looks like, and where the magnet is mounted on the shaft. Was the original magnetic sensor mounted on the back of the driver board?
Would you mind sharing some close-up pics of the driver and the inside of the motor-driver casing, so we can see what connectors are there, where the magnets are, and maybe what type of FETs and driver ICs were used?
(I’ll increase your trust-level so you can post some pics).
Hi, thanks for the quick reply! It was definitely a lucky find.
The motors are at my office currently and I didn’t take pics when I initially disassembled them, but I can upload some in a few hours.
The only electrical specs are the ones found on the webpage I linked (https://www.foxtechrobot.com/pytcher-a4310-p2-36-bionic-robot-joint-motor.html#, scroll down to the very bottom). Nominal voltage is 24 V and nominal current is 6.1 A with a peak of 18 A. I’m hoping to find an off-the-shelf board that is compatible with these specs.
The magnetic sensor is indeed mounted on the back of the driver board, coaxial with the shaft. It is a TLE5012B. There is another small board that is mounted off-axis on the motor presumably to host the other encoder, which I cannot remove. It connects to the main driver board via some fine-pitch board-to-board connector.
I’ll look into an STM-based solution since I’m used to working with those microcontrollers. Do you have any specific part recommendations?
Eventually I will try to make a form-fitting PCB, as you’ve suggested.
I’d maybe take a look at the Moteus controller. It’s not SimpleFOC (but I guess you could run SimpleFOC on it, but it also has its own firmware), but it’s not too expensive, and should be able to do what you need.
Otherwise, for the 18A peaks and 6A continuous you could look on AliExpress for one of the DRV8302 boards, they can handle these kinds of currents and would work with any Nucleo board, for example.
For the STM MCU I’d recommend the G4 series like the G431 or G474 - both available cheaply as Nucleo64 boards.