Hello,
Sorry for my bad english, I'm from Germany and my school english is about 20 years ago.
I'm trying to get this board working with Interrupts. https://www.openhardware.io/view/510/Multi-Sensor-TempHumidityPIR-LeakMagnetLightAccel
I try the sketch from NeverDie https://www.openhardware.io/view/499/10-years-wireless-PIR-Sensor-on-just-one-set-of-3-AAs#tabs-source and modify the pin configuration, but it doen't work. Then I take an example from ReadBearLabs and transfer MySensor routines into it. But this also doesn't work. Only when I use "My_Core_only" then the Interrupts are working pretty well, but when I disable "My_Core_only" the Interrupt doesn't work.
// SUMMARY: This demo sketch runs on the AM612 PIR v607 PCBto transmit battery voltage (heartbeat) and motion detections to a MySensors gateway using MySensors protocols.
// Note: because this is a passive node, node ID must be set manually to a unique sensor node ID:
#define MY_NODE_ID 143  // Passive mode requires static node ID
//#define MY_CORE_ONLY
#define MY_PASSIVE_NODE
#define MY_RADIO_NRF5_ESB
/**
 * The MySensors Arduino library handles the wireless radio link and protocol
 * between your home built sensors/actuators and HA controller of choice.
 * The sensors forms a self healing radio network with optional repeaters. Each
 * repeater and gateway builds a routing tables in EEPROM which keeps track of the
 * network topology allowing messages to be routed to nodes.
 *
 * Created by Henrik Ekblad <henrik.ekblad@mysensors.org>
 * Copyright (C) 2013-2017 Sensnology AB
 * Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors
 *
 * Documentation: http://www.mysensors.org
 * Support Forum: http://forum.mysensors.org
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * version 2 as published by the Free Software Foundation.
 *
 *******************************
 *
 * REVISION HISTORY
 * Version 1.0 - tekka
 *
 * DESCRIPTION
 * Passive node example: This is a passive & independent reporting node
 *
 */
// This demo sketch also draws from the MySensor's example MotionSensor sketch.
#define IS_NRF51  //true iff the target is an nRF51.  If an nRF52, then comment this line out!
#define SHORT_WAIT 50
// Enable debug prints
//#define MY_DEBUG
#define PIN_LED1                (4) // 4 is sensor LED , 1 is onboard LED
#define LED_BUILTIN          PIN_LED1
#define PIN_SENSOR1                (10) // 2 is waterleak, 10 is PIR , 3 is Pin5/INT
#define SENSOR1         PIN_SENSOR1
#include <MySensors.h>
//#define CHILD_ID_TEMP 1  //definitions contributed by smilvert (see above credit)
#define CHILD_ID 2   // Id of the motion sensor child
#define ID_S_MULTIMETER        28
// Initialize general message
//MyMessage msgTemp(CHILD_ID_TEMP, V_TEMP);
MyMessage msg(CHILD_ID, V_TRIPPED);
MyMessage msg_S_MULTIMETER_V_VOLTAGE(ID_S_MULTIMETER,V_VOLTAGE);
float batteryVoltage=0;  
/*#include "nrf_temp.h"
float read_temp_value(){
  float temp=0;
  // Starten Sie die Temperaturmessung. 
  NRF_TEMP->TASKS_START = 1; 
  // Warten Sie, bis die Temperaturmessung abgeschlossen ist.
  while (NRF_TEMP->EVENTS_DATARDY == 0){
    // Do nothing.}
  }
  NRF_TEMP->EVENTS_DATARDY = 0;
  // Lesen Sie den Temperaturwert vom Sensor ab
  // Die Genauigkeit beträgt 0,25 Grad Celsius <=> 1 Einheit = 0,25 Grad Celsius
  // Teile durch 4, um einen C-Wert zu erhalten
  
  temp = ((float)nrf_temp_read() / 4.);
  // Hoàn thành quá trình đo. 
  NRF_TEMP->TASKS_STOP = 1; 
  return temp;
}*/
void blinkityBlink(uint8_t repetitions) {
  for (int x=0;x<repetitions;x++) {
    digitalWrite(LED_BUILTIN ,HIGH);
    delay(20);
    digitalWrite(LED_BUILTIN ,LOW);
    delay(100);
    digitalWrite(LED_BUILTIN ,HIGH);
    delay(20);
    digitalWrite(LED_BUILTIN ,LOW);    
    if (x<(repetitions-1)) {  //skip waiting at the end of the final repetition
      delay(500);
    }
  }
}
void handle_irq3(void) {
  if(HIGH == digitalRead(SENSOR1)){
      digitalWrite(LED_BUILTIN , HIGH);
      send(msg.set("1"));  // motion detected
  }
  else
  {
      digitalWrite(LED_BUILTIN , LOW);
       send(msg.set("0"));  // send all-clear to prepare for future detections
  }
}
void presentation()
{
  // Send the sketch version information to the gateway and Controller
  sendSketchInfo("NRF Motion Sensor", "1.0");
   // wait(SHORT_WAIT);
   // present(CHILD_ID_TEMP, S_TEMP,"Onboard Temperature");
  wait(SHORT_WAIT);
  // Register all sensors to gw (they will be created as child devices)
  present(CHILD_ID, S_MOTION,"Motion Sensor");
  wait(SHORT_WAIT);
  
  present(ID_S_MULTIMETER,S_MULTIMETER,"Electric Station");
  wait(SHORT_WAIT);
}
void setup() {
    // put your setup code here, to run once:
    //hwInit();
  //hwPinMode(LED_BUILTIN,OUTPUT_D0H1);
  //hwPinMode(SENSOR1,INPUT);
   //nrf_temp_init();
  pinMode(LED_BUILTIN , OUTPUT);
    digitalWrite(LED_BUILTIN , LOW);
  blinkityBlink(5);  //signify power-up and start of operations
  // set interrupts, pin default is HIGH
  attachInterrupt(SENSOR1, handle_irq3, CHANGE);
}
void loop() {
  // put your main code here, to run repeatedly:
  //send(msgTemp.set(read_temp_value(),2));
  batteryVoltage=((float)hwCPUVoltage())/1000.0;  //take voltage measurement after transmission to hopefully measure lowest voltage that occurs. 
  send(msg_S_MULTIMETER_V_VOLTAGE.set(batteryVoltage,3));  //send battery voltage with 3 decimal places
  sleep(900000); //sleep 15 min
}```
        