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
- Download the library from the repository
- For Arduino IDE: Install as ZIP library
- For PlatformIO: Add to lib_deps in platformio.ini
Basic Usage
#include <Wire.h>
AMU amu;
void setup() {
Serial.begin(115200);
Wire.begin();
Wire.setClock(400000);
amu.begin(0x0B);
if (amu.waitUntilReady(5000) == 0) {
Serial.println("AMU device ready!");
}
}
void loop() {
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