scalpelspace.github.io

Momentum: GNSS, 9-DOF IMU, Barometer Sensor Shield

This document also applies to Momentum Lite which the same board design, with reduced components (no GNSS).


Table of Contents

1 Overview

1.1 Bill of Materials (BOM)

Manufacturer Part Number Manufacturer Description Quantity Notes
STM32L432KC STMicroelectronics 32-bit MCU 1
CP2102N-A02-GQFN24R Silicon Labs USB 2.0 to UART Interface 1
BNO086 CEVA Technologies, Inc. 9-DOF IMU 1
BMP390 Bosch Sensortec Barometric Pressure Sensor 1
TJA1057BTK NXP USA Inc. CAN Bus Transceiver 1
SAM-M10Q u-blox RF Receiver Galileo, GLONASS, GPS 1
WS2812B (Various) PWM Addressable RGB LED 1

Note: Momentum was originally designed for the BNO085, however hardware files were updated to reflect use of the newer BNO086. Firmware is cross compatible for both the BNO085/6, however source files maintain the use of the "BNO085" naming.

1.2 Block Diagram

momentum.drawio.png


2 Board Specifications

2.1 Connectors

Connectors fixed by hardware (PCB traces or the connector itself).

Connector Ref Description
Tag-Connect TC2050 J1 SWD programming/debug connector
BOOT0 jumper J2 Open for run flash memory (pull-down on open)
USB-C J3 USB-to-serial programming/debug, secondary 5 V source
CAN1 J4 Pin 1: CAN1 High, Pin 2: CAN1 Low

2.2 Switches & Jumpers

User controllable hardware and/or firmware driven inputs.

Switch/Jumper Ref Description
Sensor Hub MCU reset button SW1 Generic 6 mm TH button, push to reset
5 V bypass JP1 Closed = Short protection (schottky) diode pads, open = enforce schottky diode
Level shifter V IO JP2 1 + 2 closed = 5 V, 2 + 3 closed = 3.3 V
BOOT0 DTR bridge JP3 Closed = CP2102N DTR BOOT0 control, open = Manual BOOT0
BNO086 clock select JP4 Open = crystal, closed = external/internal
BMP390 I2C address JP5 Open = 0x76, closed = 0x77
Interface SPI CS pin select JP6 1 + 2 closed = CS1 (D10), 2 + 3 closed = CS2 (D8)
Interface 3.3 V output JP7 Open = no output, closed = 3.3 V LDO output bridged
Interface NRESET output JP8 Open = no output, closed = STM32 NRST bridged

2.3 Batteries

Onboard battery supplies.

Battery Ref Description
CR1220 battery cell BT1 u-blox GNSS RTC and ephemeris RAM

2.4 LEDs

LEDs used to show board status and/or user controllable.

Test Point Mark Description
UART TX Silkscreen: "TX" Green LED: blinking = transmitting data
UART RX Silkscreen: "RX" Amber LED: blinking = receiving data
5 V Supply Silkscreen: Lighting bolt Amber LED: on = 5V pin, off = (only) USB-C
WS2812B LED None RGB addressable LED

2.5 Test Pads

Test Point Ref Description
GNSS NRST TP1 u-blox GNSS NRST net
GNSS RX TP2 u-blox GNSS RX net
GNSS TX TP3 u-blox GNSS TX net
WS2812B LED PWM TP4 DOUT from onboard WS2812B

2.6 Power Supply

The board can be powered by either of the following methods:

  1. 5V pin via the Uno-style interface.
  2. Onboard USB-C connector.

2.6.1 5 V Power OR Switch

The 5 V supply is controlled by an OR-ing power switch (TPS2116DRL).

2.6.2 Optional 5 V Pin Supply Protection

The 5V pin supply can be optionally protected with diodes (not installed by default). To enable protection, follow these steps:

2.6.3 3.3 V LDO Supply

The 3.3 V supply is managed onboard by a dedicated 5 V to 3.3 V LDO, independent of any connected board.

If the user wishes to use the Momentum dev board's 3.3 V supply as an output supply for low current applications, the Interface 3.3 V output jumper can be bridged, allowing for 3.3 V to be supplied from the onboard LDO.

Warning: This modification should be evaluated for each specific application. Many development boards provide their own regulated 3.3 V output on the Uno-style 3.3V pin. Connecting this pin in parallel with another 3.3 V supply can cause contention between the two outputs, potentially resulting in damage or unstable operation.

2.7 SPI Interface

All SPI pins interfacing with external boards are level-shifted. By default, the SPI bus is shifted to 5 V. However, it can also be shifted to 3.3 V via the Level shifter V IO 3-pad jumper.

See section 2.8 Level Shifter for details.

The SPI CS pin can be reassigned between Uno-style pins D10 (default) and D8 via the Interface SPI CS pin select jumper, allowing flexibility in resolving pin conflicts.

2.8 Level Shifter

Note the level shifter interfaces with the SPI singals (CIPO, COPI, SCK and CS) as well as the WS2812B PWM data line. Adjusting the Level shifter V IO 3-pad jumper selects between 3.3 V and 5 V.

When set to 3.3 V, note that the WS2812B LED may become unstable. According to the WS2812B datasheet:

  1. DIN high >= 0.7 * VDD
  2. DIN low <= 0.3 * VDD

A 3.3 V logic-high signal may not satisfy the DIN high threshold, potentially causing reduced or unreliable functionality in this configuration.

2.9 STM32L432KC Flashing

The official STM32L432KC Momentum firmware is managed here: momentum.

The STM32L432KC can be flashed in 3 different ways:

  1. SWD via Tag-Connect TC2050 interface.
  2. Hands-free UART bootloader via USB-C (CP2102N USB-to-UART).
  3. Manual BOOT0 jumper with UART bootloader via USB-C (CP2102N USB-to-UART).

For use of the USB-C UART bootloader interface, the custom flashing software pyblasher is highly recommended.

All three options are available by default, however it is suggested to use options 1 and 2 based on user preference.

Option 3 is applicable for users who wish to use the USB-C for as both a serial and UART bootloader interface. In this method, the through-hole BOOT0 jumper must be manually bridged to assert BOOT0.

See section 2.10 USB-C Serial Interface for details.

2.10 USB-C Serial Interface

The USB-C interface connected via the CP2102N USB-to-UART is primarily designed as a UART bootloader flashing interface, however it can also be used as a serial interface for simple communication to a desktop computer.

Due to the design for hands-free flashing, the STM32's BOOT0 is controlled by the CP2102N's DTR pin. Consequently, when a serial port is established BOOT0 will be raised high, entering the bootloader. To prevent this behaviour, the BOOT0 DTR bridge jumper must be cut, allowing for USB-C serial communication without triggering the bootloader.

If the user wishes to still use the UART bootloader with this modification, the BOOT0 must be asserted manually to enter the bootloader via the 2-pin through-hole BOOT0 jumper.


3 Schematics

Download PDF: momentum_pcb-schematic.pdf.

momentum_pcb-schematic-1.png momentum_pcb-schematic-2.png momentum_pcb-schematic-3.png momentum_pcb-schematic-4.png momentum_pcb-schematic-5.png momentum_pcb-schematic-6.png momentum_pcb-schematic-7.png momentum_pcb-schematic-8.png


4 CAD 3D Model

Download STEP: momentum_pcb-3D.step.