## Formatter
Added more executables to `~/foxsi-4matter/bin/`:

| Executable              | Description                                                                                                                 |
| ----------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| `formatter`             | Tries to talk to both CMOS and 4x CdTe. CdTe in full readout mode. Hangs if either CMOS disconnected. Does not modify bias. |
| ~~`formatter_just_cmos`~~   | Tries to talk to both CMOS. Hangs if either CMOS disconnected.                                                              |
| ~~`formatter_just_cdte`~~   | Tries to talk to 4x CdTe. Detects which ones are connected from DE.                                                         |
| `formatter_sparse`      | Same as `formatter`, but puts 4x CdTe in sparse readout mode.                                                               |
| `formatter_sparse_200v` | Same as `formatter_sparse`, but raises bias to 60 V, waits 30 s, then 200 V and waits 5 minutes.                            |
| `formatter_200v`        | Same as `formatter`, but raises bias to 60 V, waits 30 s, then 200 V and waits 5 minutes.                                   |
| `shutdown`              | Stops observation and shuts down 2x CMOS and 4x CdTe. CMOS must be power cycled after. Does not modify bias.                |
| `shutdown_just_cmos`    | Stops observation and shuts down 2x CMOS. CMOS must be power cycle after.                                                   |
| `shutdown_just_cdte`    | Stops observation for 4x CdTe.                                                                                              |
| `shutdown_200v`         | Same as `shutdown`, but lowers CdTe bias to 60 V, waits 30 s, then lowers to 0 V.                                           |
| `stop`                  | Stops observation for 2x CMOS and 4x CdTe. Does not modify bias.                                                                                  |
| `stop_just_cmos`        | Stops observation for 2x CMOS.                                                                                              |
| `stop_just_cdte`        | Stops observation for 4x CdTe.                                                                                              |
| `stop_200v`             | Same as `stop`, but lowers CdTe bias to 60 V, waits 30 s, then lowers to 0 V.                                               |

## Operating
Start an observation with any of the `formatter*` commands. If you use `formatter_sparse_200v` (sparse CdTe readout mode and bias) or `formatter_200v` (full CdTe readout mode and bias), you must end the observation with `stop_200v` or `shutdown_200v`. 

If the DE timeout error occurs, power cycle the DE via the Housekeeping board:
```
0x03 0x00 0x01
```
then
```
0x03 0x00 0x00
```
After this power cycle, make sure to lower the bias voltage if necessary before trying to read canisters again.

If you want to take multiple files without modifying bias in between, first raise the bias to 200 V with `formatter_200v` or `formatter_sparse_200v`. Stop data collection with `stop`, and restart data collection with `formatter` or `formatter_sparse`. At the end of data collection, lower the bias with `stop_200v` or `shutdown_200v`.

For example, for this procedure:
1. Turn on bias and take data in full readout mode,
2. Stop taking data, leave bias at 200 V,
3. Take more data in sparse readout mode,
4. Stop taking data and lower bias.
You should run commands like this:
```bash
./bin/formatter_200v --verbose --config foxsi4-commands/systems.json
... bias is raised, and data collected

./bin/stop --verbose --config foxsi4-commands/systems.json
... data collection stops, bias stays high

./bin/formatter_sparse --verbose --config foxsi4-commands/systems.json
... data collection starts again with sparse mode, bias is not modified

./bin/stop_200v --verbose --config foxsi4-commands/systems.json
... data collection stops and bias is lowered from 200v
```
### DE timeout issue
- Minami proposed a fix to try: adding delay between sending adjacent requests from Formatter. 
- The current nominal delay is ~2.5 ms, the RTT for Pi<=>SPMU<=>SPMU packet transfer. Read commands are sent as soon as the last was responded to.