Is it possible to set the duration of the System.reset()?
I'm unclear of what you mean by a reset duration.
If you want the device to remain off and turn back on after a period of time, use sleep mode.
Mainly what I am after is the power down of the gpio pins to 0V. I found that digitalWrite to LOW only brings my voltage down to 1.8V due to external circuitry on some pins, but when I System.reset() it will fall between 0-.5V. I am not sure what it is in System.reset() that causes this voltage drop, but that's what I am after.
I suppose sleep might be able to do it as well if I used an option that depowered gpio. I haven't tested this yet. Do you have other recommendations?
This is for GPIO1 specifically,
Are you using a Particle device? Which one?
None of our pins are called GPIO1. There's A1 and D1, and sometimes S1.
This is on the B404X pin D23 aka GPIO1
On the nRF52 GPIO state is preserved in all sleep modes so that won't help.
However, you should figure out exactly why you are getting the behavior you are getting. In particular, if you have external circuitry that is powered externally from the B404X 3V3 supply, and you can get leakage current into the GPIO when the B Series SoM is reset or powered down, you run the risk of the MCU not resetting properly.
On the Tracker One, we added an I/O isolation circuit on the exposed GPIO to prevent this from occurring.