Electrical Architecture

Guppy’s electrical architecture is composed of harnesses connecting COTS sensors with our computer and several custom PCBs designed and assembled in-house by our electrical engineering team. Analysis, schematics, and renderings for these boards can be found on other pages here. Aside from the PCBs, the architecture is broken up into the CAN bus, ESCs, sensors, batteries, and connectors.

  1. CAN Bus: Our robot is divided cleanly into two separate hulls: Actuation and Compute. For each computer or chip on the submarine to communicate between the tubes with each other, we use a CAN bus. One terminus of the network is at the LattePanda Sigma computer in the Compute hull, and the other is at the last custom PCB in the Actuator hull. Our custom PCBs use CAN, and are nodes on this network. This enables us to run only one data wire between the hulls, saving on penetrator space while leaving room for future development. If we add additional boards or devices to a tube, we only need to splice into the existing CAN pair to gain full access to the entire network. We give each message type on the bus a unique identifier, bitmasked to the board it is related to. This system lets us quickly identify which CAN packet originates from where, and allows future extension of the bus.

  2. Electronic Speed Controllers (ESCs): We use ReadyToSky 35A ESCs running BLHeli_S firmware. These motor controllers are connected to our PCB using a PWM daughterboard, which stacks on the base custom PCB. For more information on this setup, see the other pages. The ESCs are connected to eight T200 thrusters using soldered inline bullet connectors.

  3. Sensors: Several of Guppy’s sensors are COTS sensors we have either bought or inherited from previous teams. For an IMU, we have a sponsored VN-100 from VectorNav Technologies which provides us with high-resolution inertial measurements and orientation data. We also use a WaterLinked DVL-A50 as our Doppler Velocity Log, which provides us with very accurate relative velocity data, as well as dead-reckoning position estimates. Both these sensors communicate directly with our single-board-computer, the LattePanda Sigma from DFRobot.

    Additional sensors include two rotary switches from Blue Robotics and bolt-style reed switches from McMaster Carr which serve as generic GPIO inputs and power switches. We also incorporate a Blue Robotics High-Resolution Depth/Pressure sensor for accurate Z-axis measurements. We also rely on several Logitech USB webcams, as well as several USB and Ethernet Flir/PointGrey high resolution cameras for our vision system.

  4. Batteries: We are using 5S Lithium Polymer (LiPo) batteries for Guppy, primarily because we already had them on hand from previous members and they were held correctly at storage charge. Our main competition batteries are 22Ah 40C 5S LiPo batteries from MaxAmps, and we also use a 5S2P 12Ah battery from ThunderPower as well, for testing and bench tasks. This capacity allows extended testing periods without needing to change batteries. There were initially concerns at running the T200 thrusters above their rated maximum voltage of 20V, although we did extensive research and found historically that this has not been an issue, and we did not encounter any issues in our testing. The batteries plug into a FlipSky anti-spark switch which serves as our main on/off relay for the sub.

  5. Connectors: We use several standard connector types on our submarine. JST SM connectors were used for all inline splices, such as CAN connections from and to each endcap and through-penetrator Ethernet splices. Locking JST GH connectors are used on all PCB connections, such as for CAN, power, and PWM outputs. We use XT-30 connectors for all 12V power, XT-60 connectors for inter-hull power, and XT-90 for our main battery input. The electrical wiring and architecture of Guppy is extensive and cannot be represented fully here. Full architecture and wiring diagrams can be found in the tabs on the side, and in our Technical Design Report.