Hooking up External Devices to the E-Stop through Stop Signal

My group’s Amiga add-on has a high-voltage linear actuator that controls the angle of a plow. When operating, our goal is to have the linear actuator shut off with the E-stop when it is pressed without turning off the controlling computer (an Arduino) attached to the system. How are the brain and the camera display told that the E-stop has been pressed? With this information, we could relay that to our linear actuator.

Thanks in advance!

Hi Carl,

You can get the AmigaControlState (which includes E-stop state) from the canbus service by parsing the CAN messages that contain an AmigaTpdo1 message.

The utility parse_amiga_tpdo1_proto will filter out all other CAN messages for you, returning either a parsed AmigaTpdo1 object or None for all other CAN messages.

See: farm-ng-amiga/packet.py at main · farm-ng/farm-ng-amiga · GitHub

You can base this off of the stream_canbus method in the Virtual Joystick Tutorial.

More specifically, see: 02 - Device Streams | Farm-ng Developers

Here we display the AmigaControlState in a kivy Label widget, but you could instead use it to trigger your action.

NOTE: The e-stop state can be triggered in the dashboard firmware under other circumstances (e.g., a damaged pendant, a faulty motor controller, etc.), which would appear the same to the brain if you are basing it off of parsed canbus messages. If you want to exclude these e-stop conditions and only look for when the physical e-stop is pressed, you will need some component to detect this electrically and we’ll need support from the hardware team.

– Kyle