With the AUV8 mechanical design, the electrical components have changed around the submarine.
- The front part has both cameras, the hydrophones board and the ethernet switch.
- The back part has the backplane power and the ESC manager.
- The middle part is separated in 3. The bottom has the USB hub and IMU. The middle has all the cables and the RS485 adaptor board. Finally, the top has the IO board close to the underwater connectors.
The 2 last parts that are left and right of the middle can be switched around without any issues.
- At the left, there is the DVL and a 16000mAh batteries from MaxAmps.
- At the right, there is the PC and a 16000 mAh batteries from MaxAmps.
Here is a top view of the electrical configuration of the AUV8 :
Since the space is now a lot less available, the new boards have been redesigned with this new constraint in mind.
With the new submarine, we decided to change the microcontroller for our custom boards. We used to have an LPC1769 that works well but had a lot of limitations. There were a few technical caracteristics and the motivation for change. Our choice has stopped on the STM32F413VG. Another 100 pins microcontroller that has all the best features of the LPC and much more. Here are a list of the basic caracteristics of the STM32 :
- Lower price
- Faster overall speed
- Added functionalities
- Separate ADC
- Amount of timers
- Supply voltage
The STM32 microcontroller family has others benefits for our team. There is a really good online support and a application called STM32CubeMX that help us in the design of our boards. We did not use it to generate our code, just for an approbation of the pinout.
With the change of microcontroller, we had to change the software part. We decided to use VSCode with Platformio for the IDE, but this is covered in the Firmware section. At the beginning, we wanted to use STM32CubeMX to generate our code but the files that were generated did not compile and we couldn't get it working in the amount of time that we had. This is why we decided to go with the MBED library. MBED is an online library that uses C++ language. It's much easier than HAL or the LPC library that we had before. There is a lot of documentation and a community that can help in case of problems. Also, we didn't have to produce any exterior library to manage the IO pins or the PWM. This was all taken care in MBED. The only library that we had to create was the RS485 library to communicate with the Xavier.
With the MBED library, we decided to integrate the RTOS(real time operating system) functionality. In our software, we have multiple threads on a microcontroller that are waiting for an RS485 command before doing the rest of the program. All the threads are declared in the main and attached to a function. The priority of all the thread have to be Above Normal or higher(see documentation of MBED RTOS for more information).
Each thread function is made as the image following :
The most used voltage inside the submarine is 12V. Since our batteries are 16V Lipo, we use a 15 amps DCDC converter for 16V to 12V. The other voltages used by the boards we make are 5V and 3.3V. In AUV7, the boards convert the 12V into the 5V and 3.3V with linear regulators. They are not efficient and the output current is low. Also, to convert the 12V to 3.3V, some boards use 2 linear regulators in series. This is not a great solution.
We decided to use DCDC converters as much as possible on the boards for AUV8. We get a better efficiency and reduce the current draw from the batteries.
One of the objective of the new submarine is to get a longer test time with the same battery size. To achieve that, we had to reduce the power consumption of our boards to increase battery life. One of the solution was to use DCDC converters to linear regulators.
Our second solution to reduce the power consumption was to reduce the number of LEDs. This is exceptionnaly visible on the power supplys. The AUV7 power supplys consume approximately 0.18 amps per boards just being plugged in. With removing all the less usefull LEDs from the boards, we achieve a consumption of 0.09 amps (to verify).
For communication, the AUV7 platform uses 10 pins flat cables for the RS485 communication. This has given us some issues since the cables can easily be cut by just putting a rack in an extrusion. Also, they are a pain in the ass to make. The connectors are extremely hard to put since they have to be exactly aligned with the cable and they can easily short out the cable if it's not done in a quiet environment. The connector on the flat cables doesn't have any locking mechanism.
With the new submarine, we changed the cables to ethernet flat cables. They are available everywhere and the length can be custom made to suit our needs. As we designed the new AUV, we made sure this time that all the connectors had the same pinout. We have standardised the communication connectors. We have to connectors, one vertical and one right angle.
Here is the pinout description :
Ground and 12V are only used for the killswitch board.
¶ Standard Connectors
With the RJ45 connectors, we decided to standardise others connectors around the submarine to limit the number of different cables inside the submarine.
Here is the list of connectors :
- JTAG
- 12V connectors
- ESC power connectors
- USB C
The AUV8 platform is much smaller than the AUV7. In that case, we had to reduce board size for all our boards. Also, since all the power supplys are in the same place instead of being in seperate extrusion. For example, they were 8 ESC interfaces around the AUV7 because the ESCs were dispatch as close as possible of the motors. The new submarine has now the 8 ESCs in the same area. The board has been design to put 8 ESC interface into one boards. That greatly reduce the space used by the board.
One of the main concern of the software team with the new boards was having to change a lot of the providers to make the new boards in the submarine. To make sure that the change wasn't too difficult for the software team, we designed and programed our boards to suit the AUV7 software.
Some tweaks have been made to adapt the new microcontroller to the AUV7 software. The UART communication of the STM32 needs a little more delay to work with the RS485 bus. This could also be an issue with the MBED library.
By : Francis Alonzo
Date : 2020-01-20