PIR Breakout signal WORKS ONLY in Arduino - 1uA (EKMB1107112)

Hi.

I bought the SparkFun PIR Breakout - 1uA (EKMB1107112) https://www.sparkfun.com/products/17373

and I test it with the basic example on an Arduino uno board. Everything works as expected.

The signal outputs 1 when movement is detected and 0 when there is no movement.

So far the sensor board works on Arduino uno.

the wiring is exactly as described in the hookup guide and the code is

#define PIR_PIN 2   // PIR output on D2
#define LED_PIN  13  // LED to illuminate on motion
#define DEBOUNCE_TIME 750


void setup() 
{
  Serial.begin(115200); 
  // Set the PIR Output signal as an input for the microcontroller:
  pinMode(PIR_PIN, INPUT);

  // Configure the LED pin as an output
  pinMode(LED_PIN, OUTPUT);
  digitalWrite(LED_PIN, LOW); // Turn the LED off

  // Wait for 30 seconds for the PIR to stabilize after power on:
  Serial.println("Waiting 30 Seconds while PIR warms up");
  for (uint8_t seconds = 0; seconds < 30; seconds++)
  {
    Serial.println(seconds);
    delay(1000);
  }
  Serial.println("PIR Warmed up.");
}

void loop() 
{
  // The PIR's output is active high
  int motionStatus = digitalRead(PIR_PIN);

  // If motion is detected, turn the onboard LED on and print an object was detected:
  if (motionStatus == HIGH) 
  {
    Serial.println("Object Detected!");
    Serial.println(motionStatus);
    digitalWrite(LED_PIN, HIGH);
    delay(DEBOUNCE_TIME);
  }
  else // Otherwise turn the LED off and print All Clear:
  {
    Serial.println("All clear!");
    Serial.println(motionStatus);
    digitalWrite(LED_PIN, LOW);
    delay(DEBOUNCE_TIME);
  }
}

Now. I tried doing the same in another board: a Silabs EFR32FG32 dev board https://www.silabs.com/documents/public … -guide.pdf and it doesn’t work at all.

I started with a very simple process, just to read the signal pin (OUT) from the board. and the signal never changes

All I’m doing from the Silabs board is 1. configuring the pin for input and 2. reading the value

GPIO_PinModeSet(PIN_PORT, PIN_NUMBER, gpioModeInputPull, 1);
printf(GPIO_PinInGet(PIN_PORT, PIN_NUMBER))

I tried different input configurations for the pin and different pins. but the way it is configured works very well with other simple sensors.

I successfully read the signal using other sensors like this one https://www.sparkfun.com/products/13285

and also a hall effect sensor just to read the signal and make sure it is not a Silabs problem.

I’m not a hardware expert, I just need to get movement signals from a good quality PIR sensor.

Are there any other things that I’m missing to connect this breakout with another board different than arduino UNO?

Any ideas what am I missing ?

thanks

Not familiar with that board, but it looks like you’re using it as input with internal pullup? Maybe try without that

Also, ensure that pin #1 is a digital pin?

Thanks @TS-Russell.

I figured it was a pin configuration.