Three PCB boards

A project log for Aruna - ROV

Modular ROV for underwater exploration, discovery and monitoring

Noeël MoeskopsNoeël Moeskops 07/11/2020 at 06:270 Comments

Apsu PCB Design

Since the beginning of the project I wanted to create a PCB that houses the electronics of the project. This was later further motivated by the big rats nest and space limitations of the prototype board I was using. Some wires kept going out mid dive duo to the 2.54mm pin-headers not being really movement friendly.

Current prototype board wiring

I also wanted to add extra sensors for finer movement control of the ROV. Because currently the device is blind and deaf to its surroundings. So it is required to do all the steering, calibrations and adjustments manually. I choice to fix it in my next iteration of the project by designing a PCB with the follow features:

For all things concerning power I decided to create a separate PCB with:

Here is a complete block diagram breakdown of the two PCB:

Block diagram of Apsu and power board

Apsu board

Apsu board front 3D

I originally wanted to create the board with a naked ESP32D (U1) chip, without the shell that contain the flash and a crystal and such. But I got intimidated by the data-sheet and the complexity that the ESP32 requires to operate. So as inexperience as I am, I decided to go with the ready to use ESP32-WROOM.

The IMU sensors are formed by an LSM6DOX (U6) made by IT controlled over I²C for 3D accelerometer and 3D gyroscope. The compass is also from ST; the LIS2MDL (U5) also controlled with I²C. Picking these chips was no easy task as I originally wanted to have the boards fully hand soldered. But IMU-type chips are rarely that big, so I instead went with the highest accuracy/price combination that was also highly available and well known to make it easier to write drivers for.

JTAG capabilities are of course an absolute must, especially since I have not yet created drivers for 90% of the IC’s attached to the ESP32. 1.27mm pin header (J2) where chosen because big 2.54mm simply would not fit.

Expansion port

To keep the project modular I designed an expansion port that can daisy chain to as many boards as you want.

RS485 is brought by a MAX485 (U8) chip, uses J13 for outboard A and B. short J12 if it's the end node to connect the 120Ohm resistor between A and B.

Temperature, Humidity and in-hull pressure is all measured by a BME280 (U7) by Bosh, communication over I²C. The humidity and in-hull pressure are used to detect hull breaches. Because the air pressure will rise when the hull is breached and the humidity will also rise. Having multiple redundant ways of measuring something critical as a hull breach is important as it increases safety of the device.

The water-pressure outside the ROV is measured using the cheapest water-proof pressure sensor I could find: “EBOWAN DC 5V G1/4 Pressure Transducer 1.2 Mpa” with the ¼ A4 of documentation available on Aliexpress it is just enough to drive it (hopefully). Unfortunately this sensor requires 5V, while all my other components are on +3V3. So I have made a 3-5V boost converter specially for this sensor (FAN3860 (U4)). Together with a voltage divider to read the analogue output of the device.

water pressure sensor schematic

The water temperature is measured by an even undocumented sensor as the pressure sensor. The YC100665 a thermistor connected to J7. The thermistor is measured by a MAX6682 (U10) to fix self-heating and filtering for the thermistor. Communication is done with SPI and using a MC74HC (U9) for Slave-select multiplexing.

Thermistor schematic

The temperature of the battery, ESC’s and possible something else in the future is being measured by DS18B20 (J9-11) sensors.

The BLHeli motors (capacity of 4) will be connected to J5. The SimonK motors are operated through an PCA9685 (U2) I²C to PWM. Four motors can be connected through J4 and another 4 with the 2.54mm pin header (J14).

The water level is measured using a ADS1015 (U3) I²C ADC. The water level sensors are connected to J15 and J8.

This is still a development board, so extra things may be connected with pin header J14. That functions as a breakdown board for unused, but useful features of the IC’s on this board.

Breakdown header

Power board

power board front 3D

Next to the main Apsu board I also developed a board to manage the power of the ROV. This boards converts 12V into 3.3V and monitors the voltage and current levels. The power comes in though XT60 connector J1 it then follows it way though a fuse, and is fed to J2-4. A LM25955-3.3 (U1) is used to convert 12v to 3.3v. And send on the bus using J5 with the same layout as the Apsu board. The current and voltage is measured using an INA2918A (U2) this sensor communicated the result back to the main board using I²C.

Power board schematic

Prototype board

prototype board

As shown in the top picture it can be quite a hazard to create prototypes in the tight space of a ROV. So for future prototyping I thought it would be nice to have a prototype boards that fits exactly in the ROV and already distributes the most commonly used pins on the bus: GND, +3V3 and I²C.

Some more images

Apsu board:

Apsu front
Apsu back
Apsu back 3D

Power board
power front
Power back 3D
power back