The SFDQ firmware will run on an ST Nucleo446 board with no modifications.

All of the following examples assume a vanilla SFDQ PCB which is being controlled by the Java application.
The first thing to do with the software is to connect to the SFDQ PCB. This is accomplished with either the ALIAS script command or the ALIASFIRST command. These script commands assign an alias to a particular SFDQ. An alias is a convenient name to identify the board with in your script.
Once the SFDQ is aliased, you will see the telemetry table updating.
This is useful if you want to control the temperature of something by attaching a power resistor. The resistor will be driven by a high power output and the temperature will be sensed using an NTC thermistor.
//Closed loop thermal feedback example
//Configure thermistor sensing
GPIOPIN sfdq1 C5 0 //set pin as ADC input
ADC sfdq1 15 1.0 0.0 0.0 //setup adc channel
THERMISTORBETA sfdq1 0 15 3380.0 25.0 //setup thermistor to ADC channel 15 and beta of 3380
//now setup feedback
FEEDBACK sfdq1 0 2 0 1 0 false //setup feedback channel 0
FB_IN_LIMITS sfdq1 0 0.0 50.0 //setup input temperature limits to 5C to 50C
FB_OUT_LIMITS sfdq1 0 0.0 1.0 //setup output limits
FB_PID sfdq1 0 1.0 0.1 0.0 //this is a guess at the PID coefficients
TRAJECTORYNOW sfdq1 0 37.0 //set a feedback setpoint of 37C
This will setup a motor to position control with angle. Until the configuration is good, this can easily brown out.
FEEDBACK SFDQ1 0 06 0 05 0 false //enable feedback controller in open-loop mode and stepper module as its output
STEPPER_PWM SFDQ1 0 1E-3 0.193 2 //enable stepper channel 0
FB_OUT_LIMITS SFDQ1 0 0 1 //allow output from 0 to 1 metre
FB_IN_LIMITS SFDQ1 0 0 1 //same input range
FB_PROP SFDQ1 0 1 //gain of one so the feedback controller will just pass the trajectory through
GRAPHTRAJ SFDQ1 0 "Trajectory" 1 //graph the trajectory
GRAPHSTEPPER SFDQ1 0 "" 0 1 //graph the stepper pos.
TRAJLIN SFDQ1 0 1 10 //now go linearly from 0 to 1 over 10 seconds
TRAJLIN SFDQ1 0 0.1 10 //and back again
TRAJECTORYGO //and GO!

BAUD sfdq1 1500000 100 //increase baud rate to 1.5 Mbps
GPIOPIN sfdq1 A6 6 //Encoder A channel
GPIOPIN sfdq1 A7 6 //Encoder B channel
GPIOPIN sfdq1 B0 6 //Encoder Z channel
REGCONFIG sfdq1 20 2 0 0x44 //HW Encoder config register. Will publish to stream 4
REGCONFIG sfdq1 20 2 1 0 //HW Encoder offset register
REGCONFIG sfdq1 20 2 2 18e-3 //HW Encoder scale register. Will now output in degrees (0 to 360)
REGCONFIG sfdq1 20 2 3 20000 //HW Encoder counts per rev register
STREAM sfdq1 4 0x0a 0 0.002 //setup stream for encoder. 2ms sample time
FEEDBACK sfdq1 0 0x0a 4 03 0 false //enable feedback channel with input from stream 4 and output to brushless motor module
FB_IN_LIMITS sfdq1 0 NaN NaN //don't bother with input limits
FB_OUT_LIMITS sfdq1 0 -0.3 0.3 //limit output drive voltage to 30% of rail
FB_UNITS sfdq1 0 1 //use degrees for computation units. This enables circular math
FB_PID sfdq1 0 -0.01 -0.2 0.00000000 //configure a PI controller
BRUSHLESS sfdq1 A5 A4 A3 1 -15 0.5 //enable motor. Hall sensor inputs on pins A5, A4, A3
TRAJECTORYNOW sfdq1 0 170 //now go to 170 degrees
GRAPHSTREAM sfdq1 4 "Encoder" 1 //plot encoder position (angle in degrees)