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

Import

from lager import Net, NetType

Methods

MethodDescription
output()Set analog output voltage
input()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

input()

Read the currently configured output voltage.
v = dac.input()
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.input()
    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.input()
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