Skip to main content
Set analog voltage outputs using DAC pins.

Import

from lager import Net, NetType

Methods

MethodDescription
output()Set analog output voltage
get_voltage()Read configured output voltage

Method Reference

Net.get(name, type=NetType.DAC)

Get a DAC net by name.
from lager import Net, NetType

dac = Net.get('VREF', type=NetType.DAC)
Parameters:
ParameterTypeDescription
namestrName of the DAC net
typeNetTypeMust be NetType.DAC
Returns: DAC Net instance

output(voltage)

Set the analog output voltage.
dac.output(2.5)  # Set to 2.5V
ParameterTypeDescription
voltagefloatOutput voltage in volts

get_voltage()

Read the currently configured output voltage.
v = dac.get_voltage()
print(f"DAC set to: {v}V")
Returns: float - Configured voltage in volts

Examples

Set Reference Voltage

from lager import Net, NetType

vref = Net.get('VREF', type=NetType.DAC)
vref.output(1.8)  # Set to 1.8V

Generate Ramp Signal

from lager import Net, NetType
import time

signal = Net.get('SIGNAL_OUT', type=NetType.DAC)

# Ramp from 0 to 5V in 0.5V steps
for v in range(0, 51, 5):
    voltage = v / 10.0
    signal.output(voltage)
    print(f"Output: {voltage}V")
    time.sleep(0.1)

Voltage Sweep Test

from lager import Net, NetType
import time

control = Net.get('CONTROL', type=NetType.DAC)
sensor = Net.get('RESPONSE', type=NetType.ADC)

# Sweep control voltage and measure response
for mv in range(0, 3301, 100):
    voltage = mv / 1000.0
    control.output(voltage)
    time.sleep(0.1)  # Settling time

    response = sensor.get_voltage()
    print(f"Control: {voltage:.2f}V, Response: {response:.3f}V")

Set and Verify

from lager import Net, NetType

dac = Net.get('ANALOG_OUT', type=NetType.DAC)

# Set output
dac.output(3.3)

# Read back to verify
readback = dac.get_voltage()
print(f"Set: 3.3V, Readback: {readback}V")

Hardware Integration

HardwareChannelsRange
LabJack T7DAC0-DAC10-10V

Pin Mapping

Pin NumberLabJack Channel
0DAC0
1DAC1

Notes

  • DAC nets work directly without enable()/disable() calls
  • Output range is typically 0-10V
  • Resolution depends on hardware (12-bit typical)
  • input() reads the configured value, not the actual output
  • Output values are maintained until changed or power cycle
  • Net names must match those configured on the Lager Box