Skip to main content
Tests loose MyActuator and Damiao motors on a test stand. Mount each motor so its output turns freely. Never run it on an assembled arm. Name the CAN interface the motors are on with --buses, such as can0 on a Raspberry Pi with a CAN adapter. To test several buses at the same time, separate their interfaces with commas. Each bus holds its own set of --count motors. It runs three steps in order on each bus: A motor fails when it reports a fault, gets hotter than --max-temp, stops answering or doesn’t reach a target in time. The rig switches that motor off and keeps testing the others. At the end every motor returns to 0° and switches off, and a table shows each motor’s result. Every move is logged to a CSV file in ~/.almond/burn-in/. The command exits with status 1 if any motor failed.

Before you start

  1. Run axol rt.install on the Pi.
  2. Bring up the CAN interfaces at 1 Mbit/s. With the Axol hub, run axol can.setup. With another adapter, run sudo ip link set can0 up type can bitrate 1000000.
  3. Disconnect every motor from the buses. The assign step checks that a bus is empty before you connect its first motor.

Run it

When asked, connect the next motor and press Enter. With several buses, each prompt names the bus to connect it to. Leave the motors you already connected in place. Press Ctrl-C at any time to stop and switch every motor off. You can also run it from the control panel. Open Diagnostics, then the Motor burn-in card under Tests. Pick the bus from the list of CAN interfaces on the host, or type several separated by commas. Press Continue at each prompt. To run some steps again, pass --steps. For example, restart the test without assigning IDs again:

If a step stops

  • Motors still answer before the first motor. The step lists them. Disconnect them and press Enter, or skip the assign step with --steps zero,cycle.
  • No new motor answers. Check the motor’s power and CAN cable. A motor with the same type and ID as one already connected can’t be found. Set its ID on its own with axol motor.set-can-id, then connect it again.
  • More than one new motor answers. Disconnect all but one, then press Enter.
  • A motor doesn’t read zero after zeroing. Power-cycle the motors and run --steps zero,cycle.
  • A Damiao motor’s position range is too small. Set its PMAX to 12.5 with axol motor.set-config.
The zero step uses the same rules as arm zeroing. A MyActuator motor that turns the reverse of the fleet gets Change Motor Direction turned on before its zero is saved.

Log columns