Natively Bristlemouth Depth/ IMU sensor built from scratch

The Bristlemouth Pioneer Program has been allowing people to experiment with integrating their own devices with Bristlemouth to work with the Spotter Smart Mooring system, but I’d like to start creating devices that support Bristlemouth natively. I’m a big fan of making marine devices that are simple and robust, and Bristlemouth sockets make it possible to explore design concepts that are much more streamlined.

I’m particularly interested in developing systems that can be used in underwater vehicles like ROVs and AUVs, so the first system I’d like to build is a Bristlemouth Depth/IMU sensor.

This system would incorporate a depth sensor that measures pressure and temperature and uses that information to determine water depth, and an Inertial Measurement Unit (IMU) that has a compass, gyro, and accelerometer for understanding orientation and motion. These two types of sensors are core to just about any underwater navigation system, so having a module that measures both of these things well in a simple, well-built package that talks Bristlemouth seems like a great project to start with. The plan is to design my own PCB that will mate directly with a Bristlemouth Mote (link to schematic PDF at bottom of “Downloads” section, entitled “Bristlemouth_Mote_Schematic.pdf”) using the mezzanine connector the Mote has, and I’ll pot that assembly into a custom machined housing. Both sensors I’d like to use (the Keller PA7LD pressure sensor and BNO085 IMU) communicate with I2C, so electrical and software development for the design should be relatively straight forward.

image

I’m a mechanical engineer, so designing the physical components of this system shouldn’t be to much trouble for me, however I could use some help with the electrical PCB and software design parts of this effort. I’m very happy to share all of my work as open source, so if anyone with these other EE or SW skills would like to help, we’ll be creating something anyone can use or build for themselves.

Please let me know if you’d like to help with this or any other Native Bristlemouth module designs!

6 Likes

Hi, I’m currently using software donated from Autodesk to our Angel Sharks XPRIZE Carbon Team and was watching the tutorials can ask them for help it needed. https://youtu.be/eEdnImVezi8?si=UMt00TQ403QnI0_2

@AngelSharks thanks for the link and sorry for the incredibly long delay. I’ve been really into using KiCAD which also has some great tutorials, but there is certainly a lot to learn in terms of good design principles, etc. Hopefully I’ll be able to sort of ‘wing it’ and then find knowledgeable people who will be annoyed enough with my bad design that they’ll help out of pity!

1 Like

This is starting to get exciting!

My PCB layout skills are somewhat limited, but I recruited the help of @TLAW who’s an electrical engineer as well as a polar safety expert I met while filming OceanXplorers in Svalbard. Together we developed a PCB to support the CEVA Technologies BNO085 Inertial Measurement Unit (IMU) and Keller 7LD depth sensor that would plug directly into a Bristlemouth Mote.

We used KiCAD to do the PCB design because it offers great professional-level capability and is free and open software so anyone can develop with it. Our hope is that by using freely available software, people can easily start making their own PCBs that interface directly with a Mote based on this design which we have shared openly. You can find our (still being tinkered with) design files on GitHub here.

Once the board was designed, we used PCBWay to manufacture the PCBs and we were even able to order a few PCB Assemblies from them with all the components aside from the pressure sensor already mounted to the board. The Keller PA7LD Pressure Sensor is a very unique part that PCBWay didn’t have in their inventory, but since the part is through-hole mounted, it would be easy for us to just attach that ourselves.

We actually ended up doing two spins of the board because the first time around we failed to notice that the PCB design needs to include a hole for the USB-C port on the Mote to stick through when the boards are joined together.

Before attaching the (expensive) depth sensor, we plugged the PCBAs into a powered-up Mote and verified that we were getting ground and 3.3V where we are supposed to and not where we’re not supposed to. Everything looked good, so we went ahead and soldered on the Keller 7LD sensors on our two assembled boards.

The next step will be to write code for the Mote that can talk with the two sensors on our board using the I2C lines they are connected with. This will be the most challenging part of the process for us because neither of us have that much experience with complex firmware development. Writing I2C code for a common hobby microcontroller would be no problem, but writing code on the Mote’s built-in processor requires getting a lot of other bits set up properly.

Tom flew out from Tennessee to meet me at BristleCon and we were able to get some great help setting our programming environment up from @vsowa12 and @matt001k. We’re still in the process of learning how to properly put code on this system to get everything working, but we’ll keep you posted on that process as we go.

5 Likes