IMU Module
This is the latest IMU module for the Seaport Systems Modular Monitoring System.
Schematic capture
I designed this board in KiCAD. It has an ST Microelectronics LSM9DS1 9-axis IMU for taking measurements, and AVR128DB microcontroller to handle communications between the IMU and the MMS main board.
I mainly chose the LSM9DS1 because I had used it successfully on past projects and had good documentation from the supplier and community.
This is the first board I’ve designed where I laid out a dedicated microcontroller on it. I was a little intimidated, but it worked out really well. This uses a newer AVR microcontroller that has UPDI on it, which made programming incredibly easy!
Layout
This is a 2-layer board, and definitely the smallest I’ve designed - 35mm across the flats of the hex. I took a lot of care and time to layout my headers, test points, and LEDS.
I used Fusion 360 to design the board profile, and place the headers, then exported DXF files to KiCAD.
I probably started over 5 or 6 times before I was finally happy with the layout.
Assembly + TESTING
I had the boards fabricated and assembled by JLCPCB. I’ve assembled a handful of my own boards before, but figured it wasn’t really worth my time, especially with smaller ICs and SMD components.
The UPDI interface to the AVR microcontroller made programming incredibly simple. I used an AVR SNAP to program and debug through MPLAB IDE.
I wrote a super basic program to pulse the LEDs. In the future these will serve as debugging and status LEDs. I may also use them in combination with the IMU so that the LEDs react to the movement or orientation of the board.