2025-10-02 21:13:30 -07:00
2025-09-07 16:32:28 -07:00
2025-10-14 23:52:58 -07:00
2025-10-14 12:18:11 -07:00
2025-05-12 14:33:22 -07:00
2025-04-19 13:58:09 -07:00
2025-06-08 03:01:00 -07:00
2025-04-19 02:42:54 -07:00
2025-06-08 03:01:00 -07:00
2025-10-16 15:52:46 -07:00
2025-05-29 16:56:56 -07:00

Ascent R2 Drivers

This directory contains the driver libraries for the Ascent R2 flight computer hardware components. Each library is organized in its own directory with source files and documentation.

Library Structure

|--lib
   |
   |--ascent_r2_hardware_definition.h    # Centralized pin and hardware definitions
   |
   |--bno055                             # 9-DOF IMU sensor
   |  |--src
   |     |--driver_bno055.c
   |     |--driver_bno055.h
   |
   |--bmp390l                            # High-precision barometric pressure sensor
   |  |--src
   |     |--driver_BMP390L.c
   |     |--driver_BMP390L.h
   |
   |--h3lis331dl                         # High-g accelerometer
   |  |--src
   |     |--driver_H3LIS331DL.c
   |     |--driver_H3LIS331DL.h
   |
   |--sam_m10q                           # GNSS/GPS module
   |  |--src
   |     |--driver_SAM_M10Q.c
   |     |--driver_SAM_M10Q.h
   |
   |--spi                                # SPI bus abstraction layer
   |  |--src
   |     |--manual_spi_bus.c
   |     |--manual_spi_bus.h
   |
   |--w25qxx                             # Flash memory
   |  |--src
   |     |--driver_w25qxx_advance.c
   |     |--driver_w25qxx_advance.h

Driver Components

BNO055

  • 9-DOF IMU sensor with sensor fusion
  • Provides orientation, acceleration, and magnetic field data
  • Supports multiple operation modes including NDOF fusion
  • I2C interface with configurable pins

BMP390L

  • High-precision barometric pressure sensor
  • Provides pressure and temperature measurements
  • Used for altitude determination
  • I2C interface with configurable pins

H3LIS331DL

  • High-g accelerometer (up to ±100g/±200g/±400g)
  • Measures acceleration in three axes
  • Used for launch and impact detection
  • I2C interface with configurable pins

SAM-M10Q

  • GNSS/GPS module
  • Provides position, velocity, and timing data
  • Supports 10Hz update rate
  • I2C interface with NMEA message parsing

SPI Bus

  • Manual SPI bus implementation
  • Provides low-level SPI communication
  • Used by W25QXX flash memory
  • Configurable pins for MISO, MOSI, SCLK, and CS

W25QXX

  • High-speed flash memory
  • Supports standard and quad SPI modes
  • Used for data logging and configuration storage
  • Advanced features including security registers and block protection

Hardware Definition

The ascent_r2_hardware_definition.h file contains centralized pin definitions and hardware configurations for all components, including:

  • I2C bus configuration
  • SPI bus configuration
  • Sensor-specific pins
  • Pyrotechnic channel pins
  • Indicator pins (LED, buzzer)
  • Communication interface pins

Building

PlatformIO will automatically compile these libraries into static libraries and link them into the executable file. Dependencies are managed through the CMakeLists.txt files in each component directory.

For more information about PlatformIO Library Dependency Finder:

S
Description
Repo containing all the drivers for ASCENT.
Readme
1.3 MiB
0 Stars 9 Watchers 0 Forks
Languages
C 96.9%
C++ 2.3%
CMake 0.7%