Skip to main content
The Lager Command-Line Interface (CLI) provides a powerful and scriptable way to interact with your Lager Box and connected hardware directly from your terminal. It is the ideal tool for manual control, shell scripting, and integration into CI/CD pipelines.

Core Concepts

The CLI follows a standard GROUP COMMAND structure. Most commands operate on a specific Lager Box (Lagerbox), which is specified using the --box option.

Nets

Most hardware commands operate on nets - named abstractions representing physical test points or signals. Nets map friendly names to instrument channels.

Key Command Groups

Below is a summary of the main command groups available in the Lager CLI.

Lager Box Management

  • Boxes: Manage Lager Box configurations (add, delete, sync, import/export)
  • Hello: Verify connectivity to your Lager Box
  • Update: Update Lager Box software
  • SSH: Direct SSH access to Lager Box
  • Logs: View Lager Box service logs

Configuration

  • Instruments: List connected test equipment
  • Nets: Create and manage nets (test point abstractions)
  • Defaults: Set default Lager Box and net configurations

Power & Simulation

  • Supply: Control programmable power supplies
  • Battery: Simulate battery characteristics (SOC, voltage, capacity)
  • Solar: Control solar panel simulators
  • E-Load: Control electronic loads (CC/CV/CR/CP modes)
  • Watt: Read power consumption from watt meters
  • Energy: Integrate energy/charge and compute power statistics (Joulescope JS220)

Measurement

  • Scope: Control oscilloscopes for waveform capture
  • Logic: Control logic analyzers with protocol decoding
  • ADC: Read analog voltage values
  • Thermocouple: Read temperature sensors

I/O & Communication

  • GPI: Read digital inputs
  • GPO: Write digital outputs
  • DAC: Analog output voltage control
  • UART: Serial communication
  • USB: USB port power control
  • BLE: Bluetooth Low Energy scanning

Development

  • Debug: Flash firmware, GDB server, memory access, RTT logging
  • Python: Execute Python scripts on Lager Box
  • Exec: Run build/test commands in a local Docker dev container
  • Devenv: Configure the local Docker development environment
  • Binaries: Run custom binaries on Lager Box

Utilities

  • Webcam: Video capture and streaming
  • Arm: Control robotic arm positioning

Example: Test Script Workflow

This example shell script demonstrates a typical hardware test workflow.

Setting Default Lager Box

To avoid specifying --box on every command, set a default Lager Box:

Global Options

All commands support these global options:

Tips

  • Use lager <command> --help to see all options for any command
  • Most commands support --yes to skip confirmation prompts
  • Set defaults with lager defaults add to reduce typing
  • Use the tui subcommand (where available) for interactive control
  • Commands that read values (like adc, soc) can be used in scripts