I'm using the Arduino framework, so have the usual setup() and loop().

setup() contains a Board.init call.

Say that Board.setSupplyMaintainVoltage(6000); has been called, and subsequently the board is reset, causing Board.init() to run again, then the SupplyMaintainVoltage is not reset to 4600 as specified in the docs.

The same occurs with Board.setBatteryChargingMaxCurrent(250);
init() does not set the BatteryChargingMaxCurrent back to 50 mA.

Is this intentional?

OK thank you.

So what are the conditions where init() actually does set the defaults?

After the very first time power is provided, and IIRC after you call doPowerCycle (I remember this from testing - I can't verify with an actual board right now since I'm out and about).

However, I now realize that the reason you ask is I haven't specified this in the docs - will do once I get back.