onehorse
Well-known member
I finally got around to designing and testing a MPU9250+MS5637 add-on for Teensy 3.6. It was a challenge to design a board with a 2 x 5 pattern of pads rather than the 2 x 6 pattern available on the Teensy 3.1/2. I kept the board two layers since I wanted to take advantage of the 0.8-mm-thick pcb option available at OSH Park for easier mounting. I used low-temperature solder paste and a hot air gun to assemble and solder the board to the Teensy 3.6. The board looks like this:
and when mounted onto the Teensy 3.6 it looks like this:
I verified the ADO address pin and the interrupt work as expected. I designed the board to use I2C only even though it would be possible (but challenging on a small 2-layer board like this) to wire it for SPI instead. I2C at 400 kHz is plenty fast for anything I would do with these sensors. A simple sketch configures the sensors, reads the data, performs the Madgwick (or Mahony) sensor fusion and outputs everything to the serial monitor.
At 72 MHz I was getting a 5 kHz fusion rate with the open-source Madgwick filter. The fusion rate is dominated by either the magnetometer polling every loop cycle (no mag interrupt on the MPU9250) or the pressure sensor, I am not sure why it isn't faster. More interestingly for me is the current usage, which came in at about 41 mA. I am interested in very low power applications of such sensor fusion engines and I have been working with the STM32L4 to get there:
here in two new formats. A Teensy 3.2-sized version using the STM32L433 we call Butterfly and a 0.6" x 1.1" board using the STM32L432 we call Ladybug. The STM32L4 runs the Madgwick filter with a similar MPU9250+BME280 add-on (on the Dragonfly board) at about the same speed but uses ~16 mA at 72 MHz to do so. The STM32L4 has a rich variety of low power modes and we are working out the API for the Arduino core to access them. The goal is to be able to use the STM32L4 to manage sensors, GPS, wifi and/or BLE and keep the average power usage well below 1 mA to allow months-long operation with a small LiPo battery. This is very challenging with the STM32L4, and nigh on impossible with the Teensy 3.6.
and when mounted onto the Teensy 3.6 it looks like this:
I verified the ADO address pin and the interrupt work as expected. I designed the board to use I2C only even though it would be possible (but challenging on a small 2-layer board like this) to wire it for SPI instead. I2C at 400 kHz is plenty fast for anything I would do with these sensors. A simple sketch configures the sensors, reads the data, performs the Madgwick (or Mahony) sensor fusion and outputs everything to the serial monitor.
At 72 MHz I was getting a 5 kHz fusion rate with the open-source Madgwick filter. The fusion rate is dominated by either the magnetometer polling every loop cycle (no mag interrupt on the MPU9250) or the pressure sensor, I am not sure why it isn't faster. More interestingly for me is the current usage, which came in at about 41 mA. I am interested in very low power applications of such sensor fusion engines and I have been working with the STM32L4 to get there:
here in two new formats. A Teensy 3.2-sized version using the STM32L433 we call Butterfly and a 0.6" x 1.1" board using the STM32L432 we call Ladybug. The STM32L4 runs the Madgwick filter with a similar MPU9250+BME280 add-on (on the Dragonfly board) at about the same speed but uses ~16 mA at 72 MHz to do so. The STM32L4 has a rich variety of low power modes and we are working out the API for the Arduino core to access them. The goal is to be able to use the STM32L4 to manage sensors, GPS, wifi and/or BLE and keep the average power usage well below 1 mA to allow months-long operation with a small LiPo battery. This is very challenging with the STM32L4, and nigh on impossible with the Teensy 3.6.
Last edited: