The iLab Mini has a brain-dead stupid command format. The commands all have the format: CXXNNNNMMMMM. Here, C is the command. NNNN and MMMMM are integer parameters to the command. The commands are as follows:
Command | Elem (NNNN) | Val (MMMMM) | Description |
---|---|---|---|
p/P | Ignored | Ignored | Print the current configuration |
r/R | Ignored | Ignored | Run experiment |
f/F | Ignored | New fuses | Set fuses – configures SMUs into current or voltage mode |
s/S | 0 or 1 for VAR1 or VAR2 | Start value (0-1023) | Sets the starting value of the sweep |
n/N | 0 or 1 for VAR1 or VAR2 | Number of points (1-1023) | Sets the number of points in the sweep |
m/M | 0 or 1 for VAR1 or VAR2 | Maximum value (0-1023) | Sets the upper limit of the sweep |
i/I | Port 0-7 | Value (0-1023) | Sets the value of unswept ports |
e/E | 0 or 1 for VAR1 or VAR2 | Port 0-7 | Sets the port to sweep for VAR1 and VAR2 |
The output consists of short text responses. For running the experiment, it begins with "Running Experiment," followed by 8-10 columns of text for as many lines as needed for the experiment to complete, followed by "Experiment Complete." The first two columns consist of VAR1 and VAR2, as output by the DACs. The next 8 columns consist of inputs from all ADCs (the measured currents and voltages).
Sample interaction:
S 0 200 |
N 0 100 |
M 0 800 |
E 0 8 |
F 0 160 |
P |
R |
Known bugs: Generally, does not check the validity of the input – this is not a serious bug, since the input should eventually only come from a trusted computer. It is useful to have most of the computation done off of the microcontroller, so that we can use smaller and cheaper microcontrollers. There is an off-by-one error in checking the port number for i/I.