Skip to content

Safety

STEPFOC is a bare circuit board that drives a motor from a supply of up to 29 V. Read this chapter before you connect anything; the few rules here are the ones that destroy a driver, a motor or a finger when they are ignored.

Electrical

Supply polarity

Reversing the polarity on DC+ and DC− destroys the driver at once. Check the polarity of every power cable before you plug it in, every time.

Cable orientation on the daisy chain

The CAN and power cables that link one driver to the next are keyed by their orientation, not by their connector: a cable plugged in the wrong way round puts the supply on the wrong pins and destroys the driver. Use the cables from the Source Robotics shop, or make yours exactly as shown in Power and the CAN daisy chain.

UART is 3.3 V

The UART port runs at 3.3 V. A 5 V serial adapter destroys the board. Use a 3.3 V adapter, such as the one from the shop.

Supply voltage

12 to 29 V DC. The driver raises a Vbus error below 9 V and above 29 V (#Vmax, 29000 mV after #Default), and 29 V is also the hardware limit: do not connect a supply that can rise above it, and allow for the voltage a decelerating motor pushes back into the supply. A bench supply with a current limit is the safest way to start.

Do not disconnect a running motor

Never unplug a motor, or a power cable in the daisy chain, while the driver is powered. The inductive kick of the coils and the arcing at the connector damage the driver stage.

Static electricity

Static electricity damages the microcontroller, the encoder chip and the driver stage. Unplug the supply and touch earthed metal before you handle the board, and hold it by its edges, away from the chips and the pads.

Mechanical

Moving parts

A calibrating or running motor turns without warning, in both directions, and the stepper in position mode pushes back hard against a hand. Keep fingers, hair and cables away from the shaft and whatever is mounted on it, fix the motor to the bench before the first test, and test without a load on the shaft.

A powered motor can move with nobody at it

The driver moves its motor whenever a command arrives, over UART or from any host on the CAN bus, and keeps following the last one. A speed command goes on turning the motor after the program that sent it has crashed or its cable has come out, unless the watchdog is set (Stopping the motor). Before you reach for the motor or the mechanism it drives, put the driver in idle (#Idle, Send_Idle) or switch the supply off.

The encoder magnet

The magnet sits about 1 mm above the encoder chip. A magnet that touches the chip, or sits far too close, can damage the microcontroller; a magnet too far away gives a wrong position. Mount it as described in The encoder magnet.

Hot motor and driver

A stepper running at its rated current gets hot enough to burn, and so do the driver's chips and the board around them. Switch off and let both cool for a few minutes before you touch them. Set the current limit for your motor (Current limit and loop tuning), use the thermistor, and give the driver airflow when it runs near 2.8 A. #Ilim is clamped to 2800 mA, but the current limit of Send_Limits over CAN and the current of a gripper move are used as sent: a host must keep them within the motor's rating and 2800 mA.

Stopping the motor

  • Send_ESTOP over CAN, or #Idle over UART, stops the motor at once; the E-stop error stays until it is cleared.
  • Cutting the supply stops the motor as well; a stepper then holds nothing, so a vertical axis drops.
  • The watchdog (Send_Watchdog) stops the motor by itself when the host stops talking.

Nothing on the driver is a certified safety function. A machine that can hurt someone needs an emergency stop that cuts the motor supply, independent of the driver.

Firmware updates and programming

When you connect a programming adapter to the JTAG connector, disconnect the motor supply and the UART adapter first. Updating over the bootloader needs no adapter; see Firmware.

Liability

STEPFOC is sold as a component for people who build their own machines. Its hardware designs, firmware and this documentation are under development and may contain errors. Whoever builds a machine with it is responsible for its safe design, assembly and operation.

Comments


Found a mistake on this page? Edit it on GitHub · Report it · Get help · This page as Markdown · llms.txt · The whole manual as PDF