AMU Library 3.0
C/C++ library for communicating with AMU (Aerospace Measurement Unit) devices
Loading...
Searching...
No Matches
AMU Library

Introduction

The AMU (Aerospace Measurement Unit) Library provides a comprehensive C/C++ interface for communicating with AMU hardware devices over I2C and USB interfaces. This library is Arduino-compatible and includes extensive SCPI (Standard Commands for Programmable Instruments) command support for precise measurement and control operations.

Key Features

  • Dual Interface Support: Both I2C and USB communication
  • SCPI Compliance: Standard instrument control protocol
  • Arduino Compatible: Easy integration with Arduino projects
  • Comprehensive Measurements: Voltage, current, temperature, sun sensor data
  • I-V Sweep Capability: Solar cell characterization functions
  • Calibration Support: Built-in calibration routines with EEPROM storage
  • Auxiliary Functions: DAC output, heater control, LED patterns

Getting Started

Installation

  1. Download the library from the repository
  2. For Arduino IDE: Install as ZIP library
  3. For PlatformIO: Add to lib_deps in platformio.ini

Basic Usage

#include <Wire.h>
#include <amulib.h>
AMU amu;
void setup() {
Serial.begin(115200);
Wire.begin();
Wire.setClock(400000);
// Initialize AMU device at I2C address 0x0B
amu.begin(0x0B);
// Wait for device to be ready
if (amu.waitUntilReady(5000) == 0) {
Serial.println("AMU device ready!");
}
}
void loop() {
// Read measurements
float voltage = amu.measureVoltage();
float current = amu.measureCurrent();
float temp = amu.measureTSensor();
Serial.printf("V: %.3f V, I: %.6f A, T: %.1f C\n",
voltage, current, temp);
delay(1000);
}

Documentation Sections

SCPI Command Overview

The AMU supports over 100 SCPI commands organized into functional groups:

System Commands

  • Device identification and status
  • LED control and patterns
  • Sleep mode and power management
  • I2C configuration
  • Firmware information

Measurement Commands

  • Voltage and current measurements
  • Multi-channel temperature sensing
  • Sun sensor angle calculations
  • Internal voltage monitoring
  • Pressure sensor data

Calibration Commands

  • ADC calibration procedures
  • DAC calibration
  • Temperature sensor calibration
  • EEPROM storage of calibration data

I-V Sweep Commands

  • Solar cell characterization
  • Configurable sweep parameters
  • Data storage and retrieval
  • Voc and Isc measurements

Compatibility

  • Arduino: Uno, Nano, ESP32, ESP8266, and compatible boards
  • PlatformIO: All supported platforms
  • Interfaces: I2C (400kHz), USB Serial
  • Voltage: 3.3V and 5V logic compatible

License

This library is released under the MIT License. See LICENSE file for details.

Author

Colin Mann - The Aerospace Corporation

Version
2.1
Date
2025