---
name: "siggen"
section: "9"
platform: "linux"
package: "linuxcnc-uspace"
version: "1:2.9.4-2+deb13u1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/siggen/9"
---

# siggen(9)

signal generator

## NAME

siggen - signal generator

## SYNOPSIS

**loadrt siggen \[num\_chan=***num* **\| names=***name1***\[,***name2...***\]\]**

## DESCRIPTION

**siggen** is a signal generator that can be used for testing and other applications that need simple waveforms.  It produces sine, cosine, triangle, sawtooth, and square waves of variable frequency, amplitude, and offset, which can be used as inputs to other HAL components.

**siggen** supports a maximum of sixteen channels.  The number of channels actually loaded is set by the **num\_chan** argument when the module is loaded.  Alternatively, specify **names=** and unique names separated by commas.

The **num\_chan=** and **names=** specifiers are mutually exclusive. If neither **num\_chan=** nor **names=** are specified, the default value is one.

## NAMING

The names for pins, parameters, and functions are prefixed as:\
   **siggen.N.** for N=0,1,...,num-1 when using **num\_chan=num**\
   **nameN.** for nameN=name1,name2,... when using **names=name1,name2,...**

The **siggen.N.** format is shown in the following descriptions.

## FUNCTIONS

- **siggen.***N***.update** (uses floating-point)

  Updates output pins for signal generator *N*.  Each time it is called it calculates a new sample.  It should be called many times faster than the desired signal frequency, to avoid distortion and aliasing.

## PINS

- **siggen.***N***.frequency** float in

  The output frequency for signal generator *N*, in Hertz.  The default value is 1.0 Hertz.

- **siggen.***N***.amplitude** float in

  The output amplitude for signal generator *N*.  If **offset** is zero, the outputs will swing from -**amplitude** to +**amplitude**. The default value is 1.00.

- **siggen.***N***.offset** float in

  The output offset for signal generator *N*.  This value is added directly to the output signal.  The default value is zero.

- **siggen.***N***.reset** bit in

  Resets output pins to pretermined states:\
     sine      0\
     sawtooth  0\
     square   -1 \* amplitude\
     cosine   -1 \* amplitude\
     triangle -1 \* amplitude

- **siggen.***N***.clock** bit out

  The clock output.  Bit type clock signal output at the commanded frequency.

- **siggen.***N***.square** float out

  The square wave output.  Positive while **triangle** and **cosine** are ramping upwards, and while **sine** is negative.

- **siggen.***N***.sine** float out

  The sine output.  Lags **cosine** by 90 degrees.

- **siggen.***N***.cosine** float out

  The cosine output.  Leads **sine** by 90 degrees.

- **siggen.***N***.triangle** float out

  The triangle wave output.  Ramps up while **square** is positive, and down while **square** is negative.  Reaches its positive and negative peaks at the same time as **cosine**.

- **siggen.***N***.sawtooth** float out

  The sawtooth output.  Ramps upwards to its positive peak, then instantly drops to its negative peak and starts ramping again.  The drop occurs when **triangle** and **cosine** are at their positive peaks, and coincides with the falling edge of **square**.

## PARAMETERS

None
