Mesh start-up GPIO state


#1

When I connect my Xenon or Boron via USB the pin D5 is high during start-up. I am using Device OS 0.9.0. Is there any documentation which pins are on start-up high and low?


#2

All A and D pins should be set to INPUT at startup.

However, if you have previously used the device in the Ethernet FeatherWing, pin D5 will be used for the Ethernet chip select and will be high, even if the FeatherWing is no longer present.

You can disable this check (and leave D3, D4, and D5 untouched) by flashing code that includes:

System.disableFeature(FEATURE_ETHERNET_DETECTION)

The setting is saved in configuration flash so you only need to disable it once.


#3

I never used the devices in a Ethernet FeatherWing and System.disableFeature(FEATURE_ETHERNET_DETECTION) also doesn’t change anything.

My code is:

SYSTEM_MODE(MANUAL);

void setup() {
	Serial.begin(115200);
	System.disableFeature(FEATURE_ETHERNET_DETECTION);
}

void loop() {
}

Note: It is just pin D5. All other pins are working as expected.


#4

@rickkas7 The problem still persists. The return value of the method is 0. Any ideas how to fix that?


#5

Yes, there appears to be a bug that causes D5 to go high at startup. None of the other pins exhibit this behavior, as far as I can tell.


Counting Multiple Pulses with Interrupts
Boron / Xenon / Argon Carrier for Outdoor Applications
#6

D5 also seems to be pulled low when the reset button is pushed/held, flipping an active-low relay. D7 sinks some current at the same time, enough to partially light the led but not flip my relay.


#7

Is it just a software bug or a hardware limitation?


#8

The cause has not been determined, but there’s nothing particularly special about pin 1.10 (D5) on the nRF52840.

It’s not like the STM32F205 (Gen 2) where there are pins shared with JTAG/SWD that cause pull-up or down to be applied to pins at boot. Gen 3 devices have dedicated SWD pins.

I’d guess (but I have no proof) there’s a bug where the Ethernet detection feature flag is ignored in some case; pin D5 is the chip select for the Ethernet SPI interface and should only be touched if Ethernet detection is enabled. But that would be a reasonable guess since the chip select is active low.


#9

I just got the message from DAVE …
Dave - Tech Support (Particle )

May 1, 10:17 PDT

Hi George,

That is a bug. I’ll file a bug report about it – thanks for bringing it to our attention!

cheers,
Dave @ Particle


#10

Would you happen to have any updates on this @rickkas7? I updated to 1.4.0 and the behaviour is the same. Both D5 and D7 act oddly when RST is held. D7 also seems to pull low while in DFU mode.