BLISS (Benthic Larval In-Situ Sampler) Notes P. McGill * Pump motor uses an Elmo controller, carousel motor uses a Maxon controller. * Elmo protocol is very simple, like Allmotion EZ-Servo. Maxon protocol is complex and chatty, and consequently needs a decent embedded environment to run on. We'll use a Raspberry Pi 3B+ as a Maxon driver is available for the RPi. * Both motor controllers connect with RS-232. We can use USB-to-232 converters on the RPi's USB ports. One problem is that the Maxon controller driver is hard-coded to USB0, so we have to make sure that its USB-to-232 converter always enumerates to USB0. * Future Technology Devices (FTDI) part number USB-RS232-PCB will work. * Can control bit rate of USB serial ports with stty -F /dev/ttyUSB0 9600 * One possible way is to assign aliases to the ports as shown here: https://www.domoticz.com/wiki/Assign_fixed_device_name_to_USB_port This needs testing and may or may not work for our case. * We want to bring out the RPi's console serial port, but we'll need a TTL-to-232 converter since TTYS0 is at 3.3 V logic levels. We can use small boards I found that have an SN75C3232 RS-232 interface IC on them. Board's origin is unknown, but I drew a schematic which is titled "RS-232 to TTL Converter" that is in project documentation. * Need to control power to both motor and their controllers through relays. In pump testing without filters, optimum flow rate is about 60 liters/min, which consumes 10 W. At 24 V, this is only 417 mA, so small relays will work. We can use RPi relay board found here: https://www.amazon.com/gp/product/B01G05KLIE/ Specs say boards can handle 5 A, but relays on board are 10 A. Possible limitation of trace width on PCB, which could be beefed up with bus wire, but not necessary for our application. Silkscreen for GPIO pins on relay board is wrong (perhaps older version). Here's the correct mapping: Relay 1 - GPIO26 Relay 2 - GPIO20 Relay 3 - GPIO21 Relays can be controlled from Linux command line as follows # first set up pin as output echo "26" > /sys/class/gpio/export echo "out" > /sys/class/gpio/gpio26/direction # turn relay on (note inverted logic!) echo "0" > /sys/class/gpio/gpio26/value # turn relay off (note inverted logic!) echo "1" > /sys/class/gpio/gpio26/value * Controller housing is 4 inches ID * For testing I reserved a static address with IS, which is 134.89.10.98 or bliss.shore.mbari.org