Gavin had trouble with configuration because it isn't loaded on startup.
I realized that I've been caught with the same mistake myself before, so
since at least 2 out of ~65 people have done this, it's clearly a real
usability problem.
Now the configuration is automatically loaded from flash when setup mode
starts, so there's no need to type `load` to edit the configuration the
Sink already has. If you're changing all the settings, you'll have to
type them all anyway, so I don't think there will be any surprises
because of this change.
A new bit was added to the Source Fixed Supply PDO in PD 3.0, saying
whether the source supports unchunked extended messages. It's not
really relevant to the PD Buddy Sink since it itself doesn't support
them, but users might want to know and it's very little work to print
it, so now it does.
Now we're using millivolts internally rather than centivolts. This
might be a good choice if USB-IF decides to make even more finely
adjustable voltages in the future. If they don't, well, it still allows
voltages up to 65.535 V, which is beyond what some electrical codes
consider "low voltage", so I doubt USB will ever exceed that.
This commit changes back to the original plan of having one set_vrange
command that sets both the vmin and vmax at once, instead of separate
set_vmin and set_vmax commands. This will allow checking that the range
is valid every time it's set instead of having to wait until
configuration is written to flash.
They were already mostly in sections, but without headers. This commit
moves all the commands under new categories in the console_config.md
documentation file.
Each field's name and meaning is listed now, and the unsupported types
are no longer listed as if they are supported. As always, I'd like to
support variable and battery PDOs, but I need hardware that sends them
to add such support.
Still preliminary, but the general idea is that each PDO will be printed
similarly to how a configuration object is printed, but numbered and
indented to make a nice human- and machine-readable list.
The new behavior of `write` has been documented, as well as a high-level
description of the new Setup mode behavior with Power Delivery
communications.
The new `output` command now has documented specifications. Not a
single line of code has been written for it though, but this is isn't a
release so you shouldn't take everything the documentation file says as
true.
Now the error behavior for set_v and set_i is well-defined by the
documentation: they print nothing on success and an error message on
failure. The range of valid values is now [0, 20000] for set_v and
[0, 5000] for set_i, matching the voltages and currents that can be
provided by USB Power Delivery.
Bumped version number to 1.0.1, reflecting this bugfix.
The iSerial descriptor now holds the firmware version number. This is
1.0.0 since I don't expect any major API changes any time soon. The USB
descriptors have been documented in docs/console_config.md so there
will be no questions as to how to identify the devices and what their
"serial numbers" mean.
As the name suggests, it clears all the flags in the configuration
buffer. This provides a way to easily set all the flags to a known
state, which is nice for implementing libraries that configure PD Buddy
Sink devices.
It's very important to document the format in which configuration is
printed, since being able to reliably read the configuration is
essential to implementing configuration GUIs. Now it's documented, and
the format is considered stable.